public override void UpdateAllDuties() { LordToilData_Travel data = this.Data; for (int i = 0; i < this.lord.ownedPawns.Count; i++) { PawnDuty pawnDuty = new PawnDuty(DutyDefOf.TravelOrLeave, data.dest, -1f); pawnDuty.maxDanger = this.maxDanger; this.lord.ownedPawns[i].mindState.duty = pawnDuty; } }
public override void LordToilTick() { if (Find.TickManager.TicksGame % 205 == 0) { LordToilData_Travel data = this.Data; bool flag = true; for (int i = 0; i < this.lord.ownedPawns.Count; i++) { Pawn pawn = this.lord.ownedPawns[i]; if (!pawn.Position.InHorDistOf(data.dest, this.AllArrivedCheckRadius) || !pawn.CanReach(data.dest, PathEndMode.ClosestTouch, Danger.Deadly, false, TraverseMode.ByPawn)) { flag = false; break; } } if (flag) { this.lord.ReceiveMemo("TravelArrived"); } } }
public override void LordToilTick() { if (Find.TickManager.TicksGame % 205 == 0) { LordToilData_Travel data = this.Data; bool flag = true; int num = 0; while (num < base.lord.ownedPawns.Count) { Pawn pawn = base.lord.ownedPawns[num]; if (pawn.Position.InHorDistOf(data.dest, this.AllArrivedCheckRadius) && pawn.CanReach(data.dest, PathEndMode.ClosestTouch, Danger.Deadly, false, TraverseMode.ByPawn)) { num++; continue; } flag = false; break; } if (flag) { base.lord.ReceiveMemo("TravelArrived"); } } }
public LordToil_Travel(IntVec3 dest) { data = new LordToilData_Travel(); Data.dest = dest; }