예제 #1
0
        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());
 }
예제 #3
0
        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();
 }