diff --git a/Scripts/Engines/AI/Creature/BaseCreature.cs b/Scripts/Engines/AI/Creature/BaseCreature.cs index a42434e36..10273b697 100644 --- a/Scripts/Engines/AI/Creature/BaseCreature.cs +++ b/Scripts/Engines/AI/Creature/BaseCreature.cs @@ -4950,7 +4950,7 @@ namespace Server.Mobiles protected override void OnTick() { - if( Core.ML && m_Creature.IsDeadBondedPet ); + if( Core.ML && m_Creature.IsDeadBondedPet ) { m_Creature.Delete(); } diff --git a/Scripts/Engines/CannedEvil/ChampionSpawn.cs b/Scripts/Engines/CannedEvil/ChampionSpawn.cs index e51d9575a..7015b10cf 100644 --- a/Scripts/Engines/CannedEvil/ChampionSpawn.cs +++ b/Scripts/Engines/CannedEvil/ChampionSpawn.cs @@ -611,9 +611,9 @@ namespace Server.Engines.CannedEvil return Location; } - private const int Level1 = 5; // First spawn level from 0-5 red skulls - private const int Level2 = 9; // Second spawn level from 6-9 red skulls - private const int Level3 = 13; // Third spawn level from 10-13 red skulls + private const int Level1 = 4; // First spawn level from 0-4 red skulls + private const int Level2 = 8; // Second spawn level from 5-8 red skulls + private const int Level3 = 12; // Third spawn level from 9-12 red skulls public int GetSubLevel() { diff --git a/Scripts/Gumps/RunebookGump.cs b/Scripts/Gumps/RunebookGump.cs index c675b766c..d29f8ec3e 100644 --- a/Scripts/Gumps/RunebookGump.cs +++ b/Scripts/Gumps/RunebookGump.cs @@ -225,7 +225,7 @@ namespace Server.Gumps public override void OnResponse( Mobile from, string text ) { - if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), 1 ) ) + if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), (Core.ML ? 3 : 1) ) ) return; if ( m_Book.CheckAccess( from ) ) @@ -247,7 +247,7 @@ namespace Server.Gumps { from.SendLocalizedMessage( 502415 ); // Request cancelled. - if ( !m_Book.Deleted && from.InRange( m_Book.GetWorldLocation(), 1 ) ) + if ( !m_Book.Deleted && from.InRange( m_Book.GetWorldLocation(), (Core.ML ? 3 : 1) ) ) { from.CloseGump( typeof( RunebookGump ) ); from.SendGump( new RunebookGump( from, m_Book ) ); @@ -259,7 +259,7 @@ namespace Server.Gumps { Mobile from = state.Mobile; - if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), 1 ) || !Multis.DesignContext.Check( from ) ) + if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), (Core.ML ? 3 : 1) ) || !Multis.DesignContext.Check( from ) ) return; int buttonID = info.ButtonID; diff --git a/Scripts/Items/Clothing/BaseClothing.cs b/Scripts/Items/Clothing/BaseClothing.cs index 60ca2df68..99c97af07 100644 --- a/Scripts/Items/Clothing/BaseClothing.cs +++ b/Scripts/Items/Clothing/BaseClothing.cs @@ -41,7 +41,7 @@ namespace Server.Items } #endregion - public virtual bool CanFortify{ get{ return false; } } + public virtual bool CanFortify{ get{ return true; } } private int m_MaxHitPoints; private int m_HitPoints; diff --git a/Scripts/Items/Skill Items/Magical/Spellbook.cs b/Scripts/Items/Skill Items/Magical/Spellbook.cs index 32af61f40..f6db8fa00 100644 --- a/Scripts/Items/Skill Items/Magical/Spellbook.cs +++ b/Scripts/Items/Skill Items/Magical/Spellbook.cs @@ -302,7 +302,13 @@ namespace Server.Items public override bool CanEquip( Mobile from ) { if ( !Ethics.Ethic.CheckEquip( from, this ) ) + { return false; + } + else if ( !from.CanBeginAction( typeof( BaseWeapon ) ) ) + { + return false; + } return base.CanEquip( from ); } diff --git a/Scripts/Items/Weapons/Abilities/WeaponAbility.cs b/Scripts/Items/Weapons/Abilities/WeaponAbility.cs index 5c19b6fdf..496897490 100644 --- a/Scripts/Items/Weapons/Abilities/WeaponAbility.cs +++ b/Scripts/Items/Weapons/Abilities/WeaponAbility.cs @@ -179,11 +179,12 @@ namespace Server.Items from.SendLocalizedMessage( 1063024 ); // You cannot perform this special move right now. return false; } - if ( Core.ML && from.Spell != null ) - { - from.SendLocalizedMessage( 1063024 ); // You cannot perform this special move right now. - return false; - } + + if ( Core.ML && from.Spell != null ) + { + from.SendLocalizedMessage( 1063024 ); // You cannot perform this special move right now. + return false; + } return CheckSkills( from ) && CheckMana( from, false ); } diff --git a/Scripts/Items/Weapons/BaseWeapon.cs b/Scripts/Items/Weapons/BaseWeapon.cs index f4a7d9f41..979e688f7 100644 --- a/Scripts/Items/Weapons/BaseWeapon.cs +++ b/Scripts/Items/Weapons/BaseWeapon.cs @@ -1140,7 +1140,10 @@ namespace Server.Items BaseWeapon weapon = defender.Weapon as BaseWeapon; if ( weapon != null ) + { + defender.FixedParticles(0x3779, 1, 15, 0x158B, 0x0, 0x3, EffectLayer.Waist); weapon.OnSwing( defender, attacker ); + } CounterAttack.StopCountering( defender ); } @@ -2129,8 +2132,8 @@ namespace Server.Items { if ( checkSkills ) { - attacker.CheckSkill( SkillName.Tactics, 0.0, 120.0 ); // Passively check tactics for gain - attacker.CheckSkill( SkillName.Anatomy, 0.0, 120.0 ); // Passively check Anatomy for gain + attacker.CheckSkill( SkillName.Tactics, 0.0, attacker.Skills[SkillName.Tactics].Cap ); // Passively check tactics for gain + attacker.CheckSkill( SkillName.Anatomy, 0.0, attacker.Skills[SkillName.Anatomy].Cap ); // Passively check Anatomy for gain if ( Type == WeaponType.Axe ) attacker.CheckSkill( SkillName.Lumberjacking, 0.0, 100.0 ); // Passively check Lumberjacking for gain @@ -2197,8 +2200,8 @@ namespace Server.Items { if ( checkSkills ) { - attacker.CheckSkill( SkillName.Tactics, 0.0, 120.0 ); // Passively check tactics for gain - attacker.CheckSkill( SkillName.Anatomy, 0.0, 120.0 ); // Passively check Anatomy for gain + attacker.CheckSkill( SkillName.Tactics, 0.0, attacker.Skills[SkillName.Tactics].Cap ); // Passively check tactics for gain + attacker.CheckSkill( SkillName.Anatomy, 0.0, attacker.Skills[SkillName.Anatomy].Cap ); // Passively check Anatomy for gain if ( Type == WeaponType.Axe ) attacker.CheckSkill( SkillName.Lumberjacking, 0.0, 100.0 ); // Passively check Lumberjacking for gain diff --git a/Scripts/Items/Weapons/SlayerGroup.cs b/Scripts/Items/Weapons/SlayerGroup.cs index 2028af53a..d4cc6d39b 100644 --- a/Scripts/Items/Weapons/SlayerGroup.cs +++ b/Scripts/Items/Weapons/SlayerGroup.cs @@ -123,7 +123,7 @@ namespace Server.Items } arachnid.Opposition = new SlayerGroup[]{ reptilian }; - arachnid.FoundOn = new Type[]{ typeof( AncientWyrm ), typeof( Dragon ), typeof( OphidianMatriarch ), typeof( ShadowWyrm ) }; + arachnid.FoundOn = new Type[]{ typeof( AncientWyrm ), typeof( GreaterDragon ), typeof( Dragon ), typeof( OphidianMatriarch ), typeof( ShadowWyrm ) }; arachnid.Super = new SlayerEntry( SlayerName.ArachnidDoom, typeof( DreadSpider ), typeof( FrostSpider ), typeof( GiantBlackWidow ), typeof( GiantSpider ), typeof( Mephitis ), typeof( Scorpion ), typeof( TerathanAvenger ), typeof( TerathanDrone ), typeof( TerathanMatriarch ), typeof( TerathanWarrior ) ); arachnid.Entries = new SlayerEntry[] { @@ -134,10 +134,10 @@ namespace Server.Items reptilian.Opposition = new SlayerGroup[]{ arachnid }; reptilian.FoundOn = new Type[]{ typeof( TerathanAvenger ), typeof( TerathanMatriarch ) }; - reptilian.Super = new SlayerEntry( SlayerName.ReptilianDeath, typeof( AncientWyrm ), typeof( DeepSeaSerpent ), typeof( Dragon ), typeof( Drake ), typeof( GiantIceWorm ), typeof( IceSerpent ), typeof( GiantSerpent ), typeof( Hiryu ), typeof( IceSnake ), typeof( JukaLord ), typeof( JukaMage ), typeof( JukaWarrior ), typeof( LavaSerpent ), typeof( LavaSnake ), typeof( LesserHiryu ), typeof( Lizardman ), typeof( OphidianArchmage ), typeof( OphidianKnight ), typeof( OphidianMage ), typeof( OphidianMatriarch ), typeof( OphidianWarrior ), typeof( SeaSerpent ), typeof( Serado ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SilverSerpent ), typeof( SkeletalDragon ), typeof( Snake ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ), typeof( Yamandon ) ); + reptilian.Super = new SlayerEntry( SlayerName.ReptilianDeath, typeof( AncientWyrm ), typeof( DeepSeaSerpent ), typeof( GreaterDragon ), typeof( Dragon ), typeof( Drake ), typeof( GiantIceWorm ), typeof( IceSerpent ), typeof( GiantSerpent ), typeof( Hiryu ), typeof( IceSnake ), typeof( JukaLord ), typeof( JukaMage ), typeof( JukaWarrior ), typeof( LavaSerpent ), typeof( LavaSnake ), typeof( LesserHiryu ), typeof( Lizardman ), typeof( OphidianArchmage ), typeof( OphidianKnight ), typeof( OphidianMage ), typeof( OphidianMatriarch ), typeof( OphidianWarrior ), typeof( SeaSerpent ), typeof( Serado ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SilverSerpent ), typeof( SkeletalDragon ), typeof( Snake ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ), typeof( Yamandon ) ); reptilian.Entries = new SlayerEntry[] { - new SlayerEntry( SlayerName.DragonSlaying, typeof( AncientWyrm ), typeof( Dragon ), typeof( Drake ), typeof( Hiryu ), typeof( LesserHiryu ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SkeletalDragon ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ) ), + new SlayerEntry( SlayerName.DragonSlaying, typeof( AncientWyrm ), typeof( GreaterDragon ), typeof( Dragon ), typeof( Drake ), typeof( Hiryu ), typeof( LesserHiryu ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SkeletalDragon ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ) ), new SlayerEntry( SlayerName.LizardmanSlaughter, typeof( Lizardman ) ), new SlayerEntry( SlayerName.Ophidian, typeof( OphidianArchmage ), typeof( OphidianKnight ), typeof( OphidianMage ), typeof( OphidianMatriarch ), typeof( OphidianWarrior ) ), new SlayerEntry( SlayerName.SnakesBane, typeof( DeepSeaSerpent ), typeof( GiantIceWorm ), typeof( GiantSerpent ), typeof( IceSerpent ), typeof( IceSnake ), typeof( LavaSerpent ), typeof( LavaSnake ), typeof( SeaSerpent ), typeof( Serado ), typeof( SilverSerpent ), typeof( Snake ), typeof( Yamandon ) ) diff --git a/Scripts/Misc/SkillCheck.cs b/Scripts/Misc/SkillCheck.cs index f6df19f6a..db655bc7f 100644 --- a/Scripts/Misc/SkillCheck.cs +++ b/Scripts/Misc/SkillCheck.cs @@ -207,7 +207,7 @@ namespace Server.Misc Skills skills = from.Skills; - if ( !from.Player && ( skills.Total / skills.Cap ) >= Utility.RandomDouble() )//( skills.Total >= skills.Cap ) + if ( from.Player && ( skills.Total / skills.Cap ) >= Utility.RandomDouble() )//( skills.Total >= skills.Cap ) { for ( int i = 0; i < skills.Length; ++i ) { diff --git a/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs b/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs index 27f8cdf46..a855b2271 100644 --- a/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs +++ b/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs @@ -29,7 +29,7 @@ namespace Server.Mobiles SetDex( 151, 170 ); SetInt( 251, 282 ); - SetDamage( 4, 5 ); + SetDamage( 21, 28 ); SetDamageType( ResistanceType.Physical, 0 ); SetDamageType( ResistanceType.Cold, 50 ); @@ -77,7 +77,7 @@ namespace Server.Mobiles Item pads = from.FindItemOnLayer( Layer.Shoes ); if ( pads is PadsOfTheCuSidhe ) - from.SendMessage( "Your boots allow you to mount the Cu Sidhe", null, 0x3B2 ); + from.SendLocalizedMessage( 1071981 ); // Your boots allow you to mount the Cu Sidhe. else { from.SendLocalizedMessage( 1072203 ); // Only Elves may use this. diff --git a/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs b/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs index 1100ea847..b2d8788e0 100644 --- a/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs +++ b/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs @@ -21,7 +21,7 @@ namespace Server.Mobiles SetHits( 751, 930 ); SetMana( 0 ); - SetDamage( 6, 7 ); + SetDamage( 18, 23 ); SetDamageType( ResistanceType.Physical, 100 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs index 491519150..1eef4f036 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs @@ -20,7 +20,7 @@ namespace Server.Mobiles SetHits( 551, 650 ); - SetDamage( 11, 13 ); + SetDamage( 21, 25 ); SetDamageType( ResistanceType.Physical, 30 ); SetDamageType( ResistanceType.Poison, 70 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs index dbb711fc9..459020c23 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs @@ -21,7 +21,7 @@ namespace Server.Mobiles SetHits( 1500 ); SetStam( 150 ); - SetDamage( 5, 6 ); + SetDamage( 16, 19 ); SetDamageType( ResistanceType.Physical, 30 ); SetDamageType( ResistanceType.Fire, 70 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs index cf387d42d..59f37917a 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs @@ -34,7 +34,7 @@ namespace Server.Mobiles SetHits(304, 321); - SetDamage(6, 11); + SetDamage(11, 20); SetDamageType(ResistanceType.Physical, 100); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs index b1f17c42d..ca7140ad3 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs @@ -32,7 +32,7 @@ namespace Server.Mobiles SetHits(353, 399); - SetDamage(6, 11); + SetDamage(13, 24); SetDamageType(ResistanceType.Physical, 100); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs index 92dfd46f5..1a66de10d 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs @@ -26,7 +26,7 @@ namespace Server.Mobiles SetHits( 61, 69 ); - SetDamage( 2, 21 ); + SetDamage( 4, 40 ); SetDamageType( ResistanceType.Physical, 100 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs index 2386460fb..4c59a1566 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs @@ -24,7 +24,7 @@ namespace Server.Mobiles SetHits( 1170, 1320 ); - SetDamage( 3, 4 ); // Estimate until Anat/Tactics is verified + SetDamage( 26, 35 ); SetDamageType( ResistanceType.Physical, 100 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs index 76d654754..6adefdfce 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs @@ -21,7 +21,7 @@ namespace Server.Mobiles SetHits( 301, 340 ); - SetDamage( 5, 8 ); + SetDamage( 11, 20 ); SetDamageType( ResistanceType.Physical, 100 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs index 0b2e6e8aa..e7eb075e9 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs @@ -21,7 +21,7 @@ namespace Server.Mobiles SetHits( 401, 440 ); - SetDamage( 4, 7 ); + SetDamage( 11, 20 ); SetDamageType( ResistanceType.Physical, 100 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs index 8c663fdde..0156428ac 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs @@ -22,7 +22,7 @@ namespace Server.Mobiles SetHits( 354, 383 ); - SetDamage( 4, 7 ); + SetDamage( 11, 20 ); SetDamageType( ResistanceType.Physical, 100 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs index ed05d4c3c..cd2a87940 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs @@ -29,7 +29,7 @@ namespace Server.Mobiles SetHits( 415, 445 ); - SetDamage( 4, 7 ); + SetDamage( 13, 23 ); SetDamageType( ResistanceType.Physical, 40 ); SetDamageType( ResistanceType.Cold, 20 ); diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs index 4e6d492b7..9363f095e 100644 --- a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs +++ b/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs @@ -23,7 +23,7 @@ namespace Server.Mobiles SetHits( 302, 340 ); - SetDamage( 5, 6 ); + SetDamage( 11, 14 ); SetDamageType( ResistanceType.Physical, 100 ); @@ -48,7 +48,8 @@ namespace Server.Mobiles } - public override bool CanHeal { get { return true; } } + public override bool CanHeal { get { return true; } } + public override void GenerateLoot() { AddLoot( LootPack.Rich ); // Need to verify diff --git a/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs b/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs index 30da02527..3ec3adddd 100644 --- a/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs +++ b/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs @@ -21,7 +21,7 @@ namespace Server.Mobiles SetInt( 475, 675 ); SetHits( 1000, 2000 ); - SetStam( 120, 135 ); + SetStam( 120, 135 ); SetDamage( 24, 33 ); @@ -33,11 +33,11 @@ namespace Server.Mobiles SetResistance( ResistanceType.Poison, 40, 60 ); SetResistance( ResistanceType.Energy, 50, 75 ); - SetSkill( SkillName.Meditation, 0 ); + SetSkill( SkillName.Meditation, 0 ); SetSkill( SkillName.EvalInt, 110.0, 140.0 ); SetSkill( SkillName.Magery, 110.0, 140.0 ); - SetSkill( SkillName.Poisoning, 0 ); - SetSkill( SkillName.Anatomy, 0 ); + SetSkill( SkillName.Poisoning, 0 ); + SetSkill( SkillName.Anatomy, 0 ); SetSkill( SkillName.MagicResist, 110.0, 140.0 ); SetSkill( SkillName.Tactics, 110.0, 140.0 ); SetSkill( SkillName.Wrestling, 115.0, 145.0 ); @@ -90,11 +90,13 @@ namespace Server.Mobiles base.Deserialize( reader ); int version = reader.ReadInt(); + SetDamage( 24, 33 ); + if( version == 0 ) { Server.SkillHandlers.AnimalTaming.ScaleStats( this, 0.50 ); Server.SkillHandlers.AnimalTaming.ScaleSkills( this, 0.80, 0.90 ); // 90% * 80% = 72% of original skills trainable to 90% - Skills[25].Base = Skills[25].Cap; // Greater dragons have a 90% cap reduction and 90% skill reduction on magery + Skills[SkillName.Magery].Base = Skills[SkillName.Magery].Cap; // Greater dragons have a 90% cap reduction and 90% skill reduction on magery } } } diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs b/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs index 7ce57a827..596308362 100644 --- a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs +++ b/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs @@ -68,6 +68,7 @@ namespace Server.Mobiles } public override bool AutoDispel{ get{ return true; } } + public override Poison PoisonImmune{ get{ return Poison.Lethal; } } public override void OnGotMeleeAttack( Mobile attacker ) { diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs b/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs index 6bd944254..8b008246e 100644 --- a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs +++ b/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs @@ -51,14 +51,7 @@ namespace Server.Mobiles public override void OnThink() { - bool expired; - - expired = ( DateTime.Now >= m_ExpireTime ); - - if ( !expired && m_Owner != null ) - expired = m_Owner.Deleted || Map != m_Owner.Map || !InRange( m_Owner, 16 ); - - if ( expired ) + if ( m_Owner != null && ( DateTime.Now >= m_ExpireTime || m_Owner.Deleted || Map != m_Owner.Map || !InRange( m_Owner, 16 ) ) ) { PlaySound( GetIdleSound() ); Delete(); diff --git a/Scripts/Mobiles/PlayerMobile.cs b/Scripts/Mobiles/PlayerMobile.cs index db8ab553c..5d4109b89 100644 --- a/Scripts/Mobiles/PlayerMobile.cs +++ b/Scripts/Mobiles/PlayerMobile.cs @@ -1026,7 +1026,7 @@ namespace Server.Mobiles strBase = this.Str; //this.Str already includes GetStatOffset/str strOffs = AosAttributes.GetValue( this, AosAttribute.BonusHits ); - if ( Core.ML && strOffs > 25 ) + if ( Core.ML && strOffs > 25 && AccessLevel <= AccessLevel.Player ) strOffs = 25; if ( AnimalForm.UnderTransformation( this, typeof( BakeKitsune ) ) || AnimalForm.UnderTransformation( this, typeof( GreyWolf ) ) ) diff --git a/Scripts/Spells/Base/MagerySpell.cs b/Scripts/Spells/Base/MagerySpell.cs index a850ca42d..96764cda8 100644 --- a/Scripts/Spells/Base/MagerySpell.cs +++ b/Scripts/Spells/Base/MagerySpell.cs @@ -55,7 +55,7 @@ namespace Server.Spells maxSkill += (1 + ((int)Circle / 6)) * 25; if( m.Skills[SkillName.MagicResist].Value < maxSkill ) - m.CheckSkill( SkillName.MagicResist, 0.0, 120.0 ); + m.CheckSkill( SkillName.MagicResist, 0.0, m.Skills[SkillName.MagicResist].Cap ); return m.Skills[SkillName.MagicResist].Value; } @@ -76,7 +76,7 @@ namespace Server.Spells maxSkill += (1 + ((int)Circle / 6)) * 25; if( target.Skills[SkillName.MagicResist].Value < maxSkill ) - target.CheckSkill( SkillName.MagicResist, 0.0, 120.0 ); + target.CheckSkill( SkillName.MagicResist, 0.0, target.Skills[SkillName.MagicResist].Cap ); return (n >= Utility.RandomDouble()); } diff --git a/Scripts/Spells/Base/Spell.cs b/Scripts/Spells/Base/Spell.cs index 8b4bcca2c..55dc39dd2 100644 --- a/Scripts/Spells/Base/Spell.cs +++ b/Scripts/Spells/Base/Spell.cs @@ -260,14 +260,14 @@ namespace Server.Spells public virtual int GetDamageFixed( Mobile m ) { - m.CheckSkill( DamageSkill, 0.0, 120.0 ); + m.CheckSkill( DamageSkill, 0.0, m.Skills[DamageSkill].Cap ); return m.Skills[DamageSkill].Fixed; } public virtual double GetDamageSkill( Mobile m ) { - m.CheckSkill( DamageSkill, 0.0, 120.0 ); + m.CheckSkill( DamageSkill, 0.0, m.Skills[DamageSkill].Cap ); return m.Skills[DamageSkill].Value; } diff --git a/Scripts/Spells/Necromancy/Wither.cs b/Scripts/Spells/Necromancy/Wither.cs index 83f5ea0d4..97c6381fa 100644 --- a/Scripts/Spells/Necromancy/Wither.cs +++ b/Scripts/Spells/Necromancy/Wither.cs @@ -42,7 +42,7 @@ namespace Server.Spells.Necromancy { List targets = new List(); - foreach ( Mobile m in Caster.GetMobilesInRange( 5 ) ) + foreach ( Mobile m in Caster.GetMobilesInRange( Core.ML ? 4 : 5 ) ) if ( Caster != m && Caster.InLOS( m ) && SpellHelper.ValidIndirectTarget( Caster, m ) && Caster.CanBeHarmful( m, false ) ) targets.Add( m );