示例#1
0
        public virtual void Carve(Mobile from, Item item)
        {
            if (OpenedBy == null && IsAccessibleTo(from))
            {
                OpenedBy = from;

                m_Timer ??= new DecayTimer(this);

                if (!m_Timer.Running)
                {
                    m_Timer.Start();
                }

                m_Timer.StartDissolving();

                var pack = new PlagueBeastBackpack();
                AddItem(pack);
                pack.Initialize();

                foreach (var state in GetClientsInRange(12))
                {
                    var m = state.Mobile;

                    if (m?.Player == true && m != from)
                    {
                        PrivateOverheadMessage(
                            MessageType.Regular,
                            0x3B2,
                            1071919, // * ~1_VAL~ slices through the plague beast's amorphous tissue *
                            from.Name,
                            m.NetState
                            );
                    }
                }

                from.LocalOverheadMessage(
                    MessageType.Regular,
                    0x21,
                    1071904 // * You slice through the plague beast's amorphous tissue *
                    );
                Timer.StartTimer(() => pack.Open(from));
            }
        }