Exemplo n.º 1
0
        public static void TakeToBed_Postfix(JobDriver_TakeToBed __instance)
        {
            var prisoner = (Pawn)prisonerProp.GetValue(__instance, null);

            if (prisoner.health.hediffSet.HasHediff(SS_HediffDefOf.Enslaved))
            {
                // Caught the slave
                ((Hediff_Enslaved)prisoner.health.hediffSet.GetFirstHediffOfDef(SS_HediffDefOf.Enslaved)).CaughtSlave();
            }
        }
Exemplo n.º 2
0
        public static bool Prefix(JobDriver_TakeToBed __instance, ref bool __result)
        {
            var tv   = Traverse.Create(__instance);
            var job  = tv.Field("job").GetValue <Job>();
            var pawn = (Pawn)job.GetTarget(TargetIndex.A).Thing;

            if (!pawn.kindDef.defName.StartsWith("Warframe_"))
            {
                return(true);
            }

            Messages.Message("CanBeCarryMsg".Translate(), MessageTypeDefOf.RejectInput, false);
            __result = false;
            return(false);
        }
Exemplo n.º 3
0
        static IEnumerable <Toil> Postfix(IEnumerable <Toil> values, JobDriver_TakeToBed __instance)
        {
            foreach (var toil in values)
            {
                yield return(toil);
            }
            var undraftToil = new Toil()
            {
                initAction = () =>
                {
                    var pawn = __instance.pawn;
                    if (pawn.Drafted)
                    {
                        pawn.drafter.Drafted = false;
                    }
                }
            };

            yield return(undraftToil);
        }