actionexitladder.c 856 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. {
  17. return true;
  18. }
  19. //if ( action_data.m_Player.IsOnLadder() ) return true;
  20. return false;
  21. }
  22. //!
  23. override void Start( ActionData action_data )
  24. {
  25. super.Start( action_data );
  26. HumanCommandLadder cl = action_data.m_Player.GetCommand_Ladder();
  27. if (cl)
  28. {
  29. cl.Exit();
  30. }
  31. }
  32. override bool IsInstant()
  33. {
  34. return true;
  35. }
  36. override bool CanBeUsedOnLadder()
  37. {
  38. return true;
  39. }
  40. override bool HasTarget()
  41. {
  42. return false;
  43. }
  44. };