public List <TextObject> CanApplyExceptions(KingdomDiplomacyItemVM item, bool forcePlayerCharacterCosts = true, bool bypassCosts = false) { List <TextObject> textObjects = AllConditions.Select((condition) => { condition.ApplyCondition(item.Faction1 as Kingdom, item.Faction2 as Kingdom, out TextObject textObject, forcePlayerCharacterCosts, bypassCosts); return(textObject); }).OfType <TextObject>().ToList(); return(textObjects); }
public List <TextObject> CanApplyExceptions(KingdomDiplomacyItemVM item, bool forcePlayerCosts = true, bool bypassCosts = false) { return(Conditions .Select(c => { c.ApplyCondition((Kingdom)item.Faction1, (Kingdom)item.Faction2, out var txt, forcePlayerCosts, bypassCosts); return txt; }) .OfType <TextObject>() .ToList()); }
private static void UpdateDiplomacyProperties(KingdomDiplomacyItemVM __instance, ref IFaction ____playerKingdom, ref IFaction ___Faction1, ref IFaction ___Faction2, ref string ____faction2Name) { StanceLink stanceWith = ____playerKingdom.GetStanceWith(___Faction2); if (stanceWith.IsNeutral) { var days = (int)stanceWith.PeaceDeclarationDate.ElapsedDaysUntilNow; if (stanceWith.GetDailyTributePaid(____playerKingdom) != 0) { var paid = -stanceWith.GetDailyTributePaid(____playerKingdom); __instance.Faction2Name = $"{___Faction2.Name.ToString()}({paid}$/d)({days}d)"; } else { __instance.Faction2Name = ___Faction2.Name.ToString() + (days < 10000 ? $"({days}d)" : ""); } } else { var days = (int)stanceWith.WarStartDate.ElapsedDaysUntilNow; __instance.Faction2Name = ___Faction2.Name.ToString() + (days < 10000 ? $"({days}d)" : ""); } }
private void OnDiplomacyItemSelection(KingdomDiplomacyItemVM item) { this._onSelectionMethodInfo.Invoke(this as KingdomDiplomacyVM, new object[] { item }); }
private void BreakAlliance(KingdomDiplomacyItemVM item) { BreakAllianceAction.Apply(item.Faction1 as Kingdom, item.Faction2 as Kingdom); RefreshDiplomacyList(); RefreshAlliances(); }