3 const float WORN = 0.5;
4 const float DAMAGED = 0.3;
5 const float BADLY_DAMAGED = 0.2;
6 const float RUINED = 0.1;
12 const float LVL1 = 0.3;
13 const float LVL2 = 0.6;
14 const float LVL3 = 0.8;
39class InjuryAnimationHandler
54 private bool m_AnimationChange =
false;
55 private bool m_InjuryAnimEnabled =
false;
56 private float m_InjuryAnimDamageValue = 0;
57 int m_ForceInjuryAnimMask;
65 bool IsInjuryAnimEnabled()
67 return m_InjuryAnimEnabled;
70 float GetInjuryAnimValue()
72 return m_InjuryAnimDamageValue;
80 void Update(
float deltaT)
82 if ( m_AnimationChange )
84 m_Player.GetCommandModifier_Additives().SetInjured(m_InjuryAnimDamageValue, m_InjuryAnimEnabled);
85 m_AnimationChange =
false;
105 if ( m_ForceInjuryAnimMask & eInjuryOverrides.PRONE_ANIM_OVERRIDE && override_level >
eInjuryHandlerLevels.PRISTINE )
108 return override_level;
111 if ( m_ForceInjuryAnimMask & eInjuryOverrides.MORPHINE && override_level >
eInjuryHandlerLevels.PRISTINE )
116 if ( m_ForceInjuryAnimMask & eInjuryOverrides.PAIN_KILLERS_LVL1 && override_level >
eInjuryHandlerLevels.WORN )
121 if ( m_ForceInjuryAnimMask & eInjuryOverrides.PAIN_KILLERS_LVL0 && override_level >
eInjuryHandlerLevels.DAMAGED )
132 if ( m_ForceInjuryAnimMask & eInjuryOverrides.BROKEN_LEGS_SPLINT && override_level <
eInjuryHandlerLevels.DAMAGED )
137 if ( m_ForceInjuryAnimMask & eInjuryOverrides.BROKEN_LEGS && override_level <
eInjuryHandlerLevels.RUINED )
140 float avgLegHealth =
m_Player.GetHealth(
"RightLeg",
"") +
m_Player.GetHealth(
"LeftLeg",
"") +
m_Player.GetHealth(
"RightFoot",
"") +
m_Player.GetHealth(
"LeftFoot",
"");
141 avgLegHealth *= 0.25;
144 else if (avgLegHealth >=
PlayerConstants.BROKEN_LEGS_HIGH_HEALTH_THRESHOLD)
150 return override_level;
154 void CheckValue(
bool forceUpdate =
false)
159 if ( m_ForceInjuryAnimMask )
161 injury_level = GetOverrideLevel(injury_level);
166 SendValue(injury_level);
187 m_AnimationChange =
true;
188 m_InjuryAnimEnabled = enable;
189 m_InjuryAnimDamageValue = GetInjuryValue(level);
243 Error(
"Undefined Injury level");
ScriptInvoker Class provide list of callbacks usage:
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
enum eInjuryHandlerLevels MORPHINE
ref ScriptInvoker m_ChangedStateInvoker
eInjuryHandlerLevels m_LastHealthUpdate
const float SENSITIVTY_PERCENTAGE
enum eInjuryHandlerLevels PAIN_KILLERS_LVL0
enum eInjuryHandlerLevels VALUE_CHECK_INTERVAL
enum eInjuryHandlerLevels PRONE_ANIM_OVERRIDE
enum eInjuryHandlerLevels BROKEN_LEGS
float m_TimeSinceLastTick
enum eInjuryHandlerLevels PAIN_KILLERS_LVL1
enum eInjuryHandlerLevels NONE
MUST BE POW2.
enum eInjuryHandlerLevels BROKEN_LEGS_SPLINT