PlayerHeroEntity.cs 4.2 KB

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