示例#1
0
        /**
         * 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;
            }
        }
示例#2
0
 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();
     }
 }