Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionrepairvehiclepartbase.c
Go to the documentation of this file.
1
class
RepairVehiclePartActionReciveData
: ActionReciveData
2
{
3
string
m_DamageZoneRecived
;
4
}
5
6
class
RepairVehiclePartActionData :
ActionData
7
{
8
string
m_DamageZone
;
9
}
10
11
class
ActionRepairVehiclePartCB
:
ActionContinuousBaseCB
12
{
13
override
void
CreateActionComponent
()
14
{
15
m_ActionData
.m_ActionComponent =
new
CAContinuousRepeat
(
UATimeSpent
.
BASEBUILDING_REPAIR_FAST
);
16
}
17
};
18
19
class
ActionRepairVehiclePartBase
:
ActionContinuousBase
20
{
21
protected
string
m_CurrentDamageZone
;
// needs to be assigned in action condition so it can be properly written to context
22
23
override
void
CreateConditionComponents
()
24
{
25
m_ConditionItem
=
new
CCINonRuined
();
26
m_ConditionTarget
=
new
CCTCursor
(
UAMaxDistances
.
REPAIR
);
27
}
28
29
override
void
OnFinishProgressServer
(
ActionData
action_data)
30
{
31
AdjustVehicleHealthServer
(action_data);
32
AdjustItemQuantityServer
(action_data);
33
}
34
35
protected
void
AdjustVehicleHealthServer
(
ActionData
action_data)
36
{
37
Object
tgObject = action_data.m_Target.GetObject();
38
39
string
damageZone = RepairVehiclePartActionData.Cast(action_data).m_DamageZone;
40
if
(!
g_Game
.IsMultiplayer())
41
damageZone =
m_CurrentDamageZone
;
42
43
if
(tgObject && damageZone !=
""
)
44
{
45
Transport
vehicle =
Transport
.Cast(tgObject);
46
if
(vehicle)
47
{
48
int
newDmgLevel =
Math
.
Clamp
(vehicle.GetHealthLevel(damageZone) - 1,
GameConstants
.
STATE_WORN
,
GameConstants
.
STATE_RUINED
);
49
float
zoneMax = vehicle.GetMaxHealth(damageZone,
""
);
50
float
randomValue =
Math
.
RandomFloatInclusive
(zoneMax * 0.05, zoneMax * 0.15);
51
52
switch
(newDmgLevel)
53
{
54
case
GameConstants
.
STATE_BADLY_DAMAGED
:
55
vehicle.SetHealth(damageZone,
""
, (zoneMax *
GameConstants
.
DAMAGE_RUINED_VALUE
) + randomValue);
56
break
;
57
case
GameConstants
.
STATE_DAMAGED
:
58
vehicle.SetHealth(damageZone,
""
, (zoneMax *
GameConstants
.
DAMAGE_BADLY_DAMAGED_VALUE
) + randomValue);
59
break
;
60
case
GameConstants
.
STATE_WORN
:
61
vehicle.SetHealth(damageZone,
""
, (zoneMax *
GameConstants
.
DAMAGE_DAMAGED_VALUE
) + randomValue);
62
break
;
63
}
64
}
65
}
66
}
67
68
protected
void
AdjustItemQuantityServer
(
ActionData
action_data)
69
{
70
if
(action_data.m_MainItem.HasQuantity())
71
{
72
if
(action_data.m_MainItem.GetQuantity() > 1)
73
{
74
int
qnt = action_data.m_MainItem.GetQuantity() - action_data.m_MainItem.GetQuantityMax() * 0.25;
75
action_data.m_MainItem.SetQuantity(qnt);
76
}
77
else
78
{
79
action_data.m_MainItem.Delete();
80
}
81
}
82
}
83
84
override
ActionData
CreateActionData
()
85
{
86
RepairVehiclePartActionData actionData =
new
RepairVehiclePartActionData();
87
return
actionData;
88
}
89
90
override
void
WriteToContext
(
ParamsWriteContext
ctx,
ActionData
action_data)
91
{
92
super.WriteToContext(ctx, action_data);
93
RepairVehiclePartActionData repairActionData;
94
95
if
(
HasTarget
() &&
Class
.
CastTo
(repairActionData, action_data))
96
{
97
repairActionData.m_DamageZone =
m_CurrentDamageZone
;
98
ctx.
Write
(repairActionData.m_DamageZone);
99
}
100
}
101
102
override
bool
ReadFromContext
(
ParamsReadContext
ctx, out ActionReciveData action_recive_data)
103
{
104
if
(!action_recive_data)
105
{
106
action_recive_data =
new
RepairVehiclePartActionReciveData
();
107
}
108
109
super.ReadFromContext(ctx, action_recive_data);
110
RepairVehiclePartActionReciveData
recieveDataRepair =
RepairVehiclePartActionReciveData
.Cast(action_recive_data);
111
112
if
(
HasTarget
())
113
{
114
string
zone;
115
if
(!ctx.
Read
(zone))
116
{
117
return
false
;
118
}
119
120
recieveDataRepair.
m_DamageZoneRecived
= zone;
121
}
122
123
return
true
;
124
}
125
126
override
void
HandleReciveData
(ActionReciveData action_recive_data,
ActionData
action_data)
127
{
128
super.HandleReciveData(action_recive_data, action_data);
129
130
RepairVehiclePartActionReciveData
recieveDataRepair =
RepairVehiclePartActionReciveData
.Cast(action_recive_data);
131
RepairVehiclePartActionData.Cast(action_data).m_DamageZone = recieveDataRepair.
m_DamageZoneRecived
;
132
}
133
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
m_DamageZone
RepairTentActionReciveData m_DamageZone
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase::HasTarget
bool HasTarget()
Action is performed on target, not with item itself, when set to true.
Definition
actionbase.c:250
ActionBase::m_ConditionItem
ref CCIBase m_ConditionItem
Definition
actionbase.c:70
ActionBase::m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition
actionbase.c:71
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionRepairVehiclePartBase
Definition
actionrepairvehiclepartbase.c:20
ActionRepairVehiclePartBase::OnFinishProgressServer
override void OnFinishProgressServer(ActionData action_data)
Definition
actionrepairvehiclepartbase.c:29
ActionRepairVehiclePartBase::AdjustItemQuantityServer
void AdjustItemQuantityServer(ActionData action_data)
Definition
actionrepairvehiclepartbase.c:68
ActionRepairVehiclePartBase::AdjustVehicleHealthServer
void AdjustVehicleHealthServer(ActionData action_data)
Definition
actionrepairvehiclepartbase.c:35
ActionRepairVehiclePartBase::CreateActionData
override ActionData CreateActionData()
Definition
actionrepairvehiclepartbase.c:84
ActionRepairVehiclePartBase::CreateConditionComponents
override void CreateConditionComponents()
Definition
actionrepairvehiclepartbase.c:23
ActionRepairVehiclePartBase::ReadFromContext
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Definition
actionrepairvehiclepartbase.c:102
ActionRepairVehiclePartBase::WriteToContext
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Definition
actionrepairvehiclepartbase.c:90
ActionRepairVehiclePartBase::HandleReciveData
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Definition
actionrepairvehiclepartbase.c:126
ActionRepairVehiclePartBase::m_CurrentDamageZone
string m_CurrentDamageZone
Definition
actionrepairvehiclepartbase.c:21
ActionRepairVehiclePartCB
Definition
actionrepairvehiclepartbase.c:12
ActionRepairVehiclePartCB::CreateActionComponent
override void CreateActionComponent()
Definition
actionrepairvehiclepartbase.c:13
CAContinuousRepeat
Definition
cacontinuousrepeat.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTCursor
Definition
cctcursor.c:2
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
GameConstants
Definition
constants.c:664
Math
Definition
enmath.c:7
Object
Definition
objecttyped.c:2
RepairVehiclePartActionReciveData
Definition
actionrepairvehiclepartbase.c:2
RepairVehiclePartActionReciveData::m_DamageZoneRecived
string m_DamageZoneRecived
Definition
actionrepairvehiclepartbase.c:3
Serializer::Write
proto bool Write(void value_out)
Serializer::Read
proto bool Read(void value_in)
Transport
Native class for boats - handles physics simulation.
Definition
boat.c:32
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::REPAIR
const float REPAIR
Definition
actionconstants.c:113
UATimeSpent
Definition
actionconstants.c:28
UATimeSpent::BASEBUILDING_REPAIR_FAST
const float BASEBUILDING_REPAIR_FAST
Definition
actionconstants.c:67
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
ParamsWriteContext
Serializer ParamsWriteContext
Definition
gameplay.c:16
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
GameConstants::DAMAGE_RUINED_VALUE
const float DAMAGE_RUINED_VALUE
Definition
constants.c:867
GameConstants::DAMAGE_DAMAGED_VALUE
const float DAMAGE_DAMAGED_VALUE
Definition
constants.c:865
GameConstants::DAMAGE_BADLY_DAMAGED_VALUE
const float DAMAGE_BADLY_DAMAGED_VALUE
Definition
constants.c:866
GameConstants::STATE_RUINED
const int STATE_RUINED
Definition
constants.c:851
GameConstants::STATE_BADLY_DAMAGED
const int STATE_BADLY_DAMAGED
Definition
constants.c:852
GameConstants::STATE_DAMAGED
const int STATE_DAMAGED
Definition
constants.c:853
GameConstants::STATE_WORN
const int STATE_WORN
Definition
constants.c:854
Math::Clamp
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
Math::RandomFloatInclusive
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Definition
enmath.c:106
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionrepairvehiclepartbase.c
Generated by
1.17.0