diff --git a/Scripts/Engines/Craft/Core/Repair.cs b/Scripts/Engines/Craft/Core/Repair.cs index fc960ec2a..63f6a887c 100644 --- a/Scripts/Engines/Craft/Core/Repair.cs +++ b/Scripts/Engines/Craft/Core/Repair.cs @@ -103,7 +103,7 @@ namespace Server.Engines.Craft { // Clothing repairable but not craftable - if( m_CraftSystem is DefTailoring ) + if ( m_CraftSystem is DefTailoring ) { return (clothing is BearMask) || (clothing is DeerMask); @@ -128,7 +128,11 @@ namespace Server.Engines.Craft { return ( weapon is Club ) || ( weapon is BlackStaff ) - || ( weapon is MagicWand ); + || ( weapon is MagicWand ) + #region Temporary + // TODO: Make these items craftable + || ( weapon is WildStaff ); + #endregion } else if ( m_CraftSystem is DefBlacksmithy ) { @@ -146,6 +150,14 @@ namespace Server.Engines.Craft || ( weapon is DiamondMace ); #endregion } + #region Temporary + // TODO: Make these items craftable + else if ( m_CraftSystem is DefBowFletching ) + { + return ( weapon is ElvenCompositeLongbow ) + || ( weapon is MagicalShortbow ); + } + #endregion return false; } @@ -156,7 +168,32 @@ namespace Server.Engines.Craft #region Temporary // TODO: Make these items craftable - if ( m_CraftSystem is DefBlacksmithy ) + if ( m_CraftSystem is DefTailoring ) + { + return ( armor is LeafTonlet ) + || ( armor is LeafArms ) + || ( armor is LeafChest ) + || ( armor is LeafGloves ) + || ( armor is LeafGorget ) + || ( armor is LeafLegs ) + || ( armor is HideChest ) + || ( armor is HideGloves ) + || ( armor is HideGorget ) + || ( armor is HidePants ) + || ( armor is HidePauldrons ); + } + else if ( m_CraftSystem is DefCarpentry ) + { + return ( armor is WingedHelm ) + || ( armor is RavenHelm ) + || ( armor is VultureHelm ) + || ( armor is WoodlandArms ) + || ( armor is WoodlandChest ) + || ( armor is WoodlandGloves ) + || ( armor is WoodlandGorget ) + || ( armor is WoodlandLegs ); + } + else if ( m_CraftSystem is DefBlacksmithy ) { return ( armor is Circlet ) || ( armor is RoyalCirclet ) @@ -174,7 +211,6 @@ namespace Server.Engines.Craft if( !CheckDeed( from ) ) return; - bool usingDeed = (m_Deed != null); bool toDelete = false; diff --git a/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs b/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs index 84a52d513..5badd1cd4 100644 --- a/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs +++ b/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs @@ -16,7 +16,7 @@ namespace Server.Items Removal = TalismanRemoval.Damage; Blessed = GetRandomBlessed(); - Protection = GetRandomProtection(); + Protection = GetRandomProtection( false ); SkillBonuses.SetValues( 0, SkillName.SpiritSpeak, 10.0 ); SkillBonuses.SetValues( 1, SkillName.Necromancy, 5.0 ); @@ -30,7 +30,7 @@ namespace Server.Items { base.Serialize( writer ); - writer.Write( (int) 0 ); // version + writer.Write( (int) 1 ); // version } public override void Deserialize( GenericReader reader ) @@ -38,6 +38,9 @@ namespace Server.Items base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && ( Protection == null || Protection.IsEmpty ) ) + Protection = GetRandomProtection( false ); } } } diff --git a/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs b/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs index 2b220c66b..8505103b4 100644 --- a/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs +++ b/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs @@ -16,8 +16,8 @@ namespace Server.Items MaxChargeTime = 1800; Blessed = GetRandomBlessed(); - Protection = GetRandomProtection(); - + Protection = GetRandomProtection( false ); + Attributes.RegenHits = 2; Attributes.LowerManaCost = 10; } @@ -35,7 +35,7 @@ namespace Server.Items { base.Serialize( writer ); - writer.Write( (int) 0 ); // version + writer.Write( (int) 1 ); // version } public override void Deserialize( GenericReader reader ) @@ -43,6 +43,9 @@ namespace Server.Items base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && ( Protection == null || Protection.IsEmpty ) ) + Protection = GetRandomProtection( false ); } } } diff --git a/Scripts/Items/Talismans/BaseTalisman.cs b/Scripts/Items/Talismans/BaseTalisman.cs index a2264e5a1..e5c2f70eb 100644 --- a/Scripts/Items/Talismans/BaseTalisman.cs +++ b/Scripts/Items/Talismans/BaseTalisman.cs @@ -345,7 +345,7 @@ namespace Server.Items from.SendLocalizedMessage(1075001); // You have been given some ingots. else if (item is Bandage) from.SendLocalizedMessage(1075002); // You have been given some clean bandages. - else if (m_Summoner.Name != null) + else if (m_Summoner != null && m_Summoner.Name != null) from.SendLocalizedMessage(1074853, m_Summoner.Name.ToString()); // You have been given ~1_name~ } else if (obj is BaseCreature) @@ -553,7 +553,7 @@ namespace Server.Items SetSaveFlag(ref flags, SaveFlag.SkillBonuses, !m_AosSkillBonuses.IsEmpty); SetSaveFlag(ref flags, SaveFlag.Protection, m_Protection != null && !m_Protection.IsEmpty); SetSaveFlag(ref flags, SaveFlag.Killer, m_Killer != null && !m_Killer.IsEmpty); - SetSaveFlag(ref flags, SaveFlag.Summoner, !m_Summoner.IsEmpty); + SetSaveFlag(ref flags, SaveFlag.Summoner, m_Summoner != null && !m_Summoner.IsEmpty); SetSaveFlag(ref flags, SaveFlag.Removal, m_Removal != TalismanRemoval.None); SetSaveFlag(ref flags, SaveFlag.KarmaLoss, m_KarmaLoss != 0); SetSaveFlag(ref flags, SaveFlag.Skill, (int)m_Skill != 0); @@ -894,26 +894,32 @@ namespace Server.Items public static TalismanAttribute GetRandomKiller() { - if (0.5 > Utility.RandomDouble()) - { - int num = Utility.Random(m_Killers.Length); + return GetRandomKiller( true ); + } - return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(10, 100)); - } + public static TalismanAttribute GetRandomKiller( bool includingNone ) + { + if ( includingNone && Utility.RandomBool() ) + return new TalismanAttribute(); - return new TalismanAttribute(); + int num = Utility.Random(m_Killers.Length); + + return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(10, 100)); } public static TalismanAttribute GetRandomProtection() { - if (0.5 > Utility.RandomDouble()) - { - int num = Utility.Random(m_Killers.Length); + return GetRandomProtection( true ); + } - return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(5, 60)); - } + public static TalismanAttribute GetRandomProtection( bool includingNone ) + { + if ( includingNone && Utility.RandomBool() ) + return new TalismanAttribute(); - return new TalismanAttribute(); + int num = Utility.Random(m_Killers.Length); + + return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(5, 60)); } private static SkillName[] m_Skills = new SkillName[] diff --git a/Scripts/Mobiles/AI/SpeedInfo.cs b/Scripts/Mobiles/AI/SpeedInfo.cs index 9cdae0a0f..03ac7fc38 100644 --- a/Scripts/Mobiles/AI/SpeedInfo.cs +++ b/Scripts/Mobiles/AI/SpeedInfo.cs @@ -119,7 +119,17 @@ namespace Server typeof( DemonKnight ), typeof( GiantBlackWidow ), typeof( SummonedAirElemental ), typeof( LesserHiryu ), typeof( Hiryu ), typeof( LadyOfTheSnow ), typeof( RaiJu ), typeof( Ronin ), typeof( RuneBeetle ), - typeof( Changeling ) + typeof( Changeling ), + #region ML named mobs - before Paragon speedboost + typeof( LadyJennifyr ), typeof( LadyMarai ), typeof( MasterJonath ), + typeof( MasterMikael ), typeof( MasterTheophilus ), typeof( RedDeath ), + typeof( SirPatrick ), typeof( Miasma ), typeof( Rend ), + typeof( Grobu ), typeof( Gnaw ), typeof( Guile ), + typeof( Irk ), typeof( Spite ), typeof( LadyLissith ), + typeof( LadySabrix ), typeof( Malefic ), typeof( Silk ), + typeof( Virulent ) + // TODO: Where to put Lurg, Putrefier, Swoop and Pyre? They seem slower. + #endregion } ), /* Very Fast */ new SpeedInfo( 0.175, 0.350, new Type[] @@ -132,21 +142,7 @@ namespace Server typeof( FactionHenchman ), typeof( FactionMercenary ), typeof( FactionNecromancer ), typeof( FactionSorceress ), typeof( FactionWizard ), typeof( FactionBerserker ), typeof( FactionPaladin ), typeof( Leviathan ), typeof( FireBeetle ), - typeof( FanDancer ), - #region ML named mobs - typeof( LadyJennifyr ), typeof( LadyMarai ), typeof( MasterJonath ), - typeof( MasterMikael ), typeof( MasterTheophilus ), typeof( RedDeath ), - typeof( SirPatrick ), typeof( Miasma ), typeof( Rend ), - typeof( Grobu ), typeof( Gnaw ), typeof( Guile ), - typeof( Irk ), typeof( Spite ), typeof( LadyLissith ), - typeof( LadySabrix ), typeof( Malefic ), typeof( Silk ), - typeof( Virulent ) - /* - // These don't seem to be fast? - typeof( Lurg ), typeof( Putrefier ), typeof( Swoop), - typeof( Pyre ) - */ - #endregion + typeof( FanDancer ) } ), /* Medium */ new SpeedInfo( 0.25, 0.5, new Type[] diff --git a/Scripts/Mobiles/BaseCreature.cs b/Scripts/Mobiles/BaseCreature.cs index a9e0c8f77..6b6e62d73 100644 --- a/Scripts/Mobiles/BaseCreature.cs +++ b/Scripts/Mobiles/BaseCreature.cs @@ -715,7 +715,7 @@ namespace Server.Mobiles #endregion #region Flee!!! - public virtual bool CanFlee{ get{ return ( !m_Paragon && !GivesMLMinorArtifact ); } } + public virtual bool CanFlee{ get{ return !m_Paragon; } } private DateTime m_EndFlee; @@ -880,7 +880,7 @@ namespace Server.Mobiles public override string ApplyNameSuffix( string suffix ) { - if ( IsParagon ) + if ( IsParagon && !GivesMLMinorArtifact ) { if ( suffix.Length == 0 ) suffix = "(Paragon)"; @@ -1088,7 +1088,10 @@ namespace Server.Mobiles if ( base.CheckPoisonImmunity( from, poison ) ) return true; - Poison p = this.PoisonImmune; + Poison p = PoisonImmune; + + if ( m_Paragon ) + p = PoisonImpl.IncreaseLevel( p ); return ( p != null && p.Level >= poison.Level ); } @@ -2780,13 +2783,15 @@ namespace Server.Mobiles if ( m_Paragon ) p = PoisonImpl.IncreaseLevel( p ); - if ( p != null && HitPoisonChance >= Utility.RandomDouble() ) { + if ( p != null && HitPoisonChance >= Utility.RandomDouble() ) + { defender.ApplyPoison( this, p ); - if ( this.Controlled ) - this.CheckSkill(SkillName.Poisoning, 0, this.Skills[SkillName.Poisoning].Cap); + + if ( Controlled ) + CheckSkill( SkillName.Poisoning, 0, Skills[SkillName.Poisoning].Cap ); } - if( AutoDispel && defender is BaseCreature && ((BaseCreature)defender).IsDispellable && AutoDispelChance > Utility.RandomDouble() ) + if ( AutoDispel && defender is BaseCreature && ((BaseCreature)defender).IsDispellable && AutoDispelChance > Utility.RandomDouble() ) Dispel( defender ); } @@ -4493,13 +4498,18 @@ namespace Server.Mobiles public virtual void OnKilledBy( Mobile mob ) { - if ( m_Paragon && Paragon.CheckArtifactChance( mob, this ) ) - Paragon.GiveArtifactTo( mob ); - #region Mondain's Legacy - if ( GivesMLMinorArtifact && MondainsLegacy.CheckArtifactChance( mob, this ) ) - MondainsLegacy.GiveArtifactTo( mob ); + if ( GivesMLMinorArtifact ) + { + if ( MondainsLegacy.CheckArtifactChance( mob, this ) ) + MondainsLegacy.GiveArtifactTo( mob ); + } #endregion + else if ( m_Paragon ) + { + if ( Paragon.CheckArtifactChance( mob, this ) ) + Paragon.GiveArtifactTo( mob ); + } } public override void OnDeath( Container c ) diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs index 21d6d40f9..51fad9d39 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs @@ -11,6 +11,8 @@ namespace Server.Mobiles [Constructable] public LadyJennifyr() { + IsParagon = true; + Name = "Lady Jennifyr"; Hue = 0x76D; @@ -42,7 +44,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override void OnGaveMeleeAttack( Mobile defender ) diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs index 69ed44ae5..3ba6962b0 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs @@ -11,6 +11,8 @@ namespace Server.Mobiles [Constructable] public LadyMarai() { + IsParagon = true; + Name = "Lady Marai"; Hue = 0x21; @@ -42,7 +44,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs index 2708ef2a7..64803f8cf 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public MasterJonath() { + IsParagon = true; + Name = "Master Jonath"; Hue = 0x455; @@ -52,7 +54,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } // TODO: Special move? diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs index 893421310..545312b00 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public MasterMikael() { + IsParagon = true; + Name = "Master Mikael"; Hue = 0x8FD; @@ -51,7 +53,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } // TODO: Special move? diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs index dc64a6190..2e41c07c7 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs @@ -10,8 +10,11 @@ namespace Server.Mobiles [Constructable] public MasterTheophilus() { + IsParagon = true; + Name = "Master Theophilus"; Title = "the necromancer"; + Hue = 0; SetStr( 137, 187 ); SetDex( 253, 301 ); @@ -59,7 +62,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() @@ -67,17 +70,6 @@ namespace Server.Mobiles return WeaponAbility.ParalyzingBlow; } - /* - // TODO: Needs verification - public override void OnDeath( Container c ) - { - base.OnDeath( c ); - - if ( Paragon.ChestChance > Utility.RandomDouble() ) - c.DropItem( new ParagonChest( Name, TreasureMapLevel ) ); - } - */ - public override bool GivesMLMinorArtifact{ get{ return true; } } public override int TreasureMapLevel{ get{ return 5; } } diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs index 52f89795c..9d2f8c207 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs @@ -11,6 +11,8 @@ namespace Server.Mobiles public RedDeath() : base( "Red Death" ) { + IsParagon = true; + Hue = 0x21; BaseSoundID = 0x1C3; @@ -51,7 +53,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs b/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs index 019ad9dc4..e3571660c 100644 --- a/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs +++ b/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs @@ -12,6 +12,8 @@ namespace Server.Mobiles [Constructable] public SirPatrick() { + IsParagon = true; + Name = "Sir Patrick"; Hue = 0x47E; @@ -43,7 +45,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override void OnGaveMeleeAttack( Mobile defender ) diff --git a/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs b/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs index ea14e3844..cddd4d4d0 100644 --- a/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs +++ b/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Miasma() { + IsParagon = true; + Name = "Miasma"; Hue = 0x8FD; @@ -38,13 +40,11 @@ namespace Server.Mobiles Fame = 21000; Karma = -21000; - - Tamable = false; } public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override WeaponAbility GetWeaponAbility() @@ -80,16 +80,11 @@ namespace Server.Mobiles case 15: c.DropItem( new HunterLegs() ); break; } } - - if ( Paragon.ChestChance > Utility.RandomDouble() ) - c.DropItem( new ParagonChest( Name, TreasureMapLevel ) ); } */ public override bool GivesMLMinorArtifact{ get{ return true; } } public override int TreasureMapLevel{ get{ return 5; } } - public override Poison PoisonImmune{ get{ return Poison.Lethal; } } - public override Poison HitPoison{ get{ return Poison.Lethal; } } public Miasma( Serial serial ) : base( serial ) diff --git a/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs b/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs index e0327fe95..6054c703e 100644 --- a/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs +++ b/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs @@ -13,6 +13,8 @@ namespace Server.Mobiles [Constructable] public Pyre() { + IsParagon = true; + Name = "Pyre"; Hue = 0x489; @@ -48,7 +50,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs b/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs index 9f7a16240..919d8f853 100644 --- a/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs +++ b/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Rend() { + IsParagon = true; + Name = "Rend"; Hue = 0x455; @@ -38,19 +40,11 @@ namespace Server.Mobiles Fame = 21000; Karma = -21000; - - Tamable = false; - - /* - // TODO: Needs verification - if ( Paragon.ChestChance > Utility.RandomDouble() ) - PackItem( new ParagonChest( Name, TreasureMapLevel ) ); - */ } public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() @@ -61,6 +55,8 @@ namespace Server.Mobiles return WeaponAbility.BleedAttack; } + public override bool GivesMLMinorArtifact{ get{ return true; } } + public Rend( Serial serial ) : base( serial ) { diff --git a/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs b/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs index 407b44b51..abb2aed22 100644 --- a/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs +++ b/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Grobu() { + IsParagon = true; + Name = "Grobu"; Hue = 0x455; @@ -40,13 +42,11 @@ namespace Server.Mobiles Fame = 1000; Karma = 1000; - - Tamable = false; } public override void GenerateLoot() { - AddLoot( LootPack.AosFilthyRich, 3 ); + AddLoot( LootPack.FilthyRich, 2 ); } /* diff --git a/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs b/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs index 98b532b0b..86d386d96 100644 --- a/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs +++ b/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Lurg() { + IsParagon = true; + Name = "Lurg"; Hue = 0x455; @@ -39,16 +41,11 @@ namespace Server.Mobiles Fame = 10000; Karma = -10000; - - /* - if ( Paragon.ChestChance > Utility.RandomDouble() ) // TODO: Needs verification - PackItem( new ParagonChest( Name, TreasureMapLevel ) ); - */ } public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs b/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs index 32093eec0..be9a8bd34 100644 --- a/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs +++ b/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Putrefier() { + IsParagon = true; + Name = "Putrefier"; Hue = 63; @@ -41,13 +43,16 @@ namespace Server.Mobiles SetSkill( SkillName.Meditation, 41.4, 85.0 ); SetSkill( SkillName.Poisoning, 45.0, 50.0 ); + Fame = 24000; + Karma = -24000; + PackScroll( 4, 7 ); PackScroll( 4, 7 ); } public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } /* @@ -60,15 +65,11 @@ namespace Server.Mobiles if ( Utility.RandomDouble() < 0.6 ) c.DropItem( new ParrotItem() ); - - if ( Paragon.ChestChance > Utility.RandomDouble() ) - c.DropItem( new ParagonChest( Name, TreasureMapLevel ) ); } */ public override bool GivesMLMinorArtifact{ get{ return true; } } - public override Poison PoisonImmune{ get{ return Poison.Lethal; } } - public override Poison HitPoison{ get{ return Poison.Lethal; } } + public override Poison HitPoison{ get{ return Poison.Deadly; } } // Becomes Lethal with Paragon bonus public override int TreasureMapLevel{ get{ return 5; } } public Putrefier( Serial serial ) diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs index 794171c82..8d65f4c16 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Gnaw() { + IsParagon = true; + Name = "Gnaw"; Hue = 0x130; @@ -37,13 +39,11 @@ namespace Server.Mobiles Fame = 17500; Karma = -17500; - - Tamable = false; } public override void GenerateLoot() { - AddLoot( LootPack.AosFilthyRich, 3 ); + AddLoot( LootPack.FilthyRich, 2 ); } public override bool GivesMLMinorArtifact{ get{ return true; } } diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs index 57033abec..abec9e794 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs @@ -13,6 +13,10 @@ namespace Server.Mobiles [Constructable] public Guile() { + IsParagon = true; + + Hue = DefaultHue; + SetStr( 53, 214 ); SetDex( 243, 367 ); SetInt( 369, 586 ); @@ -61,7 +65,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public Guile( Serial serial ) diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs index c854d4521..ab5b3bf19 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs @@ -13,6 +13,10 @@ namespace Server.Mobiles [Constructable] public Irk() { + IsParagon = true; + + Hue = DefaultHue; + SetStr( 23, 183 ); SetDex( 259, 360 ); SetInt( 374, 600 ); @@ -46,7 +50,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } /* diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs index 97f8b8ee0..93d6460df 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs @@ -11,6 +11,8 @@ namespace Server.Mobiles [Constructable] public LadyLissith() { + IsParagon = true; + Name = "Lady Lissith"; Hue = 0x452; @@ -44,7 +46,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs index 3cc9a323c..b601250e3 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public LadySabrix() { + IsParagon = true; + Name = "Lady Sabrix"; Hue = 0x497; @@ -43,7 +45,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs index 02eefe8a9..c62b3491e 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Malefic() { + IsParagon = true; + Name = "Malefic"; Hue = 0x455; @@ -51,7 +53,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs index 1cb805623..96fcec3a7 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Silk() { + IsParagon = true; + Name = "Silk"; Hue = 0x47E; @@ -43,7 +45,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override WeaponAbility GetWeaponAbility() @@ -52,8 +54,6 @@ namespace Server.Mobiles } public override bool GivesMLMinorArtifact{ get{ return true; } } - public override Poison PoisonImmune{ get{ return Poison.Lethal; } } - public override Poison HitPoison{ get{ return Poison.Lethal; } } public Silk( Serial serial ) : base( serial ) diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs index beea7c3d0..c25125ed2 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs @@ -13,6 +13,10 @@ namespace Server.Mobiles [Constructable] public Spite() { + IsParagon = true; + + Hue = DefaultHue; + SetStr( 53, 214 ); SetDex( 243, 367 ); SetInt( 369, 586 ); @@ -44,7 +48,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } public override bool GivesMLMinorArtifact{ get{ return true; } } diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs index 1971001e5..da298ca34 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs @@ -11,6 +11,8 @@ namespace Server.Mobiles [Constructable] public Swoop() { + IsParagon = true; + Name = "Swoop"; Hue = 0xE0; @@ -39,15 +41,13 @@ namespace Server.Mobiles Fame = 18000; Karma = 0; - Tamable = false; - PackReg( 4 ); PackArcaneScroll( 0, 1 ); } public override void GenerateLoot() { - AddLoot( LootPack.UltraRich, 3 ); + AddLoot( LootPack.UltraRich, 2 ); } // TODO: Put this attack shared with Hiryu and Lesser Hiryu in one place diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs index eae0d3f1c..99fe487a4 100644 --- a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs +++ b/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs @@ -10,6 +10,8 @@ namespace Server.Mobiles [Constructable] public Virulent() { + IsParagon = true; + Name = "Virulent"; Hue = 0x8FD; @@ -45,7 +47,7 @@ namespace Server.Mobiles public override void GenerateLoot() { - AddLoot( LootPack.AosUltraRich, 4 ); + AddLoot( LootPack.UltraRich, 3 ); } public override WeaponAbility GetWeaponAbility() diff --git a/Scripts/Mobiles/Special/Paragon.cs b/Scripts/Mobiles/Special/Paragon.cs index 46c05dd88..86a822389 100644 --- a/Scripts/Mobiles/Special/Paragon.cs +++ b/Scripts/Mobiles/Special/Paragon.cs @@ -14,7 +14,7 @@ namespace Server.Mobiles public static Type[] Artifacts = new Type[] { - typeof( GoldBricks ), typeof( PhillipsWoodenSteed ), + typeof( GoldBricks ), typeof( PhillipsWoodenSteed ), typeof( AlchemistsBauble ), typeof( ArcticDeathDealer ), typeof( BlazeOfDeath ), typeof( BowOfTheJukaKing ), typeof( BurglarsBandana ), typeof( CavortingClub ), @@ -23,13 +23,13 @@ namespace Server.Mobiles typeof( NightsKiss ), typeof( NoxRangersHeavyCrossbow ), typeof( OrcishVisage ), typeof( PolarBearMask ), typeof( ShieldOfInvulnerability ), typeof( StaffOfPower ), - typeof( VioletCourage ), typeof( HeartOfTheLion ), - typeof( WrathOfTheDryad ), typeof( PixieSwatter ), + typeof( VioletCourage ), typeof( HeartOfTheLion ), + typeof( WrathOfTheDryad ), typeof( PixieSwatter ), typeof( GlovesOfThePugilist ) }; public static int Hue = 0x501; // Paragon hue - + // Buffs public static double HitsBuff = 5.0; public static double StrBuff = 1.05; @@ -50,7 +50,7 @@ namespace Server.Mobiles if ( bc.HitsMaxSeed >= 0 ) bc.HitsMaxSeed = (int)( bc.HitsMaxSeed * HitsBuff ); - + bc.RawStr = (int)( bc.RawStr * StrBuff ); bc.RawInt = (int)( bc.RawInt * IntBuff ); bc.RawDex = (int)( bc.RawDex * DexBuff ); @@ -69,6 +69,7 @@ namespace Server.Mobiles bc.PassiveSpeed /= SpeedBuff; bc.ActiveSpeed /= SpeedBuff; + bc.CurrentSpeed = bc.PassiveSpeed; bc.DamageMin += DamageBuff; bc.DamageMax += DamageBuff; @@ -99,7 +100,7 @@ namespace Server.Mobiles if ( bc.HitsMaxSeed >= 0 ) bc.HitsMaxSeed = (int)( bc.HitsMaxSeed / HitsBuff ); - + bc.RawStr = (int)( bc.RawStr / StrBuff ); bc.RawInt = (int)( bc.RawInt / IntBuff ); bc.RawDex = (int)( bc.RawDex / DexBuff ); @@ -115,9 +116,10 @@ namespace Server.Mobiles if ( skill.Base > 0.0 ) skill.Base /= SkillsBuff; } - + bc.PassiveSpeed *= SpeedBuff; bc.ActiveSpeed *= SpeedBuff; + bc.CurrentSpeed = bc.PassiveSpeed; bc.DamageMin -= DamageBuff; bc.DamageMax -= DamageBuff; @@ -141,7 +143,7 @@ namespace Server.Mobiles if ( Array.IndexOf( Maps, m ) == -1 ) return false; - if ( bc is BaseChampion || bc is Harrower || bc is BaseVendor || bc is BaseEscortable || bc is Clone || bc.GivesMLMinorArtifact ) + if ( bc is BaseChampion || bc is Harrower || bc is BaseVendor || bc is BaseEscortable || bc is Clone || bc.IsParagon ) return false; int fame = bc.Fame;