Beispiel #1
0
 private static void Postfix(Pawn_GuestTracker __instance, Faction newHost, GuestStatus guestStatus)
 {
     if (guestStatus == GuestStatus.Prisoner)
     {
         __instance.interactionMode = DefDatabase <PrisonerInteractionModeDef> .GetNamed(PrisonLaborPrefs.DefaultInteractionMode);
     }
 }
Beispiel #2
0
 private static void Postfix(Pawn_GuestTracker __instance, Faction newHost, bool prisoner)
 {
     if (prisoner == true)
     {
         __instance.interactionMode = DefDatabase<PrisonerInteractionModeDef>.GetNamed(PrisonLaborPrefs.DefaultInteractionMode);
     }
 }
 private static void Postfix(Pawn_GuestTracker __instance, Faction newHost, GuestStatus guestStatus)
 {
     if (guestStatus != GuestStatus.Prisoner)
     {
         Pawn pawn = Traverse.Create(__instance).Field("pawn").GetValue <Pawn>();
         CleanPrisonersStatus.CleanHediffs(pawn);
     }
 }
Beispiel #4
0
 private static void Prefix(Pawn_GuestTracker __instance, Faction newHost, GuestStatus guestStatus = GuestStatus.Guest)
 {
     if (!Registry.IsActive)
     {
         return;
     }
     Registry.FactionUpdate(Traverse.Create(__instance).Field <Pawn>("pawn").Value, newHost, guestStatus == GuestStatus.Guest);
 }
 static void Prefix(Pawn_GuestTracker __instance, Faction newHost, bool prisoner)
 {
     if (prisoner == true && newHost != null && (newHost != __instance.HostFaction || !__instance.IsPrisoner))
     {
         var pawnProperty = typeof(Pawn_GuestTracker).GetField("pawn", BindingFlags.Instance | BindingFlags.NonPublic);
         BadPeopleUtility.NotifyPawnGetCaptured(pawnProperty.GetValue(__instance) as Pawn);
     }
 }
 private static void Prefix(Pawn_GuestTracker __instance, Faction newHost, bool prisoner = false)
 {
     if (!Registry.IsActive)
     {
         return;
     }
     Registry.FactionUpdate(Traverse.Create(__instance).Field("pawn").GetValue <Pawn>(), newHost, !prisoner);
 }
Beispiel #7
0
        // RimWorld.Pawn_GuestTracker
        public static void Vamps_DontWantGuestFood(Pawn_GuestTracker __instance, ref bool __result)
        {
            Pawn pawn = (Pawn)AccessTools.Field(typeof(Pawn_GuestTracker), "pawn").GetValue(__instance);

            if (pawn != null && pawn.IsVampire())
            {
                __result = false;
            }
        }
        // RimWorld.Pawn_GuestTracker
        public static void Vamp_WardensDontFeedVamps(Pawn_GuestTracker __instance, ref bool __result)
        {
            Pawn pawn = (Pawn)AccessTools.Field(typeof(Pawn_GuestTracker), "pawn").GetValue(__instance);

            if (pawn.IsVampire())
            {
                __result = false;
            }
        }
Beispiel #9
0
        public static void get_IsPrisoner_PostFix(Pawn_GuestTracker __instance, ref bool __result)
        {
            Pawn pawn = (Pawn)AccessTools.Field(typeof(Pawn_GuestTracker), "pawn").GetValue(__instance);

            if (pawn is Zombie && pawn.Faction == Faction.OfPlayer)
            {
                __result = true;
            }
        }
Beispiel #10
0
            public static void Prefix(Pawn_GuestTracker __instance, ref bool prisoner)
            {
                // Added
                var pawn = Traverse.Create(__instance).Field("pawn").GetValue <Pawn>();

                if (pawn != null && pawn.IsGuest())
                {
                    prisoner = false;
                }
            }
        private static void Prefix(Pawn_GuestTracker __instance, Faction newHost, bool prisoner = false)
        {
            if (!Registry.IsActive)
            {
                return;
            }

            Registry.FactionUpdate(Traverse.Create(__instance).Field <Pawn>("pawn").Value, newHost, !prisoner);
            //Registry.FactionUpdate(Access.Field_RimWorld_Pawn_GuestTracker_Pawn_Get(__instance), newHost, !prisoner);
        }
 static bool Prefix(Pawn_GuestTracker __instance, Faction newHost, bool prisoner = false)
 {
     if (prisoner == false)
     {
         var pawn = typeof(Pawn_GuestTracker).GetField("pawn", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance) as Pawn;
         if (oldNames.ContainsKey(pawn))
         {
             pawn.Name = oldNames[pawn];
         }
     }
     return(true);
 }
Beispiel #13
0
 static bool Prefix(Pawn_GuestTracker __instance, Faction newHost, GuestStatus guestStatus)
 {
     if (guestStatus == GuestStatus.Slave || guestStatus == GuestStatus.Guest)
     {
         var pawn = typeof(Pawn_GuestTracker).GetField("pawn", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance) as Pawn;
         if (oldNames.ContainsKey(pawn))
         {
             pawn.Name = oldNames[pawn];
         }
     }
     return(true);
 }
        private static void Postfix(Pawn_GuestTracker __instance, Faction newHost, GuestStatus guestStatus)
        {
            if (guestStatus == GuestStatus.Prisoner && newHost == Faction.OfPlayer)
            {
                __instance.interactionMode = DefDatabase <PrisonerInteractionModeDef> .GetNamed(PrisonLaborPrefs.DefaultInteractionMode);

                if (__instance.interactionMode == PL_DefOf.PrisonLabor_workAndConvertOption ||
                    __instance.interactionMode == PrisonerInteractionModeDefOf.Convert)
                {
                    __instance.ideoForConversion = Faction.OfPlayer.ideos.PrimaryIdeo;
                }
            }
        }
Beispiel #15
0
        public static void CapturedBy_PreFix(Pawn_GuestTracker __instance, Faction by, Pawn byPawn)
        {
            Pawn   pawn       = Traverse.Create(__instance).Field("pawn").GetValue <Pawn>();
            Tenant tenantComp = pawn.GetTenantComponent();

            if (tenantComp != null && tenantComp.IsTenant)
            {
                if (tenantComp.MoleActivated)
                {
                    Events.TenantMoleCaptured(pawn);
                }
                else
                {
                    Events.TenantCaptured(pawn, byPawn);
                }
            }
        }