#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,69 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a balron corpse" )]
public class Balron : BaseCreature
{
[Constructable]
public Balron () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "balron" );
Body = Utility.RandomList( 90, 113 );
BaseSoundID = 357;
Clan = Clan.Demonic;
SetStr( 986, 1185 );
SetDex( 177, 255 );
SetInt( 151, 250 );
SetHits( 592, 711 );
SetDamage( 22, 29 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 95.5, 100.0 );
SetSkill( SkillName.Meditation, 25.1, 50.0 );
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.HandToHand, 90.1, 100.0 );
Fame = 24000;
Karma = -24000;
VirtualArmor = 90;
if ( Body == 90 )
PackItem( new Longsword() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich, 2 );
AddLoot( LootPack.Rich );
AddLoot( LootPack.HighScrolls, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
public override int Meat{ get{ return 1; } }
public Balron( 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 daemon corpse" )]
public class Daemon : BaseCreature
{
public override double DispelDifficulty{ get{ return 125.0; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public Daemon () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "daemon" );
HiddenTitle = "the daemon";
Body = Utility.RandomList( 9, 10 );
BaseSoundID = 357;
Clan = Clan.Demonic;
SetStr( 476, 505 );
SetDex( 76, 95 );
SetInt( 301, 325 );
SetHits( 286, 303 );
SetDamage( 7, 14 );
SetSkill( SkillName.Concentration, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 58;
ControlSlots = 5;
if ( Body == 10 )
PackItem( new Longsword() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.MedScrolls, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }
public Daemon( 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,65 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a demon corpse" )]
public class DemonClaw : BaseCreature
{
public override double DispelDifficulty{ get{ return 125.0; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public DemonClaw () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a demon claw";
Body = 190;
BaseSoundID = 357;
Clan = Clan.Demonic;
SetStr( 476, 505 );
SetDex( 76, 95 );
SetInt( 301, 325 );
SetHits( 286, 303 );
SetDamage( 7, 14 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 11000;
Karma = -11000;
VirtualArmor = 50;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }
public DemonClaw( 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,65 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a demoness corpse" )]
public class Demoness : BaseCreature
{
public override double DispelDifficulty{ get{ return 125.0; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public Demoness () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a demoness";
Body = 154;
BaseSoundID = 0x4B0;
Clan = Clan.Demonic;
SetStr( 476, 505 );
SetDex( 76, 95 );
SetInt( 301, 325 );
SetHits( 286, 303 );
SetDamage( 7, 14 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 11000;
Karma = -11000;
VirtualArmor = 50;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }
public Demoness( 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( "a ghostly corpse" )]
public class DemonicSpirit : BaseCreature
{
[Constructable]
public DemonicSpirit () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a demonic spirit";
Body = 285;
BaseSoundID = 0x482;
Clan = Clan.Demonic;
SetStr( 276, 305 );
SetDex( 46, 65 );
SetInt( 201, 225 );
AnimationMod = 1;
SetHits( 186, 203 );
SetDamage( 4, 10 );
SetSkill( SkillName.Concentration, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 9000;
Karma = -9000;
VirtualArmor = 40;
PackReg( 17, 24 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Average, 1 );
AddLoot( LootPack.MedScrolls, 1 );
}
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public DemonicSpirit( 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 devil corpse" )]
public class Deviless : BaseCreature
{
public override double DispelDifficulty{ get{ return 125.0; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public Deviless () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "daemoness" );
HiddenTitle = "the deviless";
Body = 135;
BaseSoundID = 0x53B;
Clan = Clan.Demonic;
SetStr( 476, 505 );
SetDex( 76, 95 );
SetInt( 301, 325 );
SetHits( 286, 303 );
SetDamage( 7, 14 );
SetSkill( SkillName.Concentration, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 58;
PackItem( new Whip() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.MedScrolls, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }
public Deviless( 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 imp corpse" )]
public class FireImp : BaseCreature
{
[Constructable]
public FireImp() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "imp" );
HiddenTitle = "the fire imp";
Body = 258;
BaseSoundID = 422;
AnimationMod = 1;
Hue = 1188;
Clan = Clan.Demonic;
SetStr( 111, 165 );
SetDex( 61, 80 );
SetInt( 136, 155 );
SetHits( 105, 120 );
SetDamage( 15, 20 );
SetSkill( SkillName.Concentration, 60.1, 84.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
SetSkill( SkillName.Tactics, 60.1, 84.0 );
SetSkill( SkillName.HandToHand, 60.1, 84.0 );
Fame = 3500;
Karma = -3500;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
AddLoot( LootPack.MedScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 6; } }
public FireImp( 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 devilish corpse" )]
public class HornedDevil : BaseCreature
{
public override double DispelDifficulty{ get{ return 125.0; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public HornedDevil() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "daemon" );
HiddenTitle = "the horned devil";
Body = 188;
BaseSoundID = 357;
AnimationMod = 5;
Clan = Clan.Demonic;
SetStr( 476, 505 );
SetDex( 76, 95 );
SetInt( 301, 325 );
SetHits( 286, 303 );
SetDamage( 7, 14 );
SetSkill( SkillName.Concentration, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 58;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average, 2 );
AddLoot( LootPack.MedScrolls, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }
public HornedDevil( 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 devilish corpse" )]
public class IceDevil : BaseCreature
{
public override double DispelDifficulty{ get{ return 125.0; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public IceDevil () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "daemon" );
HiddenTitle = "the ice devil";
Body = 187;
BaseSoundID = 357;
Clan = Clan.Demonic;
SetStr( 714, 758 );
SetDex( 114, 143 );
SetInt( 452, 488 );
SetHits( 429, 455 );
SetDamage( 11, 21 );
SetSkill( SkillName.Concentration, 105.2, 120.0 );
SetSkill( SkillName.Magery, 105.2, 120.0 );
SetSkill( SkillName.MagicResist, 127.7, 142.5 );
SetSkill( SkillName.Tactics, 105.2, 120.0 );
SetSkill( SkillName.HandToHand, 90.2, 120.0 );
Fame = 22500;
Karma = -22500;
VirtualArmor = 85;
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich );
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.MedScrolls );
AddLoot( LootPack.HighScrolls );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override int Meat{ get{ return 2; } }
public IceDevil( 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( "an ice fiend corpse" )]
public class IceFiend : BaseCreature
{
[Constructable]
public IceFiend () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ice fiend";
Body = 114;
BaseSoundID = 357;
Clan = Clan.Demonic;
SetStr( 376, 405 );
SetDex( 176, 195 );
SetInt( 201, 225 );
SetHits( 226, 243 );
SetDamage( 8, 19 );
SetSkill( SkillName.Concentration, 80.1, 90.0 );
SetSkill( SkillName.Magery, 80.1, 90.0 );
SetSkill( SkillName.MagicResist, 75.1, 85.0 );
SetSkill( SkillName.Tactics, 80.1, 90.0 );
SetSkill( SkillName.HandToHand, 80.1, 100.0 );
Fame = 18000;
Karma = -18000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich );
AddLoot( LootPack.Average );
AddLoot( LootPack.MedScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public IceFiend( 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 imp corpse" )]
public class IceImp : BaseCreature
{
[Constructable]
public IceImp() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "imp" );
HiddenTitle = "the ice imp";
Body = 258;
BaseSoundID = 422;
AnimationMod = 1;
Hue = 1079;
Clan = Clan.Demonic;
SetStr( 111, 165 );
SetDex( 61, 80 );
SetInt( 136, 155 );
SetHits( 105, 120 );
SetDamage( 15, 20 );
SetSkill( SkillName.Concentration, 60.1, 84.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
SetSkill( SkillName.Tactics, 60.1, 84.0 );
SetSkill( SkillName.HandToHand, 60.1, 84.0 );
Fame = 3500;
Karma = -3500;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
AddLoot( LootPack.MedScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 6; } }
public IceImp( 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 imp corpse" )]
public class Imp : BaseCreature
{
[Constructable]
public Imp() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "imp" );
HiddenTitle = "the imp";
Body = 62;
BaseSoundID = 422;
Clan = Clan.Demonic;
SetStr( 91, 115 );
SetDex( 61, 80 );
SetInt( 86, 105 );
SetHits( 55, 70 );
SetDamage( 10, 14 );
SetSkill( SkillName.Concentration, 20.1, 30.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 30.1, 50.0 );
SetSkill( SkillName.Tactics, 42.1, 50.0 );
SetSkill( SkillName.HandToHand, 40.1, 44.0 );
Fame = 2500;
Karma = -2500;
VirtualArmor = 30;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
AddLoot( LootPack.MedScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 6; } }
public Imp( 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,65 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a devilish corpse" )]
public class Minion : BaseCreature
{
[Constructable]
public Minion() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a minion";
Body = 340;
BaseSoundID = 0x45A;
Clan = Clan.Demonic;
SetStr( 96, 120 );
SetDex( 81, 105 );
SetInt( 36, 60 );
SetHits( 58, 72 );
SetDamage( 5, 7 );
SetSkill( SkillName.MagicResist, 50.1, 75.0 );
SetSkill( SkillName.Tactics, 55.1, 80.0 );
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
Fame = 1500;
Karma = -1500;
VirtualArmor = 28;
PackItem( new Mace() );
PackItem( new Torch() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 1; } }
public Minion( 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,65 @@
using System;
using System.Collections;
using Server.Misc;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a devilish corpse" )]
public class MinionWarrior : BaseCreature
{
[Constructable]
public MinionWarrior() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a minion warrior";
Body = 338;
BaseSoundID = 0x45A;
Clan = Clan.Demonic;
SetStr( 111, 145 );
SetDex( 101, 135 );
SetInt( 86, 110 );
SetHits( 67, 87 );
SetDamage( 5, 15 );
SetSkill( SkillName.MagicResist, 70.1, 85.0 );
SetSkill( SkillName.Swords, 70.1, 95.0 );
SetSkill( SkillName.Tactics, 85.1, 100.0 );
Fame = 2500;
Karma = -2500;
VirtualArmor = 34;
PackItem( new Scimitar() );
PackItem( new Buckler() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override int Meat{ get{ return 1; } }
public MinionWarrior( 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 devilish corpse" )]
public class MinionWizard : BaseCreature
{
[Constructable]
public MinionWizard () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a minion wizard";
Body = 339;
BaseSoundID = 0x45A;
Clan = Clan.Demonic;
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 );
PackItem( new Dagger() );
PackItem( new BlackStaff() );
}
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 MinionWizard( 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.Items;
namespace Server.Mobiles
{
[CorpseName( "a demon corpse" )]
public class ShadowDemon : BaseCreature
{
public override double DispelDifficulty{ get{ return 95.0; } }
public override double DispelFocus{ get{ return 50.0; } }
[Constructable]
public ShadowDemon () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a shadow demon";
Body = 120;
AnimationMod = 3;
BaseSoundID = 0x2B8;
Clan = Clan.Demonic;
SetStr( 276, 305 );
SetDex( 46, 65 );
SetInt( 201, 225 );
SetHits( 186, 203 );
SetDamage( 4, 10 );
SetSkill( SkillName.Concentration, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
Fame = 9000;
Karma = -9000;
VirtualArmor = 40;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Average, 1 );
AddLoot( LootPack.MedScrolls, 1 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool BleedImmune{ get{ return true; } }
public ShadowDemon( 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,111 @@
using System;
using System.Collections;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a succubus corpse" )]
public class Succubus : BaseCreature
{
[Constructable]
public Succubus () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a succubus";
Body = 78;
BaseSoundID = 0x4B0;
Clan = Clan.Demonic;
SetStr( 388, 420 );
SetDex( 121, 170 );
SetInt( 298, 457 );
SetHits( 212, 253 );
SetDamage( 12, 20 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 99.1, 100.0 );
SetSkill( SkillName.Meditation, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
SetSkill( SkillName.Tactics, 80.1, 90.0 );
SetSkill( SkillName.HandToHand, 80.1, 90.0 );
Fame = 16000;
Karma = -16000;
VirtualArmor = 50;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
AddLoot( LootPack.MedScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public void DrainLife()
{
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.FixedParticles( 0x374A, 10, 15, 5013, 0x496, 0, EffectLayer.Waist );
m.PlaySound( 0x231 );
m.SendMessage( "You feel the life drain out of you!" );
int toDrain = Utility.RandomMinMax( 5, 20 );
Hits += toDrain;
m.Damage( toDrain, this );
}
}
public override void OnGaveMeleeAttack( Mobile defender )
{
base.OnGaveMeleeAttack( defender );
if ( 0.1 >= Utility.RandomDouble() )
DrainLife();
}
public override void OnGotMeleeAttack( Mobile attacker )
{
base.OnGotMeleeAttack( attacker );
if ( 0.1 >= Utility.RandomDouble() )
DrainLife();
}
public Succubus( 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,112 @@
using System;
using System.Collections;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a succubus corpse" )]
public class SuccubusQueen : BaseCreature
{
[Constructable]
public SuccubusQueen () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "daemoness" );
HiddenTitle = "the succubus queen";
Body = 63;
BaseSoundID = 0x4B0;
Clan = Clan.Demonic;
SetStr( 488, 620 );
SetDex( 121, 170 );
SetInt( 498, 657 );
SetHits( 312, 353 );
SetDamage( 18, 28 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 99.1, 100.0 );
SetSkill( SkillName.Meditation, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
SetSkill( SkillName.Tactics, 80.1, 90.0 );
SetSkill( SkillName.HandToHand, 80.1, 90.0 );
Fame = 24000;
Karma = -24000;
VirtualArmor = 80;
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich, 2 );
AddLoot( LootPack.HighScrolls, 2 );
}
public override int Meat{ get{ return 1; } }
public void DrainLife()
{
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.FixedParticles( 0x374A, 10, 15, 5013, 0x496, 0, EffectLayer.Waist );
m.PlaySound( 0x231 );
m.SendMessage( "You feel the life drain out of you!" );
int toDrain = Utility.RandomMinMax( 10, 40 );
Hits += toDrain;
m.Damage( toDrain, this );
}
}
public override void OnGaveMeleeAttack( Mobile defender )
{
base.OnGaveMeleeAttack( defender );
if ( 0.1 >= Utility.RandomDouble() )
DrainLife();
}
public override void OnGotMeleeAttack( Mobile attacker )
{
base.OnGotMeleeAttack( attacker );
if ( 0.1 >= Utility.RandomDouble() )
DrainLife();
}
public SuccubusQueen( 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();
}
}
}