ActionBuryAshes.c
class ActionBuryAshesCB : ActionContinuousBaseCB
{
override void CreateActionComponent()
{
m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.BURY_ASHES);
}
}
class ActionBuryAshes: ActionContinuousBase
{
void ActionBuryAshes()
{
m_CallbackClass = ActionBuryAshesCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DIGMANIPULATE;
m_FullBody = true;
m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
m_Text = "#bury";
}
override void CreateConditionComponents()
{
m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
m_ConditionItem = new CCINonRuined();
}
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
{
if (player.IsPlacingLocal())
{
return false;
}
//Action not allowed if player has broken legs
if (player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
{
return false;
}
Fireplace fireplaceTarget = Fireplace.Cast(target.GetObject());
if (fireplaceTarget)
{
if (fireplaceTarget.HasAshes() && !fireplaceTarget.IsBurning() && fireplaceTarget.IsEmpty())
{
int liquidType;
string surfaceType;
g_Game.SurfaceUnderObject(fireplaceTarget, surfaceType, liquidType);
if (g_Game.IsSurfaceDigable(surfaceType))
{
return true;
}
}
}
return false;
}
override void OnFinishProgressServer(ActionData action_data)
{
//destroy fireplace with ashes
g_Game.ObjectDelete(action_data.m_Target.GetObject());
MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, 4);
}
}