示例#1
0
 public static void GeneratePawn_Patch(ref PawnGenerationRequest request, ref Pawn pawn)
 {
     //Z- Uses defName.Contains for Alien Race compatibilty
     if (request.KindDef.defName.Contains("Slave") && pawn.apparel.WornApparel.Find(SlaveUtility.IsSlaveCollar) == null)
     {
         SlaveUtility.GiveSlaveCollar(pawn);
     }
 }
示例#2
0
        public override void PostMake()
        {
            base.PostMake();
            actualFaction = pawn.Faction;
            slaverFaction = (Faction.OfPlayer);
            if (pawn.Faction == slaverFaction)
            {
                pawn.guest.SetGuestStatus(null);
            }
            else
            {
                pawn.SetFaction(Faction.OfPlayer);
            }

            // If the hediff was added without equipping a slave collar, ensure they get one
            if (pawn.apparel.WornApparel.Find(SlaveUtility.IsSlaveCollar) == null)
            {
                SlaveUtility.GiveSlaveCollar(pawn);
            }

            // Certain backstories begin with no willpower
            if (pawn.story.childhood.title == "Vatgrown slavegirl")             //Z- Title -> title
            {
                willpower = 0;
            }
            if (pawn.story.adulthood != null)
            {
                if (pawn.story.adulthood.title == "Urbworld sex slave")                 //Z- Title - title
                {
                    willpower = 0;
                }
            }

            // We were freed, but then enslaved AGAIN
            if (pawn.health.hediffSet.HasHediff(SS_HediffDefOf.SlaveMemory))
            {
                SlaveAgain();
                // Take a willpower hit, but only if we were free for a while
                if (pawn.health.hediffSet.GetFirstHediffOfDef(SS_HediffDefOf.SlaveMemory).ageTicks > 10000)
                {
                    TakeWillpowerHit(0.5f);
                }
            }

            SaveMemory();
        }
 public static void EnslavePawn(Pawn pawn, Apparel collar = null)
 {
     if (pawn == null)
     {
         Log.Error("[SimpleSlavery] Error: Tried to enslave null pawn.");
         return;
     }
     if (!pawn.RaceProps.Humanlike)
     {
         Log.Error("[SimpleSlavery] Error: Tried to enslave a non-humanlike pawn.");
         return;
     }
     if (!SlaveUtility.IsPawnColonySlave(pawn))
     {
         SlaveUtility.GiveSlaveCollar(pawn, collar);
         pawn.health.AddHediff(SS_HediffDefOf.Enslaved);
     }
 }