25 override void Setup( ActionData action_data )
42 if (!action_data.m_MainItem)
49 override int Execute( ActionData action_data )
52 Class.CastTo(targetObject, action_data.m_Target.GetObject());
58 if ( (action_data.m_MainItem && action_data.m_MainItem.IsDamageDestroyed()) || targetObject.IsDamageDestroyed() )
76 targetObject.DecreaseHealth(
"",
"", damage, targetObject.CanBeAutoDeleted());
78 if (action_data.m_MainItem)
85 if ( targetObject.IsDamageDestroyed() )
97 if (target_woodbase.GetSecondaryOutput() !=
"")
98 CreateSecondaryItems(action_data,target_woodbase.GetSecondaryOutput(),target_woodbase.GetSecondaryDropsAmount());
101 if (action_data.m_MainItem)
103 targetObject.OnTreeCutDown( action_data.m_MainItem );
107 targetObject.OnTreeCutDown( action_data.m_Player );
115 OnCompletePogress(action_data);
120 OnCompletePogress(action_data);
137 if (
Class.CastTo(ntarget, action_data.m_Target.GetObject()) )
139 m_AmountOfDrops = ntarget.GetAmountOfDropsEx(action_data.m_MainItem,adata.m_HarvestType);
173 increment -= stack_max -
m_MinedItem[i].GetQuantity();
174 if (increment >= 1.0)
195 if (material_secondary ==
"" || quantity_secondary <= 0)
207 int increment = quantity_secondary;
211 stacks_amount =
Math.Ceil(increment/stack_max);
213 for (
int i = 0; i < stacks_amount; i++)
215 if (increment > stack_max)
218 increment -= stack_max;
231 if ( gloves && !gloves.IsDamageDestroyed() )
237 int rand =
Math.RandomIntInclusive(0,9);
240 rand =
Math.RandomIntInclusive(0,1);
241 if ( rand == 0 && !player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"LeftForeArmRoll") )
243 player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"RightForeArmRoll");
245 else if ( rand == 1 && !player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"RightForeArmRoll") )
247 player.GetBleedingManagerServer().AttemptAddBleedingSourceBySelection(
"LeftForeArmRoll");
const int ECE_PLACE_ON_SURFACE
void SetACData(Param units)
override float GetProgress()
void CreateSecondaryItems(ActionData action_data, string material_secondary="", int quantity_secondary=-1)
override int Execute(ActionData action_data)
ref map< string, int > m_MaterialAndQuantityMap
float m_TimeBetweenMaterialDrops
void DamagePlayersHands(PlayerBase player)
float m_AdjustedTimeBetweenMaterialDrops
void CAContinuousMineWood(float time_between_drops)
override void Setup(ActionData action_data)
ref Param1< float > m_SpentUnits
bool GetMiningData(ActionData action_data)
void CreatePrimaryItems(ActionData action_data)
float m_DamageToMiningItemEachDrop
float m_AdjustedDamageToMiningItemEachDrop
int m_CurrentAssumedDrops
float m_CycleTimeOverride
ItemBase m_MinedItem[MINEDITEM_MAX]
Super root of all classes in Enforce script.
proto native CGame GetGame()
override bool HasQuantity()