CombatHeroAttState.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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.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. skillBasic = null;
  28. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  29. }
  30. else
  31. {
  32. LogTool.Log("其他技能结束");
  33. }
  34. });
  35. combatHeroEntity.CombatHeroSkillControl.RemoveCommandSkill(skillBasic);
  36. combatHeroEntity.CombatHeroSkillControl.UseSkill(skillBasic);
  37. }
  38. protected override void ProExit()
  39. {
  40. if (skillBasic != null)
  41. {
  42. skillBasic.BreakSkill();
  43. }
  44. combatHeroEntity.CombatHeroSkillControl.currUseSkill = null;
  45. skillBasic = null;
  46. }
  47. }
  48. }