Exemple #1
0
        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;
            }
        }
Exemple #2
0
 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");
     }
 }