Guide_MuShi.cs 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using Common.Utility.CombatEvent;
  2. using Core.Language;
  3. using Fort23.Core;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Hero;
  6. using UnityEngine;
  7. namespace GameLogic.Combat.CombatGuide
  8. {
  9. public class Guide_MuShi : GuideBasic
  10. {
  11. protected bool isTrgger;
  12. public Guide_MuShi()
  13. {
  14. Guide3();
  15. }
  16. private void Guide3()
  17. {
  18. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
  19. }
  20. private void HeroHpUpdateEventData(IEventData eventData)
  21. {
  22. if (isTrgger)
  23. {
  24. return;
  25. }
  26. HeroHpUpdateEventData data = eventData as HeroHpUpdateEventData;
  27. CombatHeroEntity combatHeroEntity = data.combatHeroEntity;
  28. if (!combatHeroEntity.IsEnemy)
  29. {
  30. if (data.combatHeroEntity.HpBl <= 30)
  31. {
  32. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate,
  33. HeroHpUpdateEventData);
  34. CombatController.currActiveCombat.isStopAi = true;
  35. ShowDialogueEventData showDialogueEventData = ShowDialogueEventData.Create();
  36. showDialogueEventData.finish = Guide3_1;
  37. showDialogueEventData.dialogueMessaga = new string[] { LanguageManager.Instance.Text(131)};
  38. showDialogueEventData.icon = new string[] { "icon_tx105"};
  39. showDialogueEventData.messageShowType = ShowDialogueEventData.MessageShowType.Verbatim;
  40. EventManager.Instance.Dispatch(CustomEventType.ShowDialogue,
  41. showDialogueEventData);
  42. }
  43. }
  44. }
  45. private async void Guide3_1()
  46. {
  47. AccountFileInfo.HeroData heroData2 = new AccountFileInfo.HeroData
  48. {
  49. heroModelId = 113,
  50. heroPowerId = 10,
  51. heroPromoteId = 3,
  52. isLead = true,
  53. };
  54. HeroInfo heroInfo = new HeroInfo();
  55. heroInfo.InitHero(heroData2);
  56. AccountFileInfo.Instance.playerData.HeroListData.Add(heroData2);
  57. PlayerManager.Instance.heroController.DeployHeroToLead(heroInfo);
  58. AccountFileInfo.Instance.playerData.combatGuideIndex = 3;
  59. AccountFileInfo.Instance.SavePlayerData();
  60. CombatHeroEntity[] allHero = CombatController.currActiveCombat.CombatHeroController.GetHero(false);
  61. CombatHeroEntity heroEntity = CObjectPool.Instance.Fetch<CombatHeroEntity>();
  62. heroEntity.IsEnemy = false;
  63. heroEntity.number = 1;
  64. Vector3 pos = allHero[0].dotPos + allHero[0].faceDir * -2;
  65. await heroEntity.Init(new CombatAIBasic(), heroInfo, pos,
  66. delegate(CombatHeroEntity entity)
  67. {
  68. CombatController.currActiveCombat.CombatHeroController.AddHero(entity);
  69. });
  70. ShowDialogueEventData showDialogueEventData = ShowDialogueEventData.Create();
  71. showDialogueEventData.finish = delegate
  72. {
  73. heroEntity.CombatHeroSkillControl.AddCommandSkill(
  74. heroEntity.CombatHeroSkillControl.GetSkillBasic(20001));
  75. CombatController.currActiveCombat.isStopAi = false;
  76. AccountFileInfo.Instance.playerData.combatGuideIndex =4;
  77. AccountFileInfo.Instance.SavePlayerData();
  78. };
  79. showDialogueEventData.dialogueMessaga = new string[] { LanguageManager.Instance.Text(132),
  80. LanguageManager.Instance.Text(133) };
  81. showDialogueEventData.icon = new string[] { "icon_tx113"};
  82. showDialogueEventData.messageShowType = ShowDialogueEventData.MessageShowType.Verbatim;
  83. EventManager.Instance.Dispatch(CustomEventType.ShowDialogue, showDialogueEventData);
  84. EventManager.Instance.Dispatch(CustomEventType.AlterCombatHero, null);
  85. }
  86. }
  87. }