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,78 @@
using Server.Items;
namespace Server.Mobiles
{
public class Abscess : Hydra
{
[Constructible]
public Abscess()
{
IsParagon = true;
Hue = 0x8FD;
SetStr(845, 871);
SetDex(121, 134);
SetInt(124, 142);
SetHits(7470, 7540);
SetDamage(26, 31);
SetDamageType(ResistanceType.Physical, 60);
SetDamageType(ResistanceType.Fire, 10);
SetDamageType(ResistanceType.Cold, 10);
SetDamageType(ResistanceType.Poison, 10);
SetDamageType(ResistanceType.Energy, 10);
SetResistance(ResistanceType.Physical, 65, 75);
SetResistance(ResistanceType.Fire, 70, 80);
SetResistance(ResistanceType.Cold, 25, 35);
SetResistance(ResistanceType.Poison, 35, 45);
SetResistance(ResistanceType.Energy, 35, 45);
SetSkill(SkillName.Wrestling, 132.3, 143.8);
SetSkill(SkillName.Tactics, 121.0, 130.5);
SetSkill(SkillName.MagicResist, 102.9, 119.0);
SetSkill(SkillName.Anatomy, 91.8, 94.3);
// TODO: Fame/Karma
}
public Abscess(Serial serial)
: base(serial)
{
}
public override string CorpseName => "an Abscess corpse";
public override string DefaultName => "Abscess";
public override bool GivesMLMinorArtifact => true;
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 4);
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
c.DropItem(new AbscessTail());
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,105 @@
using Server.Items;
namespace Server.Mobiles
{
public class Coil : SilverSerpent
{
[Constructible]
public Coil()
{
IsParagon = true;
Hue = 0x3F;
SetStr(205, 343);
SetDex(202, 283);
SetInt(88, 142);
SetHits(628, 1291);
SetDamage(19, 28);
SetDamageType(ResistanceType.Physical, 50);
SetDamageType(ResistanceType.Poison, 50);
SetResistance(ResistanceType.Physical, 56, 62);
SetResistance(ResistanceType.Fire, 25, 30);
SetResistance(ResistanceType.Cold, 25, 30);
SetResistance(ResistanceType.Poison, 100);
SetResistance(ResistanceType.Energy, 25, 30);
SetSkill(SkillName.Wrestling, 124.5, 141.3);
SetSkill(SkillName.Tactics, 130.2, 142.0);
SetSkill(SkillName.MagicResist, 102.3, 113.0);
SetSkill(SkillName.Anatomy, 120.8, 138.1);
SetSkill(SkillName.Poisoning, 110.1, 133.4);
// TODO: Fame/Karma
PackGem(2);
PackItem(new Bone());
}
public Coil(Serial serial)
: base(serial)
{
}
public override string CorpseName => "a Coil corpse";
// TODO: Check faction allegiance
public override string DefaultName => "Coil";
public override Poison HitPoison => Poison.Lethal;
public override Poison PoisonImmune => Poison.Lethal;
public override bool GivesMLMinorArtifact => true;
public override int Hides => 48;
public override int Meat => 1;
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 3);
}
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.MortalStrike;
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
c.DropItem(new CoilsFang());
/*
// TODO: uncomment once added
if ( Utility.RandomDouble() < 0.025 )
{
switch ( Utility.Random( 5 ) )
{
case 0: c.DropItem( new AssassinChest() ); break;
case 1: c.DropItem( new DeathGloves() ); break;
case 2: c.DropItem( new LeafweaveLegs() ); break;
case 3: c.DropItem( new HunterLegs() ); break;
case 4: c.DropItem( new MyrmidonLegs() ); break;
}
}
*/
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,43 @@
namespace Server.Mobiles
{
public class EnslavedSatyr : Satyr
{
[Constructible]
public EnslavedSatyr()
{
}
/*
// TODO: uncomment once added
public override void OnDeath( Container c )
{
base.OnDeath( c );
if ( Utility.RandomDouble() < 0.1 )
c.DropItem( new ParrotItem() );
}
*/
public EnslavedSatyr(Serial serial)
: base(serial)
{
}
public override string CorpseName => "an enslaved satyr corpse";
public override string DefaultName => "an enslaved satyr";
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
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 Hydra : BaseCreature
{
[Constructible]
public Hydra()
: base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Body = 0x109;
BaseSoundID = 0x16A;
SetStr(801, 828);
SetDex(102, 118);
SetInt(102, 120);
SetHits(1480, 1500);
SetDamage(21, 26);
SetDamageType(ResistanceType.Physical, 60);
SetDamageType(ResistanceType.Fire, 10);
SetDamageType(ResistanceType.Cold, 10);
SetDamageType(ResistanceType.Poison, 10);
SetDamageType(ResistanceType.Energy, 10);
SetResistance(ResistanceType.Physical, 65, 75);
SetResistance(ResistanceType.Fire, 70, 85);
SetResistance(ResistanceType.Cold, 25, 35);
SetResistance(ResistanceType.Poison, 35, 43);
SetResistance(ResistanceType.Energy, 36, 45);
SetSkill(SkillName.Wrestling, 103.5, 117.4);
SetSkill(SkillName.Tactics, 100.1, 109.8);
SetSkill(SkillName.MagicResist, 85.5, 98.5);
SetSkill(SkillName.Anatomy, 75.4, 79.8);
// TODO: Fame/Karma
}
public Hydra(Serial serial)
: base(serial)
{
}
public override string CorpseName => "a hydra corpse";
public override string DefaultName => "a hydra";
public override bool HasBreath => true;
public override int Hides => 40;
public override int Meat => 19;
public override int TreasureMapLevel => 5;
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 3);
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
c.DropItem(new HydraScale());
/*
// TODO: uncomment once added
if ( Utility.RandomDouble() < 0.2 )
c.DropItem( new ParrotItem() );
if ( Utility.RandomDouble() < 0.05 )
c.DropItem( new ThorvaldsMedallion() );
*/
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
namespace Server.Mobiles
{
public class InsaneDryad : MLDryad
{
[Constructible]
public InsaneDryad()
{
// TODO: Perhaps these should have negative karma?
}
/*
// TODO: uncomment once added
public override void OnDeath( Container c )
{
base.OnDeath( c );
if ( Utility.RandomDouble() < 0.1 )
c.DropItem( new ParrotItem() );
}
*/
public InsaneDryad(Serial serial)
: base(serial)
{
}
public override string CorpseName => "an insane dryad corpse";
public override bool InitialInnocent => false;
public override string DefaultName => "an insane dryad";
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,76 @@
using Server.Items;
namespace Server.Mobiles
{
public class Saliva : Harpy
{
[Constructible]
public Saliva()
{
// TODO: Not a paragon? No ML arties?
// It moves like a paragon on OSI...
Hue = 0x11E;
SetStr(110, 206);
SetDex(123, 222);
SetInt(80, 127);
SetHits(409, 842);
SetDamage(20, 22);
SetDamageType(ResistanceType.Physical, 100);
SetResistance(ResistanceType.Physical, 46, 48);
SetResistance(ResistanceType.Fire, 32, 40);
SetResistance(ResistanceType.Cold, 34, 49);
SetResistance(ResistanceType.Poison, 40, 48);
SetResistance(ResistanceType.Energy, 35, 39);
SetSkill(SkillName.Wrestling, 106.4, 128.8);
SetSkill(SkillName.Tactics, 129.9, 141.0);
SetSkill(SkillName.MagicResist, 84.3, 105.0);
// TODO: Fame/Karma?
}
public Saliva(Serial serial)
: base(serial)
{
}
public override string CorpseName => "a Saliva corpse";
public override string DefaultName => "Saliva";
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 2);
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
c.DropItem(new SalivasFeather());
// TODO: uncomment once added
//if ( Utility.RandomDouble() < 0.1 )
// c.DropItem( new ParrotItem() );
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
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 Tangle : BogThing
{
[Constructible]
public Tangle()
{
// TODO: Not a paragon? No ML arties?
// It moves like a paragon on OSI...
Hue = 0x21;
SetStr(870, 940);
SetDex(58, 74);
SetInt(46, 58);
SetHits(2468, 2733);
SetMana(8, 12);
SetDamage(15, 28);
SetDamageType(ResistanceType.Physical, 60);
SetDamageType(ResistanceType.Poison, 40);
SetResistance(ResistanceType.Physical, 50, 57);
SetResistance(ResistanceType.Fire, 40, 43);
SetResistance(ResistanceType.Cold, 30, 35);
SetResistance(ResistanceType.Poison, 61, 69);
SetResistance(ResistanceType.Energy, 41, 45);
SetSkill(SkillName.Wrestling, 77.8, 94.6);
SetSkill(SkillName.Tactics, 90.6, 100.4);
SetSkill(SkillName.MagicResist, 108.4, 114.0);
// TODO: Fame/Karma?
}
public Tangle(Serial serial)
: base(serial)
{
}
public override string CorpseName => "a Tangle corpse";
public override string DefaultName => "Tangle";
public override Poison PoisonImmune => Poison.Lethal;
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 3);
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
if (Utility.RandomDouble() < 0.3)
c.DropItem(new TaintedSeeds());
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,80 @@
using Server.Items;
namespace Server.Mobiles
{
public class Thrasher : Alligator
{
[Constructible]
public Thrasher()
{
IsParagon = true;
Hue = 0x497;
SetStr(93, 327);
SetDex(7, 201);
SetInt(15, 67);
SetHits(260, 984);
SetStam(56, 75);
SetMana(25, 30);
SetDamage(20, 30);
SetDamageType(ResistanceType.Physical, 100);
SetResistance(ResistanceType.Physical, 50, 55);
SetResistance(ResistanceType.Fire, 25, 29);
SetResistance(ResistanceType.Poison, 25, 28);
SetSkill(SkillName.Wrestling, 101.2, 118.3);
SetSkill(SkillName.Tactics, 96.3, 117.3);
SetSkill(SkillName.MagicResist, 102.4, 118.6);
// TODO: Fame/Karma
}
public Thrasher(Serial serial)
: base(serial)
{
}
public override string CorpseName => "a Thrasher corpse";
public override string DefaultName => "Thrasher";
public override bool GivesMLMinorArtifact => true;
public override int Hides => 48;
public override int Meat => 1;
public override void GenerateLoot()
{
AddLoot(LootPack.FilthyRich, 4);
}
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.ArmorIgnore;
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
c.DropItem(new ThrashersTail());
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}