public static string CompleteQuest(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"campaign.complete_active_quest [QuestName]\"."); } string questName = string.Join(" ", strings.ToArray()).Trim(new char[] { '"' }); QuestBase questBase = Campaign.Current.QuestManager.Quests.FirstOrDefault((QuestBase q) => q.Title.ToString().ToLower().Contains(questName.ToLower())); if (questBase == null) { return("Failed to find active quest with name \"" + questName + "\""); } MethodInfo method = questBase.GetType().GetMethod("CompleteQuestWithSuccess", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (method == null) { return("Failed to locate method."); } method.Invoke(questBase, null); return(string.Format("{0} has been completed.", questBase.Title)); }
public static string StartRevolt(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (!strings.Any() || CampaignCheats.CheckHelp(strings)) { return("Format is \"revolts.start [Settlement Name]\""); } var settlementName = strings.Aggregate((i, j) => i + " " + j); var settlement = Campaign.Current.Settlements.FirstOrDefault(s => string.Equals(s.Name.ToString(), settlementName, StringComparison.CurrentCultureIgnoreCase)); if (settlement == null) { return($"There is no Settlement \"{settlementName}\"."); } var settlementInfo = Managers.Settlement.Get(settlement); if (settlementInfo.HasRebellionEvent) { return($"{settlement.Name} has an running revolt."); } RevoltBehavior.StartRevolt(settlement); return($"Started a Revolt in {settlement.Name}."); }
public static string SpawnProp(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"mission.spawn_prop [PropId]\"."); } if (Mission.Current == null) { return("You are not in a mission."); } GameEntity gameEntity; if (Agent.Main == null) { MissionScreen missionScreen = ScreenManager.TopScreen as MissionScreen; if (missionScreen != null && missionScreen.CombatCamera != null) { gameEntity = GameEntity.Instantiate(Mission.Current.Scene, strings[0], missionScreen.CombatCamera.Frame); goto IL_99; } } gameEntity = GameEntity.Instantiate(Mission.Current.Scene, strings[0], Agent.Main.Frame); IL_99: if (gameEntity == null) { return("Failed to spawn prop with id \"" + strings[0] + "\""); } return("Spawned " + gameEntity.Name + "."); }
public static string ShowPlottingStatesOf(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (!strings.Any() || CampaignCheats.CheckHelp(strings)) { return("Format is \"civilwars.show_plotting_state_of [Kingdom Name]\""); } var kingdomName = strings.Aggregate((i, j) => i + " " + j); var kingdom = Campaign.Current.Kingdoms.FirstOrDefault(s => string.Equals(s.Name.ToString(), kingdomName, StringComparison.CurrentCultureIgnoreCase)); if (kingdom == null) { return($"There is no Kingdom \"{kingdomName}\"."); } var clanLeaders = (from clan in kingdom.Clans.Where(c => c.StringId != kingdom.Leader.StringId) select Managers.Character.Get(clan.Leader.CharacterObject) into clanLeader where clanLeader != null select $"{clanLeader.Character.Name} | {Enum.GetName(typeof(PlotState), clanLeader.PlotState)}").ToList(); return($"{clanLeaders.Aggregate((i, j) => i + Environment.NewLine + j)}"); }
public static string ShowLoyaltyOf(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (!strings.Any() || CampaignCheats.CheckHelp(strings)) { return("Format is \"revolutions.show_loyalty_of [Settlement Name]\""); } var settlementName = strings.Aggregate((i, j) => i + " " + j); var settlement = Campaign.Current.Settlements.FirstOrDefault(s => string.Equals(s.Name.ToString(), settlementName, StringComparison.CurrentCultureIgnoreCase)); if (settlement == null) { return($"There is no Settlement \"{settlementName}\"."); } if (!settlement.IsTown) { return($"Settlement \"{settlementName}\" is not a town."); } var settlementInfo = Managers.Settlement.Get(settlement); return($"{settlement.Name} is loyal to {settlementInfo.LoyalFaction.Name}."); }
public static string SetMainAgentHealth(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } int num; if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings) || !int.TryParse(strings[0], out num)) { return("Format is \"mission.set_main_agent_health [Integer]\"."); } if (Mission.Current == null) { return("You are not in a mission."); } if (Agent.Main == null) { return("No main agent found."); } if (num < 0) { num = 0; } if (num > 10000000) { num = 10000000; } if ((float)num > Agent.Main.HealthLimit) { Agent.Main.HealthLimit = (float)num; } Agent.Main.Health = (float)num; return(string.Format("Set main agent health to {0}", num)); }
public static string FillUp(List <string> strings) { if (Campaign.Current == null) { return("Campaign is null"); } if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"campaign.fill_up [Hero Name]\""); } switch (strings.Count) { case 1 when strings.Single().Trim() == "all": return(Utils.Handle(Utils.NpcHeros, Utils.FillUp)); case 2 when strings.First().Trim() == "all" && int.TryParse(strings.Last().Trim(), out var skillValue): return(Utils.Handle(Utils.NpcHeros, hero => Utils.FillUp(hero, skillValue))); default: if (int.TryParse(strings.Last().Trim(), out var skillValue2)) { return(Utils.Handle(strings, hero => Utils.FillUp(hero, skillValue2))); } return(Utils.Handle(strings, Utils.FillUp)); } }
public static string OpenScreen(List <string> strings) { if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"ui.open_screen [TypeName]\"."); } Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); Func <Type, bool> modify_by_why; modify_by_why = null; for (int i = 0; i < assemblies.Length; i++) { IEnumerable <Type> types = assemblies[i].GetTypes(); Func <Type, bool> predicate; if ((predicate = modify_by_why) == null) { predicate = (modify_by_why = ((Type t) => t.Name == strings[0])); } Type type = types.FirstOrDefault(predicate); if (type != null && type.BaseType == typeof(ScreenBase)) { MethodInfo methodInfo = typeof(ViewCreatorManager).GetMethods(BindingFlags.Static | BindingFlags.Public).FirstOrDefault((MethodInfo m) => m.Name == "CreateScreenView" && m.GetParameters().Length == 0); ScreenBase screenBase = ((methodInfo != null) ? methodInfo.MakeGenericMethod(new Type[] { type }).Invoke(null, null) : null) as ScreenBase; if (screenBase != null) { ScreenManager.PushScreen(screenBase); return("Pushed Screen " + type.Name + "."); } } } return("Could not find screen with name " + strings[0] + "."); }
private static string FormAlliance(List <string> strings) { if (!CampaignCheats.CheckCheatUsage(ref CampaignCheats.ErrorType)) { return(CampaignCheats.ErrorType); } if (!CampaignCheats.CheckParameters(strings, 2) || CampaignCheats.CheckHelp(strings)) { return("Format uses 2 kingdom ID parameters without spaces: diplomacy.form_alliance [Kingdom1] [Kingdom2]"); } var b1 = strings[0].ToLower(); var b2 = strings[1].ToLower(); if (b1 == b2) { return("Cannot ally a kingdom to itself!"); } Kingdom?kingdom1 = null; Kingdom?kingdom2 = null; foreach (var k in Kingdom.All) { var id = k.Name.ToString().ToLower().Replace(" ", ""); if (id == b1) { kingdom1 = k; } else if (id == b2) { kingdom2 = k; } } if (kingdom1 is null && kingdom2 is null) { return("Could not find either required kingdom!"); } if (kingdom1 is null) { return("1st kingdom ID not found: " + b1); } if (kingdom2 is null) { return("2nd kingdom ID not found: " + b2); } DeclareAllianceAction.Apply(kingdom1, kingdom2, bypassCosts: true); return($"Alliance formed between {kingdom1.Name} and {kingdom2.Name}!"); }
public static string Respec_1Hero(List <string> strings) { if (Campaign.Current == null) { return("Campaign is null"); } if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"campaign.respec_companion [Hero Name]\""); } return(Utils.Handle(strings, Utils.RespecHero)); }
public static string Age(List <string> strings) { if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return($"{FormatMsgHeader} \"dcc.age [{AgeText}]\"."); } if (!int.TryParse(strings[0], out int num)) { return(EnterAgeMsg.ToString()); } Hero.MainHero.BirthDay = HeroHelper.GetRandomBirthDayForAge(num); return(SuccessMsg.ToString()); }
public static string Age(List <string> strings) { if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return($"{FormatMsgHeader} \"dcc.age [{AgeText}]\"."); } if (!int.TryParse(strings[0], out int num)) { return(EnterAgeMsg.ToString()); } CharacterBodyManager.ResetBirthDayForAge(Hero.MainHero.CharacterObject, num, true); return(SuccessMsg.ToString()); }
public static string Age(List <string> strings) { if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"dcc.age [Age]\"."); } int num = 1; if (!int.TryParse(strings[0], out num)) { return("Please enter a age"); } Hero.MainHero.BirthDay = HeroHelper.GetRandomBirthDayForAge((float)num); return("Success"); }
public static string ShowLuckyNations(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (strings.Any() || CampaignCheats.CheckHelp(strings)) { return("Format is \"revolts.show_lucky_nations\""); } var luckyNations = Managers.Kingdom.Infos.Where(i => i.LuckyNation).Select(info => info.Kingdom.Name.ToString()).ToList(); return(luckyNations.Count == 0 ? "There are no Lucky Nations!" : $"{luckyNations.Aggregate((i, j) => i + Environment.NewLine + j)}"); }
public static string FormAlliance(List <string> strings) { if (!CampaignCheats.CheckCheatUsage(ref CampaignCheats.ErrorType)) { return(CampaignCheats.ErrorType); } if (!CampaignCheats.CheckParameters(strings, 2) || CampaignCheats.CheckHelp(strings)) { return("Format is faction names without space \"campaign.form_alliance [Faction1] [Faction2]\"."); } string b = strings[0].ToLower(); string b2 = strings[1].ToLower(); Kingdom faction = null; Kingdom faction2 = null; foreach (Kingdom faction3 in Campaign.Current.Kingdoms) { string a = faction3.Name.ToString().ToLower().Replace(" ", ""); if (a == b) { faction = faction3; } else if (a == b2) { faction2 = faction3; } } if (faction != null && faction2 != null) { DeclareAllianceAction.Apply(faction as Kingdom, faction2 as Kingdom, bypassCosts: true); return(string.Concat(new object[] { "Alliance declared between ", faction.Name, " and ", faction2.Name })); } if (faction == null) { return("Faction is not found: " + faction); } return("Faction is not found: " + faction2); }
public static string AgeHero(List <string> strings) { if (!CampaignCheats.CheckParameters(strings, 2) || CampaignCheats.CheckHelp(strings)) { return($"{FormatMsgHeader.ToString()} \"dcc.age_hero [{HeroNameText.ToString()}] [{AgeText.ToString()}]\"."); } Hero hero = CampaignCheats.GetHero(strings[0].Replace('_', ' ')); if (hero == null) { return(HeroNotFoundMsg.ToString()); } if (!int.TryParse(strings[1], out int num)) { return(EnterAgeMsg.ToString()); } hero.BirthDay = HeroHelper.GetRandomBirthDayForAge(num); return(SuccessMsg.ToString()); }
public static string AgeHero(List <string> strings) { if (!CampaignCheats.CheckParameters(strings, 2) || CampaignCheats.CheckHelp(strings)) { return($"{FormatMsgHeader} \"dcc.age_hero [{HeroNameText}] [{AgeText}]\"."); } Hero hero = CampaignCheats.GetHero(strings[0].Replace('_', ' ')); if (hero == null) { return(HeroNotFoundMsg.ToString()); } if (!int.TryParse(strings[1], out int num)) { return(EnterAgeMsg.ToString()); } CharacterBodyManager.ResetBirthDayForAge(hero.CharacterObject, num, true); return(SuccessMsg.ToString()); }
public static string AgeHero(List <string> strings) { if (!CampaignCheats.CheckParameters(strings, 2) || CampaignCheats.CheckHelp(strings)) { return("Format is \"dcc.age_hero [HeroName] [Age]\"."); } Hero hero = CampaignCheats.GetHero(strings[0].Replace('_', ' ')); if (hero == null) { return("Hero is not found"); } int num; if (!int.TryParse(strings[1], out num)) { return("Please enter a age"); } hero.BirthDay = HeroHelper.GetRandomBirthDayForAge((float)num); return("Success"); }
public static string CancelQuest(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (CampaignCheats.CheckParameters(strings, 0) || CampaignCheats.CheckHelp(strings)) { return("Format is \"campaign.cancel_active_quest [QuestName]\"."); } string questName = string.Join(" ", strings.ToArray()).Trim(new char[] { '"' }); QuestBase questBase = Campaign.Current.QuestManager.Quests.FirstOrDefault((QuestBase q) => q.Title.ToString().ToLower().Contains(questName.ToLower())); if (questBase == null) { return("Failed to find active quest with name \"" + questName + "\""); } questBase.CompleteQuestWithCancel(null); return(string.Format("{0} has been cancelled.", questBase.Title)); }
public static string ShowPlottingStatesOf(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (strings.Count() < 1 || CampaignCheats.CheckHelp(strings)) { return("Format is \"civilwars.show_plotting_state_of [Kingdom Name]\""); } var kingdomName = strings.Aggregate((i, j) => i + " " + j); var kingdom = Campaign.Current.Kingdoms.FirstOrDefault(s => s.Name.ToString().ToLower() == kingdomName.ToLower()); if (kingdom == null) { return($"There is no Kingdom \"{kingdomName}\"."); } var clanLeaders = new List <string>(); foreach (var clan in kingdom.Clans.Where(c => c.StringId != kingdom.Leader.StringId)) { var clanLeader = Managers.Character.Get(clan.Leader.CharacterObject); if (clanLeader == null) { continue; } clanLeaders.Add($"{clanLeader.Character.Name} | {Enum.GetName(typeof(PlotState), clanLeader.PlotState)}"); } return($"{clanLeaders.Aggregate((i, j) => i + Environment.NewLine + j)}"); }
public static string EndRevolt(List <string> strings) { if (Campaign.Current == null) { return("Campaign was not started."); } if (strings.Count < 2 || !strings.Contains("-s") || !strings.Contains("-w") || CampaignCheats.CheckHelp(strings)) { return("Format is \"revolts.end -s [Settlement Name] -w [Win (true|false)]\""); } var aggregatedString = strings.Aggregate((i, j) => i + " " + j); const int settlementNameIndex = 3; var winIndex = aggregatedString.IndexOf("-w ", StringComparison.Ordinal) + 3; var settlementName = aggregatedString.Substring(settlementNameIndex, winIndex - 7); var settlement = Campaign.Current.Settlements.FirstOrDefault(s => string.Equals(s.Name.ToString(), settlementName, StringComparison.CurrentCultureIgnoreCase)); if (settlement == null) { return($"There is no Settlement \"{settlementName}\"."); } var revolt = Managers.Revolt.GetRevoltBySettlement(settlement); if (revolt == null) { return($"{settlementName} is not conflicted in a revolt."); } if (!bool.TryParse(aggregatedString.Substring(winIndex, aggregatedString.Length - winIndex), out var isWin)) { return("Format is \"Revolts.end_Revolt -s [Settlement Name] -w [Win (true|false)]\"."); } if (isWin) { RevoltBehavior.EndSucceededRevolt(revolt); } else { RevoltBehavior.EndFailedRevolt(revolt); } return($"Ended a {(isWin ? "successful" : "failed")} Revolt in {settlement.Name}."); }
static bool Prefix(ArmyManagementVM __instance, MBBindingList <ArmyManagementItemVM> ____partiesToRemove, Action ____onClose) { // Only enable this hack if it is enabled and player is independent // THIS IS A PORT OF ArmyManagementVM.ExecuteDone! if (!Hero.MainHero.MapFaction.IsKingdomFaction && Settings.Instance.CreatePlayerKingdom) { int num = __instance.PartiesInCart.Sum <ArmyManagementItemVM>((Func <ArmyManagementItemVM, int>)(P => P.Cost)); bool flag1 = num <= 0 || (double)num <= (double)Hero.MainHero.Clan.Influence; if (flag1 && __instance.NewCohesion > __instance.Cohesion) { var foo = __instance.GetType().GetMethod("ApplyCohesionChange", System.Reflection.BindingFlags.NonPublic); foo.Invoke(__instance, null); } if (__instance.PartiesInCart.Count > 1 & flag1 /* && MobileParty.MainParty.MapFaction.IsKingdomFaction*/) { if (MobileParty.MainParty.Army == null) { string err = ""; if (!CampaignCheats.CheckCheatUsage(ref err)) { InformationMessage im = new InformationMessage(err); InformationManager.DisplayMessage(im); return(false); } if ((MobileParty.MainParty.MapFaction as Kingdom) is null) { CampaignCheats.CreatePlayerKingdom(new List <string>()); } ((Kingdom)MobileParty.MainParty.MapFaction).CreateArmy(Hero.MainHero, (IMapPoint)Hero.MainHero.HomeSettlement, Army.ArmyTypes.Patrolling); } foreach (ArmyManagementItemVM managementItemVm in (Collection <ArmyManagementItemVM>)__instance.PartiesInCart) { if (managementItemVm.Party != MobileParty.MainParty) { managementItemVm.Party.Army = MobileParty.MainParty.Army; SetPartyAiAction.GetActionForEscortingParty(managementItemVm.Party, MobileParty.MainParty); managementItemVm.Party.IsJoiningArmy = true; } } Hero.MainHero.Clan.Influence -= (float)num; } if (____partiesToRemove.Count > 0) { bool flag2 = false; foreach (ArmyManagementItemVM managementItemVm in (Collection <ArmyManagementItemVM>)____partiesToRemove) { if (managementItemVm.Party == MobileParty.MainParty) { managementItemVm.Party.Army = (Army)null; flag2 = true; } } if (!flag2) { foreach (ArmyManagementItemVM managementItemVm in (Collection <ArmyManagementItemVM>)____partiesToRemove) { Army army = MobileParty.MainParty.Army; if ((army != null ? (army.Parties.Contains(managementItemVm.Party) ? 1 : 0) : 0) != 0) { managementItemVm.Party.Army = (Army)null; } } } ____partiesToRemove.Clear(); } if (flag1) { ____onClose(); CampaignEventDispatcher.Instance.OnArmyOverlaySetDirty(); } else { InformationManager.AddQuickInformation(new TextObject("{=Xmw93W6a}Not Enough Influence")); } //int num = __instance.PartiesInCart.Sum<ArmyManagementItemVM>((Func<ArmyManagementItemVM, int>)(P => P.Cost)); //bool flag1 = (double)num <= (double)Hero.MainHero.Clan.Influence; //if (flag1 && __instance.NewCohesion > __instance.Cohesion) //{ // if (MobileParty.MainParty.Army == null) // return false; // ArmyManagementCalculationModel calculationModel = Campaign.Current.Models.ArmyManagementCalculationModel; // int num1 = __instance.NewCohesion - __instance.Cohesion; // Army army = MobileParty.MainParty.Army; // double num2 = (double)num1; // int totalInfluenceCost = calculationModel.CalculateTotalInfluenceCost(army, (float)num2); // MobileParty.MainParty.Army.BoostCohesionWithInfluence((float)num1, totalInfluenceCost); //} //if (__instance.PartiesInCart.Count > 1 & flag1/* && MobileParty.MainParty.MapFaction.IsKingdomFaction*/) //{ // if (MobileParty.MainParty.Army == null) // { // string err = ""; // if (!CampaignCheats.CheckCheatUsage(ref err)) // { // InformationMessage im = new InformationMessage(err); // InformationManager.DisplayMessage(im); // return false; // } // if ((MobileParty.MainParty.MapFaction as Kingdom) is null) // CampaignCheats.CreatePlayerKingdom(new List<string>()); // ((Kingdom)MobileParty.MainParty.MapFaction).CreateArmy(Hero.MainHero, (IMapPoint)Hero.MainHero.HomeSettlement, Army.ArmyTypes.Patrolling); // } // foreach (ArmyManagementItemVM managementItemVm in (Collection<ArmyManagementItemVM>)__instance.PartiesInCart) // { // if (managementItemVm.Party != MobileParty.MainParty) // { // managementItemVm.Party.Army = MobileParty.MainParty.Army; // SetPartyAiAction.GetActionForEscortingParty(managementItemVm.Party, MobileParty.MainParty); // managementItemVm.Party.IsJoiningArmy = true; // } // } // Hero.MainHero.Clan.Influence -= (float)num; //} //if (____partiesToRemove.Count > 0) //{ // bool flag2 = false; // foreach (ArmyManagementItemVM managementItemVm in (Collection<ArmyManagementItemVM>)____partiesToRemove) // { // if (managementItemVm.Party == MobileParty.MainParty) // { // managementItemVm.Party.Army = (Army)null; // flag2 = true; // } // } // if (!flag2) // { // foreach (ArmyManagementItemVM managementItemVm in (Collection<ArmyManagementItemVM>)____partiesToRemove) // { // Army army = MobileParty.MainParty.Army; // if ((army != null ? (army.Parties.Contains(managementItemVm.Party) ? 1 : 0) : 0) != 0) // managementItemVm.Party.Army = (Army)null; // } // } // ____partiesToRemove.Clear(); //} //if (flag1) // ____onClose(); //else // InformationManager.AddQuickInformation(new TextObject("{=Xmw93W6a}Not Enough Influence", (Dictionary<string, TextObject>)null), 0, (BasicCharacterObject)null, ""); return(false); } return(true); }