/// <summary> /// Registered method to GameFlowManager's OnGameStateChange event. /// </summary> /// <param name="oldState">The previous game state.</param> /// <param name="newState">The current game state.</param> void OnGameStateChange(GameFlowManager.GameState oldState, GameFlowManager.GameState newState) { if (oldState == GameFlowManager.GameState.MENU && newState == GameFlowManager.GameState.TRANSITION) { RangedAttack = new DefaultRangedAttack(_projectile, _startingAttackSpeed, _startingArrowSpeed); } if (oldState == GameFlowManager.GameState.TRANSITION && newState == GameFlowManager.GameState.MENU) { Clean(); } }
public DoubleShotAttack(IRangedAttack rangedAttack) : base(rangedAttack) { _secondAttackTimer = 0f; }
public TripleShotAttack(IRangedAttack rangedAttack) : base(rangedAttack) { }
/// <summary> /// Constructor. /// </summary> /// <param name="rangedAttack">The ranged attack logic which will be decorated.</param> public RangedAttackDecorator(IRangedAttack rangedAttack) { _rangedAttack = rangedAttack; }