16 void WeaponUnjamming_Start (
Weapon_Base w = NULL,
WeaponStateBase parent = NULL, WeaponActions action = WeaponActions.NONE,
int actionType = -1)
27 override void OnUpdate (
float dt)
36 HumanCommandWeapons hcw = p.GetCommandModifier_Weapons();
41 hcw.StartAction(WeaponActions.UNJAMMING, WeaponActionUnjammingTypes.UNJAMMING_END);
42 m_weapon.ProcessWeaponEvent(
new WeaponEventUnjammingTimeout(p));
47 if (hic.IsReloadOrMechanismContinuousUse())
51 #ifndef PLATFORM_CONSOLE
52 #ifndef SERVER_FOR_CONSOLE
56 hcw.StartAction(WeaponActions.UNJAMMING, WeaponActionUnjammingTypes.UNJAMMING_INTERRUPT);
57 m_weapon.ProcessWeaponEvent(
new WeaponEventUnjammingFailedTimeout(p));
82 m_type =
string.Empty;
89 int mi =
m_weapon.GetCurrentMuzzle();
112 m_type =
string.Empty;
118 if (!super.SaveCurrentFSMState(ctx))
121 if (!ctx.Write(m_damage))
123 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" WeaponUnjamming_Cartridge.SaveCurrentFSMState: cannot write m_damage for weapon=" +
m_weapon);
126 if (!ctx.Write(m_type))
128 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" WeaponUnjamming_Cartridge.SaveCurrentFSMState: cannot write m_type for weapon=" +
m_weapon);
136 if (!super.LoadCurrentFSMState(ctx, version))
139 if (!ctx.Read(m_damage))
141 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" WeaponUnjamming_Cartridge.LoadCurrentFSMState: cannot read m_damage for weapon=" +
m_weapon);
144 if (!ctx.Read(m_type))
146 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" WeaponUnjamming_Cartridge.LoadCurrentFSMState: cannot read m_type for weapon=" +
m_weapon);
175 ref WeaponUnjamming_Start
m_start;
176 ref WeaponUnjamming_Cartridge_W4T
m_eject;
177 ref WeaponUnjamming_W4T m_w4t;
178 ref WeaponChamberFromAttMag_W4T
m_chamber;
183 m_actionType = actionType;
189 m_w4t =
new WeaponUnjamming_W4T(
m_weapon,
this);
209 m_fsm.SetInitialState(
m_start);
void wpnDebugPrint(string s)
Super root of all classes in Enforce script.
Serialization general interface. Serializer API works with:
signalize mechanism manipulation
weapon finite state machine
simple class starting animation action specified by m_action and m_actionType
represent weapon state base
void Error(string err)
Messagebox with error message.
class WeaponGuardIsDestroyed extends WeaponGuardBase m_weapon
void WeaponGuardHasAmmo(Weapon_Base w=NULL)
HandStateEquipped OnEntry
enum FSMTransition WeaponTransition
void ejectBulletAndStoreInMagazine(Weapon_Base weapon, int muzzleIndex, Magazine mag, DayZPlayer p)
class WeaponChambering extends WeaponStateBase IsWaitingForActionFinish
ref WeaponStateBase m_start
class WeaponChambering_Chamber_OnEntry extends WeaponChambering_Base OnExit
class WeaponEndAction extends WeaponStartAction m_action
override bool LoadCurrentFSMState(ParamsReadContext ctx, int version)
ref WeaponChambering_Base m_chamber
ref WeaponEjectCasingMultiMuzzle m_eject
override bool SaveCurrentFSMState(ParamsWriteContext ctx)
class WeaponFireWithEject extends WeaponFire m_dtAccumulator