- Items can now be repaired while wearing them. - Items can now be fortified while wearing them. - Fixed repair deed messages not sending. - Sound effect added to powder of fortifying. - Map issue for fishing and SOSs fixed, where it would not allow fishing in empty resource banks when not on the target SOS map. - Added proximity spawner. - Improved spawner mouseover menu, now also shows types set on the spawner which are not yet spawned. - Fixed spawners only deleting half of their spawned objects when deleted. - Added the ability to set TextDefinition objects in the props gump. - WaitTeleporters now round delays to nearest in the remaining time messages. - Updated TextDefinition to be more usable; made it parsable from string and added safe serialization/deserialization methods. - Improved checking whether a mobile can flee. - Monsters that give ML minor artifacts will no longer flee when low on hits (like paragons). - Monsters that give ML minor artifacts will no longer spawn as paragon. - Fixed issue with pets not eating certain foods. - AI and targeting fixes for Red Death, Pyre and Swoop. - Fame and karma added to Rend. - Swoop corrected to have 0 karma. - Stat and skill tweaks for Putrefier. - Changelings will no longer show their fame title when morphed. - Added travel restrictions for ML dungeons. - Fixed issue of travel restriction message displaying twice. - Monster teleporting is no longer affected by region travel restrictions.
93 lines
2.3 KiB
C#
93 lines
2.3 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Items;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
[CorpseName( "a Putrefier corpse" )]
|
|
public class Putrefier : Balron
|
|
{
|
|
[Constructable]
|
|
public Putrefier()
|
|
{
|
|
Name = "Putrefier";
|
|
Hue = 63;
|
|
|
|
SetStr( 1057, 1400 );
|
|
SetDex( 232, 560 );
|
|
SetInt( 201, 440 );
|
|
|
|
SetHits( 3010, 4092 );
|
|
|
|
SetDamage( 27, 34 );
|
|
|
|
SetDamageType( ResistanceType.Physical, 50 );
|
|
SetDamageType( ResistanceType.Fire, 0 );
|
|
SetDamageType( ResistanceType.Poison, 50 );
|
|
SetDamageType( ResistanceType.Energy, 0 );
|
|
|
|
SetResistance( ResistanceType.Physical, 65, 80 );
|
|
SetResistance( ResistanceType.Fire, 65, 80 );
|
|
SetResistance( ResistanceType.Cold, 50, 60 );
|
|
SetResistance( ResistanceType.Poison, 100 );
|
|
SetResistance( ResistanceType.Energy, 40, 50 );
|
|
|
|
SetSkill( SkillName.Wrestling, 111.2, 128.0 );
|
|
SetSkill( SkillName.Tactics, 115.2, 125.2 );
|
|
SetSkill( SkillName.MagicResist, 143.4, 170.0 );
|
|
SetSkill( SkillName.Anatomy, 44.6, 67.0 );
|
|
SetSkill( SkillName.Magery, 117.6, 118.8 );
|
|
SetSkill( SkillName.EvalInt, 113.0, 128.8 );
|
|
SetSkill( SkillName.Meditation, 41.4, 85.0 );
|
|
SetSkill( SkillName.Poisoning, 45.0, 50.0 );
|
|
|
|
PackScroll( 4, 7 );
|
|
PackScroll( 4, 7 );
|
|
}
|
|
|
|
public override void GenerateLoot()
|
|
{
|
|
AddLoot( LootPack.AosUltraRich, 4 );
|
|
}
|
|
|
|
/*
|
|
// TODO: uncomment once added
|
|
public override void OnDeath( Container c )
|
|
{
|
|
base.OnDeath( c );
|
|
|
|
c.DropItem( new SpleenOfThePutrefier() );
|
|
|
|
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 int TreasureMapLevel{ get{ return 5; } }
|
|
|
|
public Putrefier( Serial serial )
|
|
: base( serial )
|
|
{
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.Write( (int) 0 ); // version
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
}
|