StorySkillView.cs 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. using System;
  2. using System.Collections.Generic;
  3. using cfg.GfgCfg;
  4. using FairyGUI;
  5. using UI.Main;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. public class StorySkillView : BaseView
  10. {
  11. private UI_StorySkillUI _ui;
  12. private Dictionary<int, int> skillScoreDic;
  13. //private EffectUI _effectUI1;
  14. //private EffectUI _effectUI2;
  15. private EffectUI _effectUI3;
  16. private EffectUI _effectUI4;
  17. private EffectUI _effectUI5;
  18. private bool isFirst;
  19. private GameObject mainCamera;
  20. private GameObject stageCamera;
  21. public override void Dispose()
  22. {
  23. //EffectUIPool.Recycle(_effectUI1);
  24. //_effectUI1 = null;
  25. //EffectUIPool.Recycle(_effectUI2);
  26. //_effectUI2 = null;
  27. EffectUIPool.Recycle(_effectUI3);
  28. _effectUI3 = null;
  29. EffectUIPool.Recycle(_effectUI4);
  30. _effectUI4 = null;
  31. EffectUIPool.Recycle(_effectUI5);
  32. _effectUI5 = null;
  33. if (_ui != null)
  34. {
  35. _ui.Dispose();
  36. _ui = null;
  37. }
  38. base.Dispose();
  39. }
  40. protected override void OnInit()
  41. {
  42. base.OnInit();
  43. _ui = UI_StorySkillUI.Create();
  44. viewCom = _ui.target;
  45. isfullScreen = true;
  46. // this.modal = false;
  47. //_effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comSkillShow.m_holderBottom, "ui_fight_new", "CFKP_TX_down");
  48. //_effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comSkillShow.m_holderTop, "ui_fight_new", "CFKP_TX_up");
  49. EffectUIPool.CreateEffectUI(_ui.m_addScore, "ui_fight_new", "CFKP_UP",
  50. onComplete: (effect) =>
  51. {
  52. if (effect != null)
  53. {
  54. _effectUI3 = effect;
  55. }
  56. });
  57. EffectUIPool.CreateEffectUI(_ui.m_reduceScore, "ui_fight_new", "CFKP_Down",
  58. onComplete: (effect) =>
  59. {
  60. if (effect != null)
  61. {
  62. _effectUI4 = effect;
  63. }
  64. });
  65. EffectUIPool.CreateEffectUI(_ui.m_effReduceScore, "ui_fight_new", "CFKP_Down_end",
  66. onComplete: (effect) =>
  67. {
  68. if (effect != null)
  69. {
  70. _effectUI5 = effect;
  71. }
  72. });
  73. _ui.m_comSkillShow.m_t0.ignoreEngineTimeScale = false;
  74. _ui.m_comSkillShow.m_t1.ignoreEngineTimeScale = false;
  75. _ui.m_t1.ignoreEngineTimeScale = false;
  76. isFirst = true;
  77. }
  78. protected override void OnShown()
  79. {
  80. base.OnShown();
  81. skillScoreDic = this.viewData as Dictionary<int, int>;
  82. _ui.m_effReduceScore.visible = false;
  83. _ui.m_SkillScore.visible = false;
  84. UpdateView();
  85. }
  86. private void UpdateView()
  87. {
  88. if (skillScoreDic.Count > 0)
  89. {
  90. int skillId = 0;
  91. foreach (int key in skillScoreDic.Keys)
  92. {
  93. skillId = key;
  94. break;
  95. }
  96. PassivitySkillCfg skillCfg = CommonDataManager.Tables.TblPassivitySkillCfg.GetOrDefault(skillId);
  97. _ui.m_comSkillShow.m_txtName.text = skillCfg.Name;
  98. _ui.m_comSkillShow.m_ComSkillScore.m_txtCount.SetVar("value", skillScoreDic[skillId].ToString())
  99. .FlushVars();
  100. _ui.m_comSkillShow.m_ComSkillScore.m_txtCount1
  101. .SetVar("value", Math.Abs(skillScoreDic[skillId]).ToString()).FlushVars();
  102. _ui.m_comSkillShow.m_ComSkillScore.m_c1.selectedIndex = skillScoreDic[skillId] >= 0 ? 0 : 1;
  103. _ui.m_SkillScore.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars();
  104. _ui.m_reduceTxt.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars();
  105. string res = skillCfg.Res;
  106. res = CommonDataManager.Tables.TblItemCfg.GetOrDefault(skillCfg.CardId).Res;
  107. _ui.m_comSkillShow.m_comSkillCard.m_comCard.m_loaCard.url = ResPathUtil.GetCardPath(res);
  108. _ui.m_comSkillShow.m_t0.timeScale = FightDataManager.Instance.fightSpeed;
  109. _ui.m_comSkillShow.m_t0.Play(() =>
  110. {
  111. if (skillScoreDic[skillId] > 0)
  112. {
  113. _ui.m_comSkillShow.m_t1.timeScale = FightDataManager.Instance.fightSpeed;
  114. _ui.m_comSkillShow.m_t1.Play(() =>
  115. {
  116. skillScoreDic.Remove(skillId);
  117. UpdateView();
  118. });
  119. }
  120. else
  121. {
  122. _ui.m_t1.timeScale = FightDataManager.Instance.fightSpeed;
  123. _ui.m_t1.Play(() =>
  124. {
  125. skillScoreDic.Remove(skillId);
  126. UpdateView();
  127. });
  128. }
  129. });
  130. //战斗卡牌特效处理
  131. Timers.inst.Add(0.5f, 1, SetEffVisible);
  132. }
  133. //else
  134. {
  135. //this.Hide();
  136. Timers.inst.Add(2.2f, 1, AutoHide);
  137. }
  138. }
  139. protected override void OnHide()
  140. {
  141. base.OnHide();
  142. _ui.m_addScore.visible = false;
  143. _ui.m_reduceScore.visible = false;
  144. if (_ui.m_effReduceScore != null)
  145. {
  146. _ui.m_effReduceScore.visible = false;
  147. }
  148. SetCamera(false);
  149. Timers.inst.Remove(SetEffReduceScore);
  150. Timers.inst.Remove(SetEffVisible);
  151. Timers.inst.Remove(AutoHide);
  152. _ui.m_comSkillShow.m_t0.Stop(true, false);
  153. _ui.m_comSkillShow.m_t1.Stop(true, false);
  154. _ui.m_t1.Stop(true, false);
  155. _ui.m_t2.Play();
  156. EventAgent.DispatchEvent(ConstMessage.SHOW_CARD_SKILL_END);
  157. }
  158. private void SetEffReduceScore(object param)
  159. {
  160. _ui.m_effReduceScore.visible = true;
  161. _ui.m_t3.Play();
  162. }
  163. private void SetEffVisible(object param)
  164. {
  165. if (skillScoreDic.Count == 0)
  166. {
  167. return;
  168. }
  169. int skillId = 0;
  170. foreach (int key in skillScoreDic.Keys)
  171. {
  172. skillId = key;
  173. break;
  174. }
  175. //战斗卡牌特效处理
  176. if (skillScoreDic[skillId] > 0)
  177. {
  178. _ui.m_SkillScore.color = new Color(0.973f, 0.784f, 0.431f, 1.000f);
  179. _ui.m_reduceScore.visible = false;
  180. _ui.m_addScore.visible = true;
  181. _ui.m_SkillScore.visible = true;
  182. _ui.m_t4.Play();
  183. SetCamera(true);
  184. }
  185. else if (skillScoreDic[skillId] < 0)
  186. {
  187. _ui.m_SkillScore.color = new Color(0.906f, 0.894f, 0.894f, 1.000f);
  188. _ui.m_addScore.visible = false;
  189. _ui.m_reduceScore.visible = true;
  190. _ui.m_SkillScore.visible = false;
  191. Timers.inst.Add(1.5f, 1, SetEffReduceScore);
  192. }
  193. }
  194. private void SetCamera(bool isshake)
  195. {
  196. if (isFirst)
  197. {
  198. mainCamera = Camera.main.gameObject;
  199. mainCamera.AddComponent<SC_shakeCamera>();
  200. mainCamera.AddComponent<shakecameraControl>();
  201. stageCamera = GameObject.Find("Stage Camera").gameObject;
  202. stageCamera.AddComponent<SC_shakeCamera>();
  203. stageCamera.AddComponent<shakecameraControl>();
  204. mainCamera.GetComponent<SC_shakeCamera>().enabled = false;
  205. mainCamera.GetComponent<shakecameraControl>().enabled = false;
  206. stageCamera.GetComponent<SC_shakeCamera>().enabled = false;
  207. stageCamera.GetComponent<shakecameraControl>().enabled = false;
  208. isFirst = false;
  209. }
  210. if (isshake)
  211. {
  212. mainCamera.GetComponent<SC_shakeCamera>().enabled = true;
  213. mainCamera.GetComponent<shakecameraControl>().enabled = true;
  214. stageCamera.GetComponent<SC_shakeCamera>().enabled = true;
  215. stageCamera.GetComponent<shakecameraControl>().enabled = true;
  216. }
  217. else
  218. {
  219. mainCamera.GetComponent<SC_shakeCamera>().enabled = false;
  220. mainCamera.GetComponent<shakecameraControl>().enabled = false;
  221. stageCamera.GetComponent<SC_shakeCamera>().enabled = false;
  222. stageCamera.GetComponent<shakecameraControl>().enabled = false;
  223. }
  224. }
  225. private void AutoHide(object param = null)
  226. {
  227. this.Hide();
  228. }
  229. }
  230. }