Reorganizes Project (#41)

This commit is contained in:
Kamron Batman 2019-08-02 18:13:40 -07:00 • committed by GitHub
parent 08bf44af9a
commit 3614a66aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3499 changed files with 79 additions and 55 deletions

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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();
}
}
}

View file

@ -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;
}
}
}

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}

View file

@ -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;
}
}
}

View file

@ -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();
}
}
}