#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,60 @@
using System;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "an alligator corpse" )]
public class Alligator : BaseCreature
{
[Constructable]
public Alligator() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an alligator";
Body = 202;
BaseSoundID = 660;
SetStr( 76, 100 );
SetDex( 6, 25 );
SetInt( 11, 20 );
SetHits( 46, 60 );
SetStam( 46, 65 );
SetMana( 0 );
SetDamage( 5, 15 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 40.1, 60.0 );
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
Fame = 600;
Karma = -600;
VirtualArmor = 30;
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 12; } }
public Alligator(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 == 0x5A )
BaseSoundID = 660;
}
}
}

View file

@ -0,0 +1,63 @@
using System;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a bull frog corpse" )]
[TypeAlias( "Server.Mobiles.Bullfrog" )]
public class BullFrog : BaseCreature
{
[Constructable]
public BullFrog() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a bull frog";
Body = 81;
Hue = Utility.RandomList( 0x5AC,0x5A3,0x59A,0x591,0x588,0x57F );
BaseSoundID = 0x266;
SetStr( 46, 70 );
SetDex( 6, 25 );
SetInt( 11, 20 );
SetHits( 28, 42 );
SetMana( 0 );
SetDamage( 1, 2 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 40.1, 60.0 );
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
Fame = 350;
Karma = 0;
VirtualArmor = 6;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Poor );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 4; } }
public BullFrog(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,60 @@
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Network;
namespace Server.Mobiles
{
[CorpseName( "a gorceratops corpse" )]
public class Gorceratops : BaseCreature
{
[Constructable]
public Gorceratops() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a gorceratops";
Body = 210;
BaseSoundID = 0x4F5;
SetStr( 176, 205 );
SetDex( 46, 65 );
SetInt( 46, 70 );
SetHits( 106, 123 );
SetDamage( 8, 14 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
Fame = 3500;
Karma = -3500;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Meat{ get{ return 5; } }
public override int Hides{ get{ return 10; } }
public Gorceratops( 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,56 @@
using System;
using Server;
using System.Collections.Generic;
using Server.Mobiles;
using Server.Items;
using Server.ContextMenus;
namespace Server.Mobiles
{
[CorpseName( "a dinosaur corpse" )]
public class Meglasaur : BaseCreature
{
[Constructable]
public Meglasaur() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a meglasaur";
Body = 248;
BaseSoundID = 0x4F5;
SetStr( 401, 430 );
SetDex( 133, 152 );
SetInt( 101, 140 );
SetHits( 241, 258 );
SetDamage( 11, 17 );
SetSkill( SkillName.Tactics, 65.1, 90.0 );
SetSkill( SkillName.HandToHand, 65.1, 80.0 );
Fame = 5500;
Karma = -5500;
VirtualArmor = 46;
}
public override int Meat{ get{ return 10; } }
public override int Hides{ get{ return 20; } }
public Meglasaur( 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,55 @@
using System;
using Server.Items;
using Server.Mobiles;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a dinosaur corpse" )]
public class Raptor : BaseCreature
{
[Constructable]
public Raptor () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a raptor";
Body = Utility.RandomList( 277, 275, 274, 235, 235 );
BaseSoundID = 0x5EE;
SetStr( 126, 150 );
SetDex( 56, 75 );
SetInt( 11, 20 );
SetHits( 76, 90 );
SetMana( 0 );
SetDamage( 6, 24 );
SetSkill( SkillName.Tactics, 60.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 40;
}
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 12; } }
public Raptor(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,56 @@
using System;
using Server;
using System.Collections.Generic;
using Server.Mobiles;
using Server.Items;
using Server.ContextMenus;
namespace Server.Mobiles
{
[CorpseName( "a dinosaur corpse" )]
public class Stegosaurus : BaseCreature
{
[Constructable]
public Stegosaurus () : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a stegosaurus";
Body = 276;
BaseSoundID = 0x4F5;
SetStr( 401, 430 );
SetDex( 133, 152 );
SetInt( 101, 140 );
SetHits( 241, 258 );
SetDamage( 11, 17 );
SetSkill( SkillName.Tactics, 65.1, 90.0 );
SetSkill( SkillName.HandToHand, 65.1, 80.0 );
Fame = 5500;
Karma = -5500;
VirtualArmor = 46;
}
public override int Meat{ get{ return 10; } }
public override int Hides{ get{ return 20; } }
public Stegosaurus( 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 System.Collections;
using System.Collections.Generic;
using Server.Mobiles;
using Server.Items;
using Server.ContextMenus;
namespace Server.Mobiles
{
[CorpseName( "a teradactyl corpse" )]
public class Teradactyl : BaseCreature
{
[Constructable]
public Teradactyl() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a teradactyl";
Body = 88;
Hue = Utility.RandomSnakeHue();
BaseSoundID = 0x275;
SetStr( 202, 240 );
SetDex( 153, 172 );
SetInt( 51, 90 );
SetHits( 125, 141 );
SetDamage( 8, 19 );
SetSkill( SkillName.Tactics, 65.1, 90.0 );
SetSkill( SkillName.HandToHand, 65.1, 80.0 );
Fame = 4000;
Karma = -4000;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Meat{ get{ return 10; } }
public override int Hides{ get{ return 20; } }
public Teradactyl( 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,58 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a dinosaur corpse" )]
public class Tyranasaur : BaseCreature
{
[Constructable]
public Tyranasaur () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a tyranasaur";
Body = 246;
BaseSoundID = 0x4FB;
SetStr( 796, 825 );
SetDex( 86, 105 );
SetInt( 40, 60 );
SetHits( 478, 495 );
SetDamage( 16, 22 );
SetSkill( SkillName.Tactics, 97.6, 100.0 );
SetSkill( SkillName.HandToHand, 90.1, 92.5 );
Fame = 10000;
Karma = -10000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Meat{ get{ return 19; } }
public override int Hides{ get{ return 20; } }
public Tyranasaur( 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 Server;
using System.Collections;
using Server.Items;
using Server.Targeting;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a dragon turtle corpse" )]
public class DragonTurtle : BaseCreature
{
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
public override bool HasBreath{ get{ return true; } } // fire breath enabled
[Constructable]
public DragonTurtle () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a dragon turtle";
Body = 181;
BaseSoundID = 0x2C0;
CanSwim = true;
SetStr( 867, 1045 );
SetDex( 86, 105 );
SetInt( 46, 70 );
SetHits( 576, 652 );
SetDamage( 22, 28 );
SetSkill( SkillName.MagicResist, 99.1, 100.0 );
SetSkill( SkillName.Tactics, 97.6, 100.0 );
SetSkill( SkillName.HandToHand, 90.1, 92.5 );
Fame = 16000;
Karma = -16000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.FilthyRich, 1 );
AddLoot( LootPack.Gems, 3 );
}
public override int Meat{ get{ return 10; } }
public override MeatType MeatType{ get{ return MeatType.Fish; } }
public override int Hides{ get{ return 12; } }
public DragonTurtle( 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( "a reptilian corpse" )]
public class Drasolisk : BaseCreature
{
[Constructable]
public Drasolisk () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "lizardman" );
HiddenTitle = "the drasolisk";
Body = 115;
BaseSoundID = 0x5EE;
SetStr( 166, 195 );
SetDex( 46, 65 );
SetInt( 46, 70 );
SetHits( 100, 117 );
SetMana( 0 );
SetDamage( 9, 11 );
SetSkill( SkillName.Poisoning, 45.1, 60.0 );
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
SetSkill( SkillName.Tactics, 60.1, 70.0 );
SetSkill( SkillName.HandToHand, 70.1, 80.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 32;
PackItem( new DoubleAxe() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.LowPotions );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 3; } }
public override int Hides{ get{ return 15; } }
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Lesser : Poison.Regular); } }
public Drasolisk( 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 System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a salamander corpse" )]
public class FireSalamander : BaseCreature
{
[Constructable]
public FireSalamander () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a salamander";
Body = 99;
BaseSoundID = 0x27A;
SetStr( 176, 205 );
SetDex( 46, 65 );
SetInt( 46, 70 );
SetHits( 156, 173 );
SetDamage( 8, 14 );
SetSkill( SkillName.MagicResist, 85.1, 100.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
Fame = 3800;
Karma = -3800;
VirtualArmor = 40;
PackItem( new Spear() );
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 2; } }
public FireSalamander( 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( "a toad corpse" )]
public class FireToad : BaseCreature
{
[Constructable]
public FireToad () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a fire toad";
Body = 153;
BaseSoundID = 0x26B;
SetStr( 126, 150 );
SetDex( 26, 45 );
SetInt( 11, 20 );
SetHits( 96, 110 );
SetMana( 0 );
SetDamage( 7, 19 );
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
SetSkill( SkillName.Tactics, 60.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 850;
Karma = -850;
VirtualArmor = 28;
PackItem( new SulfurousAsh( Utility.RandomMinMax( 8, 20 ) ) );
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 4; } }
public FireToad( 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,62 @@
using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a lizard corpse" )]
public class GiantLizard : BaseCreature
{
[Constructable]
public GiantLizard() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant lizard";
Body = 206;
Hue = Utility.RandomLizardHue();
BaseSoundID = 0x5A;
SetStr( 126, 150 );
SetDex( 56, 75 );
SetInt( 11, 20 );
SetHits( 76, 90 );
SetMana( 0 );
SetDamage( 6, 24 );
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
SetSkill( SkillName.Tactics, 60.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 40;
PackItem( new SulfurousAsh( Utility.Random( 4, 10 ) ) );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Hides{ get{ return 12; } }
public GiantLizard(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.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a giant toad corpse" )]
[TypeAlias( "Server.Mobiles.Gianttoad" )]
public class GiantToad : BaseCreature
{
[Constructable]
public GiantToad() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant toad";
Body = 80;
BaseSoundID = 0x26B;
SetStr( 76, 100 );
SetDex( 6, 25 );
SetInt( 11, 20 );
SetHits( 46, 60 );
SetMana( 0 );
SetDamage( 5, 17 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 40.1, 60.0 );
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
Fame = 750;
Karma = -750;
VirtualArmor = 24;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Poor );
}
public override int Hides{ get{ return 12; } }
public GiantToad(Serial serial) : base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int) 1);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if ( version < 1 )
{
AI = AIType.AI_Melee;
FightMode = FightMode.Closest;
}
}
}
}

View file

@ -0,0 +1,69 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a hydra corpse" )]
public class Hydra : BaseCreature
{
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
public override bool HasBreath{ get{ return true; } } // fire breath enabled
[Constructable]
public Hydra () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a hydra";
Body = 117;
BaseSoundID = 0x488;
AnimationMod = 4;
SetStr( 796, 825 );
SetDex( 86, 105 );
SetInt( 436, 475 );
SetHits( 478, 495 );
SetDamage( 16, 22 );
SetSkill( SkillName.Concentration, 30.1, 40.0 );
SetSkill( SkillName.Magery, 30.1, 40.0 );
SetSkill( SkillName.MagicResist, 99.1, 100.0 );
SetSkill( SkillName.Tactics, 97.6, 100.0 );
SetSkill( SkillName.HandToHand, 90.1, 92.5 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich, 2 );
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.Gems, 8 );
}
public override bool AutoDispel{ get{ return !Controlled; } }
public override int Meat{ get{ return 19; } }
public override int Hides{ get{ return 20; } }
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
public Hydra( 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 System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a salamander corpse" )]
public class IceSalamander : BaseCreature
{
[Constructable]
public IceSalamander () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a salamander";
Body = 98;
BaseSoundID = 0x27A;
SetStr( 176, 205 );
SetDex( 46, 65 );
SetInt( 46, 70 );
SetHits( 156, 173 );
SetDamage( 8, 14 );
SetSkill( SkillName.MagicResist, 85.1, 100.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
Fame = 3800;
Karma = -3800;
VirtualArmor = 40;
PackItem( new Spear() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 2; } }
public IceSalamander( 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,61 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a toad corpse" )]
public class IceToad : BaseCreature
{
[Constructable]
public IceToad () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ice toad";
Body = 153;
Hue = 1084;
BaseSoundID = 0x26B;
SetStr( 126, 150 );
SetDex( 26, 45 );
SetInt( 11, 20 );
SetHits( 96, 110 );
SetMana( 0 );
SetDamage( 7, 19 );
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
SetSkill( SkillName.Tactics, 60.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 850;
Karma = -850;
VirtualArmor = 28;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 4; } }
public IceToad( 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.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a lava lizard corpse" )]
[TypeAlias( "Server.Mobiles.Lavalizard" )]
public class LavaLizard : BaseCreature
{
[Constructable]
public LavaLizard() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a lava lizard";
Body = 206;
Hue = 1184;
BaseSoundID = 0x5A;
SetStr( 126, 150 );
SetDex( 56, 75 );
SetInt( 11, 20 );
SetHits( 76, 90 );
SetMana( 0 );
SetDamage( 6, 24 );
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
SetSkill( SkillName.Tactics, 60.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 40;
PackItem( new SulfurousAsh( Utility.Random( 4, 10 ) ) );
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override int Hides{ get{ return 12; } }
public LavaLizard(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 System.Collections;
using Server.Items;
using Server.Targeting;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a lizardman corpse" )]
public class Lizardman : BaseCreature
{
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
[Constructable]
public Lizardman() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "lizardman" );
HiddenTitle = "the lizardman";
Body = Utility.RandomList( 33, 35, 36 );
BaseSoundID = 417;
SetStr( 96, 120 );
SetDex( 86, 105 );
SetInt( 36, 60 );
SetHits( 58, 72 );
SetDamage( 5, 7 );
SetSkill( SkillName.MagicResist, 35.1, 60.0 );
SetSkill( SkillName.Tactics, 55.1, 80.0 );
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
Fame = 1500;
Karma = -1500;
VirtualArmor = 28;
if ( Body == 35 )
PackItem( new Spear() );
else if ( Body == 36 )
PackItem( new WarMace() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 12; } }
public Lizardman( 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,76 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a reptilian corpse" )]
public class Sakkhra : BaseCreature
{
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
[Constructable]
public Sakkhra() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "lizardman" );
HiddenTitle = "the sakkhra";
Body = Utility.RandomList( 168, 170 );
BaseSoundID = 417;
SetStr( 154, 192 );
SetDex( 138, 168 );
SetInt( 58, 96 );
SetHits( 93, 115 );
SetDamage( 8, 11 );
SetSkill( SkillName.MagicResist, 56.2, 96.0 );
SetSkill( SkillName.Tactics, 88.2, 128.0 );
SetSkill( SkillName.HandToHand, 80.2, 112.0 );
Fame = 2400;
Karma = -2400;
VirtualArmor = 45;
if ( Body == 168 )
{
PackItem( new WoodenShield() );
PackItem( new Halberd() );
}
else if ( Body == 170 )
{
PackItem( new WoodenShield() );
PackItem( new Mace() );
}
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 12; } }
public Sakkhra( 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 Server;
using Server.Misc;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a reptilian corpse" )]
public class SakkhraShaman : BaseCreature
{
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
[Constructable]
public SakkhraShaman () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "lizardman" );
HiddenTitle = "the sakkhra shaman";
Body = 169;
BaseSoundID = 417;
SetStr( 116, 150 );
SetDex( 91, 115 );
SetInt( 161, 185 );
SetHits( 70, 90 );
SetDamage( 4, 14 );
SetSkill( SkillName.Concentration, 60.1, 72.5 );
SetSkill( SkillName.Magery, 60.1, 72.5 );
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
SetSkill( SkillName.Tactics, 50.1, 65.0 );
SetSkill( SkillName.HandToHand, 40.1, 50.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 30;
PackReg( 6 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.LowScrolls );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 12; } }
public SakkhraShaman( 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,60 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a seeker corpse" )]
public class Seeker : BaseCreature
{
[Constructable]
public Seeker () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a seeker";
Body = 107;
BaseSoundID = 377;
SetStr( 296, 325 );
SetDex( 86, 105 );
SetInt( 291, 385 );
SetHits( 178, 195 );
SetDamage( 8, 19 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 115.1, 130.0 );
SetSkill( SkillName.Tactics, 80.1, 100.0 );
SetSkill( SkillName.HandToHand, 80.1, 100.0 );
Fame = 12500;
Karma = -12500;
VirtualArmor = Utility.RandomMinMax( 48, 51 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.Gems );
}
public Seeker( 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.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a giant serpent corpse" )]
[TypeAlias( "Server.Mobiles.Serpant" )]
public class Cobra : BaseCreature
{
[Constructable]
public Cobra() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a cobra";
Body = 21;
Hue = Utility.RandomYellowHue();
BaseSoundID = 219;
SetStr( 186, 215 );
SetDex( 56, 80 );
SetInt( 66, 85 );
SetHits( 112, 129 );
SetMana( 0 );
SetDamage( 7, 17 );
SetSkill( SkillName.Poisoning, 70.1, 100.0 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 65.1, 70.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 2500;
Karma = -2500;
VirtualArmor = 32;
PackItem( new Bone() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
}
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
public Cobra(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 == -1 )
BaseSoundID = 219;
}
}
}

View file

@ -0,0 +1,69 @@
using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName("a naga corpse")]
public class FireNaga : BaseCreature
{
[Constructable]
public FireNaga() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Body = 165;
Name = "a fire naga";
BaseSoundID = 634;
SetStr( 161, 360 );
SetDex( 151, 300 );
SetInt( 21, 40 );
SetHits( 112, 250 );
SetDamage( 6, 23 );
SetSkill( SkillName.MagicResist, 95.1, 100.0 );
SetSkill( SkillName.Magery, 95.1, 100.0 );
SetSkill( SkillName.Tactics, 80.1, 95.0 );
SetSkill( SkillName.HandToHand, 85.1, 100.0 );
Fame = 9000;
Karma = -9000;
VirtualArmor = 45;
PackItem( new SulfurousAsh( 10 ) );
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average );
AddLoot( LootPack.Gems, 2 );
AddLoot( LootPack.MedScrolls, 1 );
}
public override int Hides{ get{ return 15; } }
public override int Meat{ get{ return 4; } }
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
public override Poison HitPoison{ get{ return Poison.Greater; } }
public FireNaga(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.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a giant serpent corpse" )]
[TypeAlias( "Server.Mobiles.Serpant" )]
public class GiantSerpent : BaseCreature
{
[Constructable]
public GiantSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a serpent";
Body = 21;
Hue = Utility.RandomSnakeHue();
BaseSoundID = 219;
SetStr( 186, 215 );
SetDex( 56, 80 );
SetInt( 66, 85 );
SetHits( 112, 129 );
SetMana( 0 );
SetDamage( 7, 17 );
SetSkill( SkillName.Poisoning, 70.1, 100.0 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 65.1, 70.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 2500;
Karma = -2500;
VirtualArmor = 32;
PackItem( new Bone() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
}
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Regular : Poison.Greater); } }
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
public GiantSerpent(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 == -1 )
BaseSoundID = 219;
}
}
}

View file

@ -0,0 +1,86 @@
using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "an ice serpent corpse" )]
[TypeAlias( "Server.Mobiles.Iceserpant" )]
public class IceSerpent : BaseCreature
{
[Constructable]
public IceSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ice serpent";
Body = 21;
Hue = 1080;
BaseSoundID = 219;
SetStr( 216, 245 );
SetDex( 26, 50 );
SetInt( 66, 85 );
SetHits( 130, 147 );
SetMana( 0 );
SetDamage( 7, 17 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 75.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 3500;
Karma = -3500;
VirtualArmor = 32;
PackItem( Loot.RandomArmorOrShieldOrWeapon() );
switch ( Utility.Random( 10 ))
{
case 0: PackItem( new LeftArm() ); break;
case 1: PackItem( new RightArm() ); break;
case 2: PackItem( new Torso() ); break;
case 3: PackItem( new Bone() ); break;
case 4: PackItem( new RibCage() ); break;
case 5: PackItem( new RibCage() ); break;
case 6: PackItem( new BonePile() ); break;
case 7: PackItem( new BonePile() ); break;
case 8: PackItem( new BonePile() ); break;
case 9: PackItem( new BonePile() ); break;
}
if ( 0.025 > Utility.RandomDouble() )
PackItem( new GlacialStaff() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
public IceSerpent(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 == -1 )
BaseSoundID = 219;
}
}
}

View file

@ -0,0 +1,67 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a serpentine corpse" )]
public class Kobra : BaseCreature
{
[Constructable]
public Kobra() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a kobra";
Body = 149;
BaseSoundID = 634;
SetStr( 150, 320 );
SetDex( 94, 190 );
SetInt( 64, 160 );
SetHits( 128, 155 );
SetMana( 0 );
SetDamage( 5, 11 );
SetSkill( SkillName.MagicResist, 70.1, 85.0 );
SetSkill( SkillName.HandToHand, 60.1, 85.0 );
SetSkill( SkillName.Tactics, 75.1, 90.0 );
Fame = 4500;
Karma = -4500;
VirtualArmor = 36;
PackItem( new LesserPoisonPotion() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
AddLoot( LootPack.Average );
AddLoot( LootPack.Gems );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 5; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override Poison HitPoison{ get{ return Poison.Regular; } }
public Kobra( 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;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a lava serpent corpse" )]
[TypeAlias( "Server.Mobiles.Lavaserpant" )]
public class LavaSerpent : BaseCreature
{
[Constructable]
public LavaSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a lava serpent";
Body = 21;
Hue = 1188;
BaseSoundID = 219;
SetStr( 386, 415 );
SetDex( 56, 80 );
SetInt( 66, 85 );
SetHits( 232, 249 );
SetMana( 0 );
SetDamage( 10, 22 );
SetSkill( SkillName.MagicResist, 25.3, 70.0 );
SetSkill( SkillName.Tactics, 65.1, 70.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 4500;
Karma = -4500;
VirtualArmor = 40;
PackItem( new SulfurousAsh( 3 ) );
PackItem( new Bone() );
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
public LavaSerpent(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 == -1 )
BaseSoundID = 219;
}
}
}

View file

@ -0,0 +1,105 @@
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Network;
namespace Server.Mobiles
{
[CorpseName( "a medusan corpse" )]
public class Medusa : BaseCreature
{
[Constructable]
public Medusa() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a medusa";
BaseSoundID = 0x284;
Body = 106;
AnimationMod = 3;
SetStr( 388, 520 );
SetDex( 121, 170 );
SetInt( 398, 557 );
SetHits( 212, 253 );
SetDamage( 10, 20 );
SetSkill( SkillName.MagicResist, 70.1, 80.0 );
SetSkill( SkillName.Poisoning, 80.1, 90.0 );
SetSkill( SkillName.Tactics, 80.1, 90.0 );
SetSkill( SkillName.HandToHand, 80.1, 90.0 );
Fame = 14000;
Karma = -14000;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.Gems );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 5; } }
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
public override Poison HitPoison{ get{ return Poison.Greater; } }
public override bool CanRummageCorpses{ get{ return true; } }
public void TurnStone()
{
ArrayList list = new ArrayList();
foreach ( Mobile m in this.GetMobilesInRange( 2 ) )
{
if ( m == this || !CanBeHarmful( m ) )
continue;
if ( m is BaseCreature && (((BaseCreature)m).Controlled || ((BaseCreature)m).Summoned || ((BaseCreature)m).Team != this.Team) )
list.Add( m );
else if ( m.Player )
list.Add( m );
}
foreach ( Mobile m in list )
{
DoHarmful( m );
m.PlaySound(0x204);
m.FixedEffect(0x376A, 6, 1);
int duration = Utility.RandomMinMax(4, 8);
m.Paralyze(TimeSpan.FromSeconds(duration));
m.SendMessage( "You are frozen like stone!" );
}
}
public override void OnGotMeleeAttack( Mobile attacker )
{
base.OnGotMeleeAttack( attacker );
if ( 0.1 >= Utility.RandomDouble() )
TurnStone();
}
public Medusa( 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,75 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a naga corpse" )]
public class Naga : BaseCreature
{
[Constructable]
public Naga() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a naga";
Body = 175;
BaseSoundID = 634;
CanSwim = true;
if ( Utility.RandomBool() )
{
Body = 330;
BaseSoundID = 644;
}
SetStr( 416, 505 );
SetDex( 96, 115 );
SetInt( 366, 455 );
SetHits( 250, 303 );
SetDamage( 11, 13 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.Meditation, 5.4, 25.0 );
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 16000;
Karma = -16000;
VirtualArmor = 50;
PackItem( new PoisonPotion() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.MedScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 5; } }
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
public override Poison HitPoison{ get{ return Poison.Deadly; } }
public Naga( 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( "a NagaQueen corpse" )]
public class NagaQueen : BaseCreature
{
[Constructable]
public NagaQueen() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a naga queen";
Body = 302;
BaseSoundID = 644;
CanSwim = true;
SetStr( 216, 305 );
SetDex( 96, 115 );
SetInt( 966, 1045 );
SetHits( 560, 595 );
SetDamage( 15, 27 );
SetSkill( SkillName.Concentration, 120.1, 130.0 );
SetSkill( SkillName.Magery, 120.1, 130.0 );
SetSkill( SkillName.Meditation, 100.1, 101.0 );
SetSkill( SkillName.Poisoning, 100.1, 101.0 );
SetSkill( SkillName.MagicResist, 175.2, 200.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.HandToHand, 75.1, 100.0 );
Fame = 23000;
Karma = -23000;
VirtualArmor = 60;
PackItem( new GreaterPoisonPotion() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich );
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.HighScrolls, 2 );
}
public override int Meat{ get{ return 2; } }
public override int Hides{ get{ return 8; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison HitPoison{ get{ return Poison.Lethal; } }
public NagaQueen( 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( "a naga corpse" )]
public class NagaWarrior : BaseCreature
{
[Constructable]
public NagaWarrior() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a naga warrior";
Body = 174;
BaseSoundID = 634;
CanSwim = true;
SetStr( 417, 595 );
SetDex( 166, 175 );
SetInt( 46, 70 );
SetHits( 266, 342 );
SetMana( 0 );
SetDamage( 16, 19 );
SetSkill( SkillName.Poisoning, 60.1, 80.0 );
SetSkill( SkillName.MagicResist, 65.1, 80.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.HandToHand, 90.1, 100.0 );
Fame = 10000;
Karma = -10000;
VirtualArmor = 40;
PackItem( new LesserPoisonPotion() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
}
public override int Meat{ get{ return 2; } }
public override int Hides{ get{ return 7; } }
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return Poison.Greater; } }
public NagaWarrior( 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,72 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "an ophidian corpse" )]
[TypeAlias( "Server.Mobiles.OphidianJusticar", "Server.Mobiles.OphidianZealot" )]
public class OphidianArchmage : BaseCreature
{
private static string[] m_Names = new string[]
{
"an ophidian justicar",
"an ophidian zealot"
};
[Constructable]
public OphidianArchmage() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = m_Names[Utility.Random( m_Names.Length )];
Body = 85;
BaseSoundID = 639;
SetStr( 281, 305 );
SetDex( 191, 215 );
SetInt( 226, 250 );
SetHits( 169, 183 );
SetStam( 36, 45 );
SetDamage( 5, 10 );
SetSkill( SkillName.Concentration, 95.1, 100.0 );
SetSkill( SkillName.Magery, 95.1, 100.0 );
SetSkill( SkillName.MagicResist, 75.0, 97.5 );
SetSkill( SkillName.Tactics, 65.0, 87.5 );
SetSkill( SkillName.HandToHand, 20.2, 60.0 );
Fame = 11500;
Karma = -11500;
VirtualArmor = 44;
PackReg( 5, 15 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.MedScrolls, 2 );
AddLoot( LootPack.MedPotions );
}
public override int Meat{ get{ return 1; } }
public OphidianArchmage( 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 System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "an ophidian corpse" )]
[TypeAlias( "Server.Mobiles.OphidianAvenger" )]
public class OphidianKnight : BaseCreature
{
private static string[] m_Names = new string[]
{
"an ophidian knight-errant",
"an ophidian avenger"
};
[Constructable]
public OphidianKnight() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = m_Names[Utility.Random( m_Names.Length )];
Body = 86;
BaseSoundID = 634;
SetStr( 417, 595 );
SetDex( 166, 175 );
SetInt( 46, 70 );
SetHits( 266, 342 );
SetMana( 0 );
SetDamage( 16, 19 );
SetSkill( SkillName.Poisoning, 60.1, 80.0 );
SetSkill( SkillName.MagicResist, 65.1, 80.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.HandToHand, 90.1, 100.0 );
Fame = 10000;
Karma = -10000;
VirtualArmor = 40;
PackItem( new LesserPoisonPotion() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
}
public override int Meat{ get{ return 2; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison HitPoison{ get{ return Poison.Lethal; } }
public OphidianKnight( 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,72 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "an ophidian corpse" )]
[TypeAlias( "Server.Mobiles.OphidianShaman" )]
public class OphidianMage : BaseCreature
{
private static string[] m_Names = new string[]
{
"an ophidian apprentice mage",
"an ophidian shaman"
};
[Constructable]
public OphidianMage() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = m_Names[Utility.Random( m_Names.Length )];
Body = 85;
BaseSoundID = 639;
SetStr( 181, 205 );
SetDex( 191, 215 );
SetInt( 96, 120 );
SetHits( 109, 123 );
SetDamage( 5, 10 );
SetSkill( SkillName.Concentration, 85.1, 100.0 );
SetSkill( SkillName.Magery, 85.1, 100.0 );
SetSkill( SkillName.MagicResist, 75.0, 97.5 );
SetSkill( SkillName.Tactics, 65.0, 87.5 );
SetSkill( SkillName.HandToHand, 20.2, 60.0 );
Fame = 4000;
Karma = -4000;
VirtualArmor = 30;
PackReg( 10 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.LowScrolls );
AddLoot( LootPack.MedScrolls );
AddLoot( LootPack.LowPotions );
}
public override int Meat{ get{ return 1; } }
public OphidianMage( 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 ophidian corpse" )]
public class OphidianMatriarch : BaseCreature
{
[Constructable]
public OphidianMatriarch() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ophidian matriarch";
Body = 87;
BaseSoundID = 644;
SetStr( 416, 505 );
SetDex( 96, 115 );
SetInt( 366, 455 );
SetHits( 250, 303 );
SetDamage( 11, 13 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.Meditation, 5.4, 25.0 );
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 16000;
Karma = -16000;
VirtualArmor = 50;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.MedScrolls, 2 );
AddLoot( LootPack.HighPotions );
}
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public OphidianMatriarch( 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 System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "an ophidian corpse" )]
public class OphidianWarrior : BaseCreature
{
private static string[] m_Names = new string[]
{
"an ophidian warrior",
"an ophidian enforcer"
};
[Constructable]
public OphidianWarrior() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = m_Names[Utility.Random( m_Names.Length )];
Body = 86;
BaseSoundID = 634;
SetStr( 150, 320 );
SetDex( 94, 190 );
SetInt( 64, 160 );
SetHits( 128, 155 );
SetMana( 0 );
SetDamage( 5, 11 );
SetSkill( SkillName.MagicResist, 70.1, 85.0 );
SetSkill( SkillName.Swords, 60.1, 85.0 );
SetSkill( SkillName.Tactics, 75.1, 90.0 );
Fame = 4500;
Karma = -4500;
VirtualArmor = 36;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
AddLoot( LootPack.Average );
AddLoot( LootPack.Gems );
}
public override int Meat{ get{ return 1; } }
public OphidianWarrior( 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.Mobiles;
namespace Server.Mobiles
{
[CorpseName("a silver serpent corpse")]
[TypeAlias( "Server.Mobiles.Silverserpant" )]
public class SilverSerpent : BaseCreature
{
[Constructable]
public SilverSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Body = 21;
Hue = Utility.RandomList( 2403, 2404 );
Name = "a silver serpent";
BaseSoundID = 219;
SetStr( 161, 360 );
SetDex( 151, 300 );
SetInt( 21, 40 );
SetHits( 97, 216 );
SetDamage( 5, 21 );
SetSkill( SkillName.Poisoning, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 95.1, 100.0 );
SetSkill( SkillName.Tactics, 80.1, 95.0 );
SetSkill( SkillName.HandToHand, 85.1, 100.0 );
Fame = 7000;
Karma = -7000;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Gems, 2 );
}
public override int Meat{ get{ return 1; } }
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Deadly : Poison.Lethal); } }
public SilverSerpent(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 == -1 )
BaseSoundID = 219;
}
}
}

View file

@ -0,0 +1,59 @@
using System;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a snake corpse" )]
public class Snake : BaseCreature
{
[Constructable]
public Snake() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a snake";
Body = 52;
Hue = Utility.RandomSnakeHue();
BaseSoundID = 0xDB;
SetStr( 22, 34 );
SetDex( 16, 25 );
SetInt( 6, 10 );
SetHits( 15, 19 );
SetMana( 0 );
SetDamage( 1, 4 );
SetSkill( SkillName.Poisoning, 50.1, 70.0 );
SetSkill( SkillName.MagicResist, 15.1, 20.0 );
SetSkill( SkillName.Tactics, 19.3, 34.0 );
SetSkill( SkillName.HandToHand, 19.3, 34.0 );
Fame = 300;
Karma = -300;
VirtualArmor = 16;
}
public override Poison PoisonImmune{ get{ return Poison.Lesser; } }
public override Poison HitPoison{ get{ return Poison.Lesser; } }
public override int Meat{ get{ return 1; } }
public Snake(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.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a giant serpent corpse" )]
[TypeAlias( "Server.Mobiles.Serpant" )]
public class Viper : BaseCreature
{
[Constructable]
public Viper() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a viper";
Body = 21;
Hue = Utility.RandomGreenHue();
BaseSoundID = 219;
SetStr( 186, 215 );
SetDex( 56, 80 );
SetInt( 66, 85 );
SetHits( 112, 129 );
SetMana( 0 );
SetDamage( 7, 17 );
SetSkill( SkillName.Poisoning, 70.1, 100.0 );
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
SetSkill( SkillName.Tactics, 65.1, 70.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 2500;
Karma = -2500;
VirtualArmor = 32;
PackItem( new Bone() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
}
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
public Viper(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 == -1 )
BaseSoundID = 219;
}
}
}

View file

@ -0,0 +1,71 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a reptilian corpse" )]
public class Silisk : BaseCreature
{
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
[Constructable]
public Silisk () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "lizardman" );
HiddenTitle = "the silisk";
Body = 116;
BaseSoundID = 417;
CanSwim = true;
SetStr( 166, 195 );
SetDex( 46, 65 );
SetInt( 46, 70 );
SetHits( 100, 117 );
SetMana( 0 );
SetDamage( 9, 11 );
SetSkill( SkillName.Poisoning, 45.1, 60.0 );
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
SetSkill( SkillName.Tactics, 60.1, 70.0 );
SetSkill( SkillName.HandToHand, 70.1, 80.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 32;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 3; } }
public override int Hides{ get{ return 15; } }
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Lesser : Poison.Regular); } }
public Silisk( 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,59 @@
using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a lizard corpse" )]
public class Torax : BaseCreature
{
[Constructable]
public Torax() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a torax";
Body = 127;
BaseSoundID = 0x5A;
SetStr( 176, 200 );
SetDex( 156, 175 );
SetInt( 11, 20 );
SetHits( 126, 160 );
SetMana( 0 );
SetDamage( 10, 24 );
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
SetSkill( SkillName.Tactics, 70.1, 90.0 );
SetSkill( SkillName.HandToHand, 70.1, 90.0 );
Fame = 4000;
Karma = -4000;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override int Hides{ get{ return 12; } }
public Torax(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,55 @@
using System;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a turtle corpse" )]
public class Turtle : BaseCreature
{
[Constructable]
public Turtle() : base( AIType.AI_Animal, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant turtle";
Body = 281;
BaseSoundID = 0x39D;
CanSwim = true;
SetStr( 76, 100 );
SetDex( 6, 25 );
SetInt( 11, 20 );
SetHits( 46, 60 );
SetStam( 46, 65 );
SetMana( 0 );
SetDamage( 5, 15 );
SetSkill( SkillName.Tactics, 40.1, 60.0 );
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
Fame = 700;
Karma = 0;
VirtualArmor = 50;
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 6; } }
public Turtle(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();
}
}
}