#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.

This commit is contained in:
WarrentyExpired 2026-08-06 11:06:05 -04:00
parent b51c58f514
commit 3045c83799
3512 changed files with 627673 additions and 0 deletions

View file

@ -0,0 +1,59 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class AegisOfGrace : DragonHelm
{
public override int LabelNumber{ get{ return 1075047; } } // Aegis of Grace
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 9; } }
public override int BaseColdResistance{ get{ return 7; } }
public override int BasePoisonResistance{ get{ return 7; } }
public override int BaseEnergyResistance{ get{ return 15; } }
public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Dragon; } }
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public AegisOfGrace()
{
SkillBonuses.SetValues( 0, SkillName.MagicResist, 10.0 );
Attributes.DefendChance = 20;
ArmorAttributes.SelfRepair = 2;
}
public override Race RequiredRace
{
get
{
return Race.Elf;
}
}
public AegisOfGrace( 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,44 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class BladeDance : RuneBlade
{
public override int LabelNumber{ get{ return 1075033; } } // Blade Dance
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
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 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 @@
using System;
using Server;
namespace Server.Items
{
public class BloodwoodSpirit : BaseTalisman
{
public override int LabelNumber{ get{ return 1075034; } } // Bloodwood Spirit
public override bool ForceShowName{ get{ return true; } }
[Constructable]
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 void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 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,44 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class Bonesmasher : DiamondMace
{
public override int LabelNumber{ get{ return 1075030; } } // Bonesmasher
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
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 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,49 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class Boomstick : WildStaff
{
public override int LabelNumber{ get{ return 1075032; } } // Boomstick
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public Boomstick() : base()
{
Hue = 0x25;
Attributes.SpellChanneling = 1;
Attributes.RegenMana = 3;
Attributes.CastSpeed = 1;
Attributes.LowerRegCost = 20;
}
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 Boomstick( 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,54 @@
using System;
using Server;
namespace Server.Items
{
public class BrightsightLenses : ElvenGlasses
{
public override int LabelNumber{ get{ return 1075039; } } // Brightsight Lenses
public override int BasePhysicalResistance{ get{ return 9; } }
public override int BaseFireResistance{ get{ return 29; } }
public override int BaseColdResistance{ get{ return 7; } }
public override int BasePoisonResistance{ get{ return 8; } }
public override int BaseEnergyResistance{ get{ return 7; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public BrightsightLenses() : base()
{
Hue = 0x501;
Attributes.NightSight = 1;
Attributes.RegenMana = 3;
ArmorAttributes.SelfRepair = 3;
}
public BrightsightLenses( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 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,50 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class FeyLeggings : ChainLegs
{
public override int LabelNumber{ get{ return 1075041; } } // Fey Leggings
public override int BasePhysicalResistance{ get{ return 12; } }
public override int BaseFireResistance{ get{ return 8; } }
public override int BaseColdResistance{ get{ return 7; } }
public override int BasePoisonResistance{ get{ return 4; } }
public override int BaseEnergyResistance{ get{ return 19; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get { return 255; } }
[Constructable]
public FeyLeggings()
{
Attributes.BonusHits = 6;
Attributes.DefendChance = 20;
ArmorAttributes.MageArmor = 1;
}
public override Race RequiredRace { get { return Race.Elf; } }
public FeyLeggings( 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,47 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class FleshRipper : AssassinSpike
{
public override int LabelNumber{ get{ return 1075045; } } // Flesh Ripper
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
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 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 @@
using System;
using Server;
namespace Server.Items
{
public class HelmOfSwiftness : WingedHelm
{
public override int LabelNumber{ get{ return 1075037; } } // Helm of Swiftness
public override int BasePhysicalResistance{ get{ return 6; } }
public override int BaseFireResistance{ get{ return 5; } }
public override int BaseColdResistance{ get{ return 6; } }
public override int BasePoisonResistance{ get{ return 6; } }
public override int BaseEnergyResistance{ get{ return 8; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public HelmOfSwiftness() : base()
{
Hue = 0x592;
Attributes.BonusInt = 5;
Attributes.CastSpeed = 1;
Attributes.CastRecovery = 2;
ArmorAttributes.MageArmor = 1;
}
public HelmOfSwiftness( 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,43 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class MelisandesCorrodedHatchet : Hatchet
{
public override int LabelNumber{ get{ return 1072115; } } // Melisande's Corroded Hatchet
[Constructable]
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 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 @@
using System;
using Server;
namespace Server.Items
{
public class PadsOfTheCuSidhe : FurBoots
{
public override int LabelNumber{ get{ return 1075048; } } // Pads of the Cu Sidhe
[Constructable]
public PadsOfTheCuSidhe() : base( 0x47E )
{
}
public PadsOfTheCuSidhe( 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,41 @@
using System;
using Server;
namespace Server.Items
{
public class QuiverOfElements : BaseQuiver
{
public override int LabelNumber{ get{ return 1075040; } } // Quiver of the Elements
[Constructable]
public QuiverOfElements() : base()
{
Hue = 0xEB;
WeightReduction = 50;
}
public QuiverOfElements( Serial serial ) : base( serial )
{
}
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,43 @@
using System;
using Server;
namespace Server.Items
{
public class QuiverOfRage : BaseQuiver
{
public override int LabelNumber{ get{ return 1075038; } } // Quiver of Rage
[Constructable]
public QuiverOfRage() : base()
{
Hue = 0x24C;
WeightReduction = 25;
DamageIncrease = 10;
}
public QuiverOfRage( Serial serial ) : base( serial )
{
}
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,45 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class RaedsGlory : WarCleaver
{
public override int LabelNumber{ get{ return 1075036; } } // Raed's Glory
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
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 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 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class RighteousAnger : ElvenMachete
{
public override int LabelNumber{ get{ return 1075049; } } // Righteous Anger
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public RighteousAnger()
{
Hue = 0x284;
Attributes.AttackChance = 15;
Attributes.DefendChance = 5;
Attributes.WeaponSpeed = 35;
Attributes.WeaponDamage = 40;
}
public RighteousAnger( 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,39 @@
using System;
using Server;
namespace Server.Items
{
[Flipable( 0x1F03, 0x1F04 )]
public class RobeOfTheEclipse : BaseOuterTorso
{
public override int LabelNumber{ get{ return 1075082; } } // Robe of the Eclipse
[Constructable]
public RobeOfTheEclipse() : base( 0x1F03, 0x486 )
{
Weight = 3.0;
Attributes.Luck = 95;
// TODO: Supports arcane?
}
public RobeOfTheEclipse( 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,40 @@
using System;
using Server;
namespace Server.Items
{
[Flipable( 0x1F03, 0x1F04 )]
public class RobeOfTheEquinox : BaseOuterTorso
{
public override int LabelNumber{ get{ return 1075042; } } // Robe of the Equinox
[Constructable]
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 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 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class SoulSeeker : RadiantScimitar
{
public override int LabelNumber{ get{ return 1075046; } } // Soul Seeker
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public SoulSeeker()
{
Hue = 0x38C;
WeaponAttributes.HitLeechStam = 40;
WeaponAttributes.HitLeechMana = 40;
WeaponAttributes.HitLeechHits = 40;
Attributes.WeaponSpeed = 60;
Slayer = SlayerName.Repond;
}
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 SoulSeeker( 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,48 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class TalonBite : OrnateAxe
{
public override int LabelNumber{ get{ return 1075029; } } // Talon Bite
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
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 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 @@
using System;
using Server;
using Server.Mobiles;
namespace Server.Items
{
public class TotemOfVoid : BaseTalisman
{
public override int LabelNumber{ get{ return 1075035; } } // Totem of the Void
public override bool ForceShowName{ get{ return true; } }
[Constructable]
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 Type GetSummoner()
{
return Utility.RandomBool() ? typeof( SummonedSkeletalKnight ) : typeof( SummonedSheep );
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 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,48 @@
using System;
using Server;
namespace Server.Items
{
public class WildfireBow : ElvenCompositeLongbow
{
public override int LabelNumber{ get{ return 1075044; } } // Wildfire Bow
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public WildfireBow() : base()
{
Hue = 0x489;
SkillBonuses.SetValues( 0, SkillName.Archery, 10 );
WeaponAttributes.ResistFireBonus = 25;
Velocity = 15;
}
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 WildfireBow( 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,42 @@
using System;
using Server;
namespace Server.Items
{
public class Windsong : MagicalShortbow
{
public override int LabelNumber{ get{ return 1075031; } } // Windsong
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public Windsong() : base()
{
Hue = 0xF7;
Attributes.WeaponDamage = 35;
WeaponAttributes.SelfRepair = 3;
Velocity = 25;
}
public Windsong( 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();
}
}
}