actionexitladder.c 783 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. class ActionExitLadder: ActionInteractBase
  2. {
  3. void ActionExitLadder()
  4. {
  5. m_Text = "#exit_ladder";
  6. }
  7. override void CreateConditionComponents()
  8. {
  9. m_ConditionItem = new CCINone();
  10. m_ConditionTarget = new CCTNone();
  11. }
  12. override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
  13. {
  14. HumanCommandLadder cl = player.GetCommand_Ladder();
  15. if (cl && cl.CanExit())
  16. return true;
  17. return false;
  18. }
  19. override void Start(ActionData action_data)
  20. {
  21. super.Start(action_data);
  22. HumanCommandLadder cl = action_data.m_Player.GetCommand_Ladder();
  23. if (cl)
  24. cl.Exit();
  25. }
  26. override bool IsInstant()
  27. {
  28. return true;
  29. }
  30. override bool CanBeUsedOnLadder()
  31. {
  32. return true;
  33. }
  34. override bool IsLockTargetOnUse()
  35. {
  36. return false;
  37. }
  38. }