using Fort23.UTool; using GameLogic.Combat.Skill; namespace GameLogic.Combat.Hero.State { public class CombatHeroAttState : CombatHeroStateBasic { protected SkillBasic skillBasic; public CombatHeroAttState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity) { } public override bool IsUpdateLockTarget() { return false; } protected override void ProEnter() { skillBasic = combatHeroEntity.CombatHeroSkillControl.CanReleaseSkill(); if (skillBasic == null) { combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); return; } skillBasic.SetSkillFinishCallBack(delegate(SkillBasic sb) { if (sb == skillBasic) { skillBasic = null; combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); } else { LogTool.Log("其他技能结束"); } }); combatHeroEntity.CombatHeroSkillControl.RemoveCommandSkill(skillBasic); combatHeroEntity.CombatHeroSkillControl.UseSkill(skillBasic); } protected override void ProExit() { if (skillBasic != null) { skillBasic.BreakSkill(); } combatHeroEntity.CombatHeroSkillControl.currUseSkill = null; skillBasic = null; } } }