TaskEventProcessorModifier.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using YLTask;
  5. using GameFramework.Event;
  6. using UnityGameFramework.Runtime;
  7. /// <summary>
  8. /// 任务事件处理者 修改器
  9. /// </summary>
  10. public partial class TaskEventProcessor
  11. {
  12. private void InitModifier()
  13. {
  14. _TaskEventDict.Add(Enum_EventType.TaskCardActived + Enum_TaskCmdType.FinishTaskCard_ID.ToString(), StartTaskCard);
  15. _TaskEventDict.Add(Enum_EventType.MissionStepProcess + Enum_TaskCmdType.FinishTaskCard_ID.ToString(), UpdateTaskCard);
  16. _TaskEventDict.Add(Enum_EventType.MissionStepComplete + Enum_TaskCmdType.FinishTaskCard_ID.ToString(), FinishTaskCard);
  17. _TaskEventDict.Add(Enum_EventType.TaskCardActived + Enum_TaskCmdType.DrawSysMail_ID.ToString(), StartTaskCard);
  18. _TaskEventDict.Add(Enum_EventType.MissionStepProcess + Enum_TaskCmdType.DrawSysMail_ID.ToString(), UpdateTaskCard);
  19. _TaskEventDict.Add(Enum_EventType.MissionStepComplete + Enum_TaskCmdType.DrawSysMail_ID.ToString(), FinishTaskCard);
  20. EventComponent eventCmpt = GameEntry.GetComponent<EventComponent>();
  21. eventCmpt.Subscribe(UserLvlUpEvent.EventId, UserLevelUpProcessor);
  22. eventCmpt.Subscribe(HeroLvlUpEvent.EventId, HeroLevelUpProcessor);
  23. eventCmpt.Subscribe(User_AddItemEvent.EventId, UserAddItemProcessor);
  24. eventCmpt.Subscribe(HeroTupoEvent.EventId, HeroTupoProcessor);
  25. }
  26. private void CleanMonifier()
  27. {
  28. EventComponent eventCmpt = GameEntry.GetComponent<EventComponent>();
  29. if (eventCmpt.Check(UserLvlUpEvent.EventId, UserLevelUpProcessor))
  30. {
  31. eventCmpt.Unsubscribe(UserLvlUpEvent.EventId, UserLevelUpProcessor);
  32. }
  33. if (eventCmpt.Check(HeroLvlUpEvent.EventId, HeroLevelUpProcessor))
  34. {
  35. eventCmpt.Unsubscribe(HeroLvlUpEvent.EventId, HeroLevelUpProcessor);
  36. }
  37. if (eventCmpt.Check(User_AddItemEvent.EventId, UserAddItemProcessor))
  38. {
  39. eventCmpt.Unsubscribe(User_AddItemEvent.EventId, UserAddItemProcessor);
  40. }
  41. if (eventCmpt.Check(HeroTupoEvent.EventId, HeroTupoProcessor))
  42. {
  43. eventCmpt.Unsubscribe(HeroTupoEvent.EventId, HeroTupoProcessor);
  44. }
  45. }
  46. /// <summary>
  47. /// 玩家获得新道具事件
  48. /// </summary>
  49. /// <param name="sender"></param>
  50. /// <param name="e"></param>
  51. public void UserAddItemProcessor(object sender, GameEventArgs e)
  52. {
  53. var evt = e as User_AddItemEvent;
  54. if (null != evt)
  55. {
  56. // todo: add your code here
  57. if (evt.Item.IsWeapon)
  58. {
  59. // todo: 大解: 友盟统计: 获得武器 2021年9月13日19:08:21
  60. // 友盟统计: 武器获得
  61. AndroidInteractive.CallJavaFunction("onEvent", "e_weapon", "weapon_WeaponGet", evt.Item.typeId.ToString());
  62. }
  63. if (evt.Item.IsYanLing)
  64. {
  65. // todo: 大解: 友盟统计: 获得武器 2021年9月13日19:08:25
  66. // 友盟统计: 言灵获得
  67. AndroidInteractive.CallJavaFunction("onEvent", "e_yanling", "yanling_YanlingGet", evt.Item.typeId.ToString());
  68. }
  69. }
  70. }
  71. /// <summary>
  72. /// 玩家等级提升事件
  73. /// </summary>
  74. /// <param name="e"></param>
  75. public void UserLevelUpProcessor(object sender, GameEventArgs e)
  76. {
  77. var evt = e as UserLvlUpEvent;
  78. if (null != evt)
  79. {
  80. // 设置玩家名称
  81. AndroidInteractive.CallJavaFunction("SetPlayerLV", evt.newlvl.ToString());
  82. // 队列显示玩家升级
  83. PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.PlayerLvUp, evt.newlvl);
  84. // 友盟统计: 玩家等级
  85. AndroidInteractive.CallJavaFunction("onEvent", "e_player_lvlup", "lvl",evt.newlvl.ToString());
  86. }
  87. }
  88. /// <summary>
  89. /// 唤灵师等级提升事件
  90. /// </summary>
  91. /// <param name="e"></param>
  92. public void HeroLevelUpProcessor(object sender, GameEventArgs e)
  93. {
  94. var evt = e as HeroLvlUpEvent;
  95. if (null != evt)
  96. {
  97. //// 队列显示唤灵师升级
  98. //PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.HuanLingShiLvUp, "");
  99. //int power = evt.HeroVo.GetPower() - evt.PowerAdded;
  100. //int added = evt.PowerAdded;
  101. //string powerStr = "<color=#F6CF00>" + power.ToString() + "</color>";
  102. //string add = "<color=#ffffff> + </color>";
  103. //string addedStr = "<color=#00ff00>" + added.ToString() + "</color>";
  104. //// 队列显示战力提升
  105. //PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.PowerAdd, powerStr + add + addedStr);
  106. // 增加3D场景 升级特效
  107. ResourceHelper.Instance.LoadAssetBundle("juese_shengji", (ab) =>
  108. {
  109. if (ab != null )
  110. {
  111. GameObject obj = (GameObject)GameObject.Instantiate(ab.LoadAsset("juese_shengji"));
  112. obj.transform.parent = HeroPlayerController.Instance.m_Hero.transform;
  113. obj.transform.SetLocalPositionX(0);
  114. obj.transform.SetLocalPositionY(0);
  115. obj.transform.SetLocalPositionZ(0);
  116. }
  117. });
  118. // 升级UI特效
  119. UI_TipsWindow.ShowLevelUpEeffect(evt.HeroVo.level);
  120. }
  121. }
  122. /// <summary>
  123. /// 唤灵师突破事件
  124. /// </summary>
  125. /// <param name="e"></param>
  126. public void HeroTupoProcessor(object sender, GameEventArgs e)
  127. {
  128. var evt = e as HeroTupoEvent;
  129. if (null != evt)
  130. {
  131. //// 队列显示唤灵师升级
  132. //PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.HuanLingShiLvUp, "");
  133. //// 队列显示战力提升
  134. //PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.PowerAdd,"星级增加至"+ evt.star+"星");
  135. }
  136. }
  137. /// <summary>
  138. /// 开始动作 剧情对话
  139. /// </summary>
  140. public void StartTaskCard(GameEventArgs e)
  141. {
  142. //TaskCardEventAtive start = e as TaskCardEventAtive;
  143. //TaskCardVo cvo = start.cardVo;
  144. //List<Ins_TaskStepVo> svo = cvo.curSteps;
  145. //foreach (var item in svo)
  146. //{
  147. // if (item.ShouldDoStartAction())
  148. // {
  149. // List<int> paramList = item.mo().StartAction.ParamList;
  150. // int npdID = paramList[0];
  151. // int stageID = paramList[1];
  152. // PanelHelper.Instance.ShowPanel("UI_TaskDialogWindow", panel =>
  153. // {
  154. // panel.GetComponent<UI_TaskDialogWindow>().Init(0, npdID, stageID, npdID + "_" + stageID + "_" + 0, 0, null);
  155. // });
  156. // break;
  157. // }
  158. //}
  159. }
  160. public void UpdateTaskCard(GameEventArgs e)
  161. {
  162. TaskEventStepProcess process = e as TaskEventStepProcess;
  163. }
  164. /// <summary>
  165. /// 完成动作 剧情对话
  166. /// </summary>
  167. public void FinishTaskCard(GameEventArgs e)
  168. {
  169. TaskEventStepFinish finish = e as TaskEventStepFinish;
  170. TaskCardVo cvo = finish.cardVo;
  171. Ins_TaskStepVo svo = finish.stepVo;
  172. if (svo.ShouldDoFinishAction())
  173. {
  174. List<int> paramList = svo.mo().FinishAction.ParamList;
  175. int npdID = paramList[0];
  176. int stageID = paramList[1];
  177. PanelHelper.Instance.ShowPanel("UI_TaskDialogWindow", panel =>
  178. {
  179. panel.GetComponent<UI_TaskDialogWindow>().Init(0, npdID, stageID, npdID + "_" + stageID + "_" + 0, 0, null);
  180. });
  181. }
  182. // 更新任务追踪信息
  183. UI_TaskTracking.UpdateTaskInfo();
  184. }
  185. }