public GameManager(GameForm gameForm, string playerName, bool isHost, string ip, int port) { this.gameForm = gameForm; if (isHost) { IsHost = isHost; gameNetworkManager = new GameServer(port); randomSeed = (int)DateTime.Now.Ticks; gameNetworkManager.enqueueMsg(NetworkMsgPrefix.SetSeed, GameNetworkUtilities.serializeRandomSeed(randomSeed)); } else { gameNetworkManager = new GameClient(ip, port); } grid = new Grid(GRID_WIDTH, GRID_HEIGHT, (int)((gameForm.Width - (Tile.WIDTH * GRID_WIDTH)) / 3), (int)((gameForm.Height - (Tile.HEIGHT * GRID_HEIGHT)) / 3) + 30, this); TeamBlue = new List <Character>(); TeamRed = new List <Character>(); Player = new Player(playerName, true); otherPlayers = new List <Player>(); playersLeaderBoard = new PlayersLeaderBoard(Player); CharShop = new CharShop(gameForm, this); spellShop = new Shop(gameForm, this, gameNetworkManager); stageTimer = new StageTimer(this); stageManager = new StageManager(stageTimer, TeamBlue, TeamRed, grid, Player, playersLeaderBoard, CharShop, this, gameNetworkManager); stageTimer.switchStageEvent += stageManager.switchStage; stopwatch = new Stopwatch(); timer = new Timer { Interval = GAMELOOP_INTERVAL }; timer.Tick += new EventHandler(gameLoop); }
public StageManager(StageTimer stageTimer, List <Character> teamBlue, List <Character> teamRed, Grid grid, Player player, PlayersLeaderBoard playersLeaderBoard, CharShop charShop, GameManager gameManager, GameNetworkManager gameNetworkManager) { this.stageTimer = stageTimer; this.teamBlue = teamBlue; this.teamRed = teamRed; this.grid = grid; this.player = player; this.playersLeaderBoard = playersLeaderBoard; this.charShop = charShop; this.gameManager = gameManager; this.gameNetworkManager = gameNetworkManager; charactersPrevPos = new Dictionary <Character, Tile>(); CurrentGameStage = GameStage.Buy; CurrentRound = 1; }
public void updatePaint(PaintEventArgs e) { e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; grid.draw(e.Graphics); TeamBlue.ForEach(character => character.draw(e.Graphics)); TeamRed.ForEach(character => character.draw(e.Graphics)); stageTimer.draw(e.Graphics); Player.draw(e.Graphics); e.Graphics.DrawString("Round: " + stageManager.CurrentRound, new Font("Roboto", 12, FontStyle.Bold), Brushes.Black, 800, 15); playersLeaderBoard.draw(e.Graphics); CharShop.draw(e.Graphics); if (false) { grid.drawDebug(e.Graphics); TeamBlue.ForEach(character => character.drawDebug(e.Graphics)); TeamRed.ForEach(character => character.drawDebug(e.Graphics)); } }