Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actiondisarmexplosive.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.DISARM_MINE);
6 }
7}
8
10{
12 {
13 m_CallbackClass = ActionDisarmExplosiveCB;
14 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
15 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
16 m_FullBody = true;
17
18 m_Text = "#disarm";
19 }
20
22 {
23 m_ConditionItem = new CCINonRuined();
24 m_ConditionTarget = new CCTCursor();
25 }
26
27 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
28 {
29 if (!target)
30 {
31 return false;
32 }
33
34 ExplosivesBase explosive;
35 if (Class.CastTo(explosive, target.GetObject()) && item)
36 {
37 return explosive.GetArmed() && explosive.CanBeDisarmed();
38 }
39
40 return false;
41 }
42
43 override void OnStartServer(ActionData action_data)
44 {
45 super.OnStartServer(action_data);
46
47 ExplosivesBase item = ExplosivesBase.Cast(action_data.m_Target.GetObject());
48 if (item.GetDisarmSoundset() != string.Empty)
49 item.StartItemSoundServer(SoundConstants.ITEM_EXPLOSIVE_DISARM);
50 }
51
52 override void OnEndServer(ActionData action_data)
53 {
54 super.OnEndServer(action_data);
55
56 ExplosivesBase item = ExplosivesBase.Cast(action_data.m_Target.GetObject());
57 if (item.GetDisarmSoundset() != string.Empty)
58 item.StopItemSoundServer(SoundConstants.ITEM_EXPLOSIVE_DISARM);
59 }
60
61 override void OnFinishProgressServer(ActionData action_data)
62 {
63 ExplosivesBase explosive = ExplosivesBase.Cast(action_data.m_Target.GetObject());
64 ToolBase tool = ToolBase.Cast(action_data.m_MainItem);
65
66 if (Math.RandomIntInclusive(0, 100) < tool.GetDisarmRate())
67 {
68 explosive.OnBeforeDisarm();
69 explosive.Disarm(true);
70 }
71 else
72 {
73 explosive.SetHealth("", "", 0.0);
74 }
75
76 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, UADamageApplied.DEFUSE_TOOLS);
77 }
78}
int m_CommandUID
Definition actionbase.c:31
int m_StanceMask
Definition actionbase.c:33
ActionDisarmExplosiveCB ActionContinuousBaseCB ActionDisarmExplosive()
ActionData m_ActionData
void CreateConditionComponents()
Definition actionbase.c:230
void OnFinishProgressServer(ActionData action_data)
override void OnStartServer(ActionData action_data)
override void OnEndServer(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition enmath.c:7
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602