YotogiResultManager.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. using System;
  2. using System.Collections.Generic;
  3. using MaidStatus;
  4. using UnityEngine;
  5. using wf;
  6. using Yotogis;
  7. public class YotogiResultManager : WfScreenChildren
  8. {
  9. public override void Awake()
  10. {
  11. base.Awake();
  12. this.yotogi_mgr_ = base.GetComponentInParent<YotogiManager>();
  13. this.common_buttons_ = UTY.GetChildObject(base.root_obj, "CommonPanel", false).GetComponent<YotogiCommonButtons>();
  14. this.common_buttons_.viwe_reset_btn.gameObject.SetActive(false);
  15. string path = "SceneYotogi/Common/Prefab/ParameterViewer";
  16. if (Product.supportMultiLanguage)
  17. {
  18. path = "SceneYotogi/Common/Prefab/ParameterViewerWidth";
  19. }
  20. GameObject gameObject = Utility.CreatePrefab(base.root_obj, path, true);
  21. gameObject.transform.SetParent(UTY.GetChildObject(base.root_obj, "ParameterViewer", false).transform, false);
  22. gameObject.transform.localPosition = new Vector3(0f, 360f, 0f);
  23. this.paramenter_viewer_ = gameObject.GetComponent<YotogiParameterViewer>();
  24. this.paramenter_viewer_.SetCostumeButtonVisible(false);
  25. this.paramenter_viewer_.SetAttributeViewer(UTY.GetChildObject(base.root_obj.transform.parent.gameObject, "AttributeViewer", false).GetComponent<AttributeViewer>());
  26. this.fluctuation_status_parent_ = UTY.GetChildObject(base.root_obj, "AcquiredParameterViewer/FluctuationOfParameter/FluctuationOfParameterParent", false).GetComponent<UITable>();
  27. this.acquired_class_parent_ = UTY.GetChildObject(base.root_obj, "AcquiredParameterViewer/YotogiClass/AcquiredSkillParent/Contents/UnitParent", false).GetComponent<UIGrid>();
  28. this.acquired_skill_parent_ = UTY.GetChildObject(base.root_obj, "AcquiredParameterViewer/AcquiredSkill/AcquiredSkillParent/Contents/UnitParent", false).GetComponent<UIGrid>();
  29. this.acquired_attribute_parent_ = UTY.GetChildObject(base.root_obj, "AcquiredParameterViewer/AcquiredAttribute/AcquiredAttributeParent", false).GetComponent<UIGrid>();
  30. this.skill_unit_parent_ = UTY.GetChildObject(base.root_obj, "SkillViewer/SkillUnitParent", false).GetComponent<UIGrid>();
  31. }
  32. protected override void OnCall()
  33. {
  34. this.yotogi_mgr_.uiVisible = true;
  35. this.common_buttons_.next_btn.onClick.Clear();
  36. EventDelegate.Add(this.common_buttons_.next_btn.onClick, new EventDelegate.Callback(this.OnClickNext));
  37. this.maid_ = this.yotogi_mgr_.maid;
  38. this.Clear();
  39. this.paramenter_viewer_.SetMaid(this.maid_);
  40. this.paramenter_viewer_.UpdateTextCommon();
  41. this.paramenter_viewer_.UpdateTextParam();
  42. HashSet<int> hashSet = new HashSet<int>();
  43. YotogiManager.PlayingSkillData[] play_skill_array = this.yotogi_mgr_.play_skill_array;
  44. for (int i = 0; i < play_skill_array.Length; i++)
  45. {
  46. if (play_skill_array[i].skill_pair.base_data != null && !hashSet.Contains(play_skill_array[i].skill_pair.base_data.id) && play_skill_array[i].skill_pair.base_data.specialConditionType != Skill.Data.SpecialConditionType.Faint && play_skill_array[i].skill_pair.base_data.specialConditionType != Skill.Data.SpecialConditionType.NewType)
  47. {
  48. hashSet.Add(play_skill_array[i].skill_pair.base_data.id);
  49. YotogiSkillUnit yotogiSkillUnit = this.AddSkillUnit(play_skill_array[i].skill_pair);
  50. int num = play_skill_array[i].skill_pair.skill_data.expSystem.GetTotalExp() - play_skill_array[i].backup_total_exp;
  51. if (0 < num)
  52. {
  53. yotogiSkillUnit.SetExpAnime(play_skill_array[i].backup_total_exp, num, this.AnimeTime);
  54. }
  55. if (play_skill_array[i].skill_pair.base_data.specialConditionType == Skill.Data.SpecialConditionType.Drunk)
  56. {
  57. GameMain.Instance.CharacterMgr.status.AddHaveTrophy(1130);
  58. }
  59. if (play_skill_array[i].skill_pair.base_data.specialConditionType == Skill.Data.SpecialConditionType.Drug)
  60. {
  61. GameMain.Instance.CharacterMgr.status.AddHaveTrophy(1140);
  62. }
  63. if (play_skill_array[i].skill_pair.base_data.specialConditionType == Skill.Data.SpecialConditionType.Mask)
  64. {
  65. GameMain.Instance.CharacterMgr.status.AddHaveTrophy(1150);
  66. }
  67. }
  68. }
  69. YotogiManager.BackUpStatus backUpStatus = this.yotogi_mgr_.GetBackUpStatus();
  70. YotogiPlay.Param param = YotogiPlay.Param.Create(this.maid_) - backUpStatus.param;
  71. this.AddFluctuationStatus("夜伽クラスレベル", param.yotogi_type_level);
  72. this.AddFluctuationStatus("夜伽クラスEXP", param.yotogi_type_total_exp);
  73. this.AddFluctuationStatus("奉仕", param.housi);
  74. this.AddFluctuationStatus("淫欲", param.inyoku);
  75. this.AddFluctuationStatus("M性", param.m_value);
  76. this.AddFluctuationStatus("変態", param.hentai);
  77. this.AddFluctuationStatus("可憐", param.lovely);
  78. this.AddFluctuationStatus("気品", param.elegance);
  79. this.AddFluctuationStatus("魅惑", param.charm);
  80. this.AddFluctuationStatus("指導", param.teach_rate / 10);
  81. HashSet<int> hashSet2 = new HashSet<int>();
  82. foreach (int item in this.maid_.status.propensitys.GetKeyArray())
  83. {
  84. hashSet2.Add(item);
  85. }
  86. foreach (int item2 in backUpStatus.propensity)
  87. {
  88. hashSet2.Remove(item2);
  89. }
  90. foreach (int id in hashSet2)
  91. {
  92. this.AddAcquiredAttribute(Propensity.GetData(id).drawName, Propensity.GetData(id).termName);
  93. }
  94. HashSet<int> hashSet3 = new HashSet<int>();
  95. int[] keyArray2 = this.maid_.status.yotogiClass.datas.GetKeyArray();
  96. for (int k = 0; k < keyArray2.Length; k++)
  97. {
  98. hashSet3.Add(keyArray2[k]);
  99. }
  100. foreach (int item3 in backUpStatus.yotogi_class_list)
  101. {
  102. hashSet3.Remove(item3);
  103. }
  104. foreach (int id2 in hashSet3)
  105. {
  106. if (!YotogiClass.IsNTRClass(id2, false))
  107. {
  108. this.AddYotogiClass(YotogiClass.GetData(id2).drawName, YotogiClass.GetData(id2).termName);
  109. }
  110. }
  111. HashSet<int> hashSet4 = new HashSet<int>();
  112. keyArray2 = this.maid_.status.yotogiSkill.datas.GetKeyArray();
  113. for (int l = 0; l < keyArray2.Length; l++)
  114. {
  115. hashSet4.Add(keyArray2[l]);
  116. }
  117. foreach (int item4 in backUpStatus.skill_id_list)
  118. {
  119. hashSet4.Remove(item4);
  120. }
  121. bool lockNTRPlay = GameMain.Instance.CharacterMgr.status.lockNTRPlay;
  122. foreach (int num2 in hashSet4)
  123. {
  124. Skill.Data data = Skill.Get(num2);
  125. if (data.IsResultDisplay(lockNTRPlay))
  126. {
  127. if (data.IsExecSeikeiken(this.maid_.status.seikeiken))
  128. {
  129. if (PersonalEventBlocker.IsEnabledYotodiSkill(this.maid_.status.personal, num2))
  130. {
  131. this.AddAcquiredSkill(data.name, data.termName);
  132. }
  133. }
  134. }
  135. }
  136. this.fluctuation_status_parent_.Reposition();
  137. this.acquired_skill_parent_.Reposition();
  138. this.acquired_class_parent_.Reposition();
  139. this.acquired_attribute_parent_.Reposition();
  140. this.skill_unit_parent_.Reposition();
  141. this.StartAnime();
  142. if (this.yotogi_mgr_.is_new_yotogi_mode)
  143. {
  144. UTY.GetChildObject(base.root_obj, "SkillViewer", false).SetActive(false);
  145. }
  146. GameMain.Instance.CharacterMgr.status.CheckTrophyMaidStatus(this.maid_);
  147. this.acquired_class_parent_.Reposition();
  148. Utility.ResetNGUI(UTY.GetChildObject(this.acquired_class_parent_.transform.parent.parent.gameObject, "Contents", false).GetComponent<UIScrollView>());
  149. }
  150. public void Clear()
  151. {
  152. Action<GameObject> action = delegate(GameObject game_object)
  153. {
  154. Transform transform = game_object.transform;
  155. for (int i = 0; i < transform.childCount; i++)
  156. {
  157. UnityEngine.Object.Destroy(transform.GetChild(i).gameObject);
  158. }
  159. transform.DetachChildren();
  160. };
  161. action(this.fluctuation_status_parent_.gameObject);
  162. this.fluctuation_status_parent_.Reposition();
  163. action(this.acquired_skill_parent_.gameObject);
  164. this.acquired_skill_parent_.Reposition();
  165. action(this.acquired_class_parent_.gameObject);
  166. this.acquired_class_parent_.Reposition();
  167. Utility.ResetNGUI(UTY.GetChildObject(this.acquired_class_parent_.transform.parent.parent.gameObject, "Contents", false).GetComponent<UIScrollView>());
  168. action(this.acquired_attribute_parent_.gameObject);
  169. this.acquired_attribute_parent_.Reposition();
  170. action(this.skill_unit_parent_.gameObject);
  171. this.skill_unit_parent_.Reposition();
  172. }
  173. public void AddFluctuationStatus(string param_name, int value)
  174. {
  175. if (14 <= this.fluctuation_status_parent_.transform.childCount || value == 0)
  176. {
  177. return;
  178. }
  179. GameObject gameObject = Utility.CreatePrefab(this.fluctuation_status_parent_.gameObject, "SceneYotogi/Result/Prefab/FluctuationOfParameterUnit", true);
  180. FluctuationOfParameterUnit component = gameObject.GetComponent<FluctuationOfParameterUnit>();
  181. component.AnimeTime = this.AnimeTime;
  182. component.SetTextName(param_name);
  183. component.SetTextNameTerm("MaidStatus/" + param_name);
  184. component.SetTextValue(value);
  185. component.SetBGVisible((this.fluctuation_status_parent_.transform.childCount + 1) / 2 % 2 == 0);
  186. this.fluctuation_status_parent_.repositionNow = true;
  187. }
  188. public void AddYotogiClass(string name, string termName)
  189. {
  190. UIGrid uigrid = this.acquired_class_parent_;
  191. GameObject gameObject = Utility.CreatePrefab(uigrid.gameObject, "SceneYotogi/Result/Prefab/AcquiredYotogiClassUnit", true);
  192. AcquiredSkillUnit component = gameObject.GetComponent<AcquiredSkillUnit>();
  193. component.SetText(name);
  194. component.SetTerm(termName);
  195. component.SetBGVisible(uigrid.transform.childCount % 2 != 0);
  196. uigrid.repositionNow = true;
  197. }
  198. public void AddAcquiredSkill(string name, string termName)
  199. {
  200. GameObject gameObject = Utility.CreatePrefab(this.acquired_skill_parent_.gameObject, "SceneYotogi/Result/Prefab/AcquiredSkillUnit", true);
  201. AcquiredSkillUnit component = gameObject.GetComponent<AcquiredSkillUnit>();
  202. component.SetText(name);
  203. component.SetTerm(termName);
  204. component.SetBGVisible(this.acquired_skill_parent_.transform.childCount % 2 != 0);
  205. this.acquired_skill_parent_.repositionNow = true;
  206. }
  207. public void AddAcquiredAttribute(string name, string termName)
  208. {
  209. if (5 <= this.acquired_attribute_parent_.transform.childCount)
  210. {
  211. return;
  212. }
  213. GameObject gameObject = Utility.CreatePrefab(this.acquired_attribute_parent_.gameObject, "SceneYotogi/Result/Prefab/AcquiredAttributeUnit", true);
  214. AcquiredAttributeUnit component = gameObject.GetComponent<AcquiredAttributeUnit>();
  215. component.SetText(name);
  216. component.SetTerm(termName);
  217. this.acquired_attribute_parent_.repositionNow = true;
  218. }
  219. public YotogiSkillUnit AddSkillUnit(Yotogi.SkillDataPair skill_data_pair)
  220. {
  221. if (7 <= this.skill_unit_parent_.transform.childCount)
  222. {
  223. return null;
  224. }
  225. GameObject gameObject = Utility.CreatePrefab(this.skill_unit_parent_.gameObject, "SceneYotogi/SkillSelect/Prefab/YotogiSkillUnit", true);
  226. UTY.GetChildObject(gameObject, "Button", false).SetActive(false);
  227. UTY.GetChildObject(gameObject, "Description/BG", false).GetComponent<UISprite>().alpha = 1f;
  228. YotogiSkillUnit component = gameObject.GetComponent<YotogiSkillUnit>();
  229. component.SetSkillData(this.maid_, skill_data_pair.base_data, skill_data_pair.skill_data, null, null);
  230. this.skill_unit_parent_.repositionNow = true;
  231. return component;
  232. }
  233. public void StartAnime()
  234. {
  235. Transform transform = this.fluctuation_status_parent_.gameObject.transform;
  236. for (int i = 0; i < transform.childCount; i++)
  237. {
  238. transform.GetChild(i).GetComponent<FluctuationOfParameterUnit>().StartAnime();
  239. }
  240. if (!this.yotogi_mgr_.is_new_yotogi_mode)
  241. {
  242. transform = this.skill_unit_parent_.gameObject.transform;
  243. for (int j = 0; j < transform.childCount; j++)
  244. {
  245. transform.GetChild(j).GetComponent<YotogiSkillUnit>().StartAnime();
  246. }
  247. }
  248. }
  249. private void OnClickNext()
  250. {
  251. if (this.yotogi_mgr_.null_mgr.IsExistNextLabel())
  252. {
  253. this.Finish();
  254. }
  255. }
  256. protected override void OnFinish()
  257. {
  258. base.OnFinish();
  259. GameMain.Instance.SoundMgr.VoiceStopAll();
  260. GameMain.Instance.SoundMgr.StopSe();
  261. CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
  262. GameMain.Instance.ScriptMgr.ClearForcExecWaitEvent();
  263. for (int i = 0; i < characterMgr.GetMaidCount(); i++)
  264. {
  265. Maid maid = characterMgr.GetMaid(i);
  266. if (maid != null)
  267. {
  268. maid.FaceAnime("通常", 0f, 0);
  269. maid.FaceBlend("無し");
  270. maid.body0.SetMaskMode(TBody.MaskMode.None);
  271. for (int j = 10; j <= 20; j++)
  272. {
  273. maid.body0.MulTexRemove("body", 0, "_MainTex", j);
  274. maid.body0.MulTexRemove("body", 0, "_ShadowTex", j);
  275. maid.body0.MulTexRemove("head", 5, "_MainTex", j);
  276. maid.body0.MulTexRemove("head", 5, "_ShadowTex", j);
  277. }
  278. maid.body0.MulTexRemove("body", 0, "_MainTex", 24);
  279. maid.body0.MulTexRemove("body", 0, "_ShadowTex", 24);
  280. maid.body0.MulTexProc("body");
  281. maid.body0.MulTexProc("head");
  282. }
  283. }
  284. this.yotogi_mgr_.ResetWorld();
  285. }
  286. protected override void OnFadeEnd()
  287. {
  288. bool flag = !this.yotogi_mgr_.IsAllCharaBusy();
  289. if (flag)
  290. {
  291. GameMain.Instance.MainLight.Reset();
  292. GameMain.Instance.CharacterMgr.ResetCharaPosAll();
  293. GameMain.Instance.MainCamera.Reset(CameraMain.CameraType.Target, true);
  294. GameMain.Instance.SoundMgr.VoiceStopAll();
  295. this.yotogi_mgr_.UnVisibleMaidAndMan(true, true);
  296. this.maid_.Visible = true;
  297. if (this.yotogi_mgr_.null_mgr.IsExistNextLabel())
  298. {
  299. this.yotogi_mgr_.CallScreen(YotogiManager.CallScreenType.Null.ToString());
  300. }
  301. }
  302. }
  303. public float AnimeTime = 1.5f;
  304. private Maid maid_;
  305. private YotogiManager yotogi_mgr_;
  306. private YotogiCommonButtons common_buttons_;
  307. private YotogiParameterViewer paramenter_viewer_;
  308. private UITable fluctuation_status_parent_;
  309. private UIGrid acquired_skill_parent_;
  310. private UIGrid acquired_class_parent_;
  311. private UIGrid acquired_attribute_parent_;
  312. private UIGrid skill_unit_parent_;
  313. }