示例#1
0
 protected override ThoughtState CurrentStateInternal(Pawn p)
 {
     if (p.health.hediffSet.HasHediff(HediffDef.Named("Enslaved")))
     {
         Hediff_Enslaved enslaved_def = SlaveUtility.GetEnslavedHediff(p);
         if (enslaved_def.ageTicks < 2500 * 3.5f && enslaved_def.SlaveWillpower > 0)                 // Gets some flavour text just after being enslaved
         {
             return(ThoughtState.ActiveAtStage(0));
         }
         if (enslaved_def.SlaveWillpower > 75)
         {
             return(ThoughtState.ActiveAtStage(1));
         }
         else if (enslaved_def.SlaveWillpower > 50)
         {
             return(ThoughtState.ActiveAtStage(2));
         }
         else if (enslaved_def.SlaveWillpower > 25 || (enslaved_def.SlaveWillpower <= 50 && IsSteadfast(p)))
         {
             return(ThoughtState.ActiveAtStage(3));
         }
         else if (Math.Round(enslaved_def.SlaveWillpower) <= 1)
         {
             return(ThoughtState.ActiveAtStage(4));
         }
     }
     return(ThoughtState.Inactive);
 }
示例#2
0
 public static void Beaten(Pawn __instance, ref DamageInfo dinfo)
 {
     // Check if the pawn is enslaved
     if (SlaveUtility.IsPawnColonySlave(__instance))
     {
         Hediff_Enslaved enslaved_def = (Hediff_Enslaved)__instance.health.hediffSet.GetFirstHediffOfDef(SS_HediffDefOf.Enslaved);
         // Is the beating coming from the faction owning the slave?
         if (dinfo.Instigator != null)
         {
             if (dinfo.Instigator.Faction == enslaved_def.slaverFaction)
             {
                 enslaved_def.TakeWillpowerHit(dinfo.Amount / 100f);
             }
         }
     }
 }