CombatHeroAttState.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Fort23.UTool;
  2. using GameLogic.Combat.Skill;
  3. namespace GameLogic.Combat.Hero.State
  4. {
  5. public class CombatHeroAttState : CombatHeroStateBasic
  6. {
  7. protected SkillBasic skillBasic;
  8. public CombatHeroAttState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  9. {
  10. }
  11. public override bool IsUpdateLockTarget()
  12. {
  13. return false;
  14. }
  15. protected override void ProEnter()
  16. {
  17. skillBasic = combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().CanReleaseSkill();
  18. if (skillBasic == null)
  19. {
  20. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  21. return;
  22. }
  23. skillBasic.SetSkillFinishCallBack(delegate(SkillBasic sb)
  24. {
  25. if (sb == skillBasic)
  26. {
  27. combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().UseSkillFinish(skillBasic);
  28. skillBasic = null;
  29. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  30. }
  31. else
  32. {
  33. LogTool.Log("其他技能结束");
  34. }
  35. });
  36. combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().RemoveCommandSkill(skillBasic);
  37. combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().UseSkill(skillBasic);
  38. }
  39. protected override void ProExit()
  40. {
  41. if (skillBasic != null)
  42. {
  43. skillBasic.BreakSkill();
  44. combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().UseSkillFinish(skillBasic);
  45. }
  46. combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().currUseSkill = null;
  47. skillBasic = null;
  48. }
  49. }
  50. }