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,84 @@
namespace Server.Mobiles
{
[TypeAlias("Server.Mobiles.ToxicElemental")]
public class AcidElemental : BaseCreature
{
[Constructible]
public AcidElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 0x9E;
BaseSoundID = 278;
SetStr(326, 355);
SetDex(66, 85);
SetInt(271, 295);
SetHits(196, 213);
SetDamage(9, 15);
SetDamageType(ResistanceType.Physical, 25);
SetDamageType(ResistanceType.Fire, 50);
SetDamageType(ResistanceType.Energy, 25);
SetResistance(ResistanceType.Physical, 45, 55);
SetResistance(ResistanceType.Fire, 40, 50);
SetResistance(ResistanceType.Cold, 20, 30);
SetResistance(ResistanceType.Poison, 10, 20);
SetResistance(ResistanceType.Energy, 30, 40);
SetSkill(SkillName.Anatomy, 30.3, 60.0);
SetSkill(SkillName.EvalInt, 70.1, 85.0);
SetSkill(SkillName.Magery, 70.1, 85.0);
SetSkill(SkillName.MagicResist, 60.1, 75.0);
SetSkill(SkillName.Tactics, 80.1, 90.0);
SetSkill(SkillName.Wrestling, 70.1, 90.0);
Fame = 10000;
Karma = -10000;
VirtualArmor = 40;
}
public AcidElemental(Serial serial)
: base(serial)
{
}
public override string CorpseName => "an acid elemental corpse";
public override string DefaultName => "an acid elemental";
public override bool BleedImmune => true;
public override Poison HitPoison => Poison.Lethal;
public override double HitPoisonChance => 0.6;
public override int TreasureMapLevel => Core.AOS ? 2 : 3;
public override void GenerateLoot()
{
AddLoot(LootPack.Rich);
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();
if (BaseSoundID == 263)
BaseSoundID = 278;
if (Body == 13)
Body = 0x9E;
if (Hue == 0x4001)
Hue = 0;
}
}
}

View file

@ -0,0 +1,79 @@
namespace Server.Mobiles
{
public class AirElemental : BaseCreature
{
[Constructible]
public AirElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 13;
Hue = 0x4001;
BaseSoundID = 655;
SetStr(126, 155);
SetDex(166, 185);
SetInt(101, 125);
SetHits(76, 93);
SetDamage(8, 10);
SetDamageType(ResistanceType.Physical, 20);
SetDamageType(ResistanceType.Cold, 40);
SetDamageType(ResistanceType.Energy, 40);
SetResistance(ResistanceType.Physical, 35, 45);
SetResistance(ResistanceType.Fire, 15, 25);
SetResistance(ResistanceType.Cold, 10, 20);
SetResistance(ResistanceType.Poison, 10, 20);
SetResistance(ResistanceType.Energy, 25, 35);
SetSkill(SkillName.EvalInt, 60.1, 75.0);
SetSkill(SkillName.Magery, 60.1, 75.0);
SetSkill(SkillName.MagicResist, 60.1, 75.0);
SetSkill(SkillName.Tactics, 60.1, 80.0);
SetSkill(SkillName.Wrestling, 60.1, 80.0);
Fame = 4500;
Karma = -4500;
VirtualArmor = 40;
ControlSlots = 2;
}
public AirElemental(Serial serial) : base(serial)
{
}
public override string CorpseName => "an air elemental corpse";
public override double DispelDifficulty => 117.5;
public override double DispelFocus => 45.0;
public override string DefaultName => "an air elemental";
public override bool BleedImmune => true;
public override int TreasureMapLevel => 2;
public override void GenerateLoot()
{
AddLoot(LootPack.Average);
AddLoot(LootPack.Meager);
AddLoot(LootPack.LowScrolls);
AddLoot(LootPack.MedScrolls);
}
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 = 655;
}
}
}

View file

@ -0,0 +1,69 @@
namespace Server.Mobiles
{
public class BloodElemental : BaseCreature
{
[Constructible]
public BloodElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 159;
BaseSoundID = 278;
SetStr(526, 615);
SetDex(66, 85);
SetInt(226, 350);
SetHits(316, 369);
SetDamage(17, 27);
SetDamageType(ResistanceType.Physical, 0);
SetDamageType(ResistanceType.Poison, 50);
SetDamageType(ResistanceType.Energy, 50);
SetResistance(ResistanceType.Physical, 55, 65);
SetResistance(ResistanceType.Fire, 20, 30);
SetResistance(ResistanceType.Cold, 40, 50);
SetResistance(ResistanceType.Poison, 50, 60);
SetResistance(ResistanceType.Energy, 30, 40);
SetSkill(SkillName.EvalInt, 85.1, 100.0);
SetSkill(SkillName.Magery, 85.1, 100.0);
SetSkill(SkillName.Meditation, 10.4, 50.0);
SetSkill(SkillName.MagicResist, 80.1, 95.0);
SetSkill(SkillName.Tactics, 80.1, 100.0);
SetSkill(SkillName.Wrestling, 80.1, 100.0);
Fame = 12500;
Karma = -12500;
VirtualArmor = 60;
}
public BloodElemental(Serial serial) : base(serial)
{
}
public override string CorpseName => "a blood elemental corpse";
public override string DefaultName => "a blood elemental";
public override int TreasureMapLevel => 5;
public override void GenerateLoot()
{
AddLoot(LootPack.FilthyRich);
AddLoot(LootPack.Rich);
}
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,90 @@
using Server.Items;
namespace Server.Mobiles
{
public class Efreet : BaseCreature
{
[Constructible]
public Efreet() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 131;
BaseSoundID = 768;
SetStr(326, 355);
SetDex(266, 285);
SetInt(171, 195);
SetHits(196, 213);
SetDamage(11, 13);
SetDamageType(ResistanceType.Physical, 0);
SetDamageType(ResistanceType.Fire, 50);
SetDamageType(ResistanceType.Energy, 50);
SetResistance(ResistanceType.Physical, 50, 60);
SetResistance(ResistanceType.Fire, 60, 70);
SetResistance(ResistanceType.Poison, 30, 40);
SetResistance(ResistanceType.Energy, 40, 50);
SetSkill(SkillName.EvalInt, 60.1, 75.0);
SetSkill(SkillName.Magery, 60.1, 75.0);
SetSkill(SkillName.MagicResist, 60.1, 75.0);
SetSkill(SkillName.Tactics, 60.1, 80.0);
SetSkill(SkillName.Wrestling, 60.1, 80.0);
Fame = 10000;
Karma = -10000;
VirtualArmor = 56;
}
public Efreet(Serial serial) : base(serial)
{
}
public override string CorpseName => "an efreet corpse";
public override string DefaultName => "an efreet";
public override int TreasureMapLevel => Core.AOS ? 4 : 5;
public override void GenerateLoot()
{
AddLoot(LootPack.Rich);
AddLoot(LootPack.Average);
AddLoot(LootPack.Gems);
if (0.02 > Utility.RandomDouble())
switch (Utility.Random(5))
{
case 0:
PackItem(new DaemonArms());
break;
case 1:
PackItem(new DaemonChest());
break;
case 2:
PackItem(new DaemonGloves());
break;
case 3:
PackItem(new DaemonLegs());
break;
case 4:
PackItem(new DaemonHelm());
break;
}
}
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,82 @@
using Server.Items;
namespace Server.Mobiles
{
public class FireElemental : BaseCreature
{
[Constructible]
public FireElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 15;
BaseSoundID = 838;
SetStr(126, 155);
SetDex(166, 185);
SetInt(101, 125);
SetHits(76, 93);
SetDamage(7, 9);
SetDamageType(ResistanceType.Physical, 25);
SetDamageType(ResistanceType.Fire, 75);
SetResistance(ResistanceType.Physical, 35, 45);
SetResistance(ResistanceType.Fire, 60, 80);
SetResistance(ResistanceType.Cold, 5, 10);
SetResistance(ResistanceType.Poison, 30, 40);
SetResistance(ResistanceType.Energy, 30, 40);
SetSkill(SkillName.EvalInt, 60.1, 75.0);
SetSkill(SkillName.Magery, 60.1, 75.0);
SetSkill(SkillName.MagicResist, 75.2, 105.0);
SetSkill(SkillName.Tactics, 80.1, 100.0);
SetSkill(SkillName.Wrestling, 70.1, 100.0);
Fame = 4500;
Karma = -4500;
VirtualArmor = 40;
ControlSlots = 4;
PackItem(new SulfurousAsh(3));
AddItem(new LightSource());
}
public FireElemental(Serial serial) : base(serial)
{
}
public override string CorpseName => "a fire elemental corpse";
public override double DispelDifficulty => 117.5;
public override double DispelFocus => 45.0;
public override string DefaultName => "a fire elemental";
public override bool BleedImmune => true;
public override int TreasureMapLevel => 2;
public override void GenerateLoot()
{
AddLoot(LootPack.Average);
AddLoot(LootPack.Meager);
AddLoot(LootPack.Gems);
}
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 == 274)
BaseSoundID = 838;
}
}
}

View file

@ -0,0 +1,71 @@
using Server.Items;
namespace Server.Mobiles
{
public class IceElemental : BaseCreature
{
[Constructible]
public IceElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 161;
BaseSoundID = 268;
SetStr(156, 185);
SetDex(96, 115);
SetInt(171, 192);
SetHits(94, 111);
SetDamage(10, 21);
SetDamageType(ResistanceType.Physical, 25);
SetDamageType(ResistanceType.Cold, 75);
SetResistance(ResistanceType.Physical, 35, 45);
SetResistance(ResistanceType.Fire, 5, 10);
SetResistance(ResistanceType.Cold, 50, 60);
SetResistance(ResistanceType.Poison, 20, 30);
SetResistance(ResistanceType.Energy, 20, 30);
SetSkill(SkillName.EvalInt, 10.5, 60.0);
SetSkill(SkillName.Magery, 10.5, 60.0);
SetSkill(SkillName.MagicResist, 30.1, 80.0);
SetSkill(SkillName.Tactics, 70.1, 100.0);
SetSkill(SkillName.Wrestling, 60.1, 100.0);
Fame = 4000;
Karma = -4000;
VirtualArmor = 40;
PackItem(new BlackPearl());
PackReg(3);
}
public IceElemental(Serial serial) : base(serial)
{
}
public override string CorpseName => "an ice elemental corpse";
public override string DefaultName => "an ice elemental";
public override bool BleedImmune => true;
public override void GenerateLoot()
{
AddLoot(LootPack.Average, 2);
AddLoot(LootPack.Gems, 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();
}
}
}

View file

@ -0,0 +1,81 @@
using Server.Items;
namespace Server.Mobiles
{
public class PoisonElemental : BaseCreature
{
[Constructible]
public PoisonElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 162;
BaseSoundID = 263;
SetStr(426, 515);
SetDex(166, 185);
SetInt(361, 435);
SetHits(256, 309);
SetDamage(12, 18);
SetDamageType(ResistanceType.Physical, 10);
SetDamageType(ResistanceType.Poison, 90);
SetResistance(ResistanceType.Physical, 60, 70);
SetResistance(ResistanceType.Fire, 20, 30);
SetResistance(ResistanceType.Cold, 20, 30);
SetResistance(ResistanceType.Poison, 100);
SetResistance(ResistanceType.Energy, 40, 50);
SetSkill(SkillName.EvalInt, 80.1, 95.0);
SetSkill(SkillName.Magery, 80.1, 95.0);
SetSkill(SkillName.Meditation, 80.2, 120.0);
SetSkill(SkillName.Poisoning, 90.1, 100.0);
SetSkill(SkillName.MagicResist, 85.2, 115.0);
SetSkill(SkillName.Tactics, 80.1, 100.0);
SetSkill(SkillName.Wrestling, 70.1, 90.0);
Fame = 12500;
Karma = -12500;
VirtualArmor = 70;
PackItem(new Nightshade(4));
PackItem(new LesserPoisonPotion());
}
public PoisonElemental(Serial serial) : base(serial)
{
}
public override string CorpseName => "a poison elementals corpse";
public override string DefaultName => "a poison elemental";
public override bool BleedImmune => true;
public override Poison PoisonImmune => Poison.Lethal;
public override Poison HitPoison => Poison.Lethal;
public override double HitPoisonChance => 0.75;
public override int TreasureMapLevel => 5;
public override void GenerateLoot()
{
AddLoot(LootPack.FilthyRich);
AddLoot(LootPack.Rich);
AddLoot(LootPack.MedScrolls);
}
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,77 @@
using Server.Items;
namespace Server.Mobiles
{
public class WaterElemental : BaseCreature
{
[Constructible]
public WaterElemental() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 16;
BaseSoundID = 278;
SetStr(126, 155);
SetDex(66, 85);
SetInt(101, 125);
SetHits(76, 93);
SetDamage(7, 9);
SetDamageType(ResistanceType.Physical, 100);
SetResistance(ResistanceType.Physical, 35, 45);
SetResistance(ResistanceType.Fire, 10, 25);
SetResistance(ResistanceType.Cold, 10, 25);
SetResistance(ResistanceType.Poison, 60, 70);
SetResistance(ResistanceType.Energy, 5, 10);
SetSkill(SkillName.EvalInt, 60.1, 75.0);
SetSkill(SkillName.Magery, 60.1, 75.0);
SetSkill(SkillName.MagicResist, 100.1, 115.0);
SetSkill(SkillName.Tactics, 50.1, 70.0);
SetSkill(SkillName.Wrestling, 50.1, 70.0);
Fame = 4500;
Karma = -4500;
VirtualArmor = 40;
ControlSlots = 3;
CanSwim = true;
PackItem(new BlackPearl(3));
}
public WaterElemental(Serial serial) : base(serial)
{
}
public override string CorpseName => "a water elemental corpse";
public override double DispelDifficulty => 117.5;
public override double DispelFocus => 45.0;
public override string DefaultName => "a water elemental";
public override bool BleedImmune => true;
public override int TreasureMapLevel => 2;
public override void GenerateLoot()
{
AddLoot(LootPack.Average);
AddLoot(LootPack.Meager);
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();
}
}
}