#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
8eae46895e
7512 changed files with 416187 additions and 0 deletions
60
Scripts/Mobiles/Reptilians/Alligator.cs
Normal file
60
Scripts/Mobiles/Reptilians/Alligator.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an alligator corpse" )]
|
||||
public class Alligator : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Alligator() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an alligator";
|
||||
Body = 202;
|
||||
BaseSoundID = 660;
|
||||
|
||||
SetStr( 76, 100 );
|
||||
SetDex( 6, 25 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 46, 60 );
|
||||
SetStam( 46, 65 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 5, 15 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 40.1, 60.0 );
|
||||
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
|
||||
|
||||
Fame = 600;
|
||||
Karma = -600;
|
||||
|
||||
VirtualArmor = 30;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public Alligator(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 == 0x5A )
|
||||
BaseSoundID = 660;
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Mobiles/Reptilians/BullFrog.cs
Normal file
63
Scripts/Mobiles/Reptilians/BullFrog.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a bull frog corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Bullfrog" )]
|
||||
public class BullFrog : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public BullFrog() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a bull frog";
|
||||
Body = 81;
|
||||
Hue = Utility.RandomList( 0x5AC,0x5A3,0x59A,0x591,0x588,0x57F );
|
||||
BaseSoundID = 0x266;
|
||||
|
||||
SetStr( 46, 70 );
|
||||
SetDex( 6, 25 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 28, 42 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 1, 2 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 40.1, 60.0 );
|
||||
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
|
||||
|
||||
Fame = 350;
|
||||
Karma = 0;
|
||||
|
||||
VirtualArmor = 6;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Poor );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 4; } }
|
||||
|
||||
public BullFrog(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/Reptilians/Dinosaurs/Gorceratops.cs
Normal file
60
Scripts/Mobiles/Reptilians/Dinosaurs/Gorceratops.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a gorceratops corpse" )]
|
||||
public class Gorceratops : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Gorceratops() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a gorceratops";
|
||||
Body = 210;
|
||||
BaseSoundID = 0x4F5;
|
||||
|
||||
SetStr( 176, 205 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 106, 123 );
|
||||
|
||||
SetDamage( 8, 14 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 5; } }
|
||||
public override int Hides{ get{ return 10; } }
|
||||
|
||||
public Gorceratops( 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/Reptilians/Dinosaurs/Meglasaur.cs
Normal file
56
Scripts/Mobiles/Reptilians/Dinosaurs/Meglasaur.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dinosaur corpse" )]
|
||||
public class Meglasaur : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Meglasaur() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a meglasaur";
|
||||
Body = 248;
|
||||
BaseSoundID = 0x4F5;
|
||||
|
||||
SetStr( 401, 430 );
|
||||
SetDex( 133, 152 );
|
||||
SetInt( 101, 140 );
|
||||
|
||||
SetHits( 241, 258 );
|
||||
|
||||
SetDamage( 11, 17 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 65.1, 90.0 );
|
||||
SetSkill( SkillName.HandToHand, 65.1, 80.0 );
|
||||
|
||||
Fame = 5500;
|
||||
Karma = -5500;
|
||||
|
||||
VirtualArmor = 46;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 10; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
|
||||
public Meglasaur( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
55
Scripts/Mobiles/Reptilians/Dinosaurs/Raptor.cs
Normal file
55
Scripts/Mobiles/Reptilians/Dinosaurs/Raptor.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dinosaur corpse" )]
|
||||
public class Raptor : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Raptor () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a raptor";
|
||||
Body = Utility.RandomList( 277, 275, 274, 235, 235 );
|
||||
BaseSoundID = 0x5EE;
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 56, 75 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 76, 90 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 6, 24 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 4; } }
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public Raptor(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/Reptilians/Dinosaurs/Stegosaurus.cs
Normal file
56
Scripts/Mobiles/Reptilians/Dinosaurs/Stegosaurus.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dinosaur corpse" )]
|
||||
public class Stegosaurus : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Stegosaurus () : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a stegosaurus";
|
||||
Body = 276;
|
||||
BaseSoundID = 0x4F5;
|
||||
|
||||
SetStr( 401, 430 );
|
||||
SetDex( 133, 152 );
|
||||
SetInt( 101, 140 );
|
||||
|
||||
SetHits( 241, 258 );
|
||||
|
||||
SetDamage( 11, 17 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 65.1, 90.0 );
|
||||
SetSkill( SkillName.HandToHand, 65.1, 80.0 );
|
||||
|
||||
Fame = 5500;
|
||||
Karma = -5500;
|
||||
|
||||
VirtualArmor = 46;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 10; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
|
||||
public Stegosaurus( 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/Reptilians/Dinosaurs/Teradactyl.cs
Normal file
63
Scripts/Mobiles/Reptilians/Dinosaurs/Teradactyl.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a teradactyl corpse" )]
|
||||
public class Teradactyl : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Teradactyl() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a teradactyl";
|
||||
Body = 88;
|
||||
Hue = Utility.RandomSnakeHue();
|
||||
BaseSoundID = 0x275;
|
||||
|
||||
SetStr( 202, 240 );
|
||||
SetDex( 153, 172 );
|
||||
SetInt( 51, 90 );
|
||||
|
||||
SetHits( 125, 141 );
|
||||
|
||||
SetDamage( 8, 19 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 65.1, 90.0 );
|
||||
SetSkill( SkillName.HandToHand, 65.1, 80.0 );
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 10; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
|
||||
public Teradactyl( 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/Reptilians/Dinosaurs/Tyranasaur.cs
Normal file
58
Scripts/Mobiles/Reptilians/Dinosaurs/Tyranasaur.cs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dinosaur corpse" )]
|
||||
public class Tyranasaur : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Tyranasaur () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a tyranasaur";
|
||||
Body = 246;
|
||||
BaseSoundID = 0x4FB;
|
||||
|
||||
SetStr( 796, 825 );
|
||||
SetDex( 86, 105 );
|
||||
SetInt( 40, 60 );
|
||||
|
||||
SetHits( 478, 495 );
|
||||
|
||||
SetDamage( 16, 22 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 90.1, 92.5 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
|
||||
public Tyranasaur( 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/Reptilians/DragonTurtle.cs
Normal file
69
Scripts/Mobiles/Reptilians/DragonTurtle.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using Server;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dragon turtle corpse" )]
|
||||
public class DragonTurtle : BaseCreature
|
||||
{
|
||||
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
|
||||
[Constructable]
|
||||
public DragonTurtle () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a dragon turtle";
|
||||
Body = 181;
|
||||
BaseSoundID = 0x2C0;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 867, 1045 );
|
||||
SetDex( 86, 105 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 576, 652 );
|
||||
|
||||
SetDamage( 22, 28 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 99.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 90.1, 92.5 );
|
||||
|
||||
Fame = 16000;
|
||||
Karma = -16000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.FilthyRich, 1 );
|
||||
AddLoot( LootPack.Gems, 3 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 10; } }
|
||||
public override MeatType MeatType{ get{ return MeatType.Fish; } }
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public DragonTurtle( 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/Reptilians/Drasolisk.cs
Normal file
69
Scripts/Mobiles/Reptilians/Drasolisk.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a reptilian corpse" )]
|
||||
public class Drasolisk : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Drasolisk () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = NameList.RandomName( "lizardman" );
|
||||
HiddenTitle = "the drasolisk";
|
||||
Body = 115;
|
||||
BaseSoundID = 0x5EE;
|
||||
|
||||
SetStr( 166, 195 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 100, 117 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 9, 11 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 45.1, 60.0 );
|
||||
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 70.1, 80.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 32;
|
||||
|
||||
PackItem( new DoubleAxe() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.LowPotions );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 3; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Lesser : Poison.Regular); } }
|
||||
|
||||
public Drasolisk( 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/FireSalamander.cs
Normal file
64
Scripts/Mobiles/Reptilians/FireSalamander.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a salamander corpse" )]
|
||||
public class FireSalamander : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public FireSalamander () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a salamander";
|
||||
Body = 99;
|
||||
BaseSoundID = 0x27A;
|
||||
|
||||
SetStr( 176, 205 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 156, 173 );
|
||||
|
||||
SetDamage( 8, 14 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
|
||||
|
||||
Fame = 3800;
|
||||
Karma = -3800;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new Spear() );
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 2; } }
|
||||
|
||||
public FireSalamander( 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/FireToad.cs
Normal file
64
Scripts/Mobiles/Reptilians/FireToad.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a toad corpse" )]
|
||||
public class FireToad : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public FireToad () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a fire toad";
|
||||
Body = 153;
|
||||
BaseSoundID = 0x26B;
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 26, 45 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 96, 110 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 19 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 850;
|
||||
Karma = -850;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
PackItem( new SulfurousAsh( Utility.RandomMinMax( 8, 20 ) ) );
|
||||
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 4; } }
|
||||
|
||||
public FireToad( 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/Reptilians/GiantLizard.cs
Normal file
62
Scripts/Mobiles/Reptilians/GiantLizard.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a lizard corpse" )]
|
||||
public class GiantLizard : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public GiantLizard() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a giant lizard";
|
||||
Body = 206;
|
||||
Hue = Utility.RandomLizardHue();
|
||||
BaseSoundID = 0x5A;
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 56, 75 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 76, 90 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 6, 24 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new SulfurousAsh( Utility.Random( 4, 10 ) ) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public GiantLizard(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Mobiles/Reptilians/GiantToad.cs
Normal file
66
Scripts/Mobiles/Reptilians/GiantToad.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a giant toad corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Gianttoad" )]
|
||||
public class GiantToad : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public GiantToad() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a giant toad";
|
||||
Body = 80;
|
||||
BaseSoundID = 0x26B;
|
||||
|
||||
SetStr( 76, 100 );
|
||||
SetDex( 6, 25 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 46, 60 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 5, 17 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 25.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 40.1, 60.0 );
|
||||
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
|
||||
|
||||
Fame = 750;
|
||||
Karma = -750;
|
||||
|
||||
VirtualArmor = 24;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Poor );
|
||||
}
|
||||
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public GiantToad(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 1);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
if ( version < 1 )
|
||||
{
|
||||
AI = AIType.AI_Melee;
|
||||
FightMode = FightMode.Closest;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
69
Scripts/Mobiles/Reptilians/Hydra.cs
Normal file
69
Scripts/Mobiles/Reptilians/Hydra.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a hydra corpse" )]
|
||||
public class Hydra : BaseCreature
|
||||
{
|
||||
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
|
||||
[Constructable]
|
||||
public Hydra () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a hydra";
|
||||
Body = 117;
|
||||
BaseSoundID = 0x488;
|
||||
AnimationMod = 4;
|
||||
|
||||
SetStr( 796, 825 );
|
||||
SetDex( 86, 105 );
|
||||
SetInt( 436, 475 );
|
||||
|
||||
SetHits( 478, 495 );
|
||||
|
||||
SetDamage( 16, 22 );
|
||||
|
||||
SetSkill( SkillName.Concentration, 30.1, 40.0 );
|
||||
SetSkill( SkillName.Magery, 30.1, 40.0 );
|
||||
SetSkill( SkillName.MagicResist, 99.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 90.1, 92.5 );
|
||||
|
||||
Fame = 15000;
|
||||
Karma = -15000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.Gems, 8 );
|
||||
}
|
||||
|
||||
public override bool AutoDispel{ get{ return !Controlled; } }
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
|
||||
public Hydra( 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/Reptilians/IceSalamander.cs
Normal file
63
Scripts/Mobiles/Reptilians/IceSalamander.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a salamander corpse" )]
|
||||
public class IceSalamander : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public IceSalamander () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a salamander";
|
||||
Body = 98;
|
||||
BaseSoundID = 0x27A;
|
||||
|
||||
SetStr( 176, 205 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 156, 173 );
|
||||
|
||||
SetDamage( 8, 14 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
|
||||
|
||||
Fame = 3800;
|
||||
Karma = -3800;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new Spear() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 2; } }
|
||||
|
||||
public IceSalamander( 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/Reptilians/IceToad.cs
Normal file
61
Scripts/Mobiles/Reptilians/IceToad.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a toad corpse" )]
|
||||
public class IceToad : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public IceToad () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ice toad";
|
||||
Body = 153;
|
||||
Hue = 1084;
|
||||
BaseSoundID = 0x26B;
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 26, 45 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 96, 110 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 7, 19 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 850;
|
||||
Karma = -850;
|
||||
|
||||
VirtualArmor = 28;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 4; } }
|
||||
|
||||
public IceToad( 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/LavaLizard.cs
Normal file
67
Scripts/Mobiles/Reptilians/LavaLizard.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a lava lizard corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Lavalizard" )]
|
||||
public class LavaLizard : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public LavaLizard() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a lava lizard";
|
||||
Body = 206;
|
||||
Hue = 1184;
|
||||
BaseSoundID = 0x5A;
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 56, 75 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 76, 90 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 6, 24 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 60.1, 80.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
PackItem( new SulfurousAsh( Utility.Random( 4, 10 ) ) );
|
||||
AddItem( new LightSource() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public LavaLizard(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/Lizardman.cs
Normal file
70
Scripts/Mobiles/Reptilians/Lizardman.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a lizardman corpse" )]
|
||||
public class Lizardman : BaseCreature
|
||||
{
|
||||
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
|
||||
|
||||
[Constructable]
|
||||
public Lizardman() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = NameList.RandomName( "lizardman" );
|
||||
HiddenTitle = "the lizardman";
|
||||
Body = Utility.RandomList( 33, 35, 36 );
|
||||
BaseSoundID = 417;
|
||||
|
||||
SetStr( 96, 120 );
|
||||
SetDex( 86, 105 );
|
||||
SetInt( 36, 60 );
|
||||
|
||||
SetHits( 58, 72 );
|
||||
|
||||
SetDamage( 5, 7 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 35.1, 60.0 );
|
||||
SetSkill( SkillName.Tactics, 55.1, 80.0 );
|
||||
SetSkill( SkillName.HandToHand, 50.1, 70.0 );
|
||||
|
||||
Fame = 1500;
|
||||
Karma = -1500;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
if ( Body == 35 )
|
||||
PackItem( new Spear() );
|
||||
else if ( Body == 36 )
|
||||
PackItem( new WarMace() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public Lizardman( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
76
Scripts/Mobiles/Reptilians/Sakkhra.cs
Normal file
76
Scripts/Mobiles/Reptilians/Sakkhra.cs
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a reptilian corpse" )]
|
||||
public class Sakkhra : BaseCreature
|
||||
{
|
||||
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
|
||||
|
||||
[Constructable]
|
||||
public Sakkhra() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = NameList.RandomName( "lizardman" );
|
||||
HiddenTitle = "the sakkhra";
|
||||
Body = Utility.RandomList( 168, 170 );
|
||||
BaseSoundID = 417;
|
||||
|
||||
SetStr( 154, 192 );
|
||||
SetDex( 138, 168 );
|
||||
SetInt( 58, 96 );
|
||||
|
||||
SetHits( 93, 115 );
|
||||
|
||||
SetDamage( 8, 11 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 56.2, 96.0 );
|
||||
SetSkill( SkillName.Tactics, 88.2, 128.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.2, 112.0 );
|
||||
|
||||
Fame = 2400;
|
||||
Karma = -2400;
|
||||
|
||||
VirtualArmor = 45;
|
||||
|
||||
if ( Body == 168 )
|
||||
{
|
||||
PackItem( new WoodenShield() );
|
||||
PackItem( new Halberd() );
|
||||
}
|
||||
else if ( Body == 170 )
|
||||
{
|
||||
PackItem( new WoodenShield() );
|
||||
PackItem( new Mace() );
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public Sakkhra( 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/Reptilians/SakkhraShaman.cs
Normal file
69
Scripts/Mobiles/Reptilians/SakkhraShaman.cs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Misc;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a reptilian corpse" )]
|
||||
public class SakkhraShaman : BaseCreature
|
||||
{
|
||||
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
|
||||
|
||||
[Constructable]
|
||||
public SakkhraShaman () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = NameList.RandomName( "lizardman" );
|
||||
HiddenTitle = "the sakkhra shaman";
|
||||
Body = 169;
|
||||
BaseSoundID = 417;
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
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 override int Hides{ get{ return 12; } }
|
||||
|
||||
public SakkhraShaman( 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/Reptilians/Seeker.cs
Normal file
60
Scripts/Mobiles/Reptilians/Seeker.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a seeker corpse" )]
|
||||
public class Seeker : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Seeker () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a seeker";
|
||||
Body = 107;
|
||||
BaseSoundID = 377;
|
||||
|
||||
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 = Utility.RandomMinMax( 48, 51 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich, 2 );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.Gems );
|
||||
}
|
||||
|
||||
public Seeker( 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/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;
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Mobiles/Reptilians/Silisk.cs
Normal file
71
Scripts/Mobiles/Reptilians/Silisk.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a reptilian corpse" )]
|
||||
public class Silisk : BaseCreature
|
||||
{
|
||||
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Lizardman; } }
|
||||
|
||||
[Constructable]
|
||||
public Silisk () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = NameList.RandomName( "lizardman" );
|
||||
HiddenTitle = "the silisk";
|
||||
Body = 116;
|
||||
BaseSoundID = 417;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 166, 195 );
|
||||
SetDex( 46, 65 );
|
||||
SetInt( 46, 70 );
|
||||
|
||||
SetHits( 100, 117 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 9, 11 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 45.1, 60.0 );
|
||||
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
|
||||
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 );
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override int Meat{ get{ return 3; } }
|
||||
public override int Hides{ get{ return 15; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Lesser : Poison.Regular); } }
|
||||
|
||||
public Silisk( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
59
Scripts/Mobiles/Reptilians/Torax.cs
Normal file
59
Scripts/Mobiles/Reptilians/Torax.cs
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a lizard corpse" )]
|
||||
public class Torax : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Torax() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a torax";
|
||||
Body = 127;
|
||||
BaseSoundID = 0x5A;
|
||||
|
||||
SetStr( 176, 200 );
|
||||
SetDex( 156, 175 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 126, 160 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 10, 24 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 55.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 90.0 );
|
||||
SetSkill( SkillName.HandToHand, 70.1, 90.0 );
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override int Hides{ get{ return 12; } }
|
||||
|
||||
public Torax(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
55
Scripts/Mobiles/Reptilians/Turtle.cs
Normal file
55
Scripts/Mobiles/Reptilians/Turtle.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a turtle corpse" )]
|
||||
public class Turtle : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Turtle() : base( AIType.AI_Animal, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a giant turtle";
|
||||
Body = 281;
|
||||
BaseSoundID = 0x39D;
|
||||
CanSwim = true;
|
||||
|
||||
SetStr( 76, 100 );
|
||||
SetDex( 6, 25 );
|
||||
SetInt( 11, 20 );
|
||||
|
||||
SetHits( 46, 60 );
|
||||
SetStam( 46, 65 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 5, 15 );
|
||||
|
||||
SetSkill( SkillName.Tactics, 40.1, 60.0 );
|
||||
SetSkill( SkillName.HandToHand, 40.1, 60.0 );
|
||||
|
||||
Fame = 700;
|
||||
Karma = 0;
|
||||
|
||||
VirtualArmor = 50;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 6; } }
|
||||
|
||||
public Turtle(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