コード例 #1
0
 public Warband_Caravan()
 {
     pawns = new ThingOwner<Pawn>(this, false, LookMode.Reference);
     pather = new Caravan_PathFollower(this);
     gotoMote = new Caravan_GotoMoteRenderer();
     tweener = new Caravan_Tweener(this);
     trader = new Caravan_TraderTracker(this);
     forage = new Caravan_ForageTracker(this);
     needs = new Caravan_NeedsTracker(this);
     carryTracker = new Caravan_CarryTracker(this);
     beds = new Caravan_BedsTracker(this);
     storyState = new StoryState(this);
 }
        public static bool Prefix(Caravan_NeedsTracker __instance, Pawn pawn)
        {
            var extension = pawn.def.GetModExtension <MechanoidExtension>();

            if (extension != null && pawn.def.GetModExtension <MechanoidExtension>().isCaravanRiddable)
            {
                if (pawn.needs.TryGetNeed <Need_Power>().CurLevel <= 0)
                {
                    PawnBanishUtility.Banish(pawn);
                    pawn.Kill(null);
                    Messages.Message("VFEM.CaravanMachineRanOutPower".Translate(pawn.Named("MACHINE")), __instance.caravan, MessageTypeDefOf.CautionInput);
                }
                return(false);
            }
            return(true);
        }