예제 #1
0
 public void AssignHeirIfNone(RoyalTitleDef t, Faction faction)
 {
     if (!heirs.ContainsKey(faction) && t.Awardable && pawn.FactionOrExtraHomeFaction != Faction.Empire)
     {
         SetHeir(t.GetInheritanceWorker(faction).FindHeir(faction, pawn, t), faction);
     }
 }
예제 #2
0
        public static bool TryInherit(this RoyalTitleDef title, Pawn from, Faction faction, out RoyalTitleInheritanceOutcome outcome)
        {
            outcome = default(RoyalTitleInheritanceOutcome);
            if (title.GetInheritanceWorker(faction) == null)
            {
                return(false);
            }
            Pawn heir = from.royalty.GetHeir(faction);

            if (heir == null || heir.Destroyed)
            {
                return(false);
            }
            RoyalTitleDef currentTitle    = heir.royalty.GetCurrentTitle(faction);
            bool          heirTitleHigher = currentTitle != null && currentTitle.seniority >= title.seniority;

            outcome = new RoyalTitleInheritanceOutcome
            {
                heir             = heir,
                heirCurrentTitle = currentTitle,
                heirTitleHigher  = heirTitleHigher
            };
            return(true);
        }