31 override bool HasBullet () {
return false; }
33 override bool IsJammed () {
return false; }
42 override bool HasBullet () {
return true; }
44 override bool IsJammed () {
return false; }
62 override void InitStateMachine()
79 WeaponChargingStretch Mech_U =
new WeaponChargingStretch(
this, NULL,
WeaponActions.MECHANISM, WeaponActionMechanismTypes.MECHANISM_OPENED);
80 WeaponEjectBullet Mech_L =
new WeaponEjectBullet(
this, NULL,
WeaponActions.MECHANISM, WeaponActionMechanismTypes.MECHANISM_SPECIAL);
114 m_fsm.AddTransition(
new WeaponTransition( Mech_L, _fin_, C,
null,
new WeaponGuardChamberEmpty(
this)));
116 m_fsm.AddTransition(
new WeaponTransition( Mech_L, _abt_, C,
null,
new WeaponGuardChamberEmpty(
this)));
122 m_fsm.AddTransition(
new WeaponTransition( Chamber_U, _fin_,
L,
null,
new WeaponGuardChamberFull(
this)));
123 m_fsm.AddTransition(
new WeaponTransition( Chamber_U, _fin_, C,
null,
new WeaponGuardWeaponCharged(
this)));
125 m_fsm.AddTransition(
new WeaponTransition( Chamber_U, _abt_,
L,
null,
new WeaponGuardChamberFull(
this)));
126 m_fsm.AddTransition(
new WeaponTransition( Chamber_U, _abt_, C,
null,
new WeaponGuardWeaponCharged(
this)));
131 m_fsm.AddTransition(
new WeaponTransition( Chamber_C, _fin_,
L,
null,
new WeaponGuardChamberFull(
this)));
133 m_fsm.AddTransition(
new WeaponTransition( Chamber_C, _abt_,
L,
null,
new WeaponGuardChamberFull(
this)));
154 SelectionBulletHide();
161 override float GetChanceToJam()
166 override void OnDebugSpawnEx(DebugSpawnParams params)
172 GetInventory().CreateInInventory(
"ACOGOptic_6x" );
179 inv = params.m_Player.GetInventory();
182 SpawnInInventoryOrGroundPos(
"Ammo_HuntingBolt", inv,
GetPosition());
183 SpawnInInventoryOrGroundPos(
"Ammo_ImprovisedBolt_1", inv,
GetPosition());
184 SpawnInInventoryOrGroundPos(
"Ammo_ImprovisedBolt_2", inv,
GetPosition());
186 SpawnInInventoryOrGroundPos(
"ACOGOptic", inv,
GetPosition());
187 entity = SpawnInInventoryOrGroundPos(
"M68Optic", inv,
GetPosition());
188 entity.GetInventory().CreateInInventory(
"Battery9V" );
189 entity = SpawnInInventoryOrGroundPos(
"M4_T3NRDSOptic", inv,
GetPosition());
190 entity.GetInventory().CreateInInventory(
"Battery9V" );
191 entity = SpawnInInventoryOrGroundPos(
"ReflexOptic", inv,
GetPosition());
192 entity.GetInventory().CreateInInventory(
"Battery9V" );
193 entity = SpawnInInventoryOrGroundPos(
"StarlightOptic", inv,
GetPosition());
194 entity.GetInventory().CreateInInventory(
"Battery9V" );
197 override bool CanBeUsedForSuicide()
201 GetCartridgeInfo(GetCurrentMuzzle(), ammoDamage, ammoTypeName);
202 if (ammoTypeName ==
"Bullet_CupidsBolt")
205 return super.CanBeUsedForSuicide();