Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_PersistentBarbedWireDamageEffect.c
Go to the documentation of this file.
2{
3 [Attribute(defvalue: "3", uiwidget: UIWidgets.EditBox, desc: "At this velocity max damage is incurred by the character \n x = m/s", category: "Barbed wire damage")]
4 protected float m_fMaxDamageSpeed;
5
6 [Attribute("0 1 1 0", uiwidget: UIWidgets.CurveDialog, desc: "How damage will scale with distance", params: "1 1 0 0")]
8
9 [Attribute(desc: "Effect that will be applied as a result of being damaged by this damage effect")]
11
12 protected static const float DAMAGE_APPLY_THRESHOLD = 2;
13
14 private float m_fMovedDamage;
15
16 //------------------------------------------------------------------------------------------------
17 protected override void HandleConsequences(SCR_ExtendedDamageManagerComponent dmgManager, DamageEffectEvaluator evaluator)
18 {
19 super.HandleConsequences(dmgManager, evaluator);
20
21 evaluator.HandleEffectConsequences(this, dmgManager);
22 }
23
24 //------------------------------------------------------------------------------------------------
25 override void OnEffectAdded(SCR_ExtendedDamageManagerComponent dmgManager)
26 {
27 super.OnEffectAdded(dmgManager);
28
29 SetActive(true);
30 }
31
32 //------------------------------------------------------------------------------------------------
33 protected override void EOnFrame(float timeSlice, SCR_ExtendedDamageManagerComponent dmgManager)
34 {
35 if (!m_Controller)
36 return;
37
38 float newMovedDamage;
39 CharacterInputContext context = m_Controller.GetInputContext();
40 vector characterVelocity = m_Controller.GetVelocity();
41 characterVelocity[1] = context.GetJump();//for character Y of GetVelocity() is always 0
42
43 if (characterVelocity[1] == 0 && (m_Controller.IsFalling() || m_Controller.IsClimbing()))
44 characterVelocity[1] = 1;
45
46 if (context && (context.IsMoving() || m_Controller.IsRoll() || characterVelocity[1] != 0))
47 newMovedDamage = timeSlice * LegacyCurve.Curve(ECurveType.CurveProperty2D, characterVelocity.Length() / m_fMaxDamageSpeed, m_cSpeedDamageCurve)[1];
48
49 m_fMovedDamage += newMovedDamage * 10;
50
51 if (m_fMovedDamage < DAMAGE_APPLY_THRESHOLD)
52 return;
53
54 ApplyEffect(dmgManager);
55 m_fMovedDamage = 0;
56 }
57
58 //------------------------------------------------------------------------------------------------
60 {
61 return EDamageType.MELEE;
62 }
63
64 //------------------------------------------------------------------------------------------------
69}
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition Math.c:22
override void EOnFrame(float timeSlice, SCR_ExtendedDamageManagerComponent dmgManager)
override void OnEffectAdded(SCR_ExtendedDamageManagerComponent dmgManager)
ref SCR_BarbedWireCuttingDamageEffect m_ResultingEffect
SCR_BarbedWireCuttingDamageEffect GetResultingEffect()
override void HandleConsequences(SCR_ExtendedDamageManagerComponent dmgManager, DamageEffectEvaluator evaluator)
SCR_CharacterControllerComponent m_Controller
SCR_FieldOfViewSettings Attribute
EDamageType
Definition EDamageType.c:13
ECurveType
Definition ECurveType.c:13