#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
8eae46895e
7512 changed files with 416187 additions and 0 deletions
69
Scripts/Mobiles/Demons/Balron.cs
Normal file
69
Scripts/Mobiles/Demons/Balron.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Demons/Daemon.cs
Normal file
73
Scripts/Mobiles/Demons/Daemon.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Mobiles/Demons/DemonClaw.cs
Normal file
65
Scripts/Mobiles/Demons/DemonClaw.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Mobiles/Demons/Demoness.cs
Normal file
65
Scripts/Mobiles/Demons/Demoness.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Demons/DemonicSpirit.cs
Normal file
67
Scripts/Mobiles/Demons/DemonicSpirit.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Mobiles/Demons/Deviless.cs
Normal file
71
Scripts/Mobiles/Demons/Deviless.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Demons/FireMephit.cs
Normal file
67
Scripts/Mobiles/Demons/FireMephit.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Mobiles/Demons/HornedDevil.cs
Normal file
70
Scripts/Mobiles/Demons/HornedDevil.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Mobiles/Demons/IceDevil.cs
Normal file
70
Scripts/Mobiles/Demons/IceDevil.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Mobiles/Demons/IceFiend.cs
Normal file
63
Scripts/Mobiles/Demons/IceFiend.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Demons/IceMephit.cs
Normal file
67
Scripts/Mobiles/Demons/IceMephit.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Mobiles/Demons/Imp.cs
Normal file
64
Scripts/Mobiles/Demons/Imp.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Mobiles/Demons/Minion.cs
Normal file
65
Scripts/Mobiles/Demons/Minion.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Mobiles/Demons/MinionWarrior.cs
Normal file
65
Scripts/Mobiles/Demons/MinionWarrior.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
69
Scripts/Mobiles/Demons/MinionWizard.cs
Normal file
69
Scripts/Mobiles/Demons/MinionWizard.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
69
Scripts/Mobiles/Demons/ShadowDemon.cs
Normal file
69
Scripts/Mobiles/Demons/ShadowDemon.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
111
Scripts/Mobiles/Demons/Succubus.cs
Normal file
111
Scripts/Mobiles/Demons/Succubus.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
112
Scripts/Mobiles/Demons/SuccubusQueen.cs
Normal file
112
Scripts/Mobiles/Demons/SuccubusQueen.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue