#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
8eae46895e
7512 changed files with 416187 additions and 0 deletions
62
Scripts/Mobiles/Monsters/AncientGazer.cs
Normal file
62
Scripts/Mobiles/Monsters/AncientGazer.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a gazer corpse" )]
|
||||
public class AncientGazer : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public AncientGazer () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = NameList.RandomName( "gazer" );
|
||||
HiddenTitle = "the ancient gazer";
|
||||
Body = 100;
|
||||
BaseSoundID = 0x47D;
|
||||
|
||||
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 Nightshade( 32 ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.HighPotions );
|
||||
}
|
||||
|
||||
public AncientGazer( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
79
Scripts/Mobiles/Monsters/AncientSphinx.cs
Normal file
79
Scripts/Mobiles/Monsters/AncientSphinx.cs
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a sphinx corpse" )]
|
||||
public class AncientSphinx : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public AncientSphinx () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ancient sphinx";
|
||||
Body = 182;
|
||||
BaseSoundID = 0x668;
|
||||
|
||||
SetStr( 536, 585 );
|
||||
SetDex( 126, 145 );
|
||||
SetInt( 281, 305 );
|
||||
|
||||
SetHits( 322, 351 );
|
||||
|
||||
SetDamage( 13, 16 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 80.2, 110.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 40.1, 50.0 );
|
||||
|
||||
Fame = 11500;
|
||||
Karma = -11500;
|
||||
|
||||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.MedScrolls );
|
||||
AddLoot( LootPack.Gems );
|
||||
AddLoot( LootPack.HighPotions );
|
||||
}
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile m )
|
||||
{
|
||||
base.OnGaveMeleeAttack( m );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
Sphinx.TurnStone( this );
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile m )
|
||||
{
|
||||
base.OnGotMeleeAttack( m );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
Sphinx.TurnStone( this );
|
||||
}
|
||||
|
||||
public AncientSphinx( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
60
Scripts/Mobiles/Monsters/CaveDweller.cs
Normal file
60
Scripts/Mobiles/Monsters/CaveDweller.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a cave dweller corpse" )]
|
||||
public class CaveDweller : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public CaveDweller () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a cave dweller";
|
||||
Body = 284;
|
||||
BaseSoundID = 0x56F;
|
||||
AnimationMod = 1;
|
||||
|
||||
SetStr( 166, 195 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 100, 117 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 9, 11 );
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 2; } }
|
||||
|
||||
public CaveDweller( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Mobiles/Monsters/ElderGazer.cs
Normal file
62
Scripts/Mobiles/Monsters/ElderGazer.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a gazer corpse" )]
|
||||
public class ElderGazer : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public ElderGazer () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an elder gazer";
|
||||
Body = 317;
|
||||
BaseSoundID = 377;
|
||||
AnimationMod = 3;
|
||||
|
||||
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 = 50;
|
||||
|
||||
PackItem( new Nightshade( 16 ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.MedPotions );
|
||||
}
|
||||
|
||||
public ElderGazer( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Scripts/Mobiles/Monsters/ElderHarpy.cs
Normal file
87
Scripts/Mobiles/Monsters/ElderHarpy.cs
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a harpy corpse" )]
|
||||
public class ElderHarpy : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public ElderHarpy() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a harpy hen";
|
||||
Body = 171;
|
||||
BaseSoundID = 402;
|
||||
|
||||
SetStr( 196, 220 );
|
||||
SetDex( 186, 210 );
|
||||
SetInt( 61, 85 );
|
||||
|
||||
SetHits( 158, 172 );
|
||||
|
||||
SetDamage( 9, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 85.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 110.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.1, 100.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 36;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return 916;
|
||||
}
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 916;
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
return 917;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 919;
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 918;
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 7; } }
|
||||
public override MeatType MeatType{ get{ return MeatType.BigBird; } }
|
||||
public override int Feathers{ get{ return Utility.RandomMinMax( 50, 75 ); } }
|
||||
|
||||
public ElderHarpy( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
58
Scripts/Mobiles/Monsters/FrostOoze.cs
Normal file
58
Scripts/Mobiles/Monsters/FrostOoze.cs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a frost ooze corpse" )]
|
||||
public class FrostOoze : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public FrostOoze() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a frost ooze";
|
||||
Body = 51;
|
||||
Hue = 1152;
|
||||
BaseSoundID = 456;
|
||||
|
||||
SetStr( 18, 30 );
|
||||
SetDex( 16, 21 );
|
||||
SetInt( 16, 20 );
|
||||
|
||||
SetHits( 13, 17 );
|
||||
|
||||
SetDamage( 3, 9 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 5.1, 10.0 );
|
||||
SetSkill( SkillName.Tactics, 19.3, 34.0 );
|
||||
SetSkill( SkillName.HandToHand, 25.3, 40.0 );
|
||||
|
||||
Fame = 450;
|
||||
Karma = -450;
|
||||
|
||||
VirtualArmor = 38;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Gems, Utility.RandomMinMax( 1, 2 ) );
|
||||
}
|
||||
|
||||
public FrostOoze( 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/Monsters/Gazer.cs
Normal file
63
Scripts/Mobiles/Monsters/Gazer.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a gazer corpse" )]
|
||||
public class Gazer : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Gazer () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a gazer";
|
||||
Body = 22;
|
||||
BaseSoundID = 377;
|
||||
|
||||
SetStr( 96, 125 );
|
||||
SetDex( 86, 105 );
|
||||
SetInt( 141, 165 );
|
||||
|
||||
SetHits( 58, 75 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 50.1, 65.0 );
|
||||
SetSkill( SkillName.Magery, 50.1, 65.0 );
|
||||
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 36;
|
||||
|
||||
PackItem( new Nightshade( 4 ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.LowPotions );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public Gazer( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
88
Scripts/Mobiles/Monsters/Golem.cs
Normal file
88
Scripts/Mobiles/Monsters/Golem.cs
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a broken golem" )]
|
||||
public class Golem : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Golem () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a golem";
|
||||
Body = 46;
|
||||
AnimationMod = 3;
|
||||
|
||||
SetStr( 767, 945 );
|
||||
SetDex( 66, 75 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 476, 552 );
|
||||
|
||||
SetDamage( 20, 25 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 125.1, 140.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 90.1, 100.0 );
|
||||
|
||||
Fame = 15000;
|
||||
Karma = -15000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
|
||||
PackItem( new Club() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
}
|
||||
|
||||
public override bool BardImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 541;
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 542;
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
return 545;
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return 562;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 320;
|
||||
}
|
||||
|
||||
public Golem( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
61
Scripts/Mobiles/Monsters/Griffon.cs
Normal file
61
Scripts/Mobiles/Monsters/Griffon.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a griffon corpse" )]
|
||||
public class Griffon : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Griffon() : base( AIType.AI_Melee, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a griffon";
|
||||
Body = 241;
|
||||
BaseSoundID = 0x2EE;
|
||||
|
||||
SetStr( 196, 220 );
|
||||
SetDex( 186, 210 );
|
||||
SetInt( 151, 175 );
|
||||
|
||||
SetHits( 158, 172 );
|
||||
|
||||
SetDamage( 9, 15 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 65.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 90.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = 0;
|
||||
|
||||
VirtualArmor = 32;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 12; } }
|
||||
public override MeatType MeatType{ get{ return MeatType.Bird; } }
|
||||
public override int Feathers{ get{ return 50; } }
|
||||
|
||||
public Griffon( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Scripts/Mobiles/Monsters/Harpy.cs
Normal file
87
Scripts/Mobiles/Monsters/Harpy.cs
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a harpy corpse" )]
|
||||
public class Harpy : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Harpy() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a harpy";
|
||||
Body = 30;
|
||||
BaseSoundID = 402;
|
||||
|
||||
SetStr( 96, 120 );
|
||||
SetDex( 86, 110 );
|
||||
SetInt( 51, 75 );
|
||||
|
||||
SetHits( 58, 72 );
|
||||
|
||||
SetDamage( 5, 7 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 65.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 90.0 );
|
||||
|
||||
Fame = 2500;
|
||||
Karma = -2500;
|
||||
|
||||
VirtualArmor = 28;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager, 2 );
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return 916;
|
||||
}
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 916;
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
return 917;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 919;
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 918;
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override MeatType MeatType{ get{ return MeatType.BigBird; } }
|
||||
public override int Feathers{ get{ return 50; } }
|
||||
|
||||
public Harpy( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Mobiles/Monsters/HeadlessOne.cs
Normal file
62
Scripts/Mobiles/Monsters/HeadlessOne.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a headless corpse" )]
|
||||
public class HeadlessOne : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public HeadlessOne() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a headless one";
|
||||
Body = 31;
|
||||
Hue = Utility.RandomSkinHue() & 0x7FFF;
|
||||
BaseSoundID = 0x39D;
|
||||
|
||||
SetStr( 26, 50 );
|
||||
SetDex( 36, 55 );
|
||||
SetInt( 16, 30 );
|
||||
|
||||
SetHits( 16, 30 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 20.0 );
|
||||
SetSkill( SkillName.Tactics, 25.1, 40.0 );
|
||||
SetSkill( SkillName.HandToHand, 25.1, 40.0 );
|
||||
|
||||
Fame = 450;
|
||||
Karma = -450;
|
||||
|
||||
VirtualArmor = 18;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Poor );
|
||||
// TODO: body parts
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public HeadlessOne( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
61
Scripts/Mobiles/Monsters/Hippogriff.cs
Normal file
61
Scripts/Mobiles/Monsters/Hippogriff.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a hippogriff corpse" )]
|
||||
public class Hippogriff : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Hippogriff() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a hippogriff";
|
||||
Body = 239;
|
||||
BaseSoundID = 0x2EE;
|
||||
|
||||
SetStr( 196, 220 );
|
||||
SetDex( 186, 210 );
|
||||
SetInt( 151, 175 );
|
||||
|
||||
SetHits( 158, 172 );
|
||||
|
||||
SetDamage( 9, 15 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 65.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 90.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = 3500;
|
||||
|
||||
VirtualArmor = 32;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 12; } }
|
||||
public override MeatType MeatType{ get{ return MeatType.Bird; } }
|
||||
public override int Feathers{ get{ return 50; } }
|
||||
|
||||
public Hippogriff( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Mobiles/Monsters/LargeSlime.cs
Normal file
62
Scripts/Mobiles/Monsters/LargeSlime.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a slimey corpse" )]
|
||||
public class LargeSlime : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public LargeSlime() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a slime";
|
||||
Body = 51;
|
||||
BaseSoundID = 456;
|
||||
|
||||
SetStr( 122, 134 );
|
||||
SetDex( 66, 71 );
|
||||
SetInt( 16, 20 );
|
||||
|
||||
SetHits( 115, 119 );
|
||||
|
||||
SetDamage( 9, 16 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 60.1, 80.0 );
|
||||
SetSkill( SkillName.MagicResist, 45.1, 50.0 );
|
||||
SetSkill( SkillName.Tactics, 49.3, 64.0 );
|
||||
SetSkill( SkillName.HandToHand, 49.3, 64.0 );
|
||||
|
||||
Fame = 1200;
|
||||
Karma = -1200;
|
||||
|
||||
VirtualArmor = 18;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, 3 );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Greater; } }
|
||||
|
||||
public LargeSlime( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
60
Scripts/Mobiles/Monsters/Mongbat.cs
Normal file
60
Scripts/Mobiles/Monsters/Mongbat.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a mongbat corpse" )]
|
||||
public class Mongbat : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Mongbat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a mongbat";
|
||||
Body = 39;
|
||||
BaseSoundID = 422;
|
||||
|
||||
SetStr( 6, 10 );
|
||||
SetDex( 26, 38 );
|
||||
SetInt( 6, 14 );
|
||||
|
||||
SetHits( 4, 6 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 1, 2 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 5.1, 14.0 );
|
||||
SetSkill( SkillName.Tactics, 5.1, 10.0 );
|
||||
SetSkill( SkillName.HandToHand, 5.1, 10.0 );
|
||||
|
||||
Fame = 150;
|
||||
Karma = -150;
|
||||
|
||||
VirtualArmor = 10;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Poor );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public Mongbat( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Scripts/Mobiles/Monsters/Owlbear.cs
Normal file
56
Scripts/Mobiles/Monsters/Owlbear.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an owlbear corpse" )]
|
||||
public class Owlbear : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Owlbear() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an owlbear";
|
||||
Body = 758;
|
||||
BaseSoundID = 0x4C3;
|
||||
|
||||
SetStr( 276, 305 );
|
||||
SetDex( 121, 145 );
|
||||
SetInt( 56, 80 );
|
||||
|
||||
SetHits( 236, 273 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 16, 21 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 35.1, 50.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 120.0 );
|
||||
SetSkill( SkillName.HandToHand, 65.1, 90.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 2; } }
|
||||
public override int Hides{ get{ return 16; } }
|
||||
|
||||
public Owlbear( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
80
Scripts/Mobiles/Monsters/RoyalSphinx.cs
Normal file
80
Scripts/Mobiles/Monsters/RoyalSphinx.cs
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a sphinx corpse" )]
|
||||
public class RoyalSphinx : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public RoyalSphinx () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a royal sphinx";
|
||||
Body = 173;
|
||||
BaseSoundID = 0x668;
|
||||
AnimationMod = 3;
|
||||
|
||||
SetStr( 336, 385 );
|
||||
SetDex( 96, 105 );
|
||||
SetInt( 181, 205 );
|
||||
|
||||
SetHits( 202, 251 );
|
||||
|
||||
SetDamage( 10, 13 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 80.2, 110.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 40.1, 50.0 );
|
||||
|
||||
Fame = 8500;
|
||||
Karma = -8500;
|
||||
|
||||
VirtualArmor = 50;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.LowScrolls );
|
||||
AddLoot( LootPack.Gems );
|
||||
AddLoot( LootPack.MedPotions );
|
||||
}
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile m )
|
||||
{
|
||||
base.OnGaveMeleeAttack( m );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
Sphinx.TurnStone( this );
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile m )
|
||||
{
|
||||
base.OnGotMeleeAttack( m );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
Sphinx.TurnStone( this );
|
||||
}
|
||||
|
||||
public RoyalSphinx( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Scripts/Mobiles/Monsters/Sasquatch.cs
Normal file
56
Scripts/Mobiles/Monsters/Sasquatch.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a sasquatch corpse" )]
|
||||
public class Sasquatch : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Sasquatch() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a sasquatch";
|
||||
Body = 166;
|
||||
BaseSoundID = 0x515;
|
||||
|
||||
SetStr( 276, 305 );
|
||||
SetDex( 121, 145 );
|
||||
SetInt( 56, 80 );
|
||||
|
||||
SetHits( 236, 273 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 16, 21 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 35.1, 50.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 120.0 );
|
||||
SetSkill( SkillName.HandToHand, 65.1, 90.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 8; } }
|
||||
public override int Hides{ get{ return 16; } }
|
||||
|
||||
public Sasquatch( 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/Monsters/Slime.cs
Normal file
64
Scripts/Mobiles/Monsters/Slime.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a slimey corpse" )]
|
||||
public class Slime : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Slime() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a slime";
|
||||
Body = 51;
|
||||
BaseSoundID = 456;
|
||||
|
||||
Hue = Utility.RandomSlimeHue();
|
||||
|
||||
SetStr( 22, 34 );
|
||||
SetDex( 16, 21 );
|
||||
SetInt( 16, 20 );
|
||||
|
||||
SetHits( 15, 19 );
|
||||
|
||||
SetDamage( 1, 5 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 30.1, 50.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 = 8;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Poor );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lesser; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lesser; } }
|
||||
|
||||
public Slime( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Mobiles/Monsters/Sludge.cs
Normal file
62
Scripts/Mobiles/Monsters/Sludge.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a slimey corpse" )]
|
||||
public class Sludge : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Sludge() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a pile of sludge";
|
||||
Body = 192;
|
||||
BaseSoundID = 456;
|
||||
|
||||
SetStr( 122, 134 );
|
||||
SetDex( 66, 71 );
|
||||
SetInt( 16, 20 );
|
||||
|
||||
SetHits( 115, 119 );
|
||||
|
||||
SetDamage( 8, 17 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 70.1, 90.0 );
|
||||
SetSkill( SkillName.MagicResist, 55.1, 60.0 );
|
||||
SetSkill( SkillName.Tactics, 59.3, 74.0 );
|
||||
SetSkill( SkillName.HandToHand, 59.3, 84.0 );
|
||||
|
||||
Fame = 2500;
|
||||
Karma = -2500;
|
||||
|
||||
VirtualArmor = 28;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.Gems, 3 );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Greater; } }
|
||||
|
||||
public Sludge( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
109
Scripts/Mobiles/Monsters/Sphinx.cs
Normal file
109
Scripts/Mobiles/Monsters/Sphinx.cs
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a sphinx corpse" )]
|
||||
public class Sphinx : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Sphinx () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a sphinx";
|
||||
Body = 77;
|
||||
BaseSoundID = 0x668;
|
||||
|
||||
SetStr( 176, 205 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 110, 175 );
|
||||
|
||||
SetHits( 106, 123 );
|
||||
|
||||
SetDamage( 8, 14 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 65.1, 80.0 );
|
||||
SetSkill( SkillName.Magery, 65.1, 80.0 );
|
||||
SetSkill( SkillName.MagicResist, 60.2, 90.0 );
|
||||
SetSkill( SkillName.Tactics, 40.1, 60.0 );
|
||||
SetSkill( SkillName.HandToHand, 30.1, 40.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Gems );
|
||||
AddLoot( LootPack.LowPotions );
|
||||
}
|
||||
|
||||
public static void TurnStone( Mobile from )
|
||||
{
|
||||
ArrayList list = new ArrayList();
|
||||
|
||||
foreach ( Mobile m in from.GetMobilesInRange( 2 ) )
|
||||
{
|
||||
if ( m == from || !from.CanBeHarmful( m ) )
|
||||
continue;
|
||||
|
||||
if ( m is BaseCreature && (((BaseCreature)m).Controlled || ((BaseCreature)m).Summoned || ((BaseCreature)m).Team != ((BaseCreature)from).Team) )
|
||||
list.Add( m );
|
||||
else if ( m.Player )
|
||||
list.Add( m );
|
||||
}
|
||||
|
||||
foreach ( Mobile m in list )
|
||||
{
|
||||
if ( !m.CheckSkill( SkillName.MagicResist, 0, 100 ) )
|
||||
{
|
||||
from.DoHarmful( m );
|
||||
|
||||
m.PlaySound(0x16B);
|
||||
|
||||
int duration = Utility.RandomMinMax(4, 8);
|
||||
m.Paralyze(TimeSpan.FromSeconds(duration));
|
||||
|
||||
m.SendMessage( "You are petrified with fear from the mighty roar!" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile m )
|
||||
{
|
||||
base.OnGaveMeleeAttack( m );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
TurnStone( this );
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile m )
|
||||
{
|
||||
base.OnGotMeleeAttack( m );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
TurnStone( this );
|
||||
}
|
||||
|
||||
public Sphinx( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
60
Scripts/Mobiles/Monsters/Stalker.cs
Normal file
60
Scripts/Mobiles/Monsters/Stalker.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a stalker corpse" )]
|
||||
public class ForestStalker : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public ForestStalker () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a stalker";
|
||||
Body = 282;
|
||||
BaseSoundID = 0x56F;
|
||||
AnimationMod = 1;
|
||||
|
||||
SetStr( 166, 195 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 100, 117 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 9, 11 );
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 2; } }
|
||||
|
||||
public ForestStalker( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
80
Scripts/Mobiles/Monsters/Stirge.cs
Normal file
80
Scripts/Mobiles/Monsters/Stirge.cs
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a stirge corpse" )]
|
||||
public class Stirge : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Stirge() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a stirge";
|
||||
Body = 260;
|
||||
BaseSoundID = 0x275;
|
||||
AnimationMod = 1;
|
||||
|
||||
SetStr( 91, 110 );
|
||||
SetDex( 91, 115 );
|
||||
SetInt( 26, 50 );
|
||||
|
||||
SetHits( 55, 66 );
|
||||
|
||||
SetDamage( 7, 9 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 55.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 30.1, 55.0 );
|
||||
|
||||
Fame = 1000;
|
||||
Karma = -1000;
|
||||
|
||||
VirtualArmor = 14;
|
||||
}
|
||||
|
||||
public void DrainBlood( Mobile m )
|
||||
{
|
||||
DoHarmful( m );
|
||||
new Blood().MoveToWorld( m.Location, m.Map );
|
||||
m.SendMessage( "The creature feeds on your blood!" );
|
||||
int toDrain = Utility.RandomMinMax( 2, 10 );
|
||||
m.PlaySound( 0x23F );
|
||||
Hits += toDrain;
|
||||
m.Damage( toDrain, this );
|
||||
}
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile defender )
|
||||
{
|
||||
base.OnGaveMeleeAttack( defender );
|
||||
DrainBlood( defender );
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile attacker )
|
||||
{
|
||||
base.OnGotMeleeAttack( attacker );
|
||||
DrainBlood( attacker );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Poor );
|
||||
}
|
||||
|
||||
public Stirge( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
89
Scripts/Mobiles/Monsters/StoneHarpy.cs
Normal file
89
Scripts/Mobiles/Monsters/StoneHarpy.cs
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a stone harpy corpse" )]
|
||||
public class StoneHarpy : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public StoneHarpy() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a stone harpy";
|
||||
Body = 30;
|
||||
Hue = 1402;
|
||||
BaseSoundID = 402;
|
||||
|
||||
SetStr( 296, 320 );
|
||||
SetDex( 86, 110 );
|
||||
SetInt( 51, 75 );
|
||||
|
||||
SetHits( 178, 192 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 8, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 65.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 70.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 50;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return 916;
|
||||
}
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 916;
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
return 917;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 919;
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 918;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override MeatType MeatType{ get{ return MeatType.BigBird; } }
|
||||
public override int Feathers{ get{ return 50; } }
|
||||
|
||||
public StoneHarpy( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
107
Scripts/Mobiles/Monsters/Xorn.cs
Normal file
107
Scripts/Mobiles/Monsters/Xorn.cs
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a xorn's corpse" )]
|
||||
public class Xorn : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Xorn( ) : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a xorn";
|
||||
Body = 89;
|
||||
Hue = 1181;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr( 226, 255 );
|
||||
SetDex( 126, 145 );
|
||||
SetInt( 71, 92 );
|
||||
|
||||
SetHits( 136, 153 );
|
||||
|
||||
SetDamage( 9, 16 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 100.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 23;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
|
||||
public void XornEats()
|
||||
{
|
||||
ArrayList list = new ArrayList();
|
||||
int nGold = 0;
|
||||
int toEat = 0;
|
||||
|
||||
foreach ( Mobile m in this.GetMobilesInRange( 2 ) )
|
||||
{
|
||||
if ( m == this || !CanBeHarmful( m ) )
|
||||
continue;
|
||||
|
||||
else if ( m.Player && m.TotalGold > 0 )
|
||||
list.Add( m );
|
||||
}
|
||||
|
||||
foreach ( Mobile m in list )
|
||||
{
|
||||
nGold = m.TotalGold;
|
||||
Container pack = m.Backpack;
|
||||
toEat = Utility.RandomMinMax( 1, nGold );
|
||||
pack.ConsumeTotal(typeof(Gold), toEat);
|
||||
m.PlaySound( Utility.Random( 0x3A, 3 ) );
|
||||
m.SendMessage( "The xorn ate some of your gold!" );
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile defender )
|
||||
{
|
||||
base.OnGaveMeleeAttack( defender );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
XornEats();
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile attacker )
|
||||
{
|
||||
base.OnGotMeleeAttack( attacker );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
XornEats();
|
||||
}
|
||||
|
||||
public Xorn( 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