Slays() public méthode

public Slays ( Mobile m ) : bool
m Mobile
Résultat bool
Exemple #1
0
        private static bool CheckSlays(SlayerName slayer, Mobile target)
        {
            if (slayer == SlayerName.None)
            {
                return(false);
            }

            SlayerEntry entry = SlayerGroup.GetEntryByName(slayer);

            return(entry != null && entry.Slays(target));
        }
Exemple #2
0
        public double GetDifficultyFor(Mobile targ)
        {
            double val = GetBaseDifficulty(targ);

            if (m_Quality == InstrumentQuality.Exceptional)
            {
                val -= 5.0;                 // 10%
            }
            if (targ is BaseCreature)
            {
                if (((BaseCreature)targ).BardImmune)
                {
                    val += 15.0;                     // -30%
                }
            }

            if (m_Slayer != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            if (m_Slayer2 != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer2);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            return(val);
        }
Exemple #3
0
        public override bool OnMoveOver(Mobile m)
        {
            SlayerEntry demon = SlayerGroup.GetEntryByName(SlayerName.Exorcism);

            if (m is BaseCreature)
            {
                if (demon.Slays(m) && ((BaseCreature)m).ControlMaster != m)
                {
                    m.Mana = 0;
                    return(false);
                }
            }
            return(true);
        }
Exemple #4
0
        public bool OppositionSuperSlays(Mobile m)
        {
            for (int i = 0; i < this.Opposition.Length; i++)
            {
                if (this.Opposition[i].Super.Slays(m))
                {
                    return(true);
                }
            }

            if (m_Super.Name == SlayerName.Eodon && !m_Super.Slays(m))
            {
                return(true);
            }

            return(false);
        }
Exemple #5
0
        public double GetDifficultyFor(Mobile targ)
        {
            double val = GetBaseDifficulty(targ);

            if (m_Exceptional)
            {
                val -= 5.0;                 // 10%
            }
            if (m_Slayer != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            if (m_Slayer2 != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer2);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            Utility.FixMax(ref val, 160);

            return(val);
        }
        public double GetDifficultyFor(Mobile targ)
        {
            double val = GetBaseDifficulty(targ);

            if (m_Quality == InstrumentQuality.Exceptional)
            {
                val -= 10.0;
            }

            if (m_Slayer != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 25.0;
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 25.0;
                    }
                }
            }

            if (m_Slayer2 != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer2);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 25.0;
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 25.0;
                    }
                }
            }

            return(val);
        }
Exemple #7
0
        public double GetDifficultyFor(Mobile targ)
        {
            if (!(targ is BaseCreature))
            {
                return(0.0);
            }

            BaseCreature bc = (BaseCreature)targ;

            double val = GetCreatureDifficulty(bc);

            // Instrument specific modifications

            if (m_Quality == InstrumentQuality.Exceptional)
            {
                val -= 5.0;                 // 10%
            }
            if (m_Slayer != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.Opposition.Super.Slays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            return(val);
        }
Exemple #8
0
        public double GetDifficultyFor(Mobile targ)
        {
            double val = GetBaseDifficulty(targ);

            if (m_Quality == ItemQuality.Exceptional)
            {
                val -= 5.0; // 10%
            }
            if (m_Slayer != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0; // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0; // -20%
                    }
                }
            }

            if (m_Slayer2 != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer2);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0; // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0; // -20%
                    }
                }
            }

            if (m_Slayer == SlayerName.None && m_Slayer2 == SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(SlayerSocket.GetSlayer(this));

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0; // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0; // -20%
                    }
                }
            }

            return(val);
        }
Exemple #9
0
        public double GetDifficultyFor(Mobile targ)
        {
            /* Difficulty TODO: Add another 100 points for each of the following abilities:
             *      - Radiation or Aura Damage (Heat, Cold etc.)
             *      - Summoning Undead
             */

            double val = targ.Hits + targ.Stam + targ.Mana;

            for (int i = 0; i < targ.Skills.Length; i++)
            {
                val += targ.Skills[i].Base;
            }

            if (val > 700)
            {
                val = 700 + ((val - 700) / 3.66667);
            }

            BaseCreature bc = targ as BaseCreature;

            if (IsMageryCreature(bc))
            {
                val += 100;
            }

            if (IsFireBreathingCreature(bc))
            {
                val += 100;
            }

            if (IsPoisonImmune(bc))
            {
                val += 100;
            }

            if (targ is VampireBat || targ is VampireBatFamiliar)
            {
                val += 100;
            }

            val += GetPoisonLevel(bc) * 20;

            val /= 10;

            if (bc != null && bc.IsParagon)
            {
                val += 40.0;
            }

            if (m_Quality == InstrumentQuality.Exceptional)
            {
                val -= 5.0;                 // 10%
            }
            if (m_Slayer != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            if (m_Slayer2 != SlayerName.None)
            {
                SlayerEntry entry = SlayerGroup.GetEntryByName(m_Slayer2);

                if (entry != null)
                {
                    if (entry.Slays(targ))
                    {
                        val -= 10.0;                         // 20%
                    }
                    else if (entry.Group.OppositionSuperSlays(targ))
                    {
                        val += 10.0;                         // -20%
                    }
                }
            }

            return(val);
        }
        public override bool OnMoveOver(Mobile m)
        {
            bool hurts = true;

            if (m.Blessed)
            {
                hurts = false;
            }

            if (!m.Alive)
            {
                hurts = false;
            }

            if (owner is BaseCreature && m is BaseCreature)
            {
                BaseCreature bc = (BaseCreature)m;

                if (!bc.Controlled)
                {
                    hurts = false;
                }
            }

            if (hurts)
            {
                SlayerEntry SilverSlayer   = SlayerGroup.GetEntryByName(SlayerName.Silver);
                SlayerEntry ExorcismSlayer = SlayerGroup.GetEntryByName(SlayerName.Exorcism);

                if (m is PlayerMobile && Spells.Research.ResearchAirWalk.UnderEffect(m))
                {
                    Point3D air = new Point3D((m.X + 1), (m.Y + 1), (m.Z + 5));
                    Effects.SendLocationParticles(EffectItem.Create(air, m.Map, EffectItem.DefaultDuration), 0x2007, 9, 32, Server.Items.CharacterDatabase.GetMySpellHue(m, 0), 0, 5022, 0);
                    m.PlaySound(0x014);
                }
                else if (this.Name == "hot magma" && !(m is MagmaElemental))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3709, 10, 30, 5052);
                    Effects.PlaySound(m.Location, m.Map, 0x225);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 100, 0, 0, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "quick silver")
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 50, 0, 0, 0, 50);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "holy water" && (SilverSlayer.Slays(m) || ExorcismSlayer.Slays(m)))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3709, 10, 30, 5052);
                    Effects.PlaySound(m.Location, m.Map, 0x225);
                    AOS.Damage(m, owner, Hurt(owner, 40, 60), 20, 20, 20, 20, 20);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "glowing goo" && !(m is GlowBeetle) && !(m is GlowBeetleRiding))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 63, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 50, 50);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "scorching ooze" && !(m is Lavapede))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 63, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 100, 0, 0, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "blue slime" && !(m is SlimeDevil))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 100, 0, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "swamp muck" && !(m is SwampThing))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 50, 0, 0, 50, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "poisonous slime" && !(m is AbyssCrawler))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 100, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "poison spit" && !(m is Neptar) && !(m is NeptarWizard))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 100, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "poison spittle" && !(m is Lurker))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 100, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "fungal slime" && !(m is Fungal) && !(m is FungalMage) && !(m is CreepingFungus))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 50, 0, 0, 50, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "spider ooze" && !(m is ZombieSpider))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 50, 0, 0, 50, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "acidic slime" && !(m is ToxicElemental))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x231);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 50, 0, 0, 50, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "acidic ichor" && !(m is AntaurKing) && !(m is AntaurProgenitor) && !(m is AntaurSoldier) && !(m is AntaurWorker))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x231);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 50, 0, 0, 50, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "thick blood" && !(m is BloodElemental) && !(m is BloodDemon))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 0x25, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 100, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "infected blood" && !(m is Infected))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 0x25, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 100, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "alien blood" && !(m is Xenomorph) && !(m is Xenomutant))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 0x25, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 20, 20, 20, 20, 20);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "green blood" && !(m is ZombieGiant))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 0x25, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 20, 0, 0, 80, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "toxic blood" && !(m is Mutant))
                {
                    owner.DoHarmful(m);
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x36B0, 1, 14, 0x25, 7, 9915, 0);
                    int eSound = 0x229;
                    if (m.Body == 0x190 && m is PlayerMobile)
                    {
                        eSound = 0x43F;
                    }
                    else if (m.Body == 0x191 && m is PlayerMobile)
                    {
                        eSound = 0x32D;
                    }
                    Effects.PlaySound(m.Location, m.Map, eSound);
                    AOS.Damage(m, owner, Hurt(owner, 24, 48), 0, 0, 0, 100, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "freezing water" && !(m is WaterElemental) && !(m is WaterWeird) && !(m is DeepWaterElemental) && !(m is Dagon))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 20, 40), 0, 0, 100, 0, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "deep water" && !(m is WaterElemental) && !(m is WaterWeird) && !(m is DeepWaterElemental) && !(m is Dagon))
                {
                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, 40, 60), 0, 0, 100, 0, 0);
                    //												Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "lesser poison potion" || this.Name == "poison potion" || this.Name == "greater poison potion" | this.Name == "deadly poison potion" || this.Name == "lethal poison potion")
                {
                    int pSkill = (int)(owner.Skills[SkillName.Poisoning].Value / 50);
                    int tSkill = (int)(owner.Skills[SkillName.TasteID].Value / 33);
                    int aSkill = (int)(owner.Skills[SkillName.Alchemy].Value / 33);

                    int    pMin = pSkill + tSkill + aSkill;
                    int    pMax = pMin * 2;
                    Poison pois = Poison.Lesser;

                    if (this.Name == "poison potion")
                    {
                        pMin = pMin + 2;  pMax = pMax + 2;  pois = Poison.Regular;
                    }
                    else if (this.Name == "greater poison potion")
                    {
                        pMin = pMin + 3;  pMax = pMax + 3;  pois = Poison.Greater;
                    }
                    else if (this.Name == "deadly poison potion")
                    {
                        pMin = pMin + 4;  pMax = pMax + 4;  pois = Poison.Deadly;
                    }
                    else if (this.Name == "lethal poison potion")
                    {
                        pMin = pMin + 5;  pMax = pMax + 5;  pois = Poison.Lethal;
                    }

                    if (pMin >= Utility.RandomMinMax(1, 16))
                    {
                        m.ApplyPoison(owner, pois);
                    }

                    owner.DoHarmful(m);
                    Effects.PlaySound(m.Location, m.Map, 0x4D1);
                    AOS.Damage(m, owner, Hurt(owner, pMin, pMax), 0, 0, 0, 100, 0);
                    //													Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "liquid fire")
                {
                    int liqMin = Server.Items.BaseLiquid.GetLiquidBonus(owner);
                    int liqMax = liqMin * 2;
                    owner.DoHarmful(m);
                    Effects.SendLocationEffect(m.Location, m.Map, 0x3709, 30, 10);
                    m.PlaySound(0x208);
                    AOS.Damage(m, owner, Hurt(owner, liqMin, liqMax), 20, 80, 0, 0, 0);
                    //														Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "liquid goo")
                {
                    int liqMin = Server.Items.BaseLiquid.GetLiquidBonus(owner);
                    int liqMax = liqMin * 2;
                    owner.DoHarmful(m);
                    Effects.SendLocationEffect(m.Location, m.Map, Utility.RandomList(0x3967, 0x3979), 30, 10);
                    m.PlaySound(0x5C3);
                    AOS.Damage(m, owner, Hurt(owner, liqMin, liqMax), 20, 0, 0, 0, 80);
                    //														Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "liquid ice")
                {
                    int liqMin = Server.Items.BaseLiquid.GetLiquidBonus(owner);
                    int liqMax = liqMin * 2;
                    owner.DoHarmful(m);
                    Effects.SendLocationEffect(m.Location, m.Map, 0x1A84, 30, 10, 0x9C1, 0);
                    m.PlaySound(0x10B);
                    AOS.Damage(m, owner, Hurt(owner, liqMin, liqMax), 20, 0, 80, 0, 0);
                    //														Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "liquid rot")
                {
                    int liqMin = Server.Items.BaseLiquid.GetLiquidBonus(owner);
                    int liqMax = liqMin * 2;
                    owner.DoHarmful(m);
                    Effects.SendLocationEffect(m.Location, m.Map, 0x3400, 60);
                    Effects.PlaySound(m.Location, m.Map, 0x108);
                    AOS.Damage(m, owner, Hurt(owner, liqMin, liqMax), 20, 0, 0, 80, 0);
                    //														Ph,		Fr,		Cd,		Ps,		Eg
                }
                else if (this.Name == "liquid pain")
                {
                    int liqMin = Server.Items.BaseLiquid.GetLiquidBonus(owner);
                    int liqMax = liqMin * 2;
                    owner.DoHarmful(m);
                    m.FixedParticles(0x37C4, 1, 8, 9916, 39, 3, EffectLayer.Head);
                    m.FixedParticles(0x37C4, 1, 8, 9502, 39, 4, EffectLayer.Head);
                    m.PlaySound(0x210);
                    AOS.Damage(m, owner, Hurt(owner, liqMin, liqMax), 80, 5, 5, 5, 5);
                    //														Ph,		Fr,		Cd,		Ps,		Eg
                }
            }
            return(true);
        }