Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_ConsumableBandage.c
Go to the documentation of this file.
1
2
[
BaseContainerProps
()]
3
class
SCR_ConsumableBandage :
SCR_ConsumableEffectHealthItems
4
{
5
//------------------------------------------------------------------------------------------------
6
override
void
ApplyEffect(notnull
IEntity
target, notnull
IEntity
user,
IEntity
item,
ItemUseParameters
animParams)
7
{
8
ChimeraCharacter
char
=
ChimeraCharacter
.Cast(target);
9
if
(!
char
)
10
return
;
11
12
SCR_CharacterDamageManagerComponent
damageMgr =
SCR_CharacterDamageManagerComponent
.Cast(
char
.
GetDamageManager
());
13
if
(!damageMgr)
14
return
;
15
16
m_eTargetHZGroup
= damageMgr.
FindAssociatedHitZoneGroup
(animParams.GetIntParam());
17
18
super.ApplyEffect(target, user, item, animParams);
19
}
20
21
//------------------------------------------------------------------------------------------------
22
override
bool
CanApplyEffect(notnull
IEntity
target, notnull
IEntity
user, out SCR_EConsumableFailReason failReason)
23
{
24
ChimeraCharacter
char
=
ChimeraCharacter
.Cast(target);
25
if
(!
char
)
26
return
false
;
27
28
SCR_CharacterDamageManagerComponent
damageMgr =
SCR_CharacterDamageManagerComponent
.Cast(
char
.
GetDamageManager
());
29
if
(!damageMgr)
30
return
false
;
31
32
return
damageMgr.
IsBleeding
();
33
}
34
35
//------------------------------------------------------------------------------------------------
36
override
bool
CanApplyEffectToHZ(notnull
IEntity
target, notnull
IEntity
user,
ECharacterHitZoneGroup
group, out SCR_EConsumableFailReason failReason = SCR_EConsumableFailReason.NONE)
37
{
38
ChimeraCharacter
char
=
ChimeraCharacter
.Cast(target);
39
if
(!
char
)
40
return
false
;
41
42
SCR_CharacterDamageManagerComponent
damageMgr =
SCR_CharacterDamageManagerComponent
.Cast(
char
.
GetDamageManager
());
43
return
damageMgr && damageMgr.
GetGroupDamageOverTime
(group,
EDamageType
.BLEEDING) > 0;
44
}
45
46
//------------------------------------------------------------------------------------------------
48
override
ItemUseParameters
GetAnimationParameters(
IEntity
item, notnull
IEntity
target,
ECharacterHitZoneGroup
group =
ECharacterHitZoneGroup
.VIRTUAL)
49
{
50
ChimeraCharacter
char
=
ChimeraCharacter
.Cast(target);
51
if
(!
char
)
52
return
null;
53
54
SCR_CharacterDamageManagerComponent
damageMgr =
SCR_CharacterDamageManagerComponent
.Cast(
char
.
GetDamageManager
());
55
if
(!damageMgr)
56
return
null;
57
58
EBandagingAnimationBodyParts
bodyPartToBandage =
EBandagingAnimationBodyParts
.Invalid;
59
60
if
(group !=
ECharacterHitZoneGroup
.VIRTUAL)
61
{
62
if
(!damageMgr.
GetGroupIsBeingHealed
(group))
63
bodyPartToBandage = damageMgr.
FindAssociatedBandagingBodyPart
(group);
64
}
65
else
66
{
67
group = damageMgr.
GetCharMostDOTHitzoneGroup
(
EDamageType
.BLEEDING, ignoreIfBeingTreated:
true
);
68
array<HitZone> hitzones = {};
69
damageMgr.GetHitZonesOfGroupFromOwner(group, hitzones);
70
if
(!hitzones || hitzones.IsEmpty())
71
return
null;
72
73
SCR_CharacterHitZone hitzone = SCR_CharacterHitZone.Cast(hitzones[0]);
74
if
(!hitzone)
75
return
null;
76
77
bodyPartToBandage = hitzone.GetBodyPartToHeal();
78
}
79
80
if
(bodyPartToBandage ==
EBandagingAnimationBodyParts
.Invalid)
81
return
null;
82
83
bool
allowMovement = bodyPartToBandage !=
EBandagingAnimationBodyParts
.RightLeg && bodyPartToBandage !=
EBandagingAnimationBodyParts
.LeftLeg;
84
85
ItemUseParameters
params
=
ItemUseParameters
();
86
params
.SetEntity(item);
87
params
.SetAllowMovementDuringAction(allowMovement);
88
params
.SetKeepInHandAfterSuccess(
false
);
89
params
.SetCommandID(GetApplyToSelfAnimCmnd(target));
90
params
.SetCommandIntArg(1);
91
params
.SetCommandFloatArg(0.0);
92
params
.SetMaxAnimLength(m_fApplyToSelfDuration);
93
params
.SetIntParam(bodyPartToBandage);
94
95
return
params
;
96
}
97
98
//------------------------------------------------------------------------------------------------
99
// constructor
100
void
SCR_ConsumableBandage()
101
{
102
m_eConsumableType =
SCR_EConsumableType
.BANDAGE;
103
}
104
}
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
ECharacterHitZoneGroup
ECharacterHitZoneGroup
Definition
SCR_CharacterDamageManagerComponent.c:2
EBandagingAnimationBodyParts
EBandagingAnimationBodyParts
Definition
SCR_CharacterHitZone.c:30
SCR_EConsumableType
SCR_EConsumableType
Type of consumable gadget.
Definition
SCR_ConsumableEffectBase.c:3
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
GetDamageManager
SCR_VehicleDamageManagerComponent GetDamageManager()
Definition
VehicleControllerComponent.c:44
ChimeraCharacter
Definition
ChimeraCharacter.c:13
IEntity
Definition
IEntity.c:13
ItemUseParameters
Definition
ItemUseParameters.c:16
SCR_CharacterDamageManagerComponent
Definition
SCR_CharacterDamageManagerComponent.c:19
SCR_CharacterDamageManagerComponent::GetCharMostDOTHitzoneGroup
ECharacterHitZoneGroup GetCharMostDOTHitzoneGroup(EDamageType damageType, bool onlyExtremities=false, bool ignoreTQdHitZones=false, bool ignoreIfBeingTreated=false)
Definition
SCR_CharacterDamageManagerComponent.c:1461
SCR_CharacterDamageManagerComponent::GetGroupIsBeingHealed
bool GetGroupIsBeingHealed(ECharacterHitZoneGroup hitZoneGroup)
Definition
SCR_CharacterDamageManagerComponent.c:1273
SCR_CharacterDamageManagerComponent::IsBleeding
bool IsBleeding()
the official and globally used way of checking if bleeding tests for any PERSISTENT damage effects of...
Definition
SCR_CharacterDamageManagerComponent.c:1336
SCR_CharacterDamageManagerComponent::FindAssociatedBandagingBodyPart
EBandagingAnimationBodyParts FindAssociatedBandagingBodyPart(ECharacterHitZoneGroup hitZoneGroup)
Definition
SCR_CharacterDamageManagerComponent.c:1163
SCR_CharacterDamageManagerComponent::FindAssociatedHitZoneGroup
ECharacterHitZoneGroup FindAssociatedHitZoneGroup(EBandagingAnimationBodyParts bodyPartToBandage)
Definition
SCR_CharacterDamageManagerComponent.c:1145
SCR_CharacterDamageManagerComponent::GetGroupDamageOverTime
override float GetGroupDamageOverTime(ECharacterHitZoneGroup hitZoneGroup, EDamageType damageType)
Definition
SCR_CharacterDamageManagerComponent.c:1222
SCR_ConsumableEffectHealthItems
Definition
SCR_ConsumableEffectHealthItems.c:3
SCR_ConsumableEffectHealthItems::m_eTargetHZGroup
ECharacterHitZoneGroup m_eTargetHZGroup
Definition
SCR_ConsumableEffectHealthItems.c:17
EDamageType
EDamageType
Definition
EDamageType.c:13
scripts
Game
Components
Gadgets
SCR_ConsumableBandage.c
Generated by
1.17.0