#W# Initial Commit: Avatars Conquest

This commit is contained in:
WarrentyExpired 2026-07-04 10:35:30 -04:00
commit 5df497787a
7510 changed files with 416048 additions and 0 deletions

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