Reorganizes Project (#41)
This commit is contained in:
parent
08bf44af9a
commit
3614a66aee
3499 changed files with 79 additions and 55 deletions
|
|
@ -0,0 +1,76 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class DreadSpider : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public DreadSpider() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 11;
|
||||
BaseSoundID = 1170;
|
||||
|
||||
SetStr(196, 220);
|
||||
SetDex(126, 145);
|
||||
SetInt(286, 310);
|
||||
|
||||
SetHits(118, 132);
|
||||
|
||||
SetDamage(5, 17);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 20);
|
||||
SetDamageType(ResistanceType.Poison, 80);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 40, 50);
|
||||
SetResistance(ResistanceType.Fire, 20, 30);
|
||||
SetResistance(ResistanceType.Cold, 20, 30);
|
||||
SetResistance(ResistanceType.Poison, 90, 100);
|
||||
SetResistance(ResistanceType.Energy, 20, 30);
|
||||
|
||||
SetSkill(SkillName.EvalInt, 65.1, 80.0);
|
||||
SetSkill(SkillName.Magery, 65.1, 80.0);
|
||||
SetSkill(SkillName.Meditation, 65.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 45.1, 60.0);
|
||||
SetSkill(SkillName.Tactics, 55.1, 70.0);
|
||||
SetSkill(SkillName.Wrestling, 60.1, 75.0);
|
||||
|
||||
Fame = 5000;
|
||||
Karma = -5000;
|
||||
|
||||
VirtualArmor = 36;
|
||||
|
||||
PackItem(new SpidersSilk(8));
|
||||
}
|
||||
|
||||
public DreadSpider(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a dread spider corpse";
|
||||
public override string DefaultName => "a dread spider";
|
||||
|
||||
public override Poison PoisonImmune => Poison.Lethal;
|
||||
public override Poison HitPoison => Poison.Lethal;
|
||||
public override int TreasureMapLevel => 3;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.FilthyRich);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == 263)
|
||||
BaseSoundID = 1170;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class TerathanAvenger : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public TerathanAvenger() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 152;
|
||||
BaseSoundID = 0x24D;
|
||||
|
||||
SetStr(467, 645);
|
||||
SetDex(77, 95);
|
||||
SetInt(126, 150);
|
||||
|
||||
SetHits(296, 372);
|
||||
SetMana(46, 70);
|
||||
|
||||
SetDamage(18, 22);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 50);
|
||||
SetDamageType(ResistanceType.Poison, 50);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 40, 50);
|
||||
SetResistance(ResistanceType.Fire, 30, 40);
|
||||
SetResistance(ResistanceType.Cold, 35, 45);
|
||||
SetResistance(ResistanceType.Poison, 90, 100);
|
||||
SetResistance(ResistanceType.Energy, 35, 45);
|
||||
|
||||
SetSkill(SkillName.EvalInt, 70.3, 100.0);
|
||||
SetSkill(SkillName.Magery, 70.3, 100.0);
|
||||
SetSkill(SkillName.Poisoning, 60.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 65.1, 80.0);
|
||||
SetSkill(SkillName.Tactics, 90.1, 100.0);
|
||||
SetSkill(SkillName.Wrestling, 90.1, 100.0);
|
||||
|
||||
Fame = 15000;
|
||||
Karma = -15000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
}
|
||||
|
||||
public TerathanAvenger(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a terathan avenger corpse";
|
||||
public override string DefaultName => "a terathan avenger";
|
||||
|
||||
public override Poison PoisonImmune => Poison.Deadly;
|
||||
public override Poison HitPoison => Poison.Deadly;
|
||||
public override int TreasureMapLevel => 3;
|
||||
public override int Meat => 2;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.TerathansAndOphidians;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Rich, 2);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == 263)
|
||||
BaseSoundID = 0x24D;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TerathanMatriarch : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public TerathanMatriarch() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 72;
|
||||
BaseSoundID = 599;
|
||||
|
||||
SetStr(316, 405);
|
||||
SetDex(96, 115);
|
||||
SetInt(366, 455);
|
||||
|
||||
SetHits(190, 243);
|
||||
|
||||
SetDamage(11, 14);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 45, 55);
|
||||
SetResistance(ResistanceType.Fire, 30, 40);
|
||||
SetResistance(ResistanceType.Cold, 35, 45);
|
||||
SetResistance(ResistanceType.Poison, 40, 50);
|
||||
SetResistance(ResistanceType.Energy, 35, 45);
|
||||
|
||||
SetSkill(SkillName.EvalInt, 90.1, 100.0);
|
||||
SetSkill(SkillName.Magery, 90.1, 100.0);
|
||||
SetSkill(SkillName.MagicResist, 90.1, 100.0);
|
||||
SetSkill(SkillName.Tactics, 50.1, 70.0);
|
||||
SetSkill(SkillName.Wrestling, 60.1, 80.0);
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
PackItem(new SpidersSilk(5));
|
||||
PackNecroReg(Utility.RandomMinMax(4, 10));
|
||||
}
|
||||
|
||||
public TerathanMatriarch(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a terathan matriarch corpse";
|
||||
public override string DefaultName => "a terathan matriarch";
|
||||
|
||||
public override int TreasureMapLevel => 4;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.TerathansAndOphidians;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Rich);
|
||||
AddLoot(LootPack.Average, 2);
|
||||
AddLoot(LootPack.MedScrolls, 2);
|
||||
AddLoot(LootPack.Potions);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class FrostSpider : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public FrostSpider() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 20;
|
||||
BaseSoundID = 0x388;
|
||||
|
||||
SetStr(76, 100);
|
||||
SetDex(126, 145);
|
||||
SetInt(36, 60);
|
||||
|
||||
SetHits(46, 60);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(6, 16);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 20);
|
||||
SetDamageType(ResistanceType.Cold, 80);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 25, 30);
|
||||
SetResistance(ResistanceType.Fire, 5, 10);
|
||||
SetResistance(ResistanceType.Cold, 40, 50);
|
||||
SetResistance(ResistanceType.Poison, 20, 30);
|
||||
SetResistance(ResistanceType.Energy, 10, 20);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 25.1, 40.0);
|
||||
SetSkill(SkillName.Tactics, 35.1, 50.0);
|
||||
SetSkill(SkillName.Wrestling, 50.1, 65.0);
|
||||
|
||||
Fame = 775;
|
||||
Karma = -775;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 74.7;
|
||||
|
||||
PackItem(new SpidersSilk(7));
|
||||
}
|
||||
|
||||
public FrostSpider(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a frost spider corpse";
|
||||
public override string DefaultName => "a frost spider";
|
||||
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Arachnid;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == 387)
|
||||
BaseSoundID = 0x388;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class GiantBlackWidow : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GiantBlackWidow() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 0x9D;
|
||||
BaseSoundID = 0x388; // TODO: validate
|
||||
|
||||
SetStr(76, 100);
|
||||
SetDex(96, 115);
|
||||
SetInt(36, 60);
|
||||
|
||||
SetHits(46, 60);
|
||||
|
||||
SetDamage(5, 17);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 20, 30);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 10, 20);
|
||||
SetResistance(ResistanceType.Poison, 50, 60);
|
||||
SetResistance(ResistanceType.Energy, 10, 20);
|
||||
|
||||
SetSkill(SkillName.Anatomy, 30.3, 75.0);
|
||||
SetSkill(SkillName.Poisoning, 60.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 45.1, 60.0);
|
||||
SetSkill(SkillName.Tactics, 65.1, 80.0);
|
||||
SetSkill(SkillName.Wrestling, 70.1, 85.0);
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 24;
|
||||
|
||||
PackItem(new SpidersSilk(5));
|
||||
PackItem(new LesserPoisonPotion());
|
||||
PackItem(new LesserPoisonPotion());
|
||||
}
|
||||
|
||||
public GiantBlackWidow(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a giant black widow spider corpse";
|
||||
public override string DefaultName => "a giant black wide";
|
||||
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override Poison PoisonImmune => Poison.Deadly;
|
||||
public override Poison HitPoison => Poison.Deadly;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Average);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class GiantSpider : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GiantSpider() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 28;
|
||||
BaseSoundID = 0x388;
|
||||
|
||||
SetStr(76, 100);
|
||||
SetDex(76, 95);
|
||||
SetInt(36, 60);
|
||||
|
||||
SetHits(46, 60);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(5, 13);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 15, 20);
|
||||
SetResistance(ResistanceType.Poison, 25, 35);
|
||||
|
||||
SetSkill(SkillName.Poisoning, 60.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 25.1, 40.0);
|
||||
SetSkill(SkillName.Tactics, 35.1, 50.0);
|
||||
SetSkill(SkillName.Wrestling, 50.1, 65.0);
|
||||
|
||||
Fame = 600;
|
||||
Karma = -600;
|
||||
|
||||
VirtualArmor = 16;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 59.1;
|
||||
|
||||
PackItem(new SpidersSilk(5));
|
||||
}
|
||||
|
||||
public GiantSpider(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a giant spider corpse";
|
||||
public override string DefaultName => "a giant spider";
|
||||
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Arachnid;
|
||||
public override Poison PoisonImmune => Poison.Regular;
|
||||
public override Poison HitPoison => Poison.Regular;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TerathanDrone : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public TerathanDrone() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 71;
|
||||
BaseSoundID = 594;
|
||||
|
||||
SetStr(36, 65);
|
||||
SetDex(96, 145);
|
||||
SetInt(21, 45);
|
||||
|
||||
SetHits(22, 39);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(6, 12);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 20, 25);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 15, 25);
|
||||
SetResistance(ResistanceType.Poison, 30, 40);
|
||||
SetResistance(ResistanceType.Energy, 15, 25);
|
||||
|
||||
SetSkill(SkillName.Poisoning, 40.1, 60.0);
|
||||
SetSkill(SkillName.MagicResist, 30.1, 45.0);
|
||||
SetSkill(SkillName.Tactics, 30.1, 50.0);
|
||||
SetSkill(SkillName.Wrestling, 40.1, 50.0);
|
||||
|
||||
Fame = 2000;
|
||||
Karma = -2000;
|
||||
|
||||
VirtualArmor = 24;
|
||||
|
||||
PackItem(new SpidersSilk(2));
|
||||
}
|
||||
|
||||
public TerathanDrone(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a terathan drone corpse";
|
||||
public override string DefaultName => "a terathan drone";
|
||||
|
||||
public override int Meat => 4;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.TerathansAndOphidians;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
// TODO: weapon?
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == 589)
|
||||
BaseSoundID = 594;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
using Server.Engines.Plants;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TerathanWarrior : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public TerathanWarrior() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
{
|
||||
Body = 70;
|
||||
BaseSoundID = 589;
|
||||
|
||||
SetStr(166, 215);
|
||||
SetDex(96, 145);
|
||||
SetInt(41, 65);
|
||||
|
||||
SetHits(100, 129);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(7, 17);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 30, 35);
|
||||
SetResistance(ResistanceType.Fire, 20, 30);
|
||||
SetResistance(ResistanceType.Cold, 25, 35);
|
||||
SetResistance(ResistanceType.Poison, 30, 40);
|
||||
SetResistance(ResistanceType.Energy, 25, 35);
|
||||
|
||||
SetSkill(SkillName.Poisoning, 60.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 60.1, 75.0);
|
||||
SetSkill(SkillName.Tactics, 80.1, 100.0);
|
||||
SetSkill(SkillName.Wrestling, 80.1, 90.0);
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 30;
|
||||
|
||||
if (Core.ML && Utility.RandomDouble() < .33)
|
||||
PackItem(Seed.RandomPeculiarSeed(3));
|
||||
}
|
||||
|
||||
public TerathanWarrior(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a terathan warrior corpse";
|
||||
public override string DefaultName => "a terathan warrior";
|
||||
|
||||
public override int TreasureMapLevel => 1;
|
||||
public override int Meat => 4;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.TerathansAndOphidians;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Average);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(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