public TowerBase(TowerSettings settings, GameLevelTime gameLevelTime, InputManager inputManager, GameLevel gameLevel) { _shootLimiter = new GameLevelActionLimiter(gameLevelTime, settings.ShootFrequency); Settings = settings; _inputManager = inputManager; _gameLevel = gameLevel; }
public void GameLevelActionLimiter_TwoRequests_TimeNotStarted() { var time = new GameLevelTime(); var limiter = new GameLevelActionLimiter(time, TimeSpan.FromSeconds(1)); Assert.IsTrue(limiter.CanDoStuff()); limiter.DoingIt(); Assert.IsFalse(limiter.CanDoStuff()); limiter.DoingIt(); }
public async Task GameLevelActionLimiter_TwoRequests_TimeStarted() { var time = new GameLevelTime(); var limiter = new GameLevelActionLimiter(time, TimeSpan.FromMilliseconds(100)); time.Start(); Assert.IsTrue(limiter.CanDoStuff()); limiter.DoingIt(); await Task.Delay(TimeSpan.FromMilliseconds(200)); Assert.IsTrue(limiter.CanDoStuff()); limiter.DoingIt(); }
public TowerBase(TowerSettings settings, GameLevelTime gameLevelTime, GameLevel gameLevel, GraphicsTracker graphicsTracker, SpriteSheets spriteSheets, InputManager inputManager) { _shootLimiter = new GameLevelActionLimiter(gameLevelTime, settings.ShootFrequency); Settings = settings; _gameLevel = gameLevel; _graphicsTracker = graphicsTracker; _inputManager = inputManager; // TODO: Create sprite without direction. var spr = new SpriteWithDirections { Sprites = new Dictionary <SpriteDirectionEnum, SpriteDetails> { { SpriteDirectionEnum.BottomLeft, spriteSheets.GetSprite(SpriteEnum.Tower) }, { SpriteDirectionEnum.BottomRight, spriteSheets.GetSprite(SpriteEnum.Tower) }, { SpriteDirectionEnum.TopLeft, spriteSheets.GetSprite(SpriteEnum.Tower) }, { SpriteDirectionEnum.TopRight, spriteSheets.GetSprite(SpriteEnum.Tower) } } }; _sprite = new SpriteWithDirectionsRenderer(spr); }