ModernUO/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs
eos a0e13d5007 - Future ML craftables added to the special repair list until the craft system is updated.
- 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.
2012-03-07 18:59:52 +00:00

94 lines
2.2 KiB
C#

using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a Red Death corpse" )]
public class RedDeath : SkeletalMount
{
[Constructable]
public RedDeath()
: base( "Red Death" )
{
Hue = 0x21;
BaseSoundID = 0x1C3;
AI = AIType.AI_Melee;
FightMode = FightMode.Closest;
SetStr( 319, 324 );
SetDex( 241, 244 );
SetInt( 242, 255 );
SetHits( 1540, 1605 );
SetDamage( 25, 29 );
SetDamageType( ResistanceType.Physical, 25 );
SetDamageType( ResistanceType.Fire, 75 );
SetDamageType( ResistanceType.Cold, 0 );
SetResistance( ResistanceType.Physical, 60, 70 );
SetResistance( ResistanceType.Fire, 90 );
SetResistance( ResistanceType.Cold, 0 );
SetResistance( ResistanceType.Poison, 100 );
SetResistance( ResistanceType.Energy, 0 );
SetSkill( SkillName.Wrestling, 121.4, 143.7 );
SetSkill( SkillName.Tactics, 120.9, 142.2 );
SetSkill( SkillName.MagicResist, 120.1, 142.3 );
SetSkill( SkillName.Anatomy, 120.2, 144.0 );
Fame = 28000;
Karma = -28000;
if ( Utility.RandomBool() )
PackNecroScroll( Utility.RandomMinMax( 5, 9 ) );
else
PackScroll( 4, 7 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.AosUltraRich, 4 );
}
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.WhirlwindAttack;
}
public override void OnDeath( Container c )
{
base.OnDeath( c );
c.DropItem( new ResolvesBridle() );
}
public override bool GivesMLMinorArtifact{ get{ return true; } }
public override bool AlwaysMurderer{ get{ return true; } }
public override bool HasBreath{ get{ return true; } }
public override int BreathChaosDamage{ get { return 100; } }
public override int BreathFireDamage{ get{ return 0; } }
public RedDeath( 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();
}
}
}