Exemple #1
0
        protected override Job TryGiveJob(Pawn pawn)
        {
            IntVec3 c;
            Job     result;

            if (!RCellFinder.TryFindBestExitSpot(pawn, out c, TraverseMode.ByPawn))
            {
                result = null;
            }
            else
            {
                Pawn pawn2 = KidnapAIUtility.ReachableWoundedGuest(pawn);
                if (pawn2 == null)
                {
                    result = null;
                }
                else
                {
                    result = new Job(JobDefOf.Kidnap)
                    {
                        targetA = pawn2,
                        targetB = c,
                        count   = 1
                    };
                }
            }
            return(result);
        }
        protected override Job TryGiveJob(Pawn pawn)
        {
            if (!RCellFinder.TryFindBestExitSpot(pawn, out IntVec3 spot))
            {
                return(null);
            }
            Pawn pawn2 = KidnapAIUtility.ReachableWoundedGuest(pawn);

            if (pawn2 == null)
            {
                return(null);
            }
            Job job = new Job(JobDefOf.Kidnap);

            job.targetA = pawn2;
            job.targetB = spot;
            job.count   = 1;
            return(job);
        }
 public override bool ActivateOn(Lord lord, TriggerSignal signal)
 {
     if (signal.type == TriggerSignalType.Tick && Find.TickManager.TicksGame % 800 == 0)
     {
         TriggerData_PawnCycleInd data = this.Data;
         data.pawnCycleInd++;
         if (data.pawnCycleInd >= lord.ownedPawns.Count)
         {
             data.pawnCycleInd = 0;
         }
         if (lord.ownedPawns.Any <Pawn>())
         {
             Pawn pawn = lord.ownedPawns[data.pawnCycleInd];
             if (pawn.Spawned && !pawn.Downed && !pawn.InMentalState && KidnapAIUtility.ReachableWoundedGuest(pawn) != null)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Exemple #4
0
        protected override Job TryGiveJob(Pawn pawn)
        {
            IntVec3 c = default(IntVec3);

            if (!RCellFinder.TryFindBestExitSpot(pawn, out c, TraverseMode.ByPawn))
            {
                return(null);
            }
            Pawn pawn2 = KidnapAIUtility.ReachableWoundedGuest(pawn);

            if (pawn2 == null)
            {
                return(null);
            }
            Job job = new Job(JobDefOf.Kidnap);

            job.targetA = pawn2;
            job.targetB = c;
            job.count   = 1;
            return(job);
        }