1234567891011121314151617181920212223242526272829303132333435363738394041 |
- class RifleEjectCasing extends WeaponStateBase
- {
- WeaponActions m_action;
- int m_actionType;
- ref WeaponStartAction m_start;
- ref WeaponEjectCasing m_eject;
- ref BulletHide_W4T m_hideB;
- void RifleEjectCasing (Weapon_Base w = NULL, WeaponStateBase parent = NULL, WeaponActions action = WeaponActions.NONE, int actionType = -1)
- {
- m_action = action;
- m_actionType = actionType;
- // setup nested state machine
- m_start = new WeaponStartAction(m_weapon, this, m_action, m_actionType);
- m_eject = new WeaponEjectCasing(m_weapon, this);
- m_hideB = new BulletHide_W4T(m_weapon, this);
- // events
- WeaponEventBase __be_ = new WeaponEventAnimBulletEject;
- WeaponEventBase __bh_ = new WeaponEventAnimBulletHide;
- WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
- m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
- // transitions
- m_fsm.AddTransition(new WeaponTransition(m_start, __be_, m_eject));
- m_fsm.AddTransition(new WeaponTransition(m_eject, __bh_, m_hideB));
- m_fsm.AddTransition(new WeaponTransition(m_hideB, _fin_, NULL));
-
- // Safety exits
- m_fsm.AddTransition(new WeaponTransition(m_eject , _fin_, null));
- m_fsm.AddTransition(new WeaponTransition(m_start , _fin_, null));
- m_fsm.SetInitialState(m_start);
- }
- };
|