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