Пример #1
0
        protected override void OnTarget(Mobile from, object targ)
        {
            if (targ is BaseCreature)
            {
                m_Creature = (BaseCreature)targ;

                TransformGroup TransformType = (TransformGroup)TAVShiftUtilities.GetTransformGroup(m_Creature);

                if (TransformType != TransformGroup.Impossible)
                {
                    m_Player.SendMessage("That is a {0} creature.", TransformType.ToString());
                }
                else
                {
                    m_Player.SendMessage("You cannot shapeshift into that creature.");
                }
            }
            else
            {
                m_Player.SendMessage("That is not a creature.");
            }
        }
Пример #2
0
        protected override void OnTarget(Mobile from, object targ)
        {
            if (targ is Corpse)
            {
                m_Corpse = (Corpse)targ;

                TransformType = (TransformGroup)TAVShiftUtilities.GetTransformGroup(m_Corpse.Owner);

                if (TransformType != TransformGroup.Impossible)
                {
                    m_Player.SendMessage("The creature has been added to your transformation list");
                    NewShapeshiftGump.SaveTransformation(m_Player, TransformType, Slot, (BaseCreature)m_Corpse.Owner);
                    m_Player.SendMessage("This creature is {0}", TransformType);
                }
                else
                {
                    m_Player.SendMessage("That creature cannot be added to your transformation list. ");
                }
            }
            else
            {
                m_Player.SendMessage("You must drink the hearts blood of a slain creature to learn its form.");
            }
        }
Пример #3
0
        public static Container Mobile_CreateCorpseHandler(Mobile owner, ArrayList initialContent, ArrayList equipItems)
        {
            bool shouldFillCorpse = true;

            //if ( owner is BaseCreature )
            //	shouldFillCorpse = !((BaseCreature)owner).IsBonded;

            Corpse c;

            if (owner is MilitiaFighter)
            {
                c = new MilitiaFighterCorpse(owner, shouldFillCorpse ? equipItems : new ArrayList());
            }
            else
            {
                c = new Corpse(owner, shouldFillCorpse ? equipItems : new ArrayList());
            }

            owner.Corpse = c;
            if (owner is BaseCreature)
            {
                c.ShiftType = (TransformGroup)TAVShiftUtilities.GetTransformGroup((BaseCreature)owner);
            }

            if (shouldFillCorpse)
            {
                for (int i = 0; i < initialContent.Count; ++i)
                {
                    Item item = (Item)initialContent[i];

                    if (Core.AOS && owner.Player && item.Parent == owner.Backpack)
                    {
                        c.AddItem(item);
                    }
                    else
                    {
                        c.DropItem(item);
                    }

                    if (owner.Player && Core.AOS)
                    {
                        c.SetRestoreInfo(item, item.Location);
                    }
                }
            }
            else
            {
                c.Carved = true; // TODO: Is it needed?
            }

            Point3D loc = owner.Location;
            Map     map = owner.Map;

            if (map == null || map == Map.Internal)
            {
                loc = owner.LogoutLocation;
                map = owner.LogoutMap;
            }

            c.MoveToWorld(loc, map);
            c.CheckRaise();
            return(c);
        }