static bool Prefix(ClanVM __instance) { try { if (Clan.PlayerClan.IsUnderMercenaryService) { InformationManager.ShowInquiry(new InquiryData("Ending Mercenary Contract", $"Your mercenary contract will end and you will no longer be affiliated with {Clan.PlayerClan.Kingdom.Name.ToString()}.", true, true, new TextObject("{=5Unqsx3N}Confirm").ToString(), GameTexts.FindText("str_cancel").ToString(), () => { ChangeKingdomAction.ApplyByLeaveKingdomAsMercenaryForNoPayment(Clan.PlayerClan, Clan.PlayerClan.Kingdom); __instance.ClanIsInAKingdom = (Clan.PlayerClan.Kingdom != null); __instance.UpdateBannerVisuals(); }, null)); return(false); } } catch (Exception ex) { MessageBox.Show($"An error occurred in the leaving Kingdom as mercenary fix:\n\n{ex.ToStringFull()}"); } return(true); }
public RecruiterHook(UIContext context) : base(context) { if (ScreenManager.TopScreen is GauntletClanScreen) { GauntletClanScreen screen = (GauntletClanScreen)ScreenManager.TopScreen; ClanVM clanVM = (ClanVM)screen.GetField("_dataSource"); foreach (PartyBase recruiter in Hero.MainHero.OwnedParties.Where(party => party.Name.ToString().EndsWith("Recruiter"))) { ClanPartyItemVM partyItem = new ClanPartyItemVM(recruiter, null, null); partyItem.PartyLocationText = "Travelling to " + recruiter.MobileParty.TargetSettlement; partyItem.PartyMoraleText = recruiter.MobileParty.PartyTradeGold + "G"; clanVM.ClanParties.Garrisons.Add(partyItem); } } }