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.This().CanReleaseSkill(); if (skillBasic == null) { combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); return; } skillBasic.SetSkillFinishCallBack(delegate(SkillBasic sb) { if (sb == skillBasic) { combatHeroEntity.CombatHeroSkillControl.This().UseSkillFinish(skillBasic); skillBasic = null; combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); } else { LogTool.Log("其他技能结束"); } }); combatHeroEntity.CombatHeroSkillControl.This().RemoveCommandSkill(skillBasic); combatHeroEntity.CombatHeroSkillControl.This().UseSkill(skillBasic); } protected override void ProExit() { if (skillBasic != null) { skillBasic.BreakSkill(); combatHeroEntity.CombatHeroSkillControl.This().UseSkillFinish(skillBasic); } combatHeroEntity.CombatHeroSkillControl.This().currUseSkill = null; skillBasic = null; } } }