using System; using Animancer; using Common.Utility.CombatEvent; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Skill; using UnityEngine; using UnityEngine.AI; namespace GameLogic.Combat.Hero { public class PlayerHeroEntity : CombatHeroEntity { public Vector3 startPos; public Vector3 endPos; private Vector3 lasetHeroPos; public override async CTask Init(CombatAIBasic combatAIBasic, CombatHeroInfo combatHeroInfo, Vector3 pos, Action callBack = null) { CurrCombatHeroInfo = combatHeroInfo.Copy(); MaxCombatHeroInfo = combatHeroInfo.Copy(); TimeLienData timeLienData = CombatController.currActiveCombat.CombatDataController.generalBuffTimeLienData; combatHeroTimeLineControl = new CombatHeroTimeLineControl(); combatHeroTimeLineControl.Init(this, timeLienData); BuffControl = new BuffControl(); BuffControl.Init(this); if (combatAIBasic == null) { combatAIBasic = new CombatAIBasic(); } CombatAIBasic = combatAIBasic; CombatAIBasic.Init(this, null); combatHeroGameObject = new CombatHeroGameObject(); combatHeroGameObject.Init(this, null); CombatHeroSkillControl = new CombatHeroSkillControl(); CombatHeroSkillControl.Init(this); SkillConfig skillConfig = ConfigComponent.Instance.Get(9000011); CombatHeroSkillControl.AddSkill(skillConfig); CombatAIBasic.ChangeState(CombatHeroStateType.NullState); callBack?.Invoke(this); return this; } public override void Update(float t) { combatHeroTimeLineControl.Update(t); CombatAIBasic.Update(t); if (Input.GetMouseButtonUp(0)) { SkillBasic skillBasic = CombatHeroSkillControl.GetSkillBasic(900001); BetterList allHero = CombatController.currActiveCombat.CombatHeroController.GetHeroList(false); CombatHeroEntity combatHeroEntity = null; if (allHero.Count > 0) { int index = CombatCalculateTool.Instance.GetOdd(0, allHero.Count); combatHeroEntity = allHero[index]; } if (combatHeroEntity != null) { lasetHeroPos = combatHeroEntity.dotPos; } endPos = lasetHeroPos + new Vector3(CombatCalculateTool.Instance.GetOdd(-5, 5), 0, CombatCalculateTool.Instance.GetOdd(-5, 5)); startPos = endPos + new Vector3(5, 20, 5); CombatHeroSkillControl.AddCommandSkill(skillBasic); } } } }