using System; using System.Collections.Generic; using Animancer; using Common.Utility.CombatEvent; using Excel2Json; using Fort23.Core; using Fort23.Mono; using Fort23.UTool; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Skill; using UnityEngine; using UnityEngine.AI; using UnityEngine.EventSystems; namespace GameLogic.Combat.Hero { public class PlayerHeroEntity : CombatHeroEntity { public Vector3 startPos; public Vector3 endPos; private Vector3 lasetHeroPos; private float lasetTime; List results = new List(); 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 (CombatController.currActiveCombat.IsGameOver) { return; } if (Input.GetMouseButtonDown(0)) { float currTime= Time.time; if (currTime - lasetTime < 0.1f) { return; } PointerEventData pointerEventData = new PointerEventData(UIManager.Instance.current); pointerEventData.position = Input.mousePosition; UIManager.Instance.current.RaycastAll(pointerEventData, results); if (results.Count > 0) { return; } lasetTime= currTime; S900001 skillBasic = (S900001) CombatHeroSkillControl.GetSkillBasic(900001); BetterList allHero = CombatController.currActiveCombat.CombatHeroController.GetHeroList(true); if (allHero.Count <= 0) { 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(-3, 3), 0, CombatCalculateTool.Instance.GetOdd(-3, 3)); startPos = endPos + new Vector3(5, 15, 5); skillBasic.UseSkill(); EventManager.Instance.Dispatch(CustomEventType.PlayerUseSkill,null); // CombatHeroSkillControl.AddCommandSkill(skillBasic); } } } }