- Added more future ML craftables that already drop as loot to the special repair lists.

- Fixed Bloodwood Spirit and Totem of the Void sometimes not spawning with a protection attribute. (Prepatch ones are fixed on server start.)
- Fixed crashes in BaseTalisman resulting from setting Summoner to null.
- Paragon perks added to mobs dropping ML artifacts (by making them paragon "under the hood", seems to be the case on OSI as well). This also means the named mobs will now drop paragon chests.
- Poison immunity level is now also increased by 1 for paragons.
- Rend now drops ML minor artifacts.
- ML named mobs no longer use the AoS specific loot packs, but will adjust to the era the server is set in.
- The 'current speed' of paragons is now updated to account for the speed boost after spawning.
This commit is contained in:
eos 2012-03-11 01:43:55 +00:00
parent aacae9f7b8
commit c0206c6f7e
30 changed files with 197 additions and 126 deletions

View file

@ -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 )