Guide_MuShi.cs 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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.icon = new string[] { "icon_tx105"};
  38. showDialogueEventData.messageShowType = ShowDialogueEventData.MessageShowType.Verbatim;
  39. EventManager.Instance.Dispatch(CustomEventType.ShowDialogue,
  40. showDialogueEventData);
  41. }
  42. }
  43. }
  44. private async void Guide3_1()
  45. {
  46. AccountFileInfo.HeroData heroData2 = new AccountFileInfo.HeroData
  47. {
  48. heroModelId = 113,
  49. heroPowerId = 10,
  50. heroPromoteId = 3,
  51. isLead = true,
  52. };
  53. HeroInfo heroInfo = new HeroInfo();
  54. heroInfo.InitHero(heroData2);
  55. AccountFileInfo.Instance.playerData.HeroListData.Add(heroData2);
  56. PlayerManager.Instance.heroController.DeployHeroToLead(heroInfo);
  57. AccountFileInfo.Instance.playerData.combatGuideIndex = 3;
  58. AccountFileInfo.Instance.SavePlayerData();
  59. CombatHeroEntity[] allHero = CombatController.currActiveCombat.CombatHeroController.GetHero(false);
  60. CombatHeroEntity heroEntity = CObjectPool.Instance.Fetch<CombatHeroEntity>();
  61. heroEntity.IsEnemy = false;
  62. heroEntity.number = 1;
  63. Vector3 pos = allHero[0].dotPos + allHero[0].faceDir * -2;
  64. await heroEntity.Init(new CombatAIBasic(), heroInfo, pos,
  65. delegate(CombatHeroEntity entity)
  66. {
  67. CombatController.currActiveCombat.CombatHeroController.AddHero(entity);
  68. });
  69. ShowDialogueEventData showDialogueEventData = ShowDialogueEventData.Create();
  70. showDialogueEventData.finish = delegate
  71. {
  72. heroEntity.CombatHeroSkillControl.AddCommandSkill(
  73. heroEntity.CombatHeroSkillControl.GetSkillBasic(20001));
  74. CombatController.currActiveCombat.isStopAi = false;
  75. AccountFileInfo.Instance.playerData.combatGuideIndex =4;
  76. AccountFileInfo.Instance.SavePlayerData();
  77. };
  78. showDialogueEventData.dialogueMessaga = new string[] { "天空中突然闪出一个人影。","我是来自教堂的牧师,我来为你治疗!" };
  79. showDialogueEventData.icon = new string[] { "icon_tx113"};
  80. showDialogueEventData.messageShowType = ShowDialogueEventData.MessageShowType.Verbatim;
  81. EventManager.Instance.Dispatch(CustomEventType.ShowDialogue, showDialogueEventData);
  82. EventManager.Instance.Dispatch(CustomEventType.AlterCombatHero, null);
  83. }
  84. }
  85. }