public bool CanDoStuff() { TimeSpan now = _time.GetCurrent(); _lastCanDo = now; return(_lastAction + _frequency < now); }
public override void Render(BufferedGraphics g) { // clearing screen g.Graphics.DrawImage(_background, 0, 0); if (_gameState == GameState.Won) { g.Graphics.DrawString("Wow. You won.", new Font("monospace", 20), new SolidBrush(Color.Blue), 300, 270); return; } else if (_gameState == GameState.Lost) { g.Graphics.DrawString("You noob. You lost. Again.", new Font("monospace", 20), new SolidBrush(Color.Blue), 300, 270); return; } foreach (EnemyBase monster in CurrentMonsters) { monster.Render(g); } foreach (TowerBase tower in _towers) { tower.Render(g); } // Show pause info. if (_gameState == GameState.Paused) { g.Graphics.DrawString("! PAUSED !", new Font("monospace", 20), new SolidBrush(Color.Blue), 300, 270); g.Graphics.DrawString($"space - pause{Environment.NewLine}1 - new tower (click to place)", new Font("monospace", 10), new SolidBrush(Color.Blue), 370, 500); } g.Graphics.DrawString($"{_time.GetCurrent()}", new Font("monospace", 10), new SolidBrush(Color.Blue), 10, 0); g.Graphics.DrawString($"${_resources.Amount}", new Font("monospace", 10), new SolidBrush(Color.Blue), 700, 20); }
public bool SpawnEnemy() { TimeSpan nao = _time.GetCurrent(); bool isFirstSpawn = _lastSpawn == TimeSpan.MinValue; // Spawn enemy if no enemy was spawned yet or if the time since last spawn is long enough. bool shouldSpawnEnemy = _lastSpawn + _spawnFrequency <= nao || isFirstSpawn; if (shouldSpawnEnemy) { _lastSpawn = nao; } return(shouldSpawnEnemy); }
public override void Render(BufferedGraphics g) { // Clearing the screen. g.Graphics.FillRectangle(_fontsAndColors.BackgroundBrush, _graphicsTracker.DisplayRectangle); // Drawing the map using tiles. _gameMapOverlay.Render(g); foreach (Enemy enemyNew in CurrentEnemiesNew) { enemyNew.Render(g); } // Draw all towers. foreach (TowerBase tower in _towers) { tower.Render(g); } _towerBeingPlaced?.Render(g); // Some extra info depending on the game state. switch (_gameState) { case GameState.Won: g.Graphics.DrawString("Wow. You won.", _fontsAndColors.MonospaceFont, _fontsAndColors.BlueBrush, _graphicsTracker.DisplayRectangle, _stringFormatCenter); return; case GameState.Lost: g.Graphics.DrawString("You noob. You lost. Again.", _fontsAndColors.MonospaceFont, _fontsAndColors.BlueBrush, _graphicsTracker.DisplayRectangle, _stringFormatCenter); return; case GameState.Paused: // Show pause info. g.Graphics.DrawString("! PAUSED !", _fontsAndColors.MonospaceFont, _fontsAndColors.BlueBrush, _graphicsTracker.DisplayRectangle, _stringFormatCenter); g.Graphics.DrawString($"space - pause{Environment.NewLine}1 - new tower (click to place)", _fontsAndColors.MonospaceFontSmaller, _fontsAndColors.BlueBrush, 370, 500); break; } // Draw time and resources. g.Graphics.DrawString($"{_time.GetCurrent()}", _fontsAndColors.MonospaceFontSmaller, _fontsAndColors.BlueBrush, 10, 0); g.Graphics.DrawString($"${_resources.Amount}", _fontsAndColors.MonospaceFontSmaller, _fontsAndColors.BlueBrush, _graphicsTracker.DisplayRectangle.Width - 100, 20); }