public HUD(Group players) : base() { scoreBoardBackground = new Sprite(0, 0); scoreBoardBackground.loadGraphic("scoreBoardBackground", SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT); scoreBoardBackground.x = (PlayState.ARENA_WIDTH - SCOREBOARD_WIDTH) / 2; scoreBoardBackground.y = -SCOREBOARD_HEIGHT - SCOREBOARD_OFFSET; scoreBoardBackground.color = Color.White; add(scoreBoardBackground); scoreBoard = new Sprite(0, 0); scoreBoard.loadGraphic("scoreBoard", SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT); scoreBoard.x = (PlayState.ARENA_WIDTH - SCOREBOARD_WIDTH) / 2; scoreBoard.y = -SCOREBOARD_HEIGHT - SCOREBOARD_OFFSET; scoreBoard.color = new Color(0x3a, 0xc3, 0x83); add(scoreBoard); players.Each<Player>((player) => { HealthBar healthBar = new HealthBar(player, scoreBoard); Sprite controllerIcon = new Sprite( healthBar.x + (player.onLeft ? -ICON_OFFSET_X : HealthBar.BAR_WIDTH + ICON_OFFSET_X - ICON_SIZE), healthBar.y + ICON_OFFSET_Y); controllerIcon.loadGraphic("controllerIcon", ICON_SIZE, ICON_SIZE); controllerIcon.color = scoreBoard.color; controllerIcon.sheetOffset.X = controllerIcon.GraphicWidth * (int)player.playerIndex; add(healthBar); add(controllerIcon); }); add(new Timer(scoreBoard.color)); for(int i = 1; i <= GameTracker.RoundsToWin; i++) { add(new RoundMarker( PlayState.ARENA_WIDTH/2 - 8 - ROUND_MARKER_OFFSET_X - (i * ROUND_MARKER_SPACING), scoreBoard.y + ROUND_MARKER_OFFSET_Y, GameTracker.RoundsWon[Team.Left] >= i, scoreBoard.color)); add(new RoundMarker( PlayState.ARENA_WIDTH/2 + ROUND_MARKER_OFFSET_X + (i * ROUND_MARKER_SPACING), scoreBoard.y + ROUND_MARKER_OFFSET_Y, GameTracker.RoundsWon[Team.Right] >= i, scoreBoard.color)); } z = HUGE_Z; }