ActionUnMountBarbedWire.c
class ActionUnmountBarbedWireCB : ActionContinuousBaseCB
{
override void CreateActionComponent()
{
m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.DEFAULT_CONSTRUCT);
}
};
class ActionUnmountBarbedWire: ActionMountBarbedWire
{
void ActionUnmountBarbedWire()
{
m_CallbackClass = ActionUnmountBarbedWireCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
m_FullBody = true;
m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
m_Text = "#unmount_barbed_wire";
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINonRuined;
m_ConditionTarget = new CCTNonRuined(UAMaxDistances.BASEBUILDING);
}
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
{
BaseBuildingBase base_building = BaseBuildingBase.Cast(target.GetObject());
if (base_building && base_building.CanUseConstruction() && base_building.CanUseConstructionBuild())
{
if (!base_building.IsPlayerInside(player,""))
return false;
BarbedWire barbed_wire = GetBarbedWire(target);
return (barbed_wire && barbed_wire.IsMounted());
}
return false;
}
override void OnFinishProgressServer(ActionData action_data)
{
BarbedWireActionData actionDataBW = BarbedWireActionData.Cast(action_data);
BaseBuildingBase base_building = BaseBuildingBase.Cast(actionDataBW.m_Target.GetObject());
//unmount and refresh parent
BarbedWire wire = BarbedWire.Cast(base_building.FindAttachmentBySlotName(actionDataBW.m_SlotName));
wire.SetMountedState(false);
}
override string GetZoneSelection(ActionTarget target)
{
BaseBuildingBase base_building = BaseBuildingBase.Cast(target.GetObject());
string selection = base_building.GetActionComponentName(target.GetComponentIndex());
if (selection.Length() > 0)
{
int delimiter_index = selection.IndexOfFrom(0, "_mounted");
if (delimiter_index > -1)
{
selection = selection.Substring(0, delimiter_index);
}
/*else if (!selection.Contains("_barbedwire_") && selection.Contains("_wall_"))
{
selection.Insert(selection.Length(),"_barbedwire_1");
}*/
}
//Print(selection);
return selection;
}
override string GetAdminLogMessage(ActionData action_data)
{
string message = string.Format("Player %1 Unmounted BarbedWire from %2", action_data.m_Player, action_data.m_Target.GetObject().ClassName());
return message;
}
}