public WeaponStateMachine(WeaponStateContext context) { _context = context; _states = new Dictionary <WeaponState, BaseWeaponState> { { WeaponState.Inactive, new InactiveWeaponState(context) }, { WeaponState.InactivePendingReload, new InactivePendingReloadWeaponState(context) }, { WeaponState.PreAttack, new PreAttackWeaponState(context) }, { WeaponState.Firing, new FiringWeaponState(context) }, { WeaponState.IdleAfterFiring, new IdleAfterFiringWeaponState(context) }, { WeaponState.BetweenShots, new BetweenShotsWeaponState(context) }, { WeaponState.Reloading, new ReloadingWeaponState(context) } }; TransitionToState(WeaponState.Inactive, TimeSpan.Zero); }
public PreAttackWeaponState(WeaponStateContext context) : base(context) { }
public FiringWeaponState(WeaponStateContext context) : base(context) { }
public InactiveWeaponState(WeaponStateContext context) : base(context) { }
public IdleAfterFiringWeaponState(WeaponStateContext context) : base(context) { }
public InactivePendingReloadWeaponState(WeaponStateContext context) : base(context) { }
protected BaseWeaponState(WeaponStateContext context) { Context = context; ModelConditionFlags = GetModelConditionFlags(context.Weapon.WeaponIndex); }
public ReloadingWeaponState(WeaponStateContext context) : base(context) { }
public BetweenShotsWeaponState(WeaponStateContext context) : base(context) { }
protected FixedDurationWeaponState(WeaponStateContext context) : base(context) { }