#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.
This commit is contained in:
parent
b51c58f514
commit
3045c83799
3512 changed files with 627673 additions and 0 deletions
87
Scripts/Mobiles/Monsters/Elemental/Magic/AcidElemental.cs
Normal file
87
Scripts/Mobiles/Monsters/Elemental/Magic/AcidElemental.cs
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias( "Server.Mobiles.ToxicElemental" )]
|
||||
[CorpseName( "an acid elemental corpse" )]
|
||||
public class AcidElemental : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public AcidElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an acid elemental";
|
||||
Body = 0x9E;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 271, 295 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 9, 15 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 25 );
|
||||
SetDamageType( ResistanceType.Fire, 50 );
|
||||
SetDamageType( ResistanceType.Energy, 25 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 45, 55 );
|
||||
SetResistance( ResistanceType.Fire, 40, 50 );
|
||||
SetResistance( ResistanceType.Cold, 20, 30 );
|
||||
SetResistance( ResistanceType.Poison, 10, 20 );
|
||||
SetResistance( ResistanceType.Energy, 30, 40 );
|
||||
|
||||
SetSkill( SkillName.Anatomy, 30.3, 60.0 );
|
||||
SetSkill( SkillName.EvalInt, 70.1, 85.0 );
|
||||
SetSkill( SkillName.Magery, 70.1, 85.0 );
|
||||
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 90.0 );
|
||||
SetSkill( SkillName.Wrestling, 70.1, 90.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
public override double HitPoisonChance{ get{ return 0.6; } }
|
||||
|
||||
public override int TreasureMapLevel{ get{ return Core.AOS ? 2 : 3; } }
|
||||
|
||||
public AcidElemental( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == 263 )
|
||||
BaseSoundID = 278;
|
||||
|
||||
if ( Body == 13 )
|
||||
Body = 0x9E;
|
||||
|
||||
if ( Hue == 0x4001 )
|
||||
Hue = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Scripts/Mobiles/Monsters/Elemental/Magic/AirElemental.cs
Normal file
82
Scripts/Mobiles/Monsters/Elemental/Magic/AirElemental.cs
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an air elemental corpse" )]
|
||||
public class AirElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public AirElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an air elemental";
|
||||
Body = 13;
|
||||
Hue = 0x4001;
|
||||
BaseSoundID = 655;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 8, 10 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 20 );
|
||||
SetDamageType( ResistanceType.Cold, 40 );
|
||||
SetDamageType( ResistanceType.Energy, 40 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 45 );
|
||||
SetResistance( ResistanceType.Fire, 15, 25 );
|
||||
SetResistance( ResistanceType.Cold, 10, 20 );
|
||||
SetResistance( ResistanceType.Poison, 10, 20 );
|
||||
SetResistance( ResistanceType.Energy, 25, 35 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Magery, 60.1, 75.0 );
|
||||
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
ControlSlots = 2;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.LowScrolls );
|
||||
AddLoot( LootPack.MedScrolls );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 2; } }
|
||||
|
||||
public AirElemental( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == 263 )
|
||||
BaseSoundID = 655;
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Scripts/Mobiles/Monsters/Elemental/Magic/BloodElemental.cs
Normal file
72
Scripts/Mobiles/Monsters/Elemental/Magic/BloodElemental.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a blood elemental corpse" )]
|
||||
public class BloodElemental : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public BloodElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a blood elemental";
|
||||
Body = 159;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 526, 615 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 226, 350 );
|
||||
|
||||
SetHits( 316, 369 );
|
||||
|
||||
SetDamage( 17, 27 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 0 );
|
||||
SetDamageType( ResistanceType.Poison, 50 );
|
||||
SetDamageType( ResistanceType.Energy, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 55, 65 );
|
||||
SetResistance( ResistanceType.Fire, 20, 30 );
|
||||
SetResistance( ResistanceType.Cold, 40, 50 );
|
||||
SetResistance( ResistanceType.Poison, 50, 60 );
|
||||
SetResistance( ResistanceType.Energy, 30, 40 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 10.4, 50.0 );
|
||||
SetSkill( SkillName.MagicResist, 80.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 80.1, 100.0 );
|
||||
|
||||
Fame = 12500;
|
||||
Karma = -12500;
|
||||
|
||||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
|
||||
public BloodElemental( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
83
Scripts/Mobiles/Monsters/Elemental/Magic/Efreet.cs
Normal file
83
Scripts/Mobiles/Monsters/Elemental/Magic/Efreet.cs
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an efreet corpse" )]
|
||||
public class Efreet : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Efreet () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an efreet";
|
||||
Body = 131;
|
||||
BaseSoundID = 768;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 266, 285 );
|
||||
SetInt( 171, 195 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 0 );
|
||||
SetDamageType( ResistanceType.Fire, 50 );
|
||||
SetDamageType( ResistanceType.Energy, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 50, 60 );
|
||||
SetResistance( ResistanceType.Fire, 60, 70 );
|
||||
SetResistance( ResistanceType.Poison, 30, 40 );
|
||||
SetResistance( ResistanceType.Energy, 40, 50 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Magery, 60.1, 75.0 );
|
||||
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 56;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems );
|
||||
|
||||
if ( 0.02 > Utility.RandomDouble() )
|
||||
{
|
||||
switch ( Utility.Random( 5 ) )
|
||||
{
|
||||
case 0: PackItem( new DaemonArms() ); break;
|
||||
case 1: PackItem( new DaemonChest() ); break;
|
||||
case 2: PackItem( new DaemonGloves() ); break;
|
||||
case 3: PackItem( new DaemonLegs() ); break;
|
||||
case 4: PackItem( new DaemonHelm() ); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override int TreasureMapLevel{ get{ return Core.AOS ? 4 : 5; } }
|
||||
|
||||
public Efreet( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
83
Scripts/Mobiles/Monsters/Elemental/Magic/FireElemental.cs
Normal file
83
Scripts/Mobiles/Monsters/Elemental/Magic/FireElemental.cs
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a fire elemental corpse" )]
|
||||
public class FireElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public FireElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a fire elemental";
|
||||
Body = 15;
|
||||
BaseSoundID = 838;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 7, 9 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 25 );
|
||||
SetDamageType( ResistanceType.Fire, 75 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 45 );
|
||||
SetResistance( ResistanceType.Fire, 60, 80 );
|
||||
SetResistance( ResistanceType.Cold, 5, 10 );
|
||||
SetResistance( ResistanceType.Poison, 30, 40 );
|
||||
SetResistance( ResistanceType.Energy, 30, 40 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Magery, 60.1, 75.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.2, 105.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 70.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
ControlSlots = 4;
|
||||
|
||||
PackItem( new SulfurousAsh( 3 ) );
|
||||
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 2; } }
|
||||
|
||||
public FireElemental( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == 274 )
|
||||
BaseSoundID = 838;
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Scripts/Mobiles/Monsters/Elemental/Magic/IceElemental.cs
Normal file
72
Scripts/Mobiles/Monsters/Elemental/Magic/IceElemental.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ice elemental corpse" )]
|
||||
public class IceElemental : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public IceElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ice elemental";
|
||||
Body = 161;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr( 156, 185 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 171, 192 );
|
||||
|
||||
SetHits( 94, 111 );
|
||||
|
||||
SetDamage( 10, 21 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 25 );
|
||||
SetDamageType( ResistanceType.Cold, 75 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 45 );
|
||||
SetResistance( ResistanceType.Fire, 5, 10 );
|
||||
SetResistance( ResistanceType.Cold, 50, 60 );
|
||||
SetResistance( ResistanceType.Poison, 20, 30 );
|
||||
SetResistance( ResistanceType.Energy, 20, 30 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 10.5, 60.0 );
|
||||
SetSkill( SkillName.Magery, 10.5, 60.0 );
|
||||
SetSkill( SkillName.MagicResist, 30.1, 80.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 100.0 );
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new BlackPearl() );
|
||||
PackReg( 3 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public IceElemental( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Scripts/Mobiles/Monsters/Elemental/Magic/PoisonElemental.cs
Normal file
82
Scripts/Mobiles/Monsters/Elemental/Magic/PoisonElemental.cs
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a poison elementals corpse" )]
|
||||
public class PoisonElemental : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public PoisonElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a poison elemental";
|
||||
Body = 162;
|
||||
BaseSoundID = 263;
|
||||
|
||||
SetStr( 426, 515 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 361, 435 );
|
||||
|
||||
SetHits( 256, 309 );
|
||||
|
||||
SetDamage( 12, 18 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 10 );
|
||||
SetDamageType( ResistanceType.Poison, 90 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 60, 70 );
|
||||
SetResistance( ResistanceType.Fire, 20, 30 );
|
||||
SetResistance( ResistanceType.Cold, 20, 30 );
|
||||
SetResistance( ResistanceType.Poison, 100 );
|
||||
SetResistance( ResistanceType.Energy, 40, 50 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 80.1, 95.0 );
|
||||
SetSkill( SkillName.Magery, 80.1, 95.0 );
|
||||
SetSkill( SkillName.Meditation, 80.2, 120.0 );
|
||||
SetSkill( SkillName.Poisoning, 90.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 85.2, 115.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 70.1, 90.0 );
|
||||
|
||||
Fame = 12500;
|
||||
Karma = -12500;
|
||||
|
||||
VirtualArmor = 70;
|
||||
|
||||
PackItem( new Nightshade( 4 ) );
|
||||
PackItem( new LesserPoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.MedScrolls );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
public override double HitPoisonChance{ get{ return 0.75; } }
|
||||
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
|
||||
public PoisonElemental( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
78
Scripts/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs
Normal file
78
Scripts/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a water elemental corpse" )]
|
||||
public class WaterElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public WaterElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a water elemental";
|
||||
Body = 16;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 7, 9 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 45 );
|
||||
SetResistance( ResistanceType.Fire, 10, 25 );
|
||||
SetResistance( ResistanceType.Cold, 10, 25 );
|
||||
SetResistance( ResistanceType.Poison, 60, 70 );
|
||||
SetResistance( ResistanceType.Energy, 5, 10 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Magery, 60.1, 75.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.1, 115.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.Wrestling, 50.1, 70.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
ControlSlots = 3;
|
||||
CanSwim = true;
|
||||
|
||||
PackItem( new BlackPearl( 3 ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Potions );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 2; } }
|
||||
|
||||
public WaterElemental( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue