Ejemplo n.º 1
0
        static bool Prefix(ref LordToil_Travel __instance)
        {
            if (Find.TickManager.TicksGame % 205 > RefcellRespeedConfig.currentTimeMultiplier - 1)
            {
                return(false);
            }
            LordToilData_Travel data = (LordToilData_Travel)__instance.data;
            bool flag = true;

            for (int index = 0; index < __instance.lord.ownedPawns.Count; ++index)
            {
                Pawn ownedPawn = __instance.lord.ownedPawns[index];
                if (!ownedPawn.Position.InHorDistOf(data.dest, 10) || !ownedPawn.CanReach((LocalTargetInfo)data.dest, PathEndMode.ClosestTouch, Danger.Deadly))
                {
                    flag = false;
                    break;
                }
            }
            if (!flag)
            {
                return(false);
            }
            __instance.lord.ReceiveMemo("TravelArrived");
            return(false);
        }
Ejemplo n.º 2
0
        public override void UpdateAllDuties()
        {
            LordToilData_Travel data = Data;
            Pawn leader = GetLeader();

            for (int i = 0; i < lord.ownedPawns.Count; i++)
            {
                Pawn pawn = lord.ownedPawns[i];
                if (IsSapper(pawn))
                {
                    pawn.mindState.duty = new PawnDuty(DutyDefOf.PrisonerEscapeSapper, data.dest);
                }
                else if (leader == null || pawn == leader)
                {
                    pawn.mindState.duty = new PawnDuty(DutyDefOf.PrisonerEscape, data.dest);
                }
                else
                {
                    pawn.mindState.duty = new PawnDuty(DutyDefOf.PrisonerEscape, leader, 10f);
                }
            }
        }
 public LordToil_CaravanTravel(IntVec3 dest)
 {
     // standart initialization of data instance
     data = new LordToilData_Travel();
     Data.dest = dest;
 }