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_MineDamageManager.c
Go to the documentation of this file.
1
[
EntityEditorProps
(
category
:
"GameScripted/Mines"
, description:
"Damage manager for land mines."
)]
2
class
SCR_MineDamageManagerClass
:
SCR_DamageManagerComponentClass
3
{
4
}
5
6
class
SCR_MineDamageManager : SCR_DamageManagerComponent
7
{
8
//------------------------------------------------------------------------------------------------
10
override
bool
HijackDamageHandling
(notnull
BaseDamageContext
damageContext)
11
{
12
if
(damageContext.damageType !=
EDamageType
.MELEE)
13
return
false
;
14
15
// Inactive mines don't take melee damage, activated mines can be destroyed using melee and explode
16
SCR_PressureTriggerComponent triggerComponent = SCR_PressureTriggerComponent.Cast(
GetOwner
().FindComponent(SCR_PressureTriggerComponent));
17
if
(triggerComponent && !triggerComponent.IsActivated())
18
damageContext.damageValue = 0;
19
20
return
false
;
21
}
22
23
//------------------------------------------------------------------------------------------------
24
override
event
protected
void
OnDamageStateChanged
(
EDamageState
newState,
EDamageState
previousDamageState,
bool
isJIP)
25
{
26
if
(newState !=
EDamageState
.DESTROYED)
27
return
;
28
29
IEntity
owner =
GetOwner
();
30
31
bool
isProxy =
false
;
32
RplComponent rplComponent = RplComponent.Cast(owner.
FindComponent
(RplComponent));
33
if
(rplComponent && rplComponent.IsProxy())
34
isProxy =
true
;
35
36
if
(!isProxy)
37
GetGame
().GetCallqueue().CallLater(
ExplodeWrapper
, 1);
38
else
39
ExplodeWrapper
();
40
}
41
42
//------------------------------------------------------------------------------------------------
44
void
ExplodeWrapper
()
45
{
46
// Can be called from CallLater. Therefore, we need to check if the entity still exists.
47
IEntity
owner =
GetOwner
();
48
if
(!owner)
49
return
;
50
51
BaseTriggerComponent
triggerComponent =
BaseTriggerComponent
.Cast(owner.
FindComponent
(
BaseTriggerComponent
));
52
if
(!triggerComponent)
53
return
;
54
55
triggerComponent.SetLive();
56
triggerComponent.OnUserTriggerOverrideInstigator(owner,
GetInstigator
());
57
}
58
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
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
EntityEditorProps
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
Definition
SCR_CompassComponent.c:10
OnDamageStateChanged
override void OnDamageStateChanged(EDamageState newState, EDamageState previousDamageState, bool isJIP)
Definition
SCR_HelicopterDamageManagerComponent.c:31
ExplodeWrapper
void ExplodeWrapper()
Definition
SCR_MineDamageManager.c:44
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
BaseDamageContext
Definition
BaseDamageContext.c:13
BaseTriggerComponent
Definition
BaseTriggerComponent.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
SCR_DamageManagerComponentClass
Definition
SCR_DamageManagerComponent.c:2
SCR_MineDamageManagerClass
Definition
SCR_MineDamageManager.c:3
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition
SCR_FuelNode.c:128
EDamageType
EDamageType
Definition
EDamageType.c:13
EDamageState
EDamageState
Definition
EDamageState.c:13
GetInstigator
BaseProjectileComponentClass GameComponentClass GetInstigator()
scripts
Game
Components
Mines
SCR_MineDamageManager.c
Generated by
1.17.0