Esempio n. 1
0
        public static bool Stable(this BaseCreature pet, bool maxLoyalty = true, bool autoStable = true)
        {
            if (pet == null || pet.Deleted || pet.IsStabled || !(pet.ControlMaster is PlayerMobile))
            {
                return(false);
            }

            var master = (PlayerMobile)pet.ControlMaster;

            pet.ControlTarget = null;
            pet.ControlOrder  = OrderType.Stay;
            pet.Internalize();

            pet.SetControlMaster(null);
            pet.SummonMaster = null;

            pet.IsStabled   = true;
            pet.StabledDate = DateTime.UtcNow;

            if (maxLoyalty)
            {
                pet.Loyalty = BaseCreature.MaxLoyalty;                 // Wonderfully happy
            }

            master.Stabled.Add(pet);

            if (autoStable)
            {
                master.AutoStabled.Add(pet);
            }

            return(true);
        }
Esempio n. 2
0
        public static void StableFollower(Mobile vendor, PlayerMobile player, BaseCreature creature, int page)
        {
            if (player == null || creature == null)
            {
                return;
            }
            if (creature.Deleted)
            {
                return;
            }

            creature.ControlTarget = null;
            creature.ControlOrder  = OrderType.Stay;
            creature.Internalize();

            creature.SetControlMaster(null);

            creature.IsStabled   = true;
            creature.TimeStabled = DateTime.UtcNow;

            creature.OwnerAbandonTime = DateTime.UtcNow + TimeSpan.FromDays(1000);

            player.Stabled.Add(creature);

            player.CloseGump(typeof(StableGump));
            player.SendGump(new StableGump(vendor, player, page));
        }
Esempio n. 3
0
 private static void SendAway(BaseCreature b)
 {
     b.SetControlMaster(null);
     b.SummonMaster = null;
     b.Internalize();
     b.IsStabled = true;
 }
Esempio n. 4
0
        private static void SendAway(BaseCreature b)
        {
            b.Controlled = true;        //To make it so It won't still be a part of a spawner.
            b.SetControlMaster(null);
            b.SummonMaster = null;
            b.Internalize();

            b.OwnerAbandonTime = DateTime.MinValue;

            b.IsStabled = true;
        }
Esempio n. 5
0
        public static void StableFollower(Mobile vendor, PlayerMobile player, BaseCreature creature, int page, bool launchGump, bool retrieved)
        {
            if (player == null || creature == null)
            {
                return;
            }
            if (creature.Deleted)
            {
                return;
            }

            SpecialAbilities.ClearSpecialEffects(creature);

            creature.Poison = null;

            creature.Blessed = true;

            creature.ControlTarget = null;
            creature.ControlOrder  = OrderType.Stay;
            creature.Internalize();

            creature.SetControlMaster(null);

            creature.IsStabled   = true;
            creature.TimeStabled = DateTime.UtcNow;

            if (retrieved)
            {
                creature.TimeStabled -= TimeSpan.FromDays(Stables.RetireveFollowerDaysAdded);
            }

            creature.OwnerAbandonTime = DateTime.UtcNow + TimeSpan.FromDays(1000);

            player.Stabled.Add(creature);

            if (launchGump)
            {
                player.CloseGump(typeof(StableGump));
                player.SendGump(new StableGump(vendor, player, page));
            }
        }
Esempio n. 6
0
        private static void SendAway(BaseCreature b)
        {
            b.Controlled = true;                //To make it so It won't still be a part of a spawner.
            b.SetControlMaster(null);
            b.SummonMaster = null;
            b.Internalize();

            if (ShrinkConfig.ResetBondingStatus)
            {
                b.IsBonded = false;
            }

            if (!ShrinkConfig.RetainBondingTimer)
            {
                b.BondingBegin = DateTime.MinValue;
            }

            b.OwnerAbandonTime = DateTime.MinValue;

            b.IsStabled = true;
        }