PlayerHeroEntity.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using System;
  2. using Animancer;
  3. using Common.Utility.CombatEvent;
  4. using Excel2Json;
  5. using Fort23.Core;
  6. using Fort23.UTool;
  7. using GameLogic.Combat.Buff;
  8. using GameLogic.Combat.CombatTool;
  9. using GameLogic.Combat.Skill;
  10. using UnityEngine;
  11. using UnityEngine.AI;
  12. namespace GameLogic.Combat.Hero
  13. {
  14. public class PlayerHeroEntity : CombatHeroEntity
  15. {
  16. public Vector3 startPos;
  17. public Vector3 endPos;
  18. private Vector3 lasetHeroPos;
  19. private float lasetTime;
  20. public override async CTask<CombatHeroEntity> Init(CombatAIBasic combatAIBasic, CombatHeroInfo combatHeroInfo,
  21. Vector3 pos, Action<CombatHeroEntity> callBack = null)
  22. {
  23. CurrCombatHeroInfo = combatHeroInfo.Copy();
  24. MaxCombatHeroInfo = combatHeroInfo.Copy();
  25. TimeLienData timeLienData = CombatController.currActiveCombat.CombatDataController.generalBuffTimeLienData;
  26. combatHeroTimeLineControl = new CombatHeroTimeLineControl();
  27. combatHeroTimeLineControl.Init(this, timeLienData);
  28. BuffControl = new BuffControl();
  29. BuffControl.Init(this);
  30. if (combatAIBasic == null)
  31. {
  32. combatAIBasic = new CombatAIBasic();
  33. }
  34. CombatAIBasic = combatAIBasic;
  35. CombatAIBasic.Init(this, null);
  36. combatHeroGameObject = new CombatHeroGameObject();
  37. combatHeroGameObject.Init(this, null);
  38. CombatHeroSkillControl = new CombatHeroSkillControl();
  39. CombatHeroSkillControl.Init(this);
  40. SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(9000011);
  41. CombatHeroSkillControl.AddSkill(skillConfig);
  42. CombatAIBasic.ChangeState(CombatHeroStateType.NullState);
  43. callBack?.Invoke(this);
  44. return this;
  45. }
  46. public override void Update(float t)
  47. {
  48. combatHeroTimeLineControl.Update(t);
  49. CombatAIBasic.Update(t);
  50. if (CombatController.currActiveCombat.IsGameOver)
  51. {
  52. return;
  53. }
  54. if (Input.GetMouseButtonUp(0))
  55. {
  56. float currTime= Time.time;
  57. if (currTime - lasetTime < 0.1f)
  58. {
  59. return;
  60. }
  61. S900001 skillBasic = (S900001) CombatHeroSkillControl.GetSkillBasic(900001);
  62. BetterList<CombatHeroEntity> allHero =
  63. CombatController.currActiveCombat.CombatHeroController.GetHeroList(true);
  64. if (allHero.Count <= 0)
  65. {
  66. allHero =
  67. CombatController.currActiveCombat.CombatHeroController.GetHeroList(false);
  68. }
  69. CombatHeroEntity combatHeroEntity = null;
  70. if (allHero.Count > 0)
  71. {
  72. int index = CombatCalculateTool.Instance.GetOdd(0, allHero.Count);
  73. combatHeroEntity = allHero[index];
  74. }
  75. if (combatHeroEntity != null)
  76. {
  77. lasetHeroPos = combatHeroEntity.dotPos;
  78. }
  79. endPos = lasetHeroPos + new Vector3(CombatCalculateTool.Instance.GetOdd(-3, 3), 0,
  80. CombatCalculateTool.Instance.GetOdd(-3, 3));
  81. startPos = endPos + new Vector3(5, 15, 5);
  82. skillBasic.UseSkill();
  83. // CombatHeroSkillControl.AddCommandSkill(skillBasic);
  84. }
  85. }
  86. }
  87. }