Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actiondisarmmine.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{
11 void ActionDisarmMine()
12 {
13 m_CallbackClass = ActionDisarmMineCB;
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 LandMineTrap targetMine;
35 if (Class.CastTo(targetMine, target.GetObject()) && item && IsInReach(player, target, UAMaxDistances.DEFAULT))
36 {
37 return targetMine.IsActive() && targetMine.CanBeDisarmed();
38 }
39
40 return false;
41 }
42
43 override void OnStartAnimationLoop(ActionData action_data)
44 {
45 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
46 {
47 LandMineTrap targetMine = LandMineTrap.Cast(action_data.m_Target.GetObject());
48 Param1<bool> play = new Param1<bool>(true);
49 GetGame().RPCSingleParam(targetMine, SoundTypeMine.DISARMING, play, true);
50 }
51 }
52
53 override void OnExecute(ActionData action_data)
54 {
55 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
56 {
57 LandMineTrap targetMine = LandMineTrap.Cast(action_data.m_Target.GetObject());
58 Param1<bool> play = new Param1<bool>(true);
59 GetGame().RPCSingleParam(targetMine, SoundTypeMine.DISARMING, play, true);
60 }
61 }
62
63 override void OnEndAnimationLoop( ActionData action_data )
64 {
65 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
66 {
67 LandMineTrap targetMine = LandMineTrap.Cast(action_data.m_Target.GetObject());
68 Param1<bool> play = new Param1<bool>(false);
69 GetGame().RPCSingleParam(targetMine, SoundTypeMine.DISARMING, play, true);
70 }
71 }
72
73 override void OnFinishProgressServer(ActionData action_data)
74 {
75 LandMineTrap targetMine;
76 Class.CastTo(targetMine, action_data.m_Target.GetObject());
77
78 ToolBase tool;
79 Class.CastTo(tool, action_data.m_MainItem);
80
81 if (Math.RandomIntInclusive(0, 100) < tool.GetDisarmRate())
82 {
83 targetMine.Disarm();
84 }
85 else
86 {
87 targetMine.OnSteppedOn(action_data.m_Player);
88 }
89
90 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, 2);
91 }
92};
override void OnStartAnimationLoop(ActionData action_data)
override void OnEndAnimationLoop(ActionData action_data)
int m_CommandUID
Definition actionbase.c:31
int m_StanceMask
Definition actionbase.c:33
ActionDisarmMineCB ActionContinuousBaseCB ActionDisarmMine()
ActionData m_ActionData
void CreateConditionComponents()
Definition actionbase.c:230
void OnFinishProgressServer(ActionData action_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void OnExecute(ActionData action_data)
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition enmath.c:7
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
proto native CGame GetGame()
SoundTypeMine