#W# Initial Commit: Avatars Conquest

This commit is contained in:
WarrentyExpired 2026-07-03 20:19:48 -04:00
commit 8eae46895e
7512 changed files with 416187 additions and 0 deletions

View 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();
}
}
}

View 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;
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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;
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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;
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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;
}
}
}

View 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;
}
}
}

View 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();
}
}
}

View 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();
}
}
}

View 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();
}
}
}