ActionGagTarget.c
class ActionGagTarget: ActionContinuousBase
{
void ActionGagTarget()
{
m_CallbackClass = ActionCoverHeadTargetCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_COVERHEAD_TARGET;
//m_FullBody = true;
m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
m_Text = "#gag_person";
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINonRuined;
m_ConditionTarget = new CCTMan(UAMaxDistances.DEFAULT);
}
override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
{
if (item.GetQuantity() > 1)
return false;
PlayerBase targetPlayer;
Class.CastTo(targetPlayer, target.GetObject());
if ( !IsWearingMask(targetPlayer) )
{
ItemBase headgear = ItemBase.Cast(targetPlayer.FindAttachmentBySlotName( "Headgear" ));
if ( headgear )
{
bool headgear_restricted;
headgear_restricted = headgear.ConfigGetBool( "noMask" );
if (headgear_restricted)
{
return false;
}
}
return true;
}
return false;
}
override void OnFinishProgressServer( ActionData action_data )
{
PlayerBase ntarget;
Class.CastTo(ntarget, action_data.m_Target.GetObject());
if (CanReceiveAction(action_data.m_Target))
{
ItemBase m_Gag;
if (Class.CastTo(m_Gag,ntarget.GetInventory().CreateAttachmentEx("MouthRag",InventorySlots.MASK)))
{
m_Gag.SetHealth01("", "", action_data.m_MainItem.GetHealth01("", ""));
action_data.m_MainItem.TransferModifiers(ntarget);
action_data.m_MainItem.Delete();
}
}
}
bool IsWearingMask( PlayerBase player)
{
if ( player.GetInventory().FindAttachment(InventorySlots.MASK) )
{
return true;
}
return false;
}
};