//все ходы исполненны 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; } }