#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
8eae46895e
7512 changed files with 416187 additions and 0 deletions
73
Scripts/Mobiles/Reptilians/Serpents/Cobra.cs
Normal file
73
Scripts/Mobiles/Reptilians/Serpents/Cobra.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a giant serpent corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Serpant" )]
|
||||
public class Cobra : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Cobra() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a cobra";
|
||||
Body = 21;
|
||||
Hue = Utility.RandomYellowHue();
|
||||
BaseSoundID = 219;
|
||||
|
||||
SetStr( 186, 215 );
|
||||
SetDex( 56, 80 );
|
||||
SetInt( 66, 85 );
|
||||
|
||||
SetHits( 112, 129 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 17 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 70.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 65.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 2500;
|
||||
Karma = -2500;
|
||||
|
||||
VirtualArmor = 32;
|
||||
|
||||
PackItem( new Bone() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
|
||||
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
|
||||
public Cobra(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == -1 )
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
69
Scripts/Mobiles/Reptilians/Serpents/FireNaga.cs
Normal file
69
Scripts/Mobiles/Reptilians/Serpents/FireNaga.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName("a naga corpse")]
|
||||
public class FireNaga : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public FireNaga() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Body = 165;
|
||||
Name = "a fire naga";
|
||||
BaseSoundID = 634;
|
||||
|
||||
SetStr( 161, 360 );
|
||||
SetDex( 151, 300 );
|
||||
SetInt( 21, 40 );
|
||||
|
||||
SetHits( 112, 250 );
|
||||
|
||||
SetDamage( 6, 23 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 95.0 );
|
||||
SetSkill( SkillName.HandToHand, 85.1, 100.0 );
|
||||
|
||||
Fame = 9000;
|
||||
Karma = -9000;
|
||||
|
||||
VirtualArmor = 45;
|
||||
|
||||
PackItem( new SulfurousAsh( 10 ) );
|
||||
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
AddLoot( LootPack.MedScrolls, 1 );
|
||||
}
|
||||
|
||||
public override int Hides{ get{ return 15; } }
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Greater; } }
|
||||
|
||||
public FireNaga(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Reptilians/Serpents/GiantSerpent.cs
Normal file
73
Scripts/Mobiles/Reptilians/Serpents/GiantSerpent.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a giant serpent corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Serpant" )]
|
||||
public class GiantSerpent : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public GiantSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a serpent";
|
||||
Body = 21;
|
||||
Hue = Utility.RandomSnakeHue();
|
||||
BaseSoundID = 219;
|
||||
|
||||
SetStr( 186, 215 );
|
||||
SetDex( 56, 80 );
|
||||
SetInt( 66, 85 );
|
||||
|
||||
SetHits( 112, 129 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 17 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 70.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 65.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 2500;
|
||||
Karma = -2500;
|
||||
|
||||
VirtualArmor = 32;
|
||||
|
||||
PackItem( new Bone() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Regular : Poison.Greater); } }
|
||||
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
|
||||
public GiantSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == -1 )
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
86
Scripts/Mobiles/Reptilians/Serpents/IceSerpent.cs
Normal file
86
Scripts/Mobiles/Reptilians/Serpents/IceSerpent.cs
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ice serpent corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Iceserpant" )]
|
||||
public class IceSerpent : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public IceSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ice serpent";
|
||||
Body = 21;
|
||||
Hue = 1080;
|
||||
BaseSoundID = 219;
|
||||
|
||||
SetStr( 216, 245 );
|
||||
SetDex( 26, 50 );
|
||||
SetInt( 66, 85 );
|
||||
|
||||
SetHits( 130, 147 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 17 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 32;
|
||||
|
||||
PackItem( Loot.RandomArmorOrShieldOrWeapon() );
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
|
||||
if ( 0.025 > Utility.RandomDouble() )
|
||||
PackItem( new GlacialStaff() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
|
||||
public IceSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == -1 )
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Reptilians/Serpents/Kobra.cs
Normal file
67
Scripts/Mobiles/Reptilians/Serpents/Kobra.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a serpentine corpse" )]
|
||||
public class Kobra : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Kobra() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a kobra";
|
||||
Body = 149;
|
||||
BaseSoundID = 634;
|
||||
|
||||
SetStr( 150, 320 );
|
||||
SetDex( 94, 190 );
|
||||
SetInt( 64, 160 );
|
||||
|
||||
SetHits( 128, 155 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 5, 11 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 85.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 85.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 90.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 36;
|
||||
|
||||
PackItem( new LesserPoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 5; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Regular; } }
|
||||
|
||||
public Kobra( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Reptilians/Serpents/LavaSerpent.cs
Normal file
73
Scripts/Mobiles/Reptilians/Serpents/LavaSerpent.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a lava serpent corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Lavaserpant" )]
|
||||
public class LavaSerpent : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public LavaSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a lava serpent";
|
||||
Body = 21;
|
||||
Hue = 1188;
|
||||
BaseSoundID = 219;
|
||||
|
||||
SetStr( 386, 415 );
|
||||
SetDex( 56, 80 );
|
||||
SetInt( 66, 85 );
|
||||
|
||||
SetHits( 232, 249 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 10, 22 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 25.3, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 65.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new SulfurousAsh( 3 ) );
|
||||
PackItem( new Bone() );
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
|
||||
public LavaSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == -1 )
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
105
Scripts/Mobiles/Reptilians/Serpents/Medusa.cs
Normal file
105
Scripts/Mobiles/Reptilians/Serpents/Medusa.cs
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a medusan corpse" )]
|
||||
public class Medusa : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Medusa() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a medusa";
|
||||
BaseSoundID = 0x284;
|
||||
Body = 106;
|
||||
AnimationMod = 3;
|
||||
|
||||
SetStr( 388, 520 );
|
||||
SetDex( 121, 170 );
|
||||
SetInt( 398, 557 );
|
||||
|
||||
SetHits( 212, 253 );
|
||||
|
||||
SetDamage( 10, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 80.0 );
|
||||
SetSkill( SkillName.Poisoning, 80.1, 90.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 90.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.1, 90.0 );
|
||||
|
||||
Fame = 14000;
|
||||
Karma = -14000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 5; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Greater; } }
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
|
||||
public void TurnStone()
|
||||
{
|
||||
ArrayList list = new ArrayList();
|
||||
|
||||
foreach ( Mobile m in this.GetMobilesInRange( 2 ) )
|
||||
{
|
||||
if ( m == this || !CanBeHarmful( m ) )
|
||||
continue;
|
||||
|
||||
if ( m is BaseCreature && (((BaseCreature)m).Controlled || ((BaseCreature)m).Summoned || ((BaseCreature)m).Team != this.Team) )
|
||||
list.Add( m );
|
||||
else if ( m.Player )
|
||||
list.Add( m );
|
||||
}
|
||||
|
||||
foreach ( Mobile m in list )
|
||||
{
|
||||
DoHarmful( m );
|
||||
|
||||
m.PlaySound(0x204);
|
||||
m.FixedEffect(0x376A, 6, 1);
|
||||
|
||||
int duration = Utility.RandomMinMax(4, 8);
|
||||
m.Paralyze(TimeSpan.FromSeconds(duration));
|
||||
|
||||
m.SendMessage( "You are frozen like stone!" );
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile attacker )
|
||||
{
|
||||
base.OnGotMeleeAttack( attacker );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
TurnStone();
|
||||
}
|
||||
|
||||
public Medusa( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
75
Scripts/Mobiles/Reptilians/Serpents/Naga.cs
Normal file
75
Scripts/Mobiles/Reptilians/Serpents/Naga.cs
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a naga corpse" )]
|
||||
public class Naga : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Naga() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a naga";
|
||||
Body = 175;
|
||||
BaseSoundID = 634;
|
||||
CanSwim = true;
|
||||
|
||||
if ( Utility.RandomBool() )
|
||||
{
|
||||
Body = 330;
|
||||
BaseSoundID = 644;
|
||||
}
|
||||
|
||||
SetStr( 416, 505 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 366, 455 );
|
||||
|
||||
SetHits( 250, 303 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 5.4, 25.0 );
|
||||
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 16000;
|
||||
Karma = -16000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
|
||||
PackItem( new PoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 5; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Deadly; } }
|
||||
|
||||
public Naga( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Mobiles/Reptilians/Serpents/NagaQueen.cs
Normal file
70
Scripts/Mobiles/Reptilians/Serpents/NagaQueen.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a NagaQueen corpse" )]
|
||||
public class NagaQueen : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public NagaQueen() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a naga queen";
|
||||
Body = 302;
|
||||
BaseSoundID = 644;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 216, 305 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 966, 1045 );
|
||||
|
||||
SetHits( 560, 595 );
|
||||
|
||||
SetDamage( 15, 27 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 120.1, 130.0 );
|
||||
SetSkill( SkillName.Magery, 120.1, 130.0 );
|
||||
SetSkill( SkillName.Meditation, 100.1, 101.0 );
|
||||
SetSkill( SkillName.Poisoning, 100.1, 101.0 );
|
||||
SetSkill( SkillName.MagicResist, 175.2, 200.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 75.1, 100.0 );
|
||||
|
||||
Fame = 23000;
|
||||
Karma = -23000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
|
||||
PackItem( new GreaterPoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.HighScrolls, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 2; } }
|
||||
public override int Hides{ get{ return 8; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
|
||||
public NagaQueen( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Mobiles/Reptilians/Serpents/NagaWarrior.cs
Normal file
67
Scripts/Mobiles/Reptilians/Serpents/NagaWarrior.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a naga corpse" )]
|
||||
public class NagaWarrior : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public NagaWarrior() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a naga warrior";
|
||||
Body = 174;
|
||||
BaseSoundID = 634;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 417, 595 );
|
||||
SetDex( 166, 175 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 266, 342 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 16, 19 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 60.1, 80.0 );
|
||||
SetSkill( SkillName.MagicResist, 65.1, 80.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 90.1, 100.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new LesserPoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 2; } }
|
||||
public override int Hides{ get{ return 7; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Greater; } }
|
||||
|
||||
public NagaWarrior( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Scripts/Mobiles/Reptilians/Serpents/OphidianArchmage.cs
Normal file
72
Scripts/Mobiles/Reptilians/Serpents/OphidianArchmage.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.OphidianJusticar", "Server.Mobiles.OphidianZealot" )]
|
||||
public class OphidianArchmage : BaseCreature
|
||||
{
|
||||
private static string[] m_Names = new string[]
|
||||
{
|
||||
"an ophidian justicar",
|
||||
"an ophidian zealot"
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public OphidianArchmage() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = m_Names[Utility.Random( m_Names.Length )];
|
||||
Body = 85;
|
||||
BaseSoundID = 639;
|
||||
|
||||
SetStr( 281, 305 );
|
||||
SetDex( 191, 215 );
|
||||
SetInt( 226, 250 );
|
||||
|
||||
SetHits( 169, 183 );
|
||||
SetStam( 36, 45 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 95.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.0, 97.5 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 87.5 );
|
||||
SetSkill( SkillName.HandToHand, 20.2, 60.0 );
|
||||
|
||||
Fame = 11500;
|
||||
Karma = -11500;
|
||||
|
||||
VirtualArmor = 44;
|
||||
|
||||
PackReg( 5, 15 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
AddLoot( LootPack.MedPotions );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public OphidianArchmage( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Reptilians/Serpents/OphidianKnight.cs
Normal file
73
Scripts/Mobiles/Reptilians/Serpents/OphidianKnight.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.OphidianAvenger" )]
|
||||
public class OphidianKnight : BaseCreature
|
||||
{
|
||||
private static string[] m_Names = new string[]
|
||||
{
|
||||
"an ophidian knight-errant",
|
||||
"an ophidian avenger"
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public OphidianKnight() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = m_Names[Utility.Random( m_Names.Length )];
|
||||
Body = 86;
|
||||
BaseSoundID = 634;
|
||||
|
||||
SetStr( 417, 595 );
|
||||
SetDex( 166, 175 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 266, 342 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 16, 19 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 60.1, 80.0 );
|
||||
SetSkill( SkillName.MagicResist, 65.1, 80.0 );
|
||||
SetSkill( SkillName.Tactics, 90.1, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 90.1, 100.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new LesserPoisonPotion() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 2; } }
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
|
||||
public OphidianKnight( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Scripts/Mobiles/Reptilians/Serpents/OphidianMage.cs
Normal file
72
Scripts/Mobiles/Reptilians/Serpents/OphidianMage.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.OphidianShaman" )]
|
||||
public class OphidianMage : BaseCreature
|
||||
{
|
||||
private static string[] m_Names = new string[]
|
||||
{
|
||||
"an ophidian apprentice mage",
|
||||
"an ophidian shaman"
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public OphidianMage() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = m_Names[Utility.Random( m_Names.Length )];
|
||||
Body = 85;
|
||||
BaseSoundID = 639;
|
||||
|
||||
SetStr( 181, 205 );
|
||||
SetDex( 191, 215 );
|
||||
SetInt( 96, 120 );
|
||||
|
||||
SetHits( 109, 123 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.0, 97.5 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 87.5 );
|
||||
SetSkill( SkillName.HandToHand, 20.2, 60.0 );
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 30;
|
||||
|
||||
PackReg( 10 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.LowScrolls );
|
||||
AddLoot( LootPack.MedScrolls );
|
||||
AddLoot( LootPack.LowPotions );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public OphidianMage( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Mobiles/Reptilians/Serpents/OphidianMatriarch.cs
Normal file
64
Scripts/Mobiles/Reptilians/Serpents/OphidianMatriarch.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
public class OphidianMatriarch : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public OphidianMatriarch() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ophidian matriarch";
|
||||
Body = 87;
|
||||
BaseSoundID = 644;
|
||||
|
||||
SetStr( 416, 505 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 366, 455 );
|
||||
|
||||
SetHits( 250, 303 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 5.4, 25.0 );
|
||||
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 16000;
|
||||
Karma = -16000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
AddLoot( LootPack.HighPotions );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
|
||||
public OphidianMatriarch( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
68
Scripts/Mobiles/Reptilians/Serpents/OphidianWarrior.cs
Normal file
68
Scripts/Mobiles/Reptilians/Serpents/OphidianWarrior.cs
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
public class OphidianWarrior : BaseCreature
|
||||
{
|
||||
private static string[] m_Names = new string[]
|
||||
{
|
||||
"an ophidian warrior",
|
||||
"an ophidian enforcer"
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public OphidianWarrior() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = m_Names[Utility.Random( m_Names.Length )];
|
||||
Body = 86;
|
||||
BaseSoundID = 634;
|
||||
|
||||
SetStr( 150, 320 );
|
||||
SetDex( 94, 190 );
|
||||
SetInt( 64, 160 );
|
||||
|
||||
SetHits( 128, 155 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 5, 11 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 85.0 );
|
||||
SetSkill( SkillName.Swords, 60.1, 85.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 90.0 );
|
||||
|
||||
Fame = 4500;
|
||||
Karma = -4500;
|
||||
|
||||
VirtualArmor = 36;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public OphidianWarrior( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
68
Scripts/Mobiles/Reptilians/Serpents/SilverSerpent.cs
Normal file
68
Scripts/Mobiles/Reptilians/Serpents/SilverSerpent.cs
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName("a silver serpent corpse")]
|
||||
[TypeAlias( "Server.Mobiles.Silverserpant" )]
|
||||
public class SilverSerpent : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public SilverSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Body = 21;
|
||||
Hue = Utility.RandomList( 2403, 2404 );
|
||||
Name = "a silver serpent";
|
||||
BaseSoundID = 219;
|
||||
|
||||
SetStr( 161, 360 );
|
||||
SetDex( 151, 300 );
|
||||
SetInt( 21, 40 );
|
||||
|
||||
SetHits( 97, 216 );
|
||||
|
||||
SetDamage( 5, 21 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 90.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 95.0 );
|
||||
SetSkill( SkillName.HandToHand, 85.1, 100.0 );
|
||||
|
||||
Fame = 7000;
|
||||
Karma = -7000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Deadly : Poison.Lethal); } }
|
||||
|
||||
public SilverSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == -1 )
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
59
Scripts/Mobiles/Reptilians/Serpents/Snake.cs
Normal file
59
Scripts/Mobiles/Reptilians/Serpents/Snake.cs
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a snake corpse" )]
|
||||
public class Snake : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Snake() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a snake";
|
||||
Body = 52;
|
||||
Hue = Utility.RandomSnakeHue();
|
||||
BaseSoundID = 0xDB;
|
||||
|
||||
SetStr( 22, 34 );
|
||||
SetDex( 16, 25 );
|
||||
SetInt( 6, 10 );
|
||||
|
||||
SetHits( 15, 19 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 1, 4 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 50.1, 70.0 );
|
||||
SetSkill( SkillName.MagicResist, 15.1, 20.0 );
|
||||
SetSkill( SkillName.Tactics, 19.3, 34.0 );
|
||||
SetSkill( SkillName.HandToHand, 19.3, 34.0 );
|
||||
|
||||
Fame = 300;
|
||||
Karma = -300;
|
||||
|
||||
VirtualArmor = 16;
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lesser; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lesser; } }
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public Snake(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Mobiles/Reptilians/Serpents/Viper.cs
Normal file
73
Scripts/Mobiles/Reptilians/Serpents/Viper.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a giant serpent corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Serpant" )]
|
||||
public class Viper : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Viper() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a viper";
|
||||
Body = 21;
|
||||
Hue = Utility.RandomGreenHue();
|
||||
BaseSoundID = 219;
|
||||
|
||||
SetStr( 186, 215 );
|
||||
SetDex( 56, 80 );
|
||||
SetInt( 66, 85 );
|
||||
|
||||
SetHits( 112, 129 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 17 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 70.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 65.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 2500;
|
||||
Karma = -2500;
|
||||
|
||||
VirtualArmor = 32;
|
||||
|
||||
PackItem( new Bone() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
|
||||
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
|
||||
public Viper(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( BaseSoundID == -1 )
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue