public bool IsViolatingRulesOf(Faction faction, int violationSourceLevel = -1) { return(ThingRequiringRoyalPermissionUtility.IsViolatingRulesOf(base.Def, parent.pawn, faction, (violationSourceLevel == -1) ? GetImplantLevel(parent) : violationSourceLevel)); }
public static TaggedString CheckForViolations(Pawn pawn, HediffDef hediff, int levelOffset) { if (levelOffset < 0) { return(""); } if (pawn.Faction != Faction.OfPlayer || !hediff.HasComp(typeof(HediffComp_RoyalImplant))) { return(""); } Hediff_ImplantWithLevel hediff_ImplantWithLevel = (Hediff_ImplantWithLevel)pawn.health.hediffSet.hediffs.FirstOrDefault((Hediff h) => h.def == hediff); int num = (levelOffset != 0 && hediff_ImplantWithLevel != null) ? (hediff_ImplantWithLevel.level + levelOffset) : 0; foreach (Faction item in Find.FactionManager.AllFactionsListForReading) { if (pawn.Faction != null && !item.def.hidden && !item.HostileTo(Faction.OfPlayer) && ThingRequiringRoyalPermissionUtility.IsViolatingRulesOf(hediff, pawn, item, num)) { RoyalTitleDef minTitleForImplant = item.GetMinTitleForImplant(hediff, num); HediffCompProperties_RoyalImplant hediffCompProperties_RoyalImplant = hediff.CompProps <HediffCompProperties_RoyalImplant>(); string arg = hediff.label + ((num == 0) ? "" : (" (" + num + "x)")); TaggedString taggedString = hediffCompProperties_RoyalImplant.violationTriggerDescriptionKey.Translate(pawn.Named("PAWN")); TaggedString t = "RoyalImplantIllegalUseWarning".Translate(pawn.Named("PAWN"), arg.Named("IMPLANT"), item.Named("FACTION"), minTitleForImplant.GetLabelCapFor(pawn).Named("TITLE"), taggedString.Named("VIOLATIONTRIGGER")); if (levelOffset != 0) { return(t + ("\n\n" + "RoyalImplantUpgradeConfirmation".Translate())); } return(t + ("\n\n" + "RoyalImplantInstallConfirmation".Translate())); } } return(""); }