202 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
F_F, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
203 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
F_E, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second))));
204 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
E_F, NULL,
new GuardAnd(
new WeaponGuardChamberEmpty(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
205 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
F_L, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
206 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
L_L, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
207 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
L_E, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second))));
208 m_fsm.AddTransition(
new WeaponTransition( Mech, _abt_,
E_L, NULL,
new GuardAnd(
new WeaponGuardChamberEmpty(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
212 m_fsm.AddTransition(
new WeaponTransition( Chamber_E, _fin_,
L_E, NULL,
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second)));
215 m_fsm.AddTransition(
new WeaponTransition( Chamber_E, _abt_,
L_L, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
216 m_fsm.AddTransition(
new WeaponTransition( Chamber_E, _abt_,
L_E, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second))));
223 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _fin_,
L_E, NULL,
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second)));
226 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _abt_,
F_F, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
227 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _abt_,
F_E, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second))));
228 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _abt_,
E_F, NULL,
new GuardAnd(
new WeaponGuardChamberEmpty(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
229 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _abt_,
L_L, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
230 m_fsm.AddTransition(
new WeaponTransition( Chamber_F, _abt_,
L_E, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberEmpty(
this, MuzzleIndex.Second))));
235 m_fsm.AddTransition(
new WeaponTransition( Chamber_L_E, _abt_,
L_L, NULL,
new WeaponGuardChamberFull(
this, MuzzleIndex.Second)));
237 m_fsm.AddTransition(
new WeaponTransition( Chamber_L_E, _fin_,
L_L, NULL,
new WeaponGuardChamberFull(
this, MuzzleIndex.Second)));
241 m_fsm.AddTransition(
new WeaponTransition( Chamber_E_L, _abt_,
L_L, NULL,
new WeaponGuardChamberFull(
this, MuzzleIndex.First)));
243 m_fsm.AddTransition(
new WeaponTransition( Chamber_E_L, _fin_,
L_L, NULL,
new WeaponGuardChamberFull(
this, MuzzleIndex.First)));
247 m_fsm.AddTransition(
new WeaponTransition( Chamber_F_L, _abt_,
F_L, NULL,
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First)));
248 m_fsm.AddTransition(
new WeaponTransition( Chamber_F_L, _abt_,
L_L, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
249 m_fsm.AddTransition(
new WeaponTransition( Chamber_F_L, _abt_,
E_L, NULL,
new GuardAnd(
new WeaponGuardChamberEmpty(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
251 m_fsm.AddTransition(
new WeaponTransition( Chamber_F_L, _fin_,
F_L, NULL,
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First)));
252 m_fsm.AddTransition(
new WeaponTransition( Chamber_F_L, _fin_,
L_L, NULL,
new GuardAnd(
new WeaponGuardChamberFull(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
253 m_fsm.AddTransition(
new WeaponTransition( Chamber_F_L, _fin_,
E_L, NULL,
new GuardAnd(
new WeaponGuardChamberEmpty(
this, MuzzleIndex.First),
new WeaponGuardChamberFull(
this, MuzzleIndex.Second))));
272 m_fsm.AddTransition(
new WeaponTransition( Trigger_L_L, _fin_,
F_F, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
273 m_fsm.AddTransition(
new WeaponTransition( Trigger_L_L, _rto_,
F_F, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
274 m_fsm.AddTransition(
new WeaponTransition( Trigger_L_L, _abt_,
F_F, NULL,
new GuardAnd(
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.First),
new WeaponGuardChamberFiredOut(
this, MuzzleIndex.Second))));
301 SetInitialState(
E_E);
303 for(
int i = 0; i < GetMuzzleCount(); i++)