diff --git a/Scripts/Engines/CannedEvil/ChampionSpawnType.cs b/Scripts/Engines/CannedEvil/ChampionSpawnType.cs index ac3b5f46a..217cb1ebe 100644 --- a/Scripts/Engines/CannedEvil/ChampionSpawnType.cs +++ b/Scripts/Engines/CannedEvil/ChampionSpawnType.cs @@ -12,7 +12,8 @@ namespace Server.Engines.CannedEvil ForestLord, VerminHorde, UnholyTerror, - SleepingDragon + SleepingDragon, + Pestilence } public class ChampionSpawnInfo @@ -90,6 +91,13 @@ namespace Server.Engines.CannedEvil new Type[]{ typeof( DeathwatchBeetle ), typeof( Kappa ) }, new Type[]{ typeof( LesserHiryu ), typeof( RevenantLion ) }, new Type[]{ typeof( Hiryu ), typeof( Oni ) } + } ), + new ChampionSpawnInfo( "The Corrupt", typeof( Ilhenir ), new string[]{ "Cleanser", "Expunger", "Depurator" } , new Type[][] + { // Unholy Terror + new Type[]{ typeof( PlagueSpawn ), typeof( Bogling ) }, + new Type[]{ typeof( PlagueBeast ), typeof( BogThing ) }, + new Type[]{ typeof( PlagueBeastLord ), typeof( InterredGrizzle ) }, + new Type[]{ typeof( FetidEssence ), typeof( PestilentBandage ) } } ) }; diff --git a/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs b/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs index 4d3372643..f920f3fa0 100644 --- a/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs +++ b/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs @@ -34,6 +34,15 @@ namespace Server.Items typeof( Subdue ) }; + private static Type[] m_DyableHeritageItems = new Type[] + { + typeof( ChargerOfTheFallen ), + typeof( SamuraiHelm ), + typeof( HolySword ), + typeof( LeggingsOfEmbers ), + typeof( ShaminoCrossbow ) + }; + public override int LabelNumber { get { return 1070933; } } // Pigments of Tokuno private int m_UsesRemaining; @@ -142,6 +151,8 @@ namespace Server.Items resource = ((BaseWeapon)i).Resource; else if( i is BaseArmor ) resource = ((BaseArmor)i).Resource; + else if (i is BaseClothing) + resource = ((BaseClothing)i).Resource; if( !CraftResources.IsStandard( resource ) ) return true; @@ -157,8 +168,9 @@ namespace Server.Items || IsInTypeList( t, Leviathan.Artifacts ) || IsInTypeList( t, TreasureMapChest.Artifacts ) || IsInTypeList( t, m_Replicas ) + || IsInTypeList( t, m_DyableHeritageItems ) ); - } + } private static bool IsInTypeList( Type t, Type[] list ) { diff --git a/Scripts/Items/Special/Solen Items/BagOfSending.cs b/Scripts/Items/Special/Solen Items/BagOfSending.cs index 0eb6706d3..06599434e 100644 --- a/Scripts/Items/Special/Solen Items/BagOfSending.cs +++ b/Scripts/Items/Special/Solen Items/BagOfSending.cs @@ -161,7 +161,7 @@ namespace Server.Items } else if( !this.IsChildOf( from.Backpack ) ) { - MessageHelper.SendLocalizedMessageTo( this, from, 1054107, 0x59 ); // The bag of sending must be in your backpack. + MessageHelper.SendLocalizedMessageTo(this, from, 1062334, 0x59); // The bag of sending must be in your backpack. } else if( this.Charges == 0 ) { @@ -193,7 +193,7 @@ namespace Server.Items } else if( !m_Bag.IsChildOf( from.Backpack ) ) { - MessageHelper.SendLocalizedMessageTo( m_Bag, from, 1054107, 0x59 ); // The bag of sending must be in your backpack. + MessageHelper.SendLocalizedMessageTo(m_Bag, from, 1062334, 0x59); // The bag of sending must be in your backpack. 1054107 is gone from client, using generic response } else if ( m_Bag.Charges == 0 ) { @@ -206,7 +206,7 @@ namespace Server.Items if ( !item.IsChildOf( from.Backpack ) ) { - MessageHelper.SendLocalizedMessageTo( m_Bag, from, 1054152, 0x59 ); // You may only send items from your backpack to your bank box. + MessageHelper.SendLocalizedMessageTo(m_Bag, from, 1054152, 0x59); // You may only send items from your backpack to your bank box. } else if ( item is BagOfSending || item is Container ) { diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs index 1eef4f036..a405c61d2 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs @@ -44,11 +44,10 @@ namespace Server.Mobiles Karma = -3700; // Guessed } - /*public override void GenerateLoot() -- Need to verify + public override void GenerateLoot() // Need to verify { - AddLoot( LootPack.Meager ); - AddLoot( LootPack.Average ); - }*/ + AddLoot( LootPack.FilthyRich ); + } public override int GetAngerSound() { diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs index 300d0c4b1..2a635b0b2 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs @@ -45,11 +45,10 @@ namespace Server.Mobiles Karma = -3700; // Guessed } - /*public override void GenerateLoot() -- Need to verify + public override void GenerateLoot() // -- Need to verify { - AddLoot( LootPack.Meager ); - AddLoot( LootPack.Average ); - }*/ + AddLoot( LootPack.FilthyRich ); + } // TODO: Acid Blood /* diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs index cd2a87940..de549b3aa 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs @@ -56,78 +56,7 @@ namespace Server.Mobiles } - public override void OnDamagedBySpell(Mobile attacker) - { - base.OnDamagedBySpell(attacker); - - DoCounter(attacker); - } - - public override void OnGotMeleeAttack(Mobile attacker) - { - base.OnGotMeleeAttack(attacker); - - DoCounter(attacker); - } - - private void DoCounter(Mobile attacker) - { - if (this.Map == null) - return; - - if (attacker is BaseCreature && ((BaseCreature)attacker).BardProvoked) - return; - - if (0.2 > Utility.RandomDouble()) - { - /* Counterattack with Hit Poison Area - * 20-25 damage, unresistable - * Lethal poison, 100% of the time - * Particle effect: Type: "2" From: "0x4061A107" To: "0x0" ItemId: "0x36BD" ItemIdName: "explosion" FromLocation: "(296 615, 17)" ToLocation: "(296 615, 17)" Speed: "1" Duration: "10" FixedDirection: "True" Explode: "False" Hue: "0xA6" RenderMode: "0x0" Effect: "0x1F78" ExplodeEffect: "0x1" ExplodeSound: "0x0" Serial: "0x4061A107" Layer: "255" Unknown: "0x0" - * Doesn't work on provoked monsters - */ - - Mobile target = null; - - if (attacker is BaseCreature) - { - Mobile m = ((BaseCreature)attacker).GetMaster(); - - if (m != null) - target = m; - } - - if (target == null || !target.InRange(this, 18)) - target = attacker; - - this.Animate(10, 4, 1, true, false, 0); - - ArrayList targets = new ArrayList(); - - foreach (Mobile m in target.GetMobilesInRange(8)) - { - if (m == this || !CanBeHarmful(m)) - continue; - - if (m is BaseCreature && (((BaseCreature)m).Controlled || ((BaseCreature)m).Summoned || ((BaseCreature)m).Team != this.Team)) - targets.Add(m); - else if (m.Player && m.Alive) - targets.Add(m); - } - - for (int i = 0; i < targets.Count; ++i) - { - Mobile m = (Mobile)targets[i]; - - DoHarmful(m); - - AOS.Damage(m, this, Utility.RandomMinMax(20, 25), true, 0, 0, 0, 100, 0); - - m.FixedParticles(0x36BD, 1, 10, 0x1F78, 0xA6, 0, (EffectLayer)255); - m.ApplyPoison(this, Poison.Lethal); - } - } - } + public override Poison HitPoison{ get{ return Poison.Lethal; } } public override bool CanHeal { get { return true; } } public override void GenerateLoot() { diff --git a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs b/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs index 31a6ccec2..c50dda324 100644 --- a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs +++ b/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs @@ -10,7 +10,7 @@ namespace Server.Mobiles { public override ChampionSkullType SkullType{ get{ return ChampionSkullType.Pain; } } - public override Type[] UniqueList{ get{ return new Type[] { }; } } + public override Type[] UniqueList{ get{ return new Type[] { typeof( Pacify ) }; } } public override Type[] SharedList{ get{ return new Type[] { typeof( ANecromancerShroud ), typeof( LieutenantOfTheBritannianRoyalGuard ), typeof( OblivionsNeedle ), @@ -55,8 +55,8 @@ namespace Server.Mobiles SetSkill(SkillName.Tactics, 119.9); SetSkill(SkillName.Wrestling, 119.9); - Fame = 50000; - Karma = -50000; + Fame = 22500; + Karma = -22500; VirtualArmor = 44; } @@ -69,7 +69,7 @@ namespace Server.Mobiles public override bool Unprovokable { get { return true; } } public override bool Uncalmable { get { return true; } } public override Poison PoisonImmune { get { return Poison.Lethal; } } - public override int TreasureMapLevel { get { return 1; } } + //public override int TreasureMapLevel { get { return 1; } } public override int GetAngerSound() { diff --git a/Scripts/Mobiles/PlayerMobile.cs b/Scripts/Mobiles/PlayerMobile.cs index 72c9f01bd..ca3b27fee 100644 --- a/Scripts/Mobiles/PlayerMobile.cs +++ b/Scripts/Mobiles/PlayerMobile.cs @@ -4057,6 +4057,9 @@ namespace Server.Mobiles return "..."; } + [CommandProperty(AccessLevel.GameMaster)] + public int Pestilence { get { return GetValue(ChampionSpawnType.Pestilence); } set { SetValue(ChampionSpawnType.Pestilence, value); } } + [CommandProperty( AccessLevel.GameMaster )] public int Abyss { get { return GetValue( ChampionSpawnType.Abyss ); } set { SetValue( ChampionSpawnType.Abyss, value ); } }