public override bool ActivateOn(Lord lord, TriggerSignal signal)
 {
     if (signal.type == TriggerSignalType.Tick && Find.TickManager.TicksGame % 120 == 0)
     {
         if (base.data == null || !(base.data is TriggerData_PawnCycleInd))
         {
             BackCompatibility.TriggerDataPawnCycleIndNull(this);
         }
         if (Find.TickManager.TicksGame - lord.lastPawnHarmTick > 300)
         {
             TriggerData_PawnCycleInd data = Data;
             data.pawnCycleInd++;
             if (data.pawnCycleInd >= lord.ownedPawns.Count)
             {
                 data.pawnCycleInd = 0;
             }
             if (lord.ownedPawns.Any())
             {
                 Pawn pawn = lord.ownedPawns[data.pawnCycleInd];
                 if (pawn.Spawned && !pawn.Downed && pawn.MentalStateDef == null && KidnapAIUtility.TryFindGoodKidnapVictim(pawn, 8f, out var _) && !GenAI.InDangerousCombat(pawn))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
 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);
 }
 public override bool ActivateOn(Lord lord, TriggerSignal signal)
 {
     if (signal.type == TriggerSignalType.Tick && Find.TickManager.TicksGame % 120 == 0 && Find.TickManager.TicksGame - lord.lastPawnHarmTick > 300)
     {
         TriggerData_PawnCycleInd data = this.Data;
         data.pawnCycleInd++;
         if (data.pawnCycleInd >= lord.ownedPawns.Count)
         {
             data.pawnCycleInd = 0;
         }
         if (lord.ownedPawns.Any())
         {
             Pawn pawn  = lord.ownedPawns[data.pawnCycleInd];
             Pawn pawn2 = default(Pawn);
             if (pawn.Spawned && !pawn.Downed && pawn.MentalStateDef == null && KidnapAIUtility.TryFindGoodKidnapVictim(pawn, 8f, out pawn2, (List <Thing>)null) && !GenAI.InDangerousCombat(pawn))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Пример #4
0
 public Trigger_WoundedGuestPresent()
 {
     data = new TriggerData_PawnCycleInd();
 }
 public Trigger_KidnapVictimPresent()
 {
     data = new TriggerData_PawnCycleInd();
 }