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,32 @@
namespace Server.Items
{
public class AmeliasToolbox : TinkerTools
{
[Constructible]
public AmeliasToolbox() : base(500)
{
LootType = LootType.Blessed;
Hue = 1895; // TODO check
}
public AmeliasToolbox(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077749; // Amelias Toolbox
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class ArmsOfArmstrong : LeatherArms
{
[Constructible]
public ArmsOfArmstrong()
{
LootType = LootType.Blessed;
Attributes.BonusStr = 3;
Attributes.RegenHits = 1;
}
public ArmsOfArmstrong(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077675; // Arms of Armstrong
public override int BasePhysicalResistance => 6;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 5;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 5;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,33 @@
namespace Server.Items
{
public class BagOfNecromancerReagents : Bag
{
[Constructible]
public BagOfNecromancerReagents(int amount = 50)
{
DropItem(new BatWing(amount));
DropItem(new GraveDust(amount));
DropItem(new DaemonBlood(amount));
DropItem(new NoxCrystal(amount));
DropItem(new PigIron(amount));
}
public BagOfNecromancerReagents(Serial serial) : base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class BagOfSmokeBombs : Bag
{
[Constructible]
public BagOfSmokeBombs(int amount = 20)
{
for (int i = 0; i < amount; ++i)
DropItem(new SmokeBomb());
}
public BagOfSmokeBombs(Serial serial) : base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
public class BraceletOfResilience : GoldBracelet
{
[Constructible]
public BraceletOfResilience()
{
LootType = LootType.Blessed;
Attributes.DefendChance = 5;
Resistances.Fire = 5;
Resistances.Cold = 5;
Resistances.Poison = 5;
Resistances.Energy = 5;
}
public BraceletOfResilience(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077627; // Bracelet of Resilience
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class BulwarkLeggings : RingmailLegs
{
[Constructible]
public BulwarkLeggings()
{
LootType = LootType.Blessed;
Attributes.RegenStam = 1;
Attributes.RegenMana = 1;
}
public BulwarkLeggings(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077727; // Bulwark Leggings
public override int BasePhysicalResistance => 9;
public override int BaseFireResistance => 5;
public override int BaseColdResistance => 5;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 3;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,36 @@
namespace Server.Items
{
public class ChurchillsWarMace : WarMace
{
[Constructible]
public ChurchillsWarMace()
{
LootType = LootType.Blessed;
Attributes.AttackChance = 5;
Attributes.WeaponSpeed = 10;
Attributes.WeaponDamage = 25;
WeaponAttributes.LowerStatReq = 70;
}
public ChurchillsWarMace(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078062; // Churchill's War Mace
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,36 @@
namespace Server.Items
{
public class ClaspOfConcentration : SilverBracelet
{
[Constructible]
public ClaspOfConcentration()
{
LootType = LootType.Blessed;
Attributes.RegenStam = 2;
Attributes.RegenMana = 1;
Resistances.Fire = 5;
Resistances.Cold = 5;
}
public ClaspOfConcentration(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077695; // Clasp of Concentration
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
public class EmberStaff : QuarterStaff
{
[Constructible]
public EmberStaff()
{
LootType = LootType.Blessed;
WeaponAttributes.HitFireball = 15;
WeaponAttributes.MageWeapon = 10;
Attributes.SpellChanneling = 1;
Attributes.CastSpeed = -1;
WeaponAttributes.LowerStatReq = 50;
}
public EmberStaff(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077582; // Ember Staff
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,41 @@
namespace Server.Items
{
public class EscutcheonDeAriadne : MetalKiteShield
{
[Constructible]
public EscutcheonDeAriadne()
{
LootType = LootType.Blessed;
Hue = 0x8A5;
ArmorAttributes.DurabilityBonus = 49;
Attributes.ReflectPhysical = 5;
Attributes.DefendChance = 5;
}
public EscutcheonDeAriadne(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077694; // Escutcheon de Ariadne
public override int BasePhysicalResistance => 5;
public override int BaseEnergyResistance => 1;
public override int AosStrReq => 14;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class GlovesOfSafeguarding : LeatherGloves
{
[Constructible]
public GlovesOfSafeguarding()
{
LootType = LootType.Blessed;
Attributes.BonusStam = 3;
Attributes.RegenHits = 1;
}
public GlovesOfSafeguarding(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077614; // Gloves of Safeguarding
public override int BasePhysicalResistance => 6;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 5;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 5;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,33 @@
namespace Server.Items
{
public class HallowedSpellbook : Spellbook
{
[Constructible]
public HallowedSpellbook() : base(0x3FFFFFFFF)
{
LootType = LootType.Blessed;
Slayer = SlayerName.Silver;
}
public HallowedSpellbook(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077620; // Hallowed Spellbook
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,74 @@
using System;
namespace Server.Items
{
[Flippable(0x13E3, 0x13E4)]
public class HammerOfHephaestus : SmithHammer
{
public static readonly TimeSpan RechargeDelay = TimeSpan.FromMinutes(5);
[Constructible]
public HammerOfHephaestus()
{
UsesRemaining = 20;
LootType = LootType.Blessed;
// TODO: Blacksmith +10 bonus when equipped
StartRechargeTimer();
}
public HammerOfHephaestus(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1077740; // Hammer of Hephaestus
public override bool BreakOnDepletion => false;
/* Note:
* On EA, it also leaves the crafting gump open when it reaches 0 charges.
* When crafting again, only then the crafting gump closes with the 1072306 system message.
*/
public override void OnDoubleClick(Mobile from)
{
if (!IsChildOf(from.Backpack) && Parent != from
) // TODO: These checks don't match EA, but they match BaseTool for now
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
else if (UsesRemaining <= 0)
from.SendLocalizedMessage(1072306); // You must wait a moment for it to recharge.
else
base.OnDoubleClick(from);
}
private void StartRechargeTimer()
{
// TODO: Needs work
//Timer.DelayCall( RechargeDelay, RechargeDelay, new TimerCallback( Recharge ) );
}
public void Recharge()
{
// TODO: Stop timer at 20? Count downtime? Something more generic so we can use it for JacobsPickaxe too (both are IUsesRemaining)?
if (UsesRemaining < 20)
++UsesRemaining;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
StartRechargeTimer();
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class HealersTouch : LeatherGloves
{
[Constructible]
public HealersTouch()
{
LootType = LootType.Blessed;
Attributes.BonusStam = 3;
Attributes.ReflectPhysical = 5;
}
public HealersTouch(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077684; // Healer's Touch
public override int BasePhysicalResistance => 6;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 5;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 5;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,36 @@
namespace Server.Items
{
public class Heartseeker : CompositeBow
{
[Constructible]
public Heartseeker()
{
LootType = LootType.Blessed;
Attributes.AttackChance = 5;
Attributes.WeaponSpeed = 10;
Attributes.WeaponDamage = 25;
WeaponAttributes.LowerStatReq = 70;
}
public Heartseeker(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078210; // Heartseeker
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
public class JacobsPickaxe : Pickaxe
{
// TODO: Recharges 1 use every 5 minutes. Doesn't break when it reaches 0, you get a system message "You must wait a moment for it to recharge" 1072306 if you attempt to use it with no uses remaining.
[Constructible]
public JacobsPickaxe()
{
UsesRemaining = 20;
LootType = LootType.Blessed;
SkillBonuses.SetValues(0, SkillName.Mining, 10.0);
}
public JacobsPickaxe(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1077758; // Jacob's Pickaxe
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,35 @@
namespace Server.Items
{
public class JocklesQuicksword : Longsword
{
[Constructible]
public JocklesQuicksword()
{
LootType = LootType.Blessed;
Attributes.AttackChance = 5;
Attributes.WeaponSpeed = 10;
Attributes.WeaponDamage = 25;
}
public JocklesQuicksword(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077666; // Jockles' Quicksword
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class PhilosophersHat : WizardsHat
{
[Constructible]
public PhilosophersHat()
{
LootType = LootType.Blessed;
Attributes.RegenMana = 1;
Attributes.LowerRegCost = 7;
}
public PhilosophersHat(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077602; // Philosopher's Hat
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 5;
public override int BaseColdResistance => 9;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 5;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,35 @@
namespace Server.Items
{
public class RecarosRiposte : WarFork
{
[Constructible]
public RecarosRiposte()
{
LootType = LootType.Blessed;
Attributes.AttackChance = 5;
Attributes.WeaponSpeed = 10;
Attributes.WeaponDamage = 25;
}
public RecarosRiposte(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078195; // Recaro's Riposte
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,35 @@
namespace Server.Items
{
public class RingOfTheSavant : GoldRing
{
[Constructible]
public RingOfTheSavant()
{
LootType = LootType.Blessed;
Attributes.BonusInt = 3;
Attributes.CastRecovery = 1;
Attributes.CastSpeed = 1;
}
public RingOfTheSavant(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077608; // Ring of the Savant
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,35 @@
namespace Server.Items
{
public class SilverSerpentBlade : Kryss
{
[Constructible]
public SilverSerpentBlade()
{
LootType = LootType.Blessed;
Attributes.AttackChance = 5;
Attributes.WeaponSpeed = 10;
Attributes.WeaponDamage = 25;
}
public SilverSerpentBlade(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078163; // Silver Serpent Blade
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,38 @@
namespace Server.Items
{
public class TheDragonsTail : NoDachi
{
[Constructible]
public TheDragonsTail()
{
LootType = LootType.Blessed;
WeaponAttributes.HitLeechStam = 16;
Attributes.WeaponSpeed = 10;
Attributes.WeaponDamage = 25;
}
public TheDragonsTail(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078015; // The Dragon's Tail
public override int InitMinHits => 80;
public override int InitMaxHits => 80;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class TunicOfGuarding : LeatherChest
{
[Constructible]
public TunicOfGuarding()
{
LootType = LootType.Blessed;
Attributes.BonusHits = 2;
Attributes.ReflectPhysical = 5;
}
public TunicOfGuarding(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1077693; // Tunic of Guarding
public override int BasePhysicalResistance => 6;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 5;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 5;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,39 @@
namespace Server.Items
{
public class TwilightJacket : LeatherNinjaJacket
{
[Constructible]
public TwilightJacket()
{
LootType = LootType.Blessed;
Attributes.ReflectPhysical = 5;
}
public TwilightJacket(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078183; // Twilight Jacket
public override int BasePhysicalResistance => 6;
public override int BaseFireResistance => 12;
public override int BaseColdResistance => 3;
public override int BasePoisonResistance => 3;
public override int BaseEnergyResistance => 3;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
public class WalkersLeggings : LeatherNinjaPants
{
[Constructible]
public WalkersLeggings()
{
LootType = LootType.Blessed;
}
public WalkersLeggings(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1078222; // Walker's Leggings
public override int BasePhysicalResistance => 10;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 6;
public override int BasePoisonResistance => 3;
public override int BaseEnergyResistance => 3;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
}
}