1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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;
- GetGame().SurfaceUnderObject(fireplaceTarget, surfaceType, liquidType);
- if (GetGame().IsSurfaceDigable(surfaceType))
- {
- return true;
- }
- }
- }
-
- return false;
- }
- override void OnFinishProgressServer(ActionData action_data)
- {
- //destroy fireplace with ashes
- GetGame().ObjectDelete(action_data.m_Target.GetObject());
- MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, 4);
- }
- }
|