Guide_MuShi.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Hero;
  5. using UnityEngine;
  6. namespace GameLogic.Combat.CombatGuide
  7. {
  8. public class Guide_MuShi : GuideBasic
  9. {
  10. protected bool isTrgger;
  11. public Guide_MuShi()
  12. {
  13. Guide3();
  14. }
  15. private void Guide3()
  16. {
  17. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
  18. }
  19. private void HeroHpUpdateEventData(IEventData eventData)
  20. {
  21. if (isTrgger)
  22. {
  23. return;
  24. }
  25. HeroHpUpdateEventData data = eventData as HeroHpUpdateEventData;
  26. CombatHeroEntity combatHeroEntity = data.combatHeroEntity;
  27. if (!combatHeroEntity.IsEnemy)
  28. {
  29. if (data.combatHeroEntity.HpBl <= 30)
  30. {
  31. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate,
  32. HeroHpUpdateEventData);
  33. CombatController.currActiveCombat.isStopAi = true;
  34. ShowDialogueEventData showDialogueEventData = ShowDialogueEventData.Create();
  35. showDialogueEventData.finish = Guide3_1;
  36. showDialogueEventData.dialogueMessaga = new string[] { "兄弟们,我坚持不住了,这一波怪物太猛了!" };
  37. showDialogueEventData.messageShowType = ShowDialogueEventData.MessageShowType.Verbatim;
  38. EventManager.Instance.Dispatch(CustomEventType.ShowDialogue,
  39. showDialogueEventData);
  40. }
  41. }
  42. }
  43. private async void Guide3_1()
  44. {
  45. AccountFileInfo.HeroData heroData2 = new AccountFileInfo.HeroData
  46. {
  47. heroModelId = 113,
  48. heroPowerId = 10,
  49. heroPromoteId = 3,
  50. isLead = true,
  51. };
  52. HeroInfo heroInfo = new HeroInfo();
  53. heroInfo.InitHero(heroData2);
  54. AccountFileInfo.Instance.playerData.HeroListData.Add(heroData2);
  55. PlayerManager.Instance.heroController.AddHero(heroInfo);
  56. AccountFileInfo.Instance.playerData.combatGuideIndex = 3;
  57. AccountFileInfo.Instance.SavePlayerData();
  58. CombatHeroEntity[] allHero = CombatController.currActiveCombat.CombatHeroController.GetHero(false);
  59. CombatHeroEntity heroEntity = CObjectPool.Instance.Fetch<CombatHeroEntity>();
  60. heroEntity.IsEnemy = false;
  61. heroEntity.number = 1;
  62. Vector3 pos = allHero[0].dotPos + allHero[0].faceDir * -2;
  63. await heroEntity.Init(new CombatAIBasic(), heroInfo, pos,
  64. delegate(CombatHeroEntity entity)
  65. {
  66. CombatController.currActiveCombat.CombatHeroController.AddHero(entity);
  67. });
  68. ShowDialogueEventData showDialogueEventData = ShowDialogueEventData.Create();
  69. showDialogueEventData.finish = delegate
  70. {
  71. heroEntity.CombatHeroSkillControl.AddCommandSkill(
  72. heroEntity.CombatHeroSkillControl.GetSkillBasic(20001));
  73. CombatController.currActiveCombat.isStopAi = false;
  74. AccountFileInfo.Instance.playerData.combatGuideIndex =4;
  75. AccountFileInfo.Instance.SavePlayerData();
  76. };
  77. showDialogueEventData.dialogueMessaga = new string[] { "天空中突然闪出一个人影。","我是来自教堂的牧师,我来为你治疗!" };
  78. showDialogueEventData.messageShowType = ShowDialogueEventData.MessageShowType.Verbatim;
  79. EventManager.Instance.Dispatch(CustomEventType.ShowDialogue, showDialogueEventData);
  80. EventManager.Instance.Dispatch(CustomEventType.AlterCombatHero, null);
  81. }
  82. }
  83. }