Ejemplo n.º 1
0
 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();
        }
Ejemplo n.º 4
0
        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);
        }