class ActionGagSelf: ActionContinuousBase { void ActionGagSelf() { m_CallbackClass = ActionCoverHeadSelfCB; m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_COVERHEAD_SELF; //m_FullBody = true; m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH; m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW; m_Text = "#gag_self"; } override void CreateConditionComponents() { m_ConditionItem = new CCINonRuined; m_ConditionTarget = new CCTSelf; } override bool HasTarget() { return false; } override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item ) { if (item.GetQuantity() > 1) return false; if ( !IsWearingMask(player) ) { ItemBase headgear = ItemBase.Cast(player.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 ) { ItemBase new_item; if (Class.CastTo(new_item,action_data.m_Player.GetInventory().CreateAttachmentEx("MouthRag",InventorySlots.MASK))) { MiscGameplayFunctions.TransferItemProperties(action_data.m_MainItem,new_item,true,false,true); action_data.m_MainItem.TransferModifiers(action_data.m_Player); action_data.m_MainItem.Delete(); } } bool IsWearingMask( PlayerBase player) { if ( player.GetInventory().FindAttachment(InventorySlots.MASK) ) { return true; } return false; } };