DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ActionDefibrilateBase.c
Go to the documentation of this file.
2{
3 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
4 {
5 Defibrillator defib;
6 Class.CastTo(defib, item);
7
8 return CanDefibrillate(defib);
9 }
10
11 bool CanDefibrillate(Defibrillator defib)
12 {
13 if ( defib.IsCharged() )
14 {
15 return true;
16 }
17 else
18 {
19 return false;
20 }
21 }
22
23 void DefibrillateClient(PlayerBase player, Defibrillator defib)
24 {
25 defib.DischargeClient(player);
26 }
27
28 void DefibrillateServer(PlayerBase player, Defibrillator defib)
29 {
30 if ( defib.IsCharged() )
31 {
32 defib.DischargeServer(player);
33
34
35 float regain_energy = player.GetSoftSkillsManager().SubtractSpecialtyBonus( defib.GetEnergyNeededToCharge(), this.GetSpecialtyWeight() );
36 regain_energy = defib.GetEnergyNeededToCharge() - regain_energy;
37
38 ItemBase battery;
39
40 if (Class.CastTo(battery, defib.GetCompEM().GetEnergySource()))
41 {
42 battery.GetCompEM().AddEnergy( regain_energy );
43 }
44 else
45 {
46 DPrint("ERROR! Defibrillator has no battery! Defibrillator softskill bonus can't be applied!");
47 }
48 }
49 player.GetSoftSkillsManager().AddSpecialty( m_SpecialtyWeight );
50 }
51};
protected float m_SpecialtyWeight
Definition ActionBase.c:68
class ActionTargets ActionTarget
void DefibrillateServer(PlayerBase player, Defibrillator defib)
bool CanDefibrillate(Defibrillator defib)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
void DefibrillateClient(PlayerBase player, Defibrillator defib)
Super root of all classes in Enforce script.
Definition EnScript.c:11
proto void DPrint(string var)
Prints content of variable to console/log. Should be used for critical messages so it will appear in ...
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.