v0.0.1-Alpha (#42)

This commit is contained in:
Kamron Batman 2019-08-02 18:16:11 -07:00 • committed by GitHub
parent d30f93c454
commit a36796c2c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3552 changed files with 2476 additions and 15223 deletions

View file

@ -0,0 +1,31 @@
namespace Server.Items
{
public class AdmiralsHeartyRum : BeverageBottle
{
[Constructible]
public AdmiralsHeartyRum() : base(BeverageType.Ale)
{
Hue = 0x66C;
}
public AdmiralsHeartyRum(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063477;
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,35 @@
namespace Server.Items
{
public class AlchemistsBauble : GoldBracelet
{
[Constructible]
public AlchemistsBauble()
{
Hue = 0x290;
SkillBonuses.SetValues(0, SkillName.Magery, 10.0);
Attributes.EnhancePotions = 30;
Attributes.LowerRegCost = 20;
Resistances.Poison = 10;
}
public AlchemistsBauble(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070638;
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,48 @@
namespace Server.Items
{
public class ArcticDeathDealer : WarMace
{
[Constructible]
public ArcticDeathDealer()
{
Hue = 0x480;
WeaponAttributes.HitHarm = 33;
WeaponAttributes.HitLowerAttack = 40;
Attributes.WeaponSpeed = 20;
Attributes.WeaponDamage = 40;
WeaponAttributes.ResistColdBonus = 10;
}
public ArcticDeathDealer(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063481;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
cold = 50;
phys = 50;
pois = fire = nrgy = chaos = direct = 0;
}
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,49 @@
namespace Server.Items
{
public class BlazeOfDeath : Halberd
{
[Constructible]
public BlazeOfDeath()
{
Hue = 0x501;
WeaponAttributes.HitFireArea = 50;
WeaponAttributes.HitFireball = 50;
Attributes.WeaponSpeed = 25;
Attributes.WeaponDamage = 35;
WeaponAttributes.ResistFireBonus = 10;
WeaponAttributes.LowerStatReq = 100;
}
public BlazeOfDeath(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063486;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
fire = 50;
phys = 50;
cold = pois = nrgy = chaos = direct = 0;
}
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,38 @@
namespace Server.Items
{
public class BowOfTheJukaKing : Bow
{
[Constructible]
public BowOfTheJukaKing()
{
Hue = 0x460;
WeaponAttributes.HitMagicArrow = 25;
Slayer = SlayerName.ReptilianDeath;
Attributes.AttackChance = 15;
Attributes.WeaponDamage = 40;
}
public BowOfTheJukaKing(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070636;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,55 @@
namespace Server.Items
{
public class BurglarsBandana : Bandana
{
[Constructible]
public BurglarsBandana()
{
Hue = Utility.RandomBool() ? 0x58C : 0x10;
SkillBonuses.SetValues(0, SkillName.Stealing, 10.0);
SkillBonuses.SetValues(1, SkillName.Stealth, 10.0);
SkillBonuses.SetValues(2, SkillName.Snooping, 10.0);
Attributes.BonusDex = 5;
}
public BurglarsBandana(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063473;
public override int BasePhysicalResistance => 10;
public override int BaseFireResistance => 5;
public override int BaseColdResistance => 7;
public override int BasePoisonResistance => 10;
public override int BaseEnergyResistance => 10;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(2);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 2)
{
Resistances.Physical = 0;
Resistances.Fire = 0;
Resistances.Cold = 0;
Resistances.Poison = 0;
Resistances.Energy = 0;
}
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class CandelabraOfSouls : Item
{
[Constructible]
public CandelabraOfSouls() : base(0xB26)
{
}
public CandelabraOfSouls(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063478;
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,42 @@
namespace Server.Items
{
public class CaptainQuacklebushsCutlass : Cutlass
{
[Constructible]
public CaptainQuacklebushsCutlass()
{
Hue = 0x66C;
Attributes.BonusDex = 5;
Attributes.AttackChance = 10;
Attributes.WeaponSpeed = 20;
Attributes.WeaponDamage = 50;
WeaponAttributes.UseBestSkill = 1;
}
public CaptainQuacklebushsCutlass(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063474;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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 (Attributes.AttackChance == 50)
Attributes.AttackChance = 10;
}
}
}

View file

@ -0,0 +1,41 @@
namespace Server.Items
{
public class CavortingClub : Club
{
[Constructible]
public CavortingClub()
{
Hue = 0x593;
WeaponAttributes.SelfRepair = 3;
Attributes.WeaponSpeed = 25;
Attributes.WeaponDamage = 35;
WeaponAttributes.ResistFireBonus = 8;
WeaponAttributes.ResistColdBonus = 8;
WeaponAttributes.ResistPoisonBonus = 8;
WeaponAttributes.ResistEnergyBonus = 8;
}
public CavortingClub(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063472;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,48 @@
namespace Server.Items
{
public class ColdBlood : Cleaver
{
[Constructible]
public ColdBlood()
{
Hue = 0x4F2;
Attributes.WeaponSpeed = 40;
Attributes.BonusHits = 6;
Attributes.BonusStam = 6;
Attributes.BonusMana = 6;
}
public ColdBlood(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070818; // Cold Blood
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
cold = 100;
fire = phys = pois = nrgy = chaos = direct = 0;
}
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,58 @@
namespace Server.Items
{
public class DreadPirateHat : TricorneHat
{
[Constructible]
public DreadPirateHat()
{
Hue = 0x497;
SkillBonuses.SetValues(0, Utility.RandomCombatSkill(), 10.0);
Attributes.BonusDex = 8;
Attributes.AttackChance = 10;
Attributes.NightSight = 1;
}
public DreadPirateHat(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063467;
public override int BaseColdResistance => 14;
public override int BasePoisonResistance => 10;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(3);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 3)
{
Resistances.Cold = 0;
Resistances.Poison = 0;
}
if (version < 1)
{
Attributes.Luck = 0;
Attributes.AttackChance = 10;
Attributes.NightSight = 1;
SkillBonuses.SetValues(0, Utility.RandomCombatSkill(), 10.0);
SkillBonuses.SetBonus(1, 0);
}
}
}
}

View file

@ -0,0 +1,39 @@
namespace Server.Items
{
public class EnchantedTitanLegBone : ShortSpear
{
[Constructible]
public EnchantedTitanLegBone()
{
Hue = 0x8A5;
WeaponAttributes.HitLowerDefend = 40;
WeaponAttributes.HitLightning = 40;
Attributes.AttackChance = 10;
Attributes.WeaponDamage = 20;
WeaponAttributes.ResistPhysicalBonus = 10;
}
public EnchantedTitanLegBone(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063482;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,34 @@
namespace Server.Items
{
public class GhostShipAnchor : Item
{
[Constructible]
public GhostShipAnchor() : base(0x14F7)
{
Hue = 0x47E;
}
public GhostShipAnchor(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070816; // Ghost Ship Anchor
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 (ItemID == 0x1F47)
ItemID = 0x14F7;
}
}
}

View file

@ -0,0 +1,39 @@
namespace Server.Items
{
public class GlovesOfThePugilist : LeatherGloves
{
[Constructible]
public GlovesOfThePugilist()
{
Hue = 0x6D1;
SkillBonuses.SetValues(0, SkillName.Wrestling, 10.0);
Attributes.BonusDex = 8;
Attributes.WeaponDamage = 15;
}
public GlovesOfThePugilist(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070690;
public override int BasePhysicalResistance => 18;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,30 @@
namespace Server.Items
{
public class GoldBricks : Item
{
[Constructible]
public GoldBricks() : base(0x1BEB)
{
}
public GoldBricks(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063489;
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,36 @@
namespace Server.Items
{
public class GwennosHarp : LapHarp
{
[Constructible]
public GwennosHarp()
{
Hue = 0x47E;
Slayer = SlayerName.Repond;
Slayer2 = SlayerName.ReptilianDeath;
}
public GwennosHarp(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063480;
public override int InitMinUses => 1600;
public override int InitMaxUses => 1600;
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,44 @@
namespace Server.Items
{
public class HeartOfTheLion : PlateChest
{
[Constructible]
public HeartOfTheLion()
{
Hue = 0x501;
Attributes.Luck = 95;
Attributes.DefendChance = 15;
ArmorAttributes.LowerStatReq = 100;
ArmorAttributes.MageArmor = 1;
}
public HeartOfTheLion(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070817; // Heart of the Lion
public override int BasePhysicalResistance => 15;
public override int BaseFireResistance => 10;
public override int BaseColdResistance => 10;
public override int BasePoisonResistance => 10;
public override int BaseEnergyResistance => 10;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,37 @@
namespace Server.Items
{
public class IolosLute : Lute
{
[Constructible]
public IolosLute()
{
Hue = 0x47E;
Slayer = SlayerName.Silver;
//Slayer2 = SlayerName.DaemonDismissal;
Slayer2 = SlayerName.Exorcism;
}
public IolosLute(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063479;
public override int InitMinUses => 1600;
public override int InitMaxUses => 1600;
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,39 @@
namespace Server.Items
{
public class LunaLance : Lance
{
[Constructible]
public LunaLance()
{
Hue = 0x47E;
SkillBonuses.SetValues(0, SkillName.Chivalry, 10.0);
Attributes.BonusStr = 5;
Attributes.WeaponSpeed = 20;
Attributes.WeaponDamage = 35;
WeaponAttributes.UseBestSkill = 1;
}
public LunaLance(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063469;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,49 @@
namespace Server.Items
{
public class AegisOfGrace : DragonHelm
{
[Constructible]
public AegisOfGrace()
{
SkillBonuses.SetValues(0, SkillName.MagicResist, 10.0);
Attributes.DefendChance = 20;
ArmorAttributes.SelfRepair = 2;
}
public AegisOfGrace(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075047; // Aegis of Grace
public override int BasePhysicalResistance => 10;
public override int BaseFireResistance => 9;
public override int BaseColdResistance => 7;
public override int BasePoisonResistance => 7;
public override int BaseEnergyResistance => 15;
public override ArmorMaterialType MaterialType => ArmorMaterialType.Dragon;
public override CraftResource DefaultResource => CraftResource.Iron;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override Race RequiredRace => Race.Elf;
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 BladeDance : RuneBlade
{
[Constructible]
public BladeDance()
{
Hue = 0x66C;
Attributes.BonusMana = 8;
Attributes.SpellChanneling = 1;
Attributes.WeaponDamage = 30;
WeaponAttributes.HitLeechMana = 20;
WeaponAttributes.UseBestSkill = 1;
}
public BladeDance(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075033; // Blade Dance
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,43 @@
namespace Server.Items
{
public class BloodwoodSpirit : BaseTalisman
{
[Constructible]
public BloodwoodSpirit() : base(0x2F5A)
{
Hue = 0x27;
MaxChargeTime = 1200;
Removal = TalismanRemoval.Damage;
Blessed = GetRandomBlessed();
Protection = GetRandomProtection(false);
SkillBonuses.SetValues(0, SkillName.SpiritSpeak, 10.0);
SkillBonuses.SetValues(1, SkillName.Necromancy, 5.0);
}
public BloodwoodSpirit(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075034; // Bloodwood Spirit
public override bool ForceShowName => true;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0 && (Protection == null || Protection.IsEmpty))
Protection = GetRandomProtection(false);
}
}
}

View file

@ -0,0 +1,40 @@
namespace Server.Items
{
public class Bonesmasher : DiamondMace
{
[Constructible]
public Bonesmasher()
{
ItemID = 0x2D30;
Hue = 0x482;
SkillBonuses.SetValues(0, SkillName.Macing, 10.0);
WeaponAttributes.HitLeechMana = 40;
WeaponAttributes.SelfRepair = 2;
}
public Bonesmasher(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075030; // Bonesmasher
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,46 @@
namespace Server.Items
{
public class Boomstick : WildStaff
{
[Constructible]
public Boomstick()
{
Hue = 0x25;
Attributes.SpellChanneling = 1;
Attributes.RegenMana = 3;
Attributes.CastSpeed = 1;
Attributes.LowerRegCost = 20;
}
public Boomstick(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075032; // Boomstick
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
phys = fire = cold = pois = nrgy = direct = 0;
chaos = 100;
}
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,51 @@
namespace Server.Items
{
public class BrightsightLenses : ElvenGlasses
{
[Constructible]
public BrightsightLenses()
{
Hue = 0x501;
Attributes.NightSight = 1;
Attributes.RegenMana = 3;
ArmorAttributes.SelfRepair = 3;
}
public BrightsightLenses(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075039; // Brightsight Lenses
public override int BasePhysicalResistance => 9;
public override int BaseFireResistance => 29;
public override int BaseColdResistance => 7;
public override int BasePoisonResistance => 8;
public override int BaseEnergyResistance => 7;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 1)
{
WeaponAttributes.SelfRepair = 0;
ArmorAttributes.SelfRepair = 3;
}
}
}
}

View file

@ -0,0 +1,45 @@
namespace Server.Items
{
public class FeyLeggings : ChainLegs
{
[Constructible]
public FeyLeggings()
{
Attributes.BonusHits = 6;
Attributes.DefendChance = 20;
ArmorAttributes.MageArmor = 1;
}
public FeyLeggings(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075041; // Fey Leggings
public override int BasePhysicalResistance => 12;
public override int BaseFireResistance => 8;
public override int BaseColdResistance => 7;
public override int BasePoisonResistance => 4;
public override int BaseEnergyResistance => 19;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override Race RequiredRace => Race.Elf;
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,43 @@
namespace Server.Items
{
public class FleshRipper : AssassinSpike
{
[Constructible]
public FleshRipper()
{
Hue = 0x341;
SkillBonuses.SetValues(0, SkillName.Anatomy, 10.0);
Attributes.BonusStr = 5;
Attributes.AttackChance = 15;
Attributes.WeaponSpeed = 40;
WeaponAttributes.UseBestSkill = 1;
// TODO: Mage Slayer
}
public FleshRipper(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075045; // Flesh Ripper
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,45 @@
namespace Server.Items
{
public class HelmOfSwiftness : WingedHelm
{
[Constructible]
public HelmOfSwiftness()
{
Hue = 0x592;
Attributes.BonusInt = 5;
Attributes.CastSpeed = 1;
Attributes.CastRecovery = 2;
ArmorAttributes.MageArmor = 1;
}
public HelmOfSwiftness(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075037; // Helm of Swiftness
public override int BasePhysicalResistance => 6;
public override int BaseFireResistance => 5;
public override int BaseColdResistance => 6;
public override int BasePoisonResistance => 6;
public override int BaseEnergyResistance => 8;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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 MelisandesCorrodedHatchet : Hatchet
{
[Constructible]
public MelisandesCorrodedHatchet()
{
Hue = 0x494;
SkillBonuses.SetValues(0, SkillName.Lumberjacking, 5.0);
Attributes.SpellChanneling = 1;
Attributes.WeaponSpeed = 15;
Attributes.WeaponDamage = -50;
WeaponAttributes.SelfRepair = 4;
}
public MelisandesCorrodedHatchet(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072115; // Melisande's Corroded Hatchet
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 PadsOfTheCuSidhe : FurBoots
{
[Constructible]
public PadsOfTheCuSidhe() : base(0x47E)
{
}
public PadsOfTheCuSidhe(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075048; // Pads of the Cu Sidhe
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 QuiverOfElements : BaseQuiver
{
[Constructible]
public QuiverOfElements()
{
Hue = 0xEB;
WeightReduction = 50;
}
public QuiverOfElements(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075040; // Quiver of the Elements
public override void AlterBowDamage(ref int phys, ref int fire, ref int cold, ref int pois, ref int nrgy,
ref int chaos, ref int direct)
{
phys = fire = cold = pois = nrgy = direct = 0;
chaos = 100;
}
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 QuiverOfRage : BaseQuiver
{
[Constructible]
public QuiverOfRage()
{
Hue = 0x24C;
WeightReduction = 25;
DamageIncrease = 10;
}
public QuiverOfRage(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075038; // Quiver of Rage
public override void AlterBowDamage(ref int phys, ref int fire, ref int cold, ref int pois, ref int nrgy,
ref int chaos, ref int direct)
{
chaos = direct = 0;
phys = fire = cold = pois = nrgy = 20;
}
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 RaedsGlory : WarCleaver
{
[Constructible]
public RaedsGlory()
{
ItemID = 0x2D23;
Hue = 0x1E6;
Attributes.BonusMana = 8;
Attributes.SpellChanneling = 1;
Attributes.WeaponSpeed = 20;
WeaponAttributes.HitLeechHits = 40;
}
public RaedsGlory(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075036; // Raed's Glory
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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 RighteousAnger : ElvenMachete
{
[Constructible]
public RighteousAnger()
{
Hue = 0x284;
Attributes.AttackChance = 15;
Attributes.DefendChance = 5;
Attributes.WeaponSpeed = 35;
Attributes.WeaponDamage = 40;
}
public RighteousAnger(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075049; // Righteous Anger
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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
{
[Flippable(0x1F03, 0x1F04)]
public class RobeOfTheEclipse : BaseOuterTorso
{
[Constructible]
public RobeOfTheEclipse() : base(0x1F03, 0x486)
{
Weight = 3.0;
Attributes.Luck = 95;
// TODO: Supports arcane?
}
public RobeOfTheEclipse(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075082; // Robe of the Eclipse
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
{
[Flippable(0x1F03, 0x1F04)]
public class RobeOfTheEquinox : BaseOuterTorso
{
[Constructible]
public RobeOfTheEquinox() : base(0x1F04, 0xD6)
{
Weight = 3.0;
Attributes.Luck = 95;
// TODO: Supports arcane?
// TODO: Elves Only
}
public RobeOfTheEquinox(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075042; // Robe of the Equinox
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,48 @@
namespace Server.Items
{
public class SoulSeeker : RadiantScimitar
{
[Constructible]
public SoulSeeker()
{
Hue = 0x38C;
WeaponAttributes.HitLeechStam = 40;
WeaponAttributes.HitLeechMana = 40;
WeaponAttributes.HitLeechHits = 40;
Attributes.WeaponSpeed = 60;
Slayer = SlayerName.Repond;
}
public SoulSeeker(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075046; // Soul Seeker
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
cold = 100;
pois = fire = phys = nrgy = chaos = direct = 0;
}
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,44 @@
namespace Server.Items
{
public class TalonBite : OrnateAxe
{
[Constructible]
public TalonBite()
{
ItemID = 0x2D34;
Hue = 0x47E;
SkillBonuses.SetValues(0, SkillName.Tactics, 10.0);
Attributes.BonusDex = 8;
Attributes.WeaponSpeed = 20;
Attributes.WeaponDamage = 35;
WeaponAttributes.HitHarm = 33;
WeaponAttributes.UseBestSkill = 1;
}
public TalonBite(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075029; // Talon Bite
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,50 @@
using System;
using Server.Mobiles;
namespace Server.Items
{
public class TotemOfVoid : BaseTalisman
{
[Constructible]
public TotemOfVoid() : base(0x2F5B)
{
Hue = 0x2D0;
MaxChargeTime = 1800;
Blessed = GetRandomBlessed();
Protection = GetRandomProtection(false);
Attributes.RegenHits = 2;
Attributes.LowerManaCost = 10;
}
public TotemOfVoid(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075035; // Totem of the Void
public override bool ForceShowName => true;
public override Type GetSummoner()
{
return Utility.RandomBool() ? typeof(SummonedSkeletalKnight) : typeof(SummonedSheep);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0 && (Protection == null || Protection.IsEmpty))
Protection = GetRandomProtection(false);
}
}
}

View file

@ -0,0 +1,46 @@
namespace Server.Items
{
public class WildfireBow : ElvenCompositeLongbow
{
[Constructible]
public WildfireBow()
{
Hue = 0x489;
SkillBonuses.SetValues(0, SkillName.Archery, 10);
WeaponAttributes.ResistFireBonus = 25;
Velocity = 15;
}
public WildfireBow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075044; // Wildfire Bow
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
phys = cold = pois = nrgy = chaos = direct = 0;
fire = 100;
}
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 Windsong : MagicalShortbow
{
[Constructible]
public Windsong()
{
Hue = 0xF7;
Attributes.WeaponDamage = 35;
WeaponAttributes.SelfRepair = 3;
Velocity = 25;
}
public Windsong(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1075031; // Windsong
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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 NightsKiss : Dagger
{
[Constructible]
public NightsKiss()
{
ItemID = 0xF51;
Hue = 0x455;
WeaponAttributes.HitLeechHits = 40;
Slayer = SlayerName.Repond;
Attributes.WeaponSpeed = 30;
Attributes.WeaponDamage = 35;
}
public NightsKiss(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063475;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,48 @@
namespace Server.Items
{
public class NoxRangersHeavyCrossbow : HeavyCrossbow
{
[Constructible]
public NoxRangersHeavyCrossbow()
{
Hue = 0x58C;
WeaponAttributes.HitLeechStam = 40;
Attributes.SpellChanneling = 1;
Attributes.WeaponSpeed = 30;
Attributes.WeaponDamage = 20;
WeaponAttributes.ResistPoisonBonus = 10;
}
public NoxRangersHeavyCrossbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063485;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
pois = 50;
phys = 50;
fire = cold = nrgy = chaos = direct = 0;
}
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,43 @@
namespace Server.Items
{
public class OrcishVisage : OrcHelm
{
[Constructible]
public OrcishVisage()
{
Hue = 0x592;
ArmorAttributes.SelfRepair = 3;
Attributes.BonusStr = 10;
Attributes.BonusStam = 5;
}
public OrcishVisage(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070691;
public override int BasePhysicalResistance => 8;
public override int BaseFireResistance => 5;
public override int BaseColdResistance => 3;
public override int BasePoisonResistance => 3;
public override int BaseEnergyResistance => 5;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,31 @@
namespace Server.Items
{
public class PhillipsWoodenSteed : MonsterStatuette
{
[Constructible]
public PhillipsWoodenSteed() : base(MonsterStatuetteType.PhillipsWoodenSteed)
{
LootType = LootType.Regular;
}
public PhillipsWoodenSteed(Serial serial) : base(serial)
{
}
public override bool ForceShowProperties => ObjectPropertyList.Enabled;
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,50 @@
namespace Server.Items
{
public class PixieSwatter : Scepter
{
[Constructible]
public PixieSwatter()
{
Hue = 0x8A;
WeaponAttributes.HitPoisonArea = 75;
Attributes.WeaponSpeed = 30;
WeaponAttributes.UseBestSkill = 1;
WeaponAttributes.ResistFireBonus = 12;
WeaponAttributes.ResistEnergyBonus = 12;
Slayer = SlayerName.Fey;
}
public PixieSwatter(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070854; // Pixie Swatter
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
fire = 100;
cold = pois = phys = nrgy = chaos = direct = 0;
}
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,51 @@
namespace Server.Items
{
public class PolarBearMask : BearMask
{
[Constructible]
public PolarBearMask()
{
Hue = 0x481;
ClothingAttributes.SelfRepair = 3;
Attributes.RegenHits = 2;
Attributes.NightSight = 1;
}
public PolarBearMask(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070637;
public override int BasePhysicalResistance => 15;
public override int BaseColdResistance => 21;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(2);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 2)
{
Resistances.Physical = 0;
Resistances.Cold = 0;
}
if (Attributes.NightSight == 0)
Attributes.NightSight = 1;
}
}
}

View file

@ -0,0 +1,31 @@
namespace Server.Items
{
public class SeahorseStatuette : MonsterStatuette
{
[Constructible]
public SeahorseStatuette() : base(MonsterStatuetteType.Seahorse)
{
LootType = LootType.Regular;
Hue = Utility.RandomList(0, 0x482, 0x489, 0x495, 0x4F2);
}
public SeahorseStatuette(Serial serial) : base(serial)
{
}
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,50 @@
namespace Server.Items
{
public class ShieldOfInvulnerability : OrderShield
{
[Constructible]
public ShieldOfInvulnerability()
{
Hue = 0x4F2;
Attributes.SpellChanneling = 1;
Attributes.ReflectPhysical = 10;
Attributes.DefendChance = 15;
ArmorAttributes.LowerStatReq = 100;
}
public ShieldOfInvulnerability(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070693;
public override int BasePhysicalResistance => 8;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override bool Validate(Mobile m)
{
return true;
}
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,31 @@
namespace Server.Items
{
public class ShipModelOfTheHMSCape : Item
{
[Constructible]
public ShipModelOfTheHMSCape() : base(0x14F3)
{
Hue = 0x37B;
}
public ShipModelOfTheHMSCape(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063476;
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,39 @@
namespace Server.Items
{
public class StaffOfPower : BlackStaff
{
[Constructible]
public StaffOfPower()
{
Hue = 0x4F2;
WeaponAttributes.MageWeapon = 15;
Attributes.SpellChanneling = 1;
Attributes.SpellDamage = 5;
Attributes.CastRecovery = 2;
Attributes.LowerManaCost = 5;
}
public StaffOfPower(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070692;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,44 @@
namespace Server.Items
{
public class VioletCourage : FemalePlateChest
{
[Constructible]
public VioletCourage()
{
Hue = 0x486;
Attributes.Luck = 95;
Attributes.DefendChance = 15;
ArmorAttributes.LowerStatReq = 100;
ArmorAttributes.MageArmor = 1;
}
public VioletCourage(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1063471;
public override int BasePhysicalResistance => 14;
public override int BaseFireResistance => 12;
public override int BaseColdResistance => 12;
public override int BasePoisonResistance => 8;
public override int BaseEnergyResistance => 9;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
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,46 @@
namespace Server.Items
{
public class WrathOfTheDryad : GnarledStaff
{
[Constructible]
public WrathOfTheDryad()
{
Hue = 0x29C;
WeaponAttributes.HitLeechMana = 50;
WeaponAttributes.HitLightning = 33;
Attributes.AttackChance = 15;
Attributes.WeaponDamage = 40;
}
public WrathOfTheDryad(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1070853; // Wrath of the Dryad
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois,
out int nrgy, out int chaos, out int direct)
{
pois = 100;
cold = fire = phys = nrgy = chaos = direct = 0;
}
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();
}
}
}