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_ArmorDamageManagerComponent.c
Go to the documentation of this file.
1
class
SCR_ArmorDamageManagerComponentClass
:
SCR_DamageManagerComponentClass
2
{
3
}
4
5
class
SCR_ArmorDamageManagerComponent : SCR_DamageManagerComponent
6
{
7
[
Attribute
(defvalue:
"0.4"
, uiwidget:
UIWidgets
.EditBox,
desc
:
"Multiplies rawdamage to be passed to character from this armor piece"
)]
8
protected
float
m_fPassedDamageScale;
9
10
[
Attribute
(defvalue:
"0"
,
desc
:
"Can this armor element be detached when it is struck"
)]
11
protected
bool
m_bIsDetachable
;
12
13
//------------------------------------------------------------------------------------------------
15
override
bool
FilterContact
(
IEntity
owner,
IEntity
other,
Contact
contact)
16
{
17
return
false
;
18
}
19
20
//------------------------------------------------------------------------------------------------
22
override
bool
HijackDamageHandling
(notnull
BaseDamageContext
damageContext)
23
{
24
if
(damageContext.damageType !=
EDamageType
.KINETIC && damageContext.damageType !=
EDamageType
.MELEE)
25
{
26
if
(
m_bIsDetachable
)
27
KnockOffTheHelmet
(damageContext);
28
29
return
true
;
30
}
31
32
ChimeraCharacter
char;
33
IEntity
parent =
GetOwner
();
34
while
(parent)
35
{
36
char
=
ChimeraCharacter
.Cast(parent);
37
if
(
char
)
38
break
;
39
40
parent = parent.
GetParent
();
41
}
42
43
if
(!
char
)
44
return
true
;
45
46
SCR_CharacterDamageManagerComponent
charDamMan =
SCR_CharacterDamageManagerComponent
.Cast(
char
.
GetDamageManager
());
47
if
(!charDamMan)
48
return
true
;
49
50
charDamMan.
ArmorHitEventEffects
(damageContext.damageValue);
51
charDamMan.
ArmorHitEventDamage
(damageContext.damageType, damageContext.damageValue * m_fPassedDamageScale, damageContext.instigator.GetInstigatorEntity());
52
53
if
(
m_bIsDetachable
)
54
KnockOffTheHelmet
(damageContext);
55
56
return
true
;
57
}
58
59
//------------------------------------------------------------------------------------------------
62
protected
void
KnockOffTheHelmet
(notnull
BaseDamageContext
damageContext)
63
{
64
IEntity
owner =
GetOwner
();
65
ChimeraCharacter
character =
ChimeraCharacter
.Cast(owner.
GetParent
());
66
if
(!character)
67
return
;
68
69
SCR_HeadgearInventoryItemComponent hatIIC = SCR_HeadgearInventoryItemComponent.Cast(owner.
FindComponent
(SCR_HeadgearInventoryItemComponent));
70
if
(hatIIC)
71
hatIIC.DetachHelmet(damageContext.damageValue, damageContext.damageType, damageContext.hitDirection, damageContext.hitPosition, character);
72
}
73
}
m_bIsDetachable
bool m_bIsDetachable
Definition
SCR_ArmorDamageManagerComponent.c:11
KnockOffTheHelmet
void KnockOffTheHelmet(notnull BaseDamageContext damageContext)
Definition
SCR_ArmorDamageManagerComponent.c:62
HijackDamageHandling
override bool HijackDamageHandling(notnull BaseDamageContext damageContext)
We hijack damage on armor, and use it to damage the character. Always return true on the hijack to en...
Definition
SCR_ArmorDamageManagerComponent.c:22
FilterContact
override bool FilterContact(IEntity owner, IEntity other, Contact contact)
Armor doesn't take collisiondamage.
Definition
SCR_ArmorDamageManagerComponent.c:15
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
GetDamageManager
SCR_VehicleDamageManagerComponent GetDamageManager()
Definition
VehicleControllerComponent.c:44
BaseDamageContext
Definition
BaseDamageContext.c:13
ChimeraCharacter
Definition
ChimeraCharacter.c:13
Contact
Definition
Contact.c:16
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
IEntity::GetParent
proto external IEntity GetParent()
SCR_ArmorDamageManagerComponentClass
Definition
SCR_ArmorDamageManagerComponent.c:2
SCR_CharacterDamageManagerComponent
Definition
SCR_CharacterDamageManagerComponent.c:19
SCR_CharacterDamageManagerComponent::ArmorHitEventEffects
void ArmorHitEventEffects(float damage)
Function called from SCR_ArmorDamageManagerComponent in case player is shot in armor....
Definition
SCR_CharacterDamageManagerComponent.c:339
SCR_CharacterDamageManagerComponent::ArmorHitEventDamage
void ArmorHitEventDamage(EDamageType type, float damage, IEntity instigator)
Function called from SCR_ArmorDamageManagerComponent in case player is shot in armor....
Definition
SCR_CharacterDamageManagerComponent.c:356
SCR_DamageManagerComponentClass
Definition
SCR_DamageManagerComponent.c:2
UIWidgets
Definition
attributes.c:40
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition
SCR_FuelNode.c:128
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
EDamageType
EDamageType
Definition
EDamageType.c:13
scripts
Game
Components
Damage
SCR_ArmorDamageManagerComponent.c
Generated by
1.17.0