#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
8eae46895e
7512 changed files with 416187 additions and 0 deletions
67
Scripts/Mobiles/Elemental/AcidElemental.cs
Normal file
67
Scripts/Mobiles/Elemental/AcidElemental.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an acid elemental corpse" )]
|
||||
public class AcidElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 119.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public AcidElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an acid elemental";
|
||||
Body = 16;
|
||||
Hue = 60;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 271, 295 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 9, 15 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 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 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Mobiles/Elemental/AirElemental.cs
Normal file
71
Scripts/Mobiles/Elemental/AirElemental.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
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 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 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 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Mobiles/Elemental/BloodElemental.cs
Normal file
65
Scripts/Mobiles/Elemental/BloodElemental.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a blood elemental corpse" )]
|
||||
public class BloodElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 119.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public BloodElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a blood elemental";
|
||||
Body = 16;
|
||||
Hue = Utility.RandomList( 37, 38 );
|
||||
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 526, 615 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 226, 350 );
|
||||
|
||||
SetHits( 316, 369 );
|
||||
|
||||
SetDamage( 17, 27 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 80.1, 100.0 );
|
||||
|
||||
Fame = 12500;
|
||||
Karma = -12500;
|
||||
|
||||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Mobiles/Elemental/BloodElementalElder.cs
Normal file
64
Scripts/Mobiles/Elemental/BloodElementalElder.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class BloodElementalElder : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 125.0; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public BloodElementalElder() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "elder elemental of blood";
|
||||
Body = 83;
|
||||
Hue = 1074;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 658, 769 );
|
||||
SetDex( 83, 106 );
|
||||
SetInt( 283, 438 );
|
||||
|
||||
SetHits( 395, 461 );
|
||||
|
||||
SetDamage( 21, 34 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 106.4, 125.0 );
|
||||
SetSkill( SkillName.Magery, 106.4, 125.0 );
|
||||
SetSkill( SkillName.Meditation, 13.0, 62.5 );
|
||||
SetSkill( SkillName.MagicResist, 100.1, 118.8 );
|
||||
SetSkill( SkillName.Tactics, 100.1, 125.0 );
|
||||
SetSkill( SkillName.HandToHand, 100.1, 125.0 );
|
||||
|
||||
Fame = 15625;
|
||||
Karma = -15625;
|
||||
|
||||
VirtualArmor = 75;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
}
|
||||
|
||||
public BloodElementalElder( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Elemental/DeepSeaElemental.cs
Normal file
67
Scripts/Mobiles/Elemental/DeepSeaElemental.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class DeepSeaElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 119.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public DeepSeaElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a deep sea elemental";
|
||||
Body = 251;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 271, 295 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 9, 15 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 70.1, 90.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new BlackPearl( Utility.RandomMinMax( 10, 25 ) ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.MedPotions );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public DeepSeaElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Mobiles/Elemental/EarthElemental.cs
Normal file
71
Scripts/Mobiles/Elemental/EarthElemental.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an earth elemental corpse" )]
|
||||
public class EarthElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public EarthElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an earth elemental";
|
||||
Body = 14;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 71, 92 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 9, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 100.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 34;
|
||||
ControlSlots = 2;
|
||||
|
||||
PackItem( new MandrakeRoot() );
|
||||
|
||||
Item ore = new IronOre( 5 );
|
||||
ore.ItemID = 0x19B7;
|
||||
PackItem( ore );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public EarthElemental( 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/Elemental/Efreet.cs
Normal file
78
Scripts/Mobiles/Elemental/Efreet.cs
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
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 = 13;
|
||||
Hue = 1654;
|
||||
BaseSoundID = 768;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 266, 285 );
|
||||
SetInt( 171, 195 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 56;
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return Utility.RandomList( 0x58F, 0x592, 0x593, 0x594, 0x595 );
|
||||
}
|
||||
|
||||
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 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Elemental/FireElemental.cs
Normal file
73
Scripts/Mobiles/Elemental/FireElemental.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
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 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 70.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
ControlSlots = 4;
|
||||
|
||||
PackItem( new SulfurousAsh( 3 ) );
|
||||
|
||||
AddItem( new LighterSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Elemental/GasCloud.cs
Normal file
67
Scripts/Mobiles/Elemental/GasCloud.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a fallen cloud" )]
|
||||
public class GasCloud : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public GasCloud () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a gas cloud";
|
||||
Body = 361;
|
||||
BaseSoundID = 263;
|
||||
|
||||
SetStr( 226, 215 );
|
||||
SetDex( 86, 95 );
|
||||
SetInt( 161, 235 );
|
||||
|
||||
SetHits( 156, 109 );
|
||||
|
||||
SetDamage( 8, 13 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Magery, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Meditation, 60.2, 100.0 );
|
||||
SetSkill( SkillName.Poisoning, 70.1, 80.0 );
|
||||
SetSkill( SkillName.MagicResist, 65.2, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
|
||||
|
||||
Fame = 8500;
|
||||
Karma = -8500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.LowScrolls );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Greater; } }
|
||||
public override double HitPoisonChance{ get{ return 0.50; } }
|
||||
|
||||
public GasCloud( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Mobiles/Elemental/Genie.cs
Normal file
71
Scripts/Mobiles/Elemental/Genie.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a genie corpse" )]
|
||||
public class Genie : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Genie () : base( AIType.AI_Mage, FightMode.Evil, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a genie";
|
||||
Body = 13;
|
||||
Hue = 1185;
|
||||
BaseSoundID = 0x370;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 266, 285 );
|
||||
SetInt( 171, 195 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = 10000;
|
||||
|
||||
VirtualArmor = 56;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return Utility.RandomList( 0x373, 0x375, 0x376, 0x377 );
|
||||
}
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 0x378;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public Genie( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
74
Scripts/Mobiles/Elemental/Goliath.cs
Normal file
74
Scripts/Mobiles/Elemental/Goliath.cs
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a pile of gemstones" )]
|
||||
public class Goliath : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Goliath() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a goliath";
|
||||
Body = 138;
|
||||
BaseSoundID = 0x10C;
|
||||
AnimationMod = 3;
|
||||
|
||||
SetStr( 336, 385 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 31, 55 );
|
||||
|
||||
SetHits( 202, 231 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 23 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 60.3, 105.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.1, 90.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 48;
|
||||
}
|
||||
|
||||
public override void OnDeath( Container c )
|
||||
{
|
||||
base.OnDeath( c );
|
||||
|
||||
Item ore = new IronOre( Utility.RandomMinMax( 5, 10 ) );
|
||||
ore.ItemID = 0x19B7;
|
||||
c.DropItem(ore);
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Gems, 10 );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public Goliath( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Elemental/IceElemental.cs
Normal file
67
Scripts/Mobiles/Elemental/IceElemental.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ice elemental corpse" )]
|
||||
public class IceElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public IceElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ice elemental";
|
||||
Body = 103;
|
||||
BaseSoundID = 268;
|
||||
AnimationMod = 4;
|
||||
|
||||
SetStr( 156, 185 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 171, 192 );
|
||||
|
||||
SetHits( 94, 111 );
|
||||
|
||||
SetDamage( 10, 21 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Mobiles/Elemental/LightningElemental.cs
Normal file
70
Scripts/Mobiles/Elemental/LightningElemental.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class LightningElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public LightningElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a lightning elemental";
|
||||
Body = 64;
|
||||
BaseSoundID = 838;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 7, 9 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 70.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
AddItem( new LighterSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public LightningElemental( 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
74
Scripts/Mobiles/Elemental/MagmaElemental.cs
Normal file
74
Scripts/Mobiles/Elemental/MagmaElemental.cs
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using Server.Misc;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a pile of magma" )]
|
||||
public class MagmaElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
|
||||
public override bool HasBreath{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public MagmaElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a magma elemental";
|
||||
Body = 249;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 7, 9 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 70.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new SulfurousAsh( Utility.RandomList( 6, 12 ) ) );
|
||||
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public MagmaElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
69
Scripts/Mobiles/Elemental/MeteorElemental.cs
Normal file
69
Scripts/Mobiles/Elemental/MeteorElemental.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class MeteorElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public MeteorElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a meteor elemental";
|
||||
Body = 315;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr( 226, 255 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 71, 92 );
|
||||
|
||||
SetHits( 176, 193 );
|
||||
|
||||
SetDamage( 12, 19 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 105.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 120.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.1, 120.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new IronOre( Utility.RandomMinMax( 3, 10 ) ) );
|
||||
PackItem( new SulfurousAsh( Utility.RandomMinMax( 3, 10 ) ) );
|
||||
|
||||
AddItem( new LighterSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public MeteorElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Mobiles/Elemental/MudElemental.cs
Normal file
63
Scripts/Mobiles/Elemental/MudElemental.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a pile of mud" )]
|
||||
public class MudElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 120.5; } }
|
||||
public override double DispelFocus{ get{ return 35.0; } }
|
||||
|
||||
[Constructable]
|
||||
public MudElemental( ) : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a mud elemental";
|
||||
Body = 247;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr( 226, 255 );
|
||||
SetDex( 126, 145 );
|
||||
SetInt( 71, 92 );
|
||||
|
||||
SetHits( 136, 153 );
|
||||
|
||||
SetDamage( 9, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 23;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
|
||||
public MudElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
74
Scripts/Mobiles/Elemental/PoisonElemental.cs
Normal file
74
Scripts/Mobiles/Elemental/PoisonElemental.cs
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a poison elementals corpse" )]
|
||||
public class PoisonElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 119.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public PoisonElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a poison elemental";
|
||||
Body = 13;
|
||||
Hue = 67;
|
||||
BaseSoundID = 263;
|
||||
|
||||
SetStr( 426, 515 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 361, 435 );
|
||||
|
||||
SetHits( 256, 309 );
|
||||
|
||||
SetDamage( 12, 18 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 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 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Elemental/PoisonElementalElder.cs
Normal file
73
Scripts/Mobiles/Elemental/PoisonElementalElder.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class PoisonElementalElder : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 125.0; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public PoisonElementalElder () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "elder elemental of poison";
|
||||
Body = 83;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 533, 644 );
|
||||
SetDex( 208, 231 );
|
||||
SetInt( 451, 544 );
|
||||
|
||||
SetHits( 320, 386 );
|
||||
|
||||
SetDamage( 15, 23 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 100.1, 118.8 );
|
||||
SetSkill( SkillName.Magery, 100.1, 118.8 );
|
||||
SetSkill( SkillName.Meditation, 100.3, 150.0 );
|
||||
SetSkill( SkillName.Poisoning, 112.6, 125.0 );
|
||||
SetSkill( SkillName.MagicResist, 106.5, 143.8 );
|
||||
SetSkill( SkillName.Tactics, 100.1, 125.0 );
|
||||
SetSkill( SkillName.HandToHand, 87.6, 112.5 );
|
||||
|
||||
Fame = 15625;
|
||||
Karma = -15625;
|
||||
|
||||
VirtualArmor = 88;
|
||||
|
||||
PackItem( new Nightshade( Utility.RandomMinMax( 20, 40 ) ) );
|
||||
PackItem( new GreaterPoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.HighScrolls );
|
||||
}
|
||||
|
||||
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 PoisonElementalElder( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
103
Scripts/Mobiles/Elemental/SandVortex.cs
Normal file
103
Scripts/Mobiles/Elemental/SandVortex.cs
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a sand vortex corpse" )]
|
||||
public class SandVortex : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public SandVortex() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a sand vortex";
|
||||
Body = 13;
|
||||
Hue = 2309;
|
||||
BaseSoundID = 263;
|
||||
|
||||
SetStr( 96, 120 );
|
||||
SetDex( 171, 195 );
|
||||
SetInt( 76, 100 );
|
||||
|
||||
SetHits( 51, 62 );
|
||||
|
||||
SetDamage( 3, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 150.0 );
|
||||
SetSkill( SkillName.Tactics, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 28;
|
||||
PackItem( new Bone() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager, 2 );
|
||||
}
|
||||
|
||||
private DateTime m_NextAttack;
|
||||
|
||||
public override void OnActionCombat()
|
||||
{
|
||||
Mobile combatant = Combatant;
|
||||
|
||||
if ( combatant == null || combatant.Deleted || combatant.Map != Map || !InRange( combatant, 12 ) || !CanBeHarmful( combatant ) || !InLOS( combatant ) )
|
||||
return;
|
||||
|
||||
if ( DateTime.Now >= m_NextAttack )
|
||||
{
|
||||
SandAttack( combatant );
|
||||
m_NextAttack = DateTime.Now + TimeSpan.FromSeconds( 10.0 + (10.0 * Utility.RandomDouble()) );
|
||||
}
|
||||
}
|
||||
|
||||
public void SandAttack( Mobile m )
|
||||
{
|
||||
DoHarmful( m );
|
||||
|
||||
m.FixedParticles( 0x36B0, 10, 25, 9540, 2413, 0, EffectLayer.Waist );
|
||||
|
||||
new InternalTimer( m, this ).Start();
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private Mobile m_Mobile, m_From;
|
||||
|
||||
public InternalTimer( Mobile m, Mobile from ) : base( TimeSpan.FromSeconds( 1.0 ) )
|
||||
{
|
||||
m_Mobile = m;
|
||||
m_From = from;
|
||||
Priority = TimerPriority.TwoFiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Mobile.PlaySound( 0x4CF );
|
||||
Ultima.Damage( m_Mobile, m_From, Utility.RandomMinMax( 1, 40 ) );
|
||||
}
|
||||
}
|
||||
|
||||
public SandVortex( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Mobiles/Elemental/SnowElemental.cs
Normal file
66
Scripts/Mobiles/Elemental/SnowElemental.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a snow elemental corpse" )]
|
||||
public class SnowElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a snow elemental";
|
||||
Body = 13;
|
||||
Hue = 1153;
|
||||
BaseSoundID = 263;
|
||||
|
||||
SetStr( 326, 355 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 71, 95 );
|
||||
|
||||
SetHits( 196, 213 );
|
||||
|
||||
SetDamage( 11, 17 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 65.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.1, 100.0 );
|
||||
|
||||
Fame = 5000;
|
||||
Karma = -5000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
|
||||
PackItem( new BlackPearl( 3 ) );
|
||||
Item ore = new IronOre( 3 );
|
||||
ore.ItemID = 0x19B8;
|
||||
PackItem( ore );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public SnowElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Mobiles/Elemental/StoneGolem.cs
Normal file
66
Scripts/Mobiles/Elemental/StoneGolem.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a pile of stone" )]
|
||||
public class StoneGolem : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public StoneGolem() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a stone golem";
|
||||
Body = 344;
|
||||
Hue = 1198;
|
||||
BaseSoundID = 0x10C;
|
||||
|
||||
SetStr( 226, 255 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 71, 92 );
|
||||
|
||||
SetHits( 176, 193 );
|
||||
|
||||
SetDamage( 15, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.1, 100.0 );
|
||||
|
||||
Fame = 5500;
|
||||
Karma = -5500;
|
||||
|
||||
VirtualArmor = 44;
|
||||
|
||||
Item ore = new IronOre( Utility.RandomMinMax( 5, 10 ) );
|
||||
PackItem( ore );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public StoneGolem( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
80
Scripts/Mobiles/Elemental/StoneStatue.cs
Normal file
80
Scripts/Mobiles/Elemental/StoneStatue.cs
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a pile of stone" )]
|
||||
public class StoneStatue : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public StoneStatue() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a living statue";
|
||||
Body = 133;
|
||||
BaseSoundID = 0x10C;
|
||||
AnimationMod = 3;
|
||||
|
||||
SetStr( 156, 185 );
|
||||
SetDex( 76, 95 );
|
||||
SetInt( 31, 62 );
|
||||
|
||||
SetHits( 106, 123 );
|
||||
|
||||
SetDamage( 15, 22 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 100.0 );
|
||||
|
||||
Fame = 5500;
|
||||
Karma = -5500;
|
||||
|
||||
VirtualArmor = 42;
|
||||
}
|
||||
|
||||
public override void OnDeath( Container c )
|
||||
{
|
||||
base.OnDeath( c );
|
||||
|
||||
Item ore = new IronOre( Utility.RandomMinMax( 5, 10 ) );
|
||||
ore.ItemID = 0x19B7;
|
||||
c.DropItem(ore);
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override bool BardImmune { get { return true; } }
|
||||
public override bool Unprovokable { get { return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public override void CheckReflect( Mobile caster, ref bool reflect )
|
||||
{
|
||||
reflect = true;
|
||||
}
|
||||
|
||||
public StoneStatue( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Mobiles/Elemental/StormCloud.cs
Normal file
66
Scripts/Mobiles/Elemental/StormCloud.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a fallen cloud" )]
|
||||
public class StormCloud : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public StormCloud () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a storm cloud";
|
||||
Body = 341;
|
||||
BaseSoundID = 263;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 7, 9 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 70.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public StormCloud( 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Mobiles/Elemental/Typhoon.cs
Normal file
71
Scripts/Mobiles/Elemental/Typhoon.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a puddle" )]
|
||||
public class Typhoon : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public Typhoon () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a typhoon";
|
||||
Body = 13;
|
||||
Hue = 1084;
|
||||
BaseSoundID = 655;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 101, 125 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 8, 10 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.LowScrolls );
|
||||
AddLoot( LootPack.MedScrolls );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public Typhoon( 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
69
Scripts/Mobiles/Elemental/WaterElemental.cs
Normal file
69
Scripts/Mobiles/Elemental/WaterElemental.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
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 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 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.HandToHand, 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.LowPotions );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
68
Scripts/Mobiles/Elemental/WaterElementalElder.cs
Normal file
68
Scripts/Mobiles/Elemental/WaterElementalElder.cs
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class WaterElementalElder : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 125.0; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public WaterElementalElder () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "elder elemental of water";
|
||||
Body = 83;
|
||||
Hue = 1084;
|
||||
BaseSoundID = 278;
|
||||
|
||||
SetStr( 408, 444 );
|
||||
SetDex( 83, 106 );
|
||||
SetInt( 339, 369 );
|
||||
|
||||
SetHits( 245, 266 );
|
||||
|
||||
SetDamage( 11, 19 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 87.6, 106.3 );
|
||||
SetSkill( SkillName.Magery, 87.6, 106.3 );
|
||||
SetSkill( SkillName.MagicResist, 75.1, 93.8 );
|
||||
SetSkill( SkillName.Tactics, 100.1, 112.5 );
|
||||
SetSkill( SkillName.HandToHand, 87.6, 112.5 );
|
||||
|
||||
Fame = 12500;
|
||||
Karma = -12500;
|
||||
|
||||
VirtualArmor = 50;
|
||||
|
||||
PackItem( new BlackPearl( Utility.RandomMinMax( 20, 40 ) ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.HighPotions );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public WaterElementalElder( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Elemental/WoodElemental.cs
Normal file
67
Scripts/Mobiles/Elemental/WoodElemental.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an elemental corpse" )]
|
||||
public class WoodElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public WoodElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a wood elemental";
|
||||
Body = 259;
|
||||
BaseSoundID = 0x5F3;
|
||||
AnimationMod = 1;
|
||||
|
||||
SetStr( 126, 155 );
|
||||
SetDex( 66, 85 );
|
||||
SetInt( 71, 92 );
|
||||
|
||||
SetHits( 76, 93 );
|
||||
|
||||
SetDamage( 9, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 100.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 34;
|
||||
|
||||
PackItem( new MandrakeRoot( Utility.RandomMinMax( 5,10 ) ) );
|
||||
PackWood( 10 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public WoodElemental( 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