actionuseundergroundpanel.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. class ActionUseUndergroundPanel: ActionSingleUseBase
  2. {
  3. void ActionUseUndergroundPanel()
  4. {
  5. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
  6. m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  7. m_Text = "#use";
  8. }
  9. override void CreateConditionComponents()
  10. {
  11. m_ConditionItem = new CCINone;
  12. m_ConditionTarget = new CCTCursor;
  13. }
  14. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  15. {
  16. if (item.IsDamageDestroyed())
  17. return false;
  18. Land_Underground_Panel trgt = Land_Underground_Panel.Cast(target.GetObject());
  19. if ( !trgt )
  20. return false;
  21. if (trgt.ClassName() != "Land_Underground_Panel")
  22. return false;
  23. return (trgt.CanInteract());
  24. }
  25. override void OnStartServer( ActionData action_data )
  26. {
  27. super.OnStartServer(action_data);
  28. Land_Underground_Panel target = Land_Underground_Panel.Cast(action_data.m_Target.GetObject());
  29. if (!target)
  30. return;
  31. target.Interact();
  32. PunchedCard.Cast(action_data.m_MainItem).OnUse();
  33. }
  34. override bool IsLockTargetOnUse()
  35. {
  36. return false;
  37. }
  38. };