// Token: 0x0600004D RID: 77 RVA: 0x000043D8 File Offset: 0x000025D8 public static bool CompatPatch_ShouldBeDeadFromRequiredCapacity(ref Pawn_HealthTracker __instance, ref PawnCapacityDef __result) { Pawn pawn = HarmonyPatches.Pawn_HealthTracker_GetPawn(__instance); bool flag = pawn.def.HasModExtension <MechanicalPawnProperties>(); bool result; if (flag) { List <PawnCapacityDef> allDefsListForReading = DefDatabase <PawnCapacityDef> .AllDefsListForReading; for (int i = 0; i < allDefsListForReading.Count; i++) { PawnCapacityDef pawnCapacityDef = allDefsListForReading[i]; bool flag2 = allDefsListForReading[i] == PawnCapacityDefOf.Consciousness && !__instance.capacities.CapableOf(pawnCapacityDef); if (flag2) { __result = pawnCapacityDef; return(false); } } __result = null; result = false; } else { result = true; } return(result); }
// Token: 0x06000043 RID: 67 RVA: 0x0000419C File Offset: 0x0000239C public static bool CompatPatch_InteractionsTrackerTick(ref Pawn_InteractionsTracker __instance) { Pawn pawn = HarmonyPatches.Pawn_InteractionsTracker_GetPawn(__instance); bool flag = pawn.def.HasModExtension <MechanicalPawnProperties>(); return(!flag); }
// Token: 0x0600005B RID: 91 RVA: 0x00004948 File Offset: 0x00002B48 public static void Patch_Need_Food_Starving_Get(ref Need_Food __instance, ref bool __result) { Pawn pawn = HarmonyPatches.Need_Food_Starving_GetPawn(__instance); bool flag = pawn != null && pawn.def == ThingDefOf.ChjAndroid; if (flag) { __result = false; } }
// Token: 0x06000045 RID: 69 RVA: 0x000041F8 File Offset: 0x000023F8 public static bool CompatPatch_SocialFightChance(ref Pawn_InteractionsTracker __instance, ref float __result, ref InteractionDef interaction, ref Pawn initiator) { Pawn pawn = HarmonyPatches.Pawn_InteractionsTracker_GetPawn(__instance); bool flag = pawn.def.HasModExtension <MechanicalPawnProperties>() || initiator.def.HasModExtension <MechanicalPawnProperties>(); bool result; if (flag) { __result = 0f; result = false; } else { result = true; } return(result); }
// Token: 0x06000057 RID: 87 RVA: 0x00004634 File Offset: 0x00002834 public static bool Patch_ThinkNode_ConditionalNeedPercentageAbove_Satisfied(ref ThinkNode_ConditionalNeedPercentageAbove __instance, ref bool __result, ref Pawn pawn) { NeedDef def = HarmonyPatches.ThinkNode_ConditionalNeedPercentageAbove_GetNeed(__instance); bool flag = pawn.needs.TryGetNeed(def) != null; bool flag2 = !flag; bool result; if (flag2) { __result = false; result = false; } else { result = true; } return(result); }
// Token: 0x06000059 RID: 89 RVA: 0x000046A8 File Offset: 0x000028A8 public static void Patch_Pawn_NeedsTracker_ShouldHaveNeed(ref Pawn_NeedsTracker __instance, ref bool __result, ref NeedDef nd) { Pawn pawn = HarmonyPatches.Pawn_NeedsTracker_GetPawn(__instance); bool flag = NeedsDefOf.ChJEnergy != null; if (flag) { bool flag2 = nd == NeedsDefOf.ChJEnergy; if (flag2) { bool flag3 = pawn.def == ThingDefOf.ChjAndroid || pawn.def.HasModExtension <MechanicalPawnProperties>(); if (flag3) { __result = true; } else { __result = false; } } } bool flag4 = !AndroidsModSettings.Instance.droidCompatibilityMode; if (flag4) { bool flag5 = nd == NeedDefOf.Food || nd == NeedDefOf.Rest || nd == NeedDefOf.Joy || nd == NeedsDefOf.Beauty || nd == NeedsDefOf.Comfort || nd == NeedsDefOf.Space || (HarmonyPatches.Need_Bladder != null && nd == HarmonyPatches.Need_Bladder) || (HarmonyPatches.Need_Hygiene != null && nd == HarmonyPatches.Need_Hygiene); if (flag5) { bool flag6 = pawn.def.HasModExtension <MechanicalPawnProperties>(); if (flag6) { __result = false; } } } }
// Token: 0x0600005A RID: 90 RVA: 0x00004798 File Offset: 0x00002998 public static void Patch_PawnRenderer_RenderPawnInternal(ref PawnRenderer __instance, Vector3 rootLoc, Quaternion quat, bool renderBody, Rot4 bodyFacing, Rot4 headFacing, RotDrawMode bodyDrawType, bool portrait, bool headStump) { bool flag = __instance != null && AndroidsModSettings.Instance.androidEyeGlow; if (flag) { Pawn pawn = HarmonyPatches.PawnRenderer_GetPawn_GetPawn(__instance); bool flag4; if (pawn != null && pawn.def == ThingDefOf.ChjAndroid && !pawn.Dead && !headStump) { bool flag3; if (!portrait) { bool flag2; if (pawn == null) { flag2 = (null != null); } else { Pawn_JobTracker jobs = pawn.jobs; flag2 = (((jobs != null) ? jobs.curDriver : null) != null); } if (flag2) { flag3 = !pawn.jobs.curDriver.asleep; goto IL_73; } } flag3 = portrait; IL_73: flag4 = (flag3 || portrait); } else { flag4 = false; } bool flag5 = flag4; if (flag5) { Vector3 a = rootLoc; bool flag6 = bodyFacing != Rot4.North; if (flag6) { a.y += 0.0281250011f; rootLoc.y += 0.0234375f; } else { a.y += 0.0234375f; rootLoc.y += 0.0281250011f; } Vector3 b = quat * __instance.BaseHeadOffsetAt(headFacing); Vector3 loc = a + b + new Vector3(0f, 0.01f, 0f); bool flag7 = headFacing != Rot4.North; if (flag7) { Mesh mesh = MeshPool.humanlikeHeadSet.MeshAt(headFacing); bool isHorizontal = headFacing.IsHorizontal; if (isHorizontal) { GenDraw.DrawMeshNowOrLater(mesh, loc, quat, EffectTextures.GetEyeGraphic(false, pawn.story.hairColor.SaturationChanged(0.6f)).MatSingle, portrait); } else { GenDraw.DrawMeshNowOrLater(mesh, loc, quat, EffectTextures.GetEyeGraphic(true, pawn.story.hairColor.SaturationChanged(0.6f)).MatSingle, portrait); } } } } }