/** * Creates a new social game results screen (no choice because not player initing * @param game_player the game starter * @param game_victim the other player * @param social_game the game to be played */ public EngineStateSocialGame(int game_player, int game_victim, SGame social_game) : base(EngineManager.Engine) { sim_won = false; game_played = false; player = game_player; victim = game_victim; key_pressed = true; results_screen = false; quit = false; cursor = 0; stats_page = 0; stats = new List<string>(); if (!(player == -1 || victim == -1 || social_game == null)) { possible_games = new List<SGame>(); game = social_game; game.run(player, victim, stats); if (game.ssR.Count > 0 && SocialStatusRules.singleton.getSocialStatusRule(game.ssR[0]).type == SocialStatusRule.TYPE_END_GAME) { sim_won = true; } } else { quit = true; key_pressed = false; possible_games = new List<SGame>(); game = null; } }
public override void update(GameTime gameTime) { if (!key_pressed && InputSet.getInstance().getButton(InputsEnum.BUTTON_4)) { if (game == null && cursor < possible_games.Count-1) { game = possible_games[cursor]; stats.Clear(); stats_page = 0; game.run(player, victim, stats); game_played = true; } else if ((results_screen || cursor == possible_games.Count-1) && !sim_won) { quit = true; } else { results_screen = true; } key_pressed = true; } else if (key_pressed && InputSet.getInstance().getLeftDirectionalX() == 0 && !InputSet.getInstance().getButton(InputsEnum.BUTTON_4) && InputSet.getInstance().getLeftDirectionalY() == 0) { key_pressed = false; } if (game == null) { if (!key_pressed && InputSet.getInstance().getLeftDirectionalY() > 0 && cursor > 0) { cursor--; key_pressed = true; } else if (!key_pressed && InputSet.getInstance().getLeftDirectionalY() < 0 && cursor < possible_games.Count - 1) { cursor++; key_pressed = true; } else if (!key_pressed && InputSet.getInstance().getLeftDirectionalX() < 0 && stats_page > 0) { stats_page--; key_pressed = true; } else if (!key_pressed && InputSet.getInstance().getLeftDirectionalX() > 0 && stats_page < stats.Count/(PAGE_SIZE+1)) { stats_page++; key_pressed = true; } } else if (results_screen) { if (!key_pressed && InputSet.getInstance().getLeftDirectionalX() < 0 && stats_page > 0) { stats_page--; key_pressed = true; } else if (!key_pressed && InputSet.getInstance().getLeftDirectionalX() > 0 && stats_page < stats.Count / (PAGE_SIZE + 1)) { stats_page++; key_pressed = true; } } if (quit && !key_pressed) { EngineManager.popState(); } }