Ejemplo n.º 1
0
        public override bool OnBeforeDeath()
        {
            //if (!this.Controlled && this.FindItemOnLayer(Layer.Pants) != null)
            //    this.FindItemOnLayer(Layer.Pants).Delete();
            if (Mounted)
            {
                Dismount(this);
            }
            //if (this.ControlMaster != null && Backpack != null)//祝福的物品掉主人包里。
            //移动到   public override DeathMoveResult GetInventoryMoveResultFor(Item item)
            //{
            //    for (int i = Backpack.Items.Count - 1; i >= 0; --i)
            //    {
            //        if (i >= Backpack.Items.Count)
            //            continue;
            //        if ((Backpack.Items[i]).LootType == LootType.Blessed)
            //            this.ControlMaster.Backpack.DropItem(Backpack.Items[i]);
            //    }
            //}
            polymorph(0xbe, this);
            PackAnimal.CombineBackpacks(this);
            if (!Controlled && Utility.Random(10) < 1)
            {
                GoldShower.DoForChamp(Location, Map);
            }

            return(base.OnBeforeDeath());
        }
Ejemplo n.º 2
0
        public override bool OnBeforeDeath()
        {
            if (m_TrueForm)
            {
                List <DamageStore> rights = GetLootingRights();

                for (int i = rights.Count - 1; i >= 0; --i)
                {
                    DamageStore ds = rights[i];

                    if (ds.m_HasRight && ds.m_Mobile is PlayerMobile)
                    {
                        PlayerMobile.ChampionTitleInfo.AwardHarrowerTitle((PlayerMobile)ds.m_Mobile);
                    }
                }

                if (!NoKillAwards)
                {
                    GivePowerScrolls();

                    Map map = Map;

                    GoldShower.DoForHarrower(Location, Map);

                    m_DamageEntries = new Dictionary <Mobile, int>();

                    for (int i = 0; i < m_Tentacles.Count; ++i)
                    {
                        Mobile m = m_Tentacles[i];

                        if (!m.Deleted)
                        {
                            m.Kill();
                        }

                        RegisterDamageTo(m);
                    }

                    m_Tentacles.Clear();

                    RegisterDamageTo(this);
                    AwardArtifact(GetArtifact());

                    if (m_GateItem != null)
                    {
                        m_GateItem.Delete();
                    }
                }

                return(base.OnBeforeDeath());
            }
            else
            {
                Morph();
                return(false);
            }
        }
Ejemplo n.º 3
0
        public override bool OnBeforeDeath()
        {
            if (!this.NoKillAwards)
            {
                this.GivePowerScrolls();

                if (this.NoGoodies)
                {
                    return(base.OnBeforeDeath());
                }

                GoldShower.DoForChamp(Location, Map);
            }

            return(base.OnBeforeDeath());
        }
Ejemplo n.º 4
0
        public override bool OnBeforeDeath()
        {
            if (!NoKillAwards)
            {
                if (CanGivePowerscrolls)
                {
                    GivePowerScrolls();
                }

                if (DoesGoldShower)
                {
                    GoldShower.DoForChamp(Location, Map);
                }
            }

            return(base.OnBeforeDeath());
        }
Ejemplo n.º 5
0
        public override bool OnBeforeDeath()
        {
            //IMount mount = m;
            if (this.FindItemOnLayer(Layer.Ring) != null)
            {
                this.FindItemOnLayer(Layer.Ring).Delete();
            }
            if (m != null)
            {
                m.Rider = null;

                if (m is Mobile)
                {
                    ((Mobile)m).Delete();
                }
            }
            if (Utility.Random(10) < 1)
            {
                GoldShower.Do(Location, Map, 30, 5000, 8000);
            }
            baodongxi.bao(this as BaseCreature);
            return(base.OnBeforeDeath());
        }