31 override bool HasBullet () {
return true; }
33 override bool IsJammed () {
return false; }
42 override bool HasBullet () {
return true; }
44 override bool IsJammed () {
return false; }
53 override bool HasBullet () {
return true; }
55 override bool IsJammed () {
return true; }
80 override void InitStateMachine ()
134 m_fsm.AddTransition(
new WeaponTransition( Mech_L, _fin_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
136 m_fsm.AddTransition(
new WeaponTransition( Mech_L, _abt_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
140 m_fsm.AddTransition(
new WeaponTransition( Mech_F, _fin_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
141 m_fsm.AddTransition(
new WeaponTransition( Mech_F, _fin_,
F, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
143 m_fsm.AddTransition(
new WeaponTransition( Mech_F, _abt_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
144 m_fsm.AddTransition(
new WeaponTransition( Mech_F, _abt_,
F, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
150 m_fsm.AddTransition(
new WeaponTransition( Chamber_E, _fin_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
152 m_fsm.AddTransition(
new WeaponTransition( Chamber_E, _abt_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
155 m_fsm.AddTransition(
new WeaponTransition(
L, __L__, Chamber_L, NULL,
new GuardNot(
new WeaponGuardInnerMagazineFull(
this))));
159 m_fsm.AddTransition(
new WeaponTransition(
F, __L__, Chamber_F, NULL,
new GuardNot(
new WeaponGuardInnerMagazineFull(
this))));
160 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _fin_,
F, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
162 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _abt_,
F, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
169 m_fsm.AddTransition(
new WeaponTransition( Unjam_J, _fin_, J, NULL,
new WeaponGuardJammed(
this)));
170 m_fsm.AddTransition(
new WeaponTransition( Unjam_J, _fin_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
172 m_fsm.AddTransition(
new WeaponTransition( Unjam_J, _abt_, J, NULL,
new WeaponGuardJammed(
this)));
173 m_fsm.AddTransition(
new WeaponTransition( Unjam_J, _abt_,
E, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
208 SelectionBulletHide();
214 override bool CanChamberBullet (
int muzzleIndex, Magazine mag)
216 return CanChamberFromMag(muzzleIndex, mag) && !IsInternalMagazineFull(muzzleIndex);
219 override void SetActions()
229 override void OnDebugSpawn()
231 super.OnDebugSpawn();
233 inventory.CreateInInventory(
"FNP45_MRDSOptic" );
234 inventory.CreateInInventory(
"Battery9V" );
237 if (
Class.CastTo(entity,
this) )
239 entity.SpawnEntityOnGroundPos(
"Ammo_12gaPellets", entity.GetPosition());
240 entity.SpawnEntityOnGroundPos(
"Ammo_12gaSlug", entity.GetPosition());
241 entity.SpawnEntityOnGroundPos(
"Ammo_12gaRubberSlug", entity.GetPosition());