static void Postfix(Pawn_NeedsTracker __instance, NeedDef nd, ref bool __result) { Pawn pawn = (Pawn)AccessTools.Field(typeof(Pawn_NeedsTracker), "pawn").GetValue(__instance); Log.Message("Pawn battery check: " + pawn.Name); if (nd.needClass == typeof(Need_Battery)) { if (pawn.def.thingClass == typeof(ArcBaseRobot)) { ArcBaseRobot robot = (ArcBaseRobot)pawn; if (robot.isRobot()) { Log.Message("Pawn need battery : " + pawn.Name); __result = true; } else { __result = false; } } else { __result = false; } } else if (pawn.def.thingClass == typeof(ArcBaseRobot)) { __result = false; } }
public override void SetInitialLevel() { Log.Message("Pawn battery check1: " + pawn.Name); if (pawn.def.thingClass == typeof(ArcBaseRobot)) { ArcBaseRobot robot = (ArcBaseRobot)pawn; Log.Message("Pawn battery check1a: " + pawn.Name); if (robot.isRobot()) { Log.Message("Pawn battery check1b: " + pawn.Name); this.CurLevel = Rand.Range(0.9f, 1); } else { //not needed Log.Message("no battery needed1"); } } else { //not needed Log.Message("no battery needed2"); } }