ActionTurnOffWhileOnGround.c
class ActionTurnOffWhileOnGround: ActionInteractBase
{
void ActionTurnOffWhileOnGround()
{
m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_INTERACTONCE;
m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
m_Text = "#switch_off";
}
override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
{
EntityAI target_entity = EntityAI.Cast( target.GetObject() );
InventoryLocation loc = new InventoryLocation;
target_entity.GetInventory().GetCurrentInventoryLocation(loc);
return ( player.IsAlive() && target_entity.HasEnergyManager() && target_entity.GetCompEM().CanSwitchOff() && loc.GetType() == InventoryLocationType.GROUND );
}
override void OnExecuteServer( ActionData action_data )
{
EntityAI target_entity = EntityAI.Cast( action_data.m_Target.GetObject() );
if ( target_entity.GetCompEM().CanSwitchOff() )
{
target_entity.GetCompEM().SwitchOff();
InformPlayers( action_data.m_Player, action_data.m_Target, UA_FINISHED ); //Success
}
else
{
InformPlayers( action_data.m_Player, action_data.m_Target, UA_FAILED ); //Already turned off
}
}
}