public static List <HediffItem> GetCompatibleItems(this HediffComp_AnotherRandom comp) { //HediffCondition defaultCondition = hcp.defaultCondition; List <HediffItem> answer = new List <HediffItem>(); foreach (HediffItem hi in comp.Props.hediffPool) { HediffCondition calculatedHC = ConditionBuilder.GetDefaultPlusSpecificHediffCondition(comp.Props?.defaultCondition ?? null, hi?.specificCondition ?? null, comp.HighVerbosity); if ( calculatedHC.HasBodypartCondition ? calculatedHC.bodyPart.GetBPRFromHediffCondition(comp.Pawn, out _) : true && calculatedHC.HasPawnCondition ? calculatedHC.pawn.ValidateCompatibilityOfHediffWithPawn(comp.Pawn) : true ) { answer.Add(hi); } } if (!answer.NullOrEmpty()) { return(answer); } return(null); }
public static bool InitialHediffConditionCheck(this HediffComp_AnotherRandom comp, bool debug = false) { string debugStr = debug ? comp.Pawn.LabelShort + " InitialHediffConditionCheck - " : ""; Tools.Warn(debugStr + " Entering", debug); bool anyAppliableItem = !comp.GetCompatibleItems().NullOrEmpty(); Tools.Warn(debugStr + "found anyAppliableItem:" + anyAppliableItem, debug); return(anyAppliableItem); }