public static bool Patch_CheckCreateVerbProperties(ref Pawn_NativeVerbs __instance) { bool flag = HarmonyPatches._cachedVerbProperties.GetValue(__instance) != null; bool result; if (flag) { result = true; } else { bool flag2 = XenomorphUtil.IsXenomorph(HarmonyPatches.pawnPawnNativeVerbs(__instance)); if (flag2) { HarmonyPatches._cachedVerbProperties.SetValue(__instance, new List <VerbProperties>()); HarmonyPatches.cachedVerbProperties(__instance).Add(NativeVerbPropertiesDatabase.VerbWithCategory((VerbCategory)1)); result = false; } else { result = true; } } return(result); }
private static bool Prefix(ref Pawn_NativeVerbs __instance) { if (__instance.cachedVerbProperties == null) { if (__instance.pawn.isSnotling()) { __instance.cachedVerbProperties = new List <VerbProperties>(); __instance.cachedVerbProperties.Add(NativeVerbPropertiesDatabase.VerbWithCategory(VerbCategory.BeatFire)); return(false); } } return(true); }
public static bool Patch_CheckCreateVerbProperties(ref Pawn_NativeVerbs __instance) { if (_cachedVerbProperties.GetValue(__instance) != null) { return(true); } if (pawnPawnNativeVerbs(__instance).def.thingClass == typeof(Insect) || pawnPawnNativeVerbs(__instance).def.thingClass == typeof(Queen)) { _cachedVerbProperties.SetValue(__instance, new List <VerbProperties>()); cachedVerbProperties(__instance).Add(NativeVerbPropertiesDatabase.VerbWithCategory(VerbCategory.BeatFire)); return(false); } return(true); }
static void Postfix([NotNull] ref List <VerbProperties> ___cachedVerbProperties, [NotNull] Pawn ___pawn) { if (___pawn.IsSapientOrFeralFormerHuman()) { ___cachedVerbProperties = ___cachedVerbProperties ?? new List <VerbProperties>(); if (!___cachedVerbProperties.Any(v => v?.category == VerbCategory.BeatFire)) { ___cachedVerbProperties.Add(NativeVerbPropertiesDatabase.VerbWithCategory(VerbCategory.BeatFire)); } if (!___cachedVerbProperties.Any(v => v?.category == VerbCategory.Ignite)) { ___cachedVerbProperties.Add(NativeVerbPropertiesDatabase.VerbWithCategory(VerbCategory.Ignite)); } } }
private static bool Prefix(ref Pawn_NativeVerbs __instance) { bool flag = Pawn_NativeVerbs_CheckCreateVerbProperties_Patch.cachedVerbProperties(__instance) == null; if (flag) { bool flag2 = Pawn_NativeVerbs_CheckCreateVerbProperties_Patch.pawn(__instance).isSnotling(); if (flag2) { Pawn_NativeVerbs_CheckCreateVerbProperties_Patch.FI_cachedVerbProperties.SetValue(__instance, new List <VerbProperties>()); Pawn_NativeVerbs_CheckCreateVerbProperties_Patch.cachedVerbProperties(__instance).Add(NativeVerbPropertiesDatabase.VerbWithCategory(VerbCategory.BeatFire)); return(false); } } return(true); }