Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
areadamagecomponent.c
Go to the documentation of this file.
2{
3 string Hitzone = "";
4 vector Modelpos = "0.5 0.5 0.5";
5}
6
8{
10
12 string m_AmmoName;
13
14 ref array<typename> m_DamageableTypes
15
17 {
18 m_Parent = parent;
19
20 m_DamageType = DamageType.CUSTOM;
21 m_AmmoName = "MeleeDamage";
22
23 m_DamageableTypes = new array<typename>;
24 m_DamageableTypes.Insert(DayZPlayer);
25 }
26
27 override bool OnEvaluateDamage(TriggerInsider insider, float damageCoef)
28 {
29 // No need to damage if the coef is 0!
30 if ( ShouldDamage(insider.GetObject()) && damageCoef > 0 )
31 return EvaluateDamageInternal(insider, damageCoef);
32
33 return false;
34 }
35
36 override void PreDamageActions()
37 {
38 m_Parent.PreDamageActions();
39 }
40
41 override void PostDamageActions()
42 {
43 m_Parent.PostDamageActions();
44 }
45
46 protected bool ShouldDamage(Object object)
47 {
48 return object && object.IsAlive() && object.IsAnyInherited( m_DamageableTypes );
49 }
50
55
56 private bool EvaluateDamageInternal(TriggerInsider insider, float damageCoef)
57 {
59
60 AreaDamageTriggerInsider dInsider;
61 if ( CastTo( dInsider, insider ) )
62 dInsider.lastDamaged = g_Game.GetTickTime();
63
64 Object object = insider.GetObject();
65
66 AreaDamageComponentData data = GetAreaDamageComponentData(object);
67 object.ProcessDirectDamage(m_DamageType, m_Parent.GetParentObject(), data.Hitzone, m_AmmoName, data.Modelpos, damageCoef);
68
70
71 return true;
72 }
73}
ref array< typename > m_DamageableTypes void AreaDamageComponent(AreaDamageManager parent)
AreaDamageComponentData GetAreaDamageComponentData(Object object)
bool ShouldDamage(Object object)
string m_AmmoName
int m_DamageType
override bool OnEvaluateDamage(TriggerInsider insider, float damageCoef)
Tell the AreaDamageComponent to calculate and apply the damage to the Object.
override void PostDamageActions()
Usually called from AreaDamageComponent.
void AreaDamageManager(EntityAI parent)
override void PreDamageActions()
Usually called from AreaDamageComponent.
Entity m_Parent
Events used across AreaDamage API, calling of these needs to be handled by parent.
The object which is in a trigger and its metadata.
Definition trigger.c:3
Object GetObject()
Definition trigger.c:28
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DamageType
exposed from C++ (do not change)
DayZGame g_Game
Definition dayzgame.c:3942
class LOD Object