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); } }
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); }