Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
defibrillator.c
Go to the documentation of this file.
1class Defibrillator extends ItemBase
2{
3 static const string CHARGING_SOUND = "defibrillator_charge_SoundSet";
4 static const string CHARGED_AND_READY_SOUND = "defibrillator_ready_SoundSet";
5 static const string SHOCK_SOUND = "defibrillator_shock_SoundSet";
6
7 bool m_IsCharged = false;
8
9 static float m_ChargeTime = 5;
10 static float m_EnergyNeededToCharge = 20;
11
15
17 {
18 // Read all config parameters
19 //m_ChargeTime = GetTimeNeededToCharge();
21 }
22
28
30 {
31 string cfg_path = "CfgVehicles " + GetType() + " ";
32 return g_Game.ConfigGetFloat (cfg_path + "defibChargeTime");
33 }
34
36 {
37 string cfg_path = "CfgVehicles " + GetType() + " ";
38 return g_Game.ConfigGetFloat (cfg_path + "defibEnergyNeededPerCharge");
39 }
40
41 override void OnWorkStart()
42 {
43 if ( !g_Game.IsDedicatedServer() )
45
46 float energy_needed = m_EnergyNeededToCharge / m_ChargeTime;
47 GetCompEM().SetEnergyUsage(energy_needed);
48
49 if (!m_ChargingTimer)
51
52 if ( !m_ChargingTimer.IsRunning() )
53 {
54 m_ChargingTimer.Run(m_ChargeTime, this, "OnIsCharged", NULL, false);
55 }
56 }
57
58 override void OnWorkStop()
59 {
60 GetCompEM().SwitchOff();
61 GetCompEM().ResetEnergyUsage();
65
66 m_IsCharged = false;
67 }
68
70 {
71 if ( GetCompEM().IsWorking() )
72 {
73 if (!g_Game.IsMultiplayer() || g_Game.IsClient())
74 {
75 //m_ChargedAlarm = PlaySoundLoop(CHARGED_AND_READY_SOUND, 40);
77 m_ChargingSound.SoundStop();
78 }
79 GetCompEM().ResetEnergyUsage();
80 m_IsCharged = true;
81 }
82 }
83
85 {
87 {
88 //g_Game.ObjectDelete(m_ChargedAlarm);
89 m_ChargedAlarm.SoundStop();
90 m_ChargedAlarm = NULL;
91 }
92 }
93
95 {
97 {
98 m_ChargingSound.SoundStop();
99 }
100 }
101
103 {
104 if (m_ChargingTimer)
105 {
106 m_ChargingTimer.Stop();
107 m_ChargingTimer = NULL;
108 }
109 }
110
112 {
113 return m_IsCharged;
114 }
115
117 {
118 /*
119 bool has_heart_attack = victim.m_ModifiersManager.IsModifierActive(eModifiers.MDF_HEART_ATTACK);
120
121 if ( has_heart_attack )
122 {
123 victim.m_ModifiersManager.DeactivateModifier ( eModifiers.MDF_HEART_ATTACK );
124 }
125 else
126 {
127 victim.m_ModifiersManager.ActivateModifier ( eModifiers.MDF_HEART_ATTACK );
128 }
129 */
130 /*
131 if (!g_Game.IsMultiplayer() || g_Game.IsClient())
132 {
133 SEffectManager.PlaySoundOnObject(SHOCK_SOUND, this);
134 }*/
135
136 victim.SetPulseType(!victim.GetPulseType());
137 victim.SetHealth("","Shock",0);
138
139 GetCompEM().SwitchOff();
140 }
141
146
156}
eBleedingSourceType GetType()
void AddAction(typename actionName)
Wrapper class for managing sound through SEffectManager.
Definition effectsound.c:5
void DischargeClient(PlayerBase victim)
static float m_EnergyNeededToCharge
void OnIsCharged()
ref Timer m_ChargingTimer
EffectSound m_ChargedAlarm
static const string CHARGED_AND_READY_SOUND
static const string SHOCK_SOUND
float GetTimeNeededToCharge()
static const string CHARGING_SOUND
void StopChargingSound()
override void OnWorkStop()
void StopChargedAlarm()
float GetEnergyNeededToCharge()
bool m_IsCharged
static float m_ChargeTime
void DischargeServer(PlayerBase victim)
override void OnWorkStart()
EffectSound m_ChargingSound
bool IsCharged()
void ~Defibrillator()
void StopChargingTimer()
void Defibrillator()
override void SetActions()
Manager class for managing Effect (EffectParticle, EffectSound).
static EffectSound PlaySoundOnObject(string sound_set, Object parent_object, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound.
static void DestroyEffect(Effect effect)
Unregisters, stops and frees the Effect.
DayZGame g_Game
Definition dayzgame.c:3942
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10