Пример #1
0
        //все ходы исполненны
        static private void NextStage(Game game)
        {
            Step     lastStep = game.HomeSteps.Last(p => p.StepType != "Default");
            GameUser user     = lastStep.GameUser1;

            switch (lastStep.StepType)
            {
            case "Замысел":
            {
                ClearEmptyOrder(game);

                GameUser ravenGameUser = game.HomeUsersSL.Single(p => p.LastStep.GameUserInfo.RavenInfluence == 1);
                Step     newStep       = ravenGameUser.LastStep.CopyStep("Посыльный_ворон", false);
                newStep.NewRaven();
                newStep.NewMessage("dynamic_planning*stepType_Посыльный_ворон");
                break;
            }

            case "Посыльный_ворон":
            case "Неожиданный_шаг":
            case "Разведка_за_стеной":
            case "Набег":
                GameHost.NewDoStep(game, game.DbContext.DoType.Single(p => p.Sort == 0));
                break;

            case "dragon_Rodrik_the_Reader":
            case "dragon_Ser_Gerris_Drinkwater":
            case "dragon_Reek":
            case "dragon_Ser_Ilyn_Payne":
            case "dragon_Melisandre":
            case "dragon_Jon_Snow":
            case "Робб_Старк":
            case "Ренли_Баратеон":
            case "Серсея_Ланнистер":
            case "Пестряк":
            case "Отступление":
            case "Поход":
                GameHost.NewDoStep(game, game.DbContext.DoType.Single(p => p.Sort == 1));
                break;

            case "Усиление_власти_Вестерос":
                if (lastStep.GameUserInfo.Order.Count != 0)
                {
                    Step newStep = lastStep.CopyStep("Усиление_власти_Вестерос", false);
                    newStep.NewMessage("dynamic_planning*stepType_Усиление_власти_Вестерос");
                }
                else
                {
                    game.NewSbor();
                }
                break;

            case "Усиление_власти":
                GameHost.NewDoStep(game, game.DbContext.DoType.Single(p => p.Sort == 2));
                break;

            case "Роспуск_войск":
                switch (lastStep.March.SourceOrder)
                {
                //Захват порта с автороспуском войск (предел количества типов)
                case "Захват_порта":
                    GameHost.NewDoStep(game, game.DbContext.DoType.Single(p => p.Sort == 1));
                    break;
                }
                break;

            case "Подмога":
                UpdateSupport(game);
                break;

            case "Сражение":
            case "Тирион_Ланнистер":
            case "Эйерон_Сыровласый":
            case "dragon_Qyburn":
            case "Доран_Мартелл":
            case "Королева_Шипов":
            case "Валирийский_меч":
            case "dragon_Aeron_Damphair":
                game.GameInfo.Battle.UpdateBattle();
                break;

            case "Борьба_за_влияние":
                if (UpdateVoting(game, lastStep.Voting.Target))
                {
                    game.NextVoting(lastStep.Voting.Target);
                }
                break;
            }
        }