示例#1
0
        public void Use(Mobile from)
        {
            IEvoCreature evo = GetEvoCreature();

            if (null != evo)
            {
                BaseEvoSpec  spec     = BaseEvoEgg.GetEvoSpec(evo);
                BaseCreature creature = evo as BaseCreature;

                if (null != spec && null != spec.Stages && !creature.Deleted)
                {
                    if (spec.Tamable && spec.MinTamingToHatch > from.Skills[SkillName.AnimalTaming].Value)
                    {
                        from.SendMessage("A minimum animal taming skill of {0} is required to use this contract.", spec.Stages[0].MinTameSkill);
                        creature.Delete();
                    }
                    else if (from.FollowersMax - from.Followers < spec.Stages[0].ControlSlots)
                    {
                        from.SendMessage("You have too many followers to use this contract.");
                        creature.Delete();
                    }
                    else
                    {
                        creature.Controlled    = true;
                        creature.ControlMaster = from;
                        creature.IsBonded      = true;
                        creature.MoveToWorld(from.Location, from.Map);
                        creature.ControlOrder = OrderType.Follow;
                        Delete();
                        from.SendMessage("You are now master of a mercenary apprentice.");
                    }
                }
            }
        }
示例#2
0
        public override void GenerateLoot()
        {
            BaseEvoSpec spec = GetEvoSpec();

            if (null != spec && spec.GuardianEggOrDeedChance > Utility.RandomDouble())
            {
                BaseEvoEgg egg = GetEvoEgg();

                if (null != egg)
                {
                    PackItem(egg);
                }
            }
            AddLoot(LootPack.UltraRich, 4);
            AddLoot(LootPack.FilthyRich);
        }