DIFF

ActionUseUndergroundPanel.c

class ActionUseUndergroundPanel: ActionSingleUseBase
{
	void ActionUseUndergroundPanel()
	{
		m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
		m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
		m_Text = "#use";
	}

	override void CreateConditionComponents()  
	{
		m_ConditionItem = new CCINone;
		m_ConditionTarget = new CCTCursor;
	}

	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{
		if (item.IsDamageDestroyed())
			return false;
		Land_Underground_Panel trgt = Land_Underground_Panel.Cast(target.GetObject());
		
		if ( !trgt ) 
			return false;
		
		if (trgt.ClassName() != "Land_Underground_Panel")
			return false;
		
		return (trgt.CanInteract());
	}
	
	override void OnStartServer( ActionData action_data )
	{
		super.OnStartServer(action_data);
		
		Land_Underground_Panel target =  Land_Underground_Panel.Cast(action_data.m_Target.GetObject());
		
		if (!target)
			return;
		
		target.Interact();
		PunchedCard.Cast(action_data.m_MainItem).OnUse();
	}
	
	override bool IsLockTargetOnUse()
	{
		return false;
	}

};