fix: Optimizes items to use default weights. (Part 4) (#2243)

This commit is contained in:
Kamron Batman 2025-07-24 23:29:29 -07:00 committed by GitHub
parent 40ba85d7b8
commit fa0b67ec29
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
109 changed files with 250 additions and 391 deletions

View file

@ -20,13 +20,14 @@ public partial class Log : Item, ICommodity, IAxe
public Log(CraftResource resource, int amount) : base(0x1BDD)
{
Stackable = true;
Weight = 2.0;
Amount = amount;
_resource = resource;
Hue = CraftResources.GetHue(resource);
}
public override double DefaultWeight => 2.0;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public CraftResource Resource

View file

@ -9,10 +9,11 @@ public partial class BlankScroll : Item, ICommodity
public BlankScroll(int amount = 1) : base(0xEF3)
{
Stackable = true;
Weight = 1.0;
Amount = amount;
}
public override double DefaultWeight => 1.0;
int ICommodity.DescriptionNumber => LabelNumber;
bool ICommodity.IsDeedable => Core.ML;
}

View file

@ -9,10 +9,11 @@ public partial class Bottle : Item, ICommodity
public Bottle(int amount = 1) : base(0xF0E)
{
Stackable = true;
Weight = 1.0;
Amount = amount;
}
public override double DefaultWeight => 1.0;
int ICommodity.DescriptionNumber => LabelNumber;
bool ICommodity.IsDeedable => Core.ML;
}

View file

@ -16,7 +16,11 @@ public partial class PotionKeg : Item
private PotionEffect _type;
[Constructible]
public PotionKeg() : base(0x1940) => UpdateWeight();
public PotionKeg() : base(0x1940)
{
}
public override double DefaultWeight => 20 + Math.Clamp(_held, 0, 100) * 0.8;
[SerializableProperty(1)]
[CommandProperty(AccessLevel.GameMaster)]
@ -28,7 +32,6 @@ public partial class PotionKeg : Item
if (_held != value)
{
_held = value;
UpdateWeight();
InvalidateProperties();
this.MarkDirty();
}
@ -48,13 +51,6 @@ public partial class PotionKeg : Item
}
}
public virtual void UpdateWeight()
{
var held = Math.Max(0, Math.Min(_held, 100));
Weight = 20 + held * 80 / 100;
}
private void Deserialize(IGenericReader reader, int version)
{
_type = (PotionEffect)reader.ReadInt();

View file

@ -21,10 +21,11 @@ public partial class RecallRune : Item
[Constructible]
public RecallRune() : base(0x1F14)
{
Weight = 1.0;
CalculateHue();
}
public override double DefaultWeight => 1.0;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.Counselor, AccessLevel.GameMaster)]
public BaseHouse House

View file

@ -50,9 +50,10 @@ public abstract partial class BasePotion : Item, ICraftable, ICommodity
_potionEffect = effect;
Stackable = Core.ML;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1041314 + (int)_potionEffect;
public virtual bool RequireFreeHand => true;

View file

@ -60,7 +60,6 @@ public partial class Runebook : Item, ISecurable, ICraftable
[Constructible]
public Runebook(int maxCharges) : base(Core.AOS ? 0x22C5 : 0xEFA)
{
Weight = Core.SE ? 1.0 : 3.0;
LootType = LootType.Blessed;
Hue = 0x461;
@ -72,6 +71,8 @@ public partial class Runebook : Item, ISecurable, ICraftable
_level = SecureLevel.CoOwners;
}
public override double DefaultWeight => Core.SE ? 1.0 : 3.0;
[CommandProperty(AccessLevel.GameMaster)]
public DateTime NextUse { get; set; }

View file

@ -16,12 +16,13 @@ public partial class SpellScroll : Item, ICommodity
public SpellScroll(int spellID, int itemID, int amount = 1) : base(itemID)
{
Stackable = true;
Weight = 1.0;
Amount = amount;
_spellID = spellID;
}
public override double DefaultWeight => 1.0;
int ICommodity.DescriptionNumber => LabelNumber;
bool ICommodity.IsDeedable => Core.ML;

View file

@ -116,7 +116,6 @@ public partial class Spellbook : Item, ICraftable, ISlayer, IAosItem
_attributes = new AosAttributes(this);
_skillBonuses = new AosSkillBonuses(this);
Weight = 3.0;
Layer = Layer.OneHanded;
LootType = LootType.Blessed;
@ -124,6 +123,8 @@ public partial class Spellbook : Item, ICraftable, ISlayer, IAosItem
Content = content;
}
public override double DefaultWeight => 3.0;
public override bool DisplayWeight => false;
public virtual SpellbookType SpellbookType => SpellbookType.Regular;

View file

@ -10,11 +10,9 @@ namespace Server.Items;
public partial class FireHorn : Item
{
[Constructible]
public FireHorn() : base(0xFC7)
{
Hue = 0x466;
Weight = 1.0;
}
public FireHorn() : base(0xFC7) => Hue = 0x466;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1060456; // fire horn

View file

@ -11,9 +11,10 @@ public partial class EggBomb : Item
{
// Item ID should be 0x2809 - Temporary solution for clients 7.0.0.0 and up
Stackable = Core.ML;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1030249;
public override void OnDoubleClick(Mobile from)

View file

@ -26,11 +26,9 @@ public partial class Fukiya : Item, INinjaWeapon
private int _poisonCharges;
[Constructible]
public Fukiya() : base(0x27AA)
{
Weight = 4.0;
Layer = Layer.OneHanded;
}
public Fukiya() : base(0x27AA) => Layer = Layer.OneHanded;
public override double DefaultWeight => 1.0;
public virtual int WrongAmmoMessage => 1063329; // You can only load fukiya darts
public virtual int NoFreeHandMessage => 1063327; // You must have a free hand to use a fukiya.

View file

@ -23,15 +23,9 @@ public partial class FukiyaDarts : Item, ICraftable, INinjaAmmo
private int _poisonCharges;
[Constructible]
public FukiyaDarts(int amount = 1) : base(0x2806)
{
Weight = 1.0;
_usesRemaining = amount;
}
public FukiyaDarts(int amount = 1) : base(0x2806) => _usesRemaining = amount;
public FukiyaDarts(Serial serial) : base(serial)
{
}
public override double DefaultWeight => 1.0;
public int OnCraft(
int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool,

View file

@ -26,11 +26,9 @@ public partial class LeatherNinjaBelt : BaseWaist, INinjaWeapon
private int _poisonCharges;
[Constructible]
public LeatherNinjaBelt() : base(0x2790)
{
Weight = 1.0;
Layer = Layer.Waist;
}
public LeatherNinjaBelt() : base(0x2790) => Layer = Layer.Waist;
public override double DefaultWeight => 1.0;
public override CraftResource DefaultResource => CraftResource.RegularLeather;

View file

@ -24,11 +24,9 @@ public partial class Shuriken : Item, ICraftable, INinjaAmmo
private int _poisonCharges;
[Constructible]
public Shuriken(int amount = 1) : base(0x27AC)
{
Weight = 1.0;
_usesRemaining = amount;
}
public Shuriken(int amount = 1) : base(0x27AC) => _usesRemaining = amount;
public override double DefaultWeight => 1.0;
public int OnCraft(
int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool,

View file

@ -7,11 +7,9 @@ namespace Server.Items;
public partial class SmokeBomb : Item
{
[Constructible]
public SmokeBomb() : base(0x2808)
{
Stackable = Core.ML;
Weight = 1.0;
}
public SmokeBomb() : base(0x2808) => Stackable = Core.ML;
public override double DefaultWeight => 1.0;
public override void OnDoubleClick(Mobile from)
{

View file

@ -7,11 +7,9 @@ namespace Server.Items;
public partial class Sand : Item, ICommodity
{
[Constructible]
public Sand(int amount = 1) : base(0x11EA)
{
Stackable = Core.ML;
Weight = 1.0;
}
public Sand(int amount = 1) : base(0x11EA) => Stackable = Core.ML;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1044626; // sand
int ICommodity.DescriptionNumber => LabelNumber;

View file

@ -25,11 +25,9 @@ namespace Server.Items
private bool _redyable;
[Constructible]
public DyeTub() : base(0xFAB)
{
Weight = 10.0;
_redyable = true;
}
public DyeTub() : base(0xFAB) => _redyable = true;
public override double DefaultWeight => 10.0;
public virtual CustomHuePicker CustomHuePicker => null;

View file

@ -11,6 +11,7 @@ public partial class Axle : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
}

View file

@ -11,6 +11,7 @@ public partial class AxleGears : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
}

View file

@ -11,6 +11,7 @@ public partial class ClockFrame : Item
{
Stackable = true;
Amount = amount;
Weight = 2.0;
}
public override double DefaultWeight => 2.0;
}

View file

@ -11,6 +11,7 @@ public partial class ClockParts : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
}

View file

@ -11,6 +11,7 @@ public partial class Gears : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
}

View file

@ -11,6 +11,7 @@ public partial class Hinge : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
}

View file

@ -11,6 +11,7 @@ public partial class SextantParts : Item
{
Stackable = true;
Amount = amount;
Weight = 2.0;
}
public override double DefaultWeight => 2.0;
}

View file

@ -11,6 +11,7 @@ public partial class Springs : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
}

View file

@ -8,18 +8,12 @@ namespace Server.Items;
public partial class Blowpipe : BaseTool
{
[Constructible]
public Blowpipe() : base(0xE8A)
{
Weight = 4.0;
Hue = 0x3B9;
}
public Blowpipe() : base(0xE8A) => Hue = 0x3B9;
[Constructible]
public Blowpipe(int uses) : base(uses, 0xE8A)
{
Weight = 4.0;
Hue = 0x3B9;
}
public Blowpipe(int uses) : base(uses, 0xE8A) => Hue = 0x3B9;
public override double DefaultWeight => 4.0;
public override CraftSystem CraftSystem => DefGlassblowing.CraftSystem;

View file

@ -7,18 +7,12 @@ namespace Server.Items;
public partial class RunicDovetailSaw : BaseRunicTool
{
[Constructible]
public RunicDovetailSaw(CraftResource resource) : base(resource, 0x1028)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicDovetailSaw(CraftResource resource) : base(resource, 0x1028) => Hue = CraftResources.GetHue(resource);
[Constructible]
public RunicDovetailSaw(CraftResource resource, int uses) : base(resource, uses, 0x1028)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicDovetailSaw(CraftResource resource, int uses) : base(resource, uses, 0x1028) => Hue = CraftResources.GetHue(resource);
public override double DefaultWeight => 2.0;
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;

View file

@ -7,18 +7,12 @@ namespace Server.Items;
public partial class RunicFletcherTool : BaseRunicTool
{
[Constructible]
public RunicFletcherTool(CraftResource resource) : base(resource, 0x1022)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicFletcherTool(CraftResource resource) : base(resource, 0x1022) => Hue = CraftResources.GetHue(resource);
[Constructible]
public RunicFletcherTool(CraftResource resource, int uses) : base(resource, uses, 0x1022)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicFletcherTool(CraftResource resource, int uses) : base(resource, uses, 0x1022) => Hue = CraftResources.GetHue(resource);
public override double DefaultWeight => 2.0;
public override CraftSystem CraftSystem => DefBowFletching.CraftSystem;

View file

@ -10,7 +10,6 @@ public partial class RunicHammer : BaseRunicTool
[Constructible]
public RunicHammer(CraftResource resource) : base(resource, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = CraftResources.GetHue(resource);
}
@ -18,11 +17,12 @@ public partial class RunicHammer : BaseRunicTool
[Constructible]
public RunicHammer(CraftResource resource, int uses) : base(resource, uses, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = CraftResources.GetHue(resource);
}
public override double DefaultWeight => 8.0;
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
public override int LabelNumber

View file

@ -7,18 +7,12 @@ namespace Server.Items;
public partial class RunicSewingKit : BaseRunicTool
{
[Constructible]
public RunicSewingKit(CraftResource resource) : base(resource, 0xF9D)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicSewingKit(CraftResource resource) : base(resource, 0xF9D) => Hue = CraftResources.GetHue(resource);
[Constructible]
public RunicSewingKit(CraftResource resource, int uses) : base(resource, uses, 0xF9D)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicSewingKit(CraftResource resource, int uses) : base(resource, uses, 0xF9D) => Hue = CraftResources.GetHue(resource);
public override double DefaultWeight => 2.0;
public override CraftSystem CraftSystem => DefTailoring.CraftSystem;

View file

@ -8,18 +8,12 @@ namespace Server.Items;
public partial class SmithHammer : BaseTool
{
[Constructible]
public SmithHammer() : base(0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
}
public SmithHammer() : base(0x13E3) => Layer = Layer.OneHanded;
[Constructible]
public SmithHammer(int uses) : base(uses, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
}
public SmithHammer(int uses) : base(uses, 0x13E3) => Layer = Layer.OneHanded;
public override double DefaultWeight => 8.0;
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
}

View file

@ -118,8 +118,6 @@ public partial class DawnsMusicBox : Item, ISecurable
[Constructible]
public DawnsMusicBox() : base(0x2AF9)
{
Weight = 1.0;
var shuffledTracks = GetTracks(DawnsMusicRarity.Common);
shuffledTracks.Shuffle();
@ -132,6 +130,8 @@ public partial class DawnsMusicBox : Item, ISecurable
];
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1075198; // Dawn's Music Box
public override void OnAfterDuped(Item newItem)

View file

@ -17,11 +17,9 @@ public partial class DawnsMusicGear : Item
}
[Constructible]
public DawnsMusicGear(MusicName music) : base(0x1053)
{
_music = music;
Weight = 1.0;
}
public DawnsMusicGear(MusicName music) : base(0x1053) => _music = music;
public override double DefaultWeight => 1.0;
public static DawnsMusicGear RandomCommon => new(DawnsMusicBox.RandomTrack(DawnsMusicRarity.Common));

View file

@ -9,7 +9,6 @@ public partial class DupresShield : BaseShield
public DupresShield() : base(0x2B01)
{
LootType = LootType.Blessed;
Weight = 6.0;
Attributes.BonusHits = 5;
Attributes.RegenHits = 1;
@ -17,6 +16,8 @@ public partial class DupresShield : BaseShield
SkillBonuses.SetValues(0, SkillName.Parry, 5);
}
public override double DefaultWeight => 6.0;
public override int LabelNumber => 1075196; // Dupre's Shield
public override int BasePhysicalResistance => 1;

View file

@ -9,7 +9,6 @@ public partial class QuiverOfInfinity : BaseQuiver
public QuiverOfInfinity() : base(0x2B02)
{
LootType = LootType.Blessed;
Weight = 8.0;
WeightReduction = 30;
LowerAmmoCost = 20;
@ -17,5 +16,7 @@ public partial class QuiverOfInfinity : BaseQuiver
Attributes.DefendChance = 5;
}
public override double DefaultWeight => 8.0;
public override int LabelNumber => 1075201; // Quiver of Infinity
}

View file

@ -20,9 +20,10 @@ public partial class BaseFormTalisman : Item
{
LootType = LootType.Blessed;
Layer = Layer.Talisman;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
public virtual TalismanForm Form => TalismanForm.Squirrel;
public override void AddNameProperty(IPropertyList list)

View file

@ -7,11 +7,9 @@ namespace Server.Items;
public partial class HoodedShroudOfShadows : BaseOuterTorso
{
[Constructible]
public HoodedShroudOfShadows(int hue = 0x455) : base(0x2684, hue)
{
LootType = LootType.Blessed;
Weight = 3.0;
}
public HoodedShroudOfShadows(int hue = 0x455) : base(0x2684, hue) => LootType = LootType.Blessed;
public override double DefaultWeight => 3.0;
public override bool Dye(Mobile from, DyeTub sender)
{

View file

@ -13,11 +13,12 @@ public partial class AncientSmithyHammer : BaseTool
public AncientSmithyHammer(int bonus, int uses = 600) : base(uses, 0x13E4)
{
_bonus = bonus;
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = 0x482;
}
public override double DefaultWeight => 8.0;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public int Bonus

View file

@ -13,6 +13,7 @@ public partial class ColoredAnvil : Item
{
// TODO: Color weighted by rarity?
Hue = CraftResources.GetRandomResource(CraftResource.DullCopper, CraftResource.Valorite)?.Hue ?? 0;
Weight = 20;
}
public override double DefaultWeight => 20.0;
}

View file

@ -15,11 +15,12 @@ public partial class PowderOfTemperament : Item, IUsesRemaining
[Constructible]
public PowderOfTemperament(int charges = 10) : base(4102)
{
Weight = 1.0;
Hue = 2419;
UsesRemaining = charges;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1049082; // powder of fortifying
bool IUsesRemaining.ShowUsesRemaining

View file

@ -11,11 +11,9 @@ public partial class JesterHatofChuckles : BaseHat
}
[Constructible]
public JesterHatofChuckles(int hue) : base(0x171C, hue)
{
Attributes.Luck = 150;
Weight = 1.0;
}
public JesterHatofChuckles(int hue) : base(0x171C, hue) => Attributes.Luck = 150;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1073256; // Jester Hat of Chuckles - Museum of Vesper Replica 1073256

View file

@ -26,13 +26,13 @@ public partial class RoseOfTrinsic : Item, ISecurable
[Constructible]
public RoseOfTrinsic() : base(0x234D)
{
Weight = 1.0;
LootType = LootType.Blessed;
_petals = 0;
StartSpawnTimer(TimeSpan.FromMinutes(1.0));
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1062913; // Rose of Trinsic
public override void OnAfterDuped(Item newItem)
@ -156,11 +156,11 @@ public partial class RoseOfTrinsicPetal : Item
{
Stackable = true;
Amount = amount;
Weight = 1.0;
Hue = 0xE;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1062926; // Petal of the Rose of Trinsic
public override void OnDoubleClick(Mobile from)

View file

@ -9,7 +9,6 @@ public partial class SamuraiHelm : BaseArmor
[Constructible]
public SamuraiHelm() : base(0x236C)
{
Weight = 5.0;
LootType = LootType.Blessed;
Attributes.DefendChance = 15;
@ -18,6 +17,8 @@ public partial class SamuraiHelm : BaseArmor
ArmorAttributes.MageArmor = 1;
}
public override double DefaultWeight => 5.0;
public override int LabelNumber => 1062923; // Ancient Samurai Helm
public override int BasePhysicalResistance => 15;

View file

@ -7,12 +7,9 @@ namespace Server.Items;
public partial class HeritageToken : Item
{
[Constructible]
public HeritageToken() : base(0x367A)
{
LootType = LootType.Blessed;
Weight = 5.0;
}
public HeritageToken() : base(0x367A) => LootType = LootType.Blessed;
public override double DefaultWeight => 5.0;
public override int LabelNumber => 1076596; // A Heritage Token
public override void OnDoubleClick(Mobile from)

View file

@ -13,9 +13,7 @@ public partial class GiftBox : BaseContainer
}
[Constructible]
public GiftBox(int hue) : base(Utility.Random(0x232A, 2))
{
Weight = 2.0;
Hue = hue;
}
public GiftBox(int hue) : base(Utility.Random(0x232A, 2)) => Hue = hue;
public override double DefaultWeight => 2.0;
}

View file

@ -87,13 +87,14 @@ public partial class Snowman : Item, IDyable
[Constructible]
public Snowman(int hue, string title) : base(Utility.Random(0x2328, 2))
{
Weight = 10.0;
Hue = hue;
LootType = LootType.Blessed;
_title = title;
}
public override double DefaultWeight => 10.0;
public bool Dye(Mobile from, DyeTub sender)
{
if (Deleted)

View file

@ -165,11 +165,12 @@ public partial class WreathDeed : Item
[Constructible]
public WreathDeed(int hue) : base(0x14F0)
{
Weight = 1.0;
Hue = hue;
LootType = LootType.Blessed;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1062837; // holiday wreath deed
public override void OnDoubleClick(Mobile from)

View file

@ -74,11 +74,11 @@ public partial class MiniHouseDeed : BaseAddonDeed
public MiniHouseDeed(MiniHouseType type = MiniHouseType.StoneAndPlaster)
{
_type = type;
Weight = 1.0;
LootType = LootType.Blessed;
}
public override double DefaultWeight => 1.0;
public override BaseAddon Addon => new MiniHouseAddon(_type);
public override int LabelNumber => 1062096; // a mini house deed

View file

@ -6,11 +6,9 @@ namespace Server.Items;
public partial class PlagueBeastGland : Item
{
[Constructible]
public PlagueBeastGland() : base(0x1CEF)
{
Weight = 1.0;
Hue = 0x6;
}
public PlagueBeastGland() : base(0x1CEF) => Hue = 0x6;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1153759; // a healthy gland
}

View file

@ -10,9 +10,10 @@ public partial class PlagueBeastInnard : Item, IScissorable, ICarvable
{
Hue = hue;
Movable = false;
Weight = 1.0;
}
public override double DefaultWeight => 1.0;
public PlagueBeastLord Owner => RootParent as PlagueBeastLord;
public override string DefaultName => "plague beast innards";

View file

@ -15,10 +15,11 @@ public partial class PlagueBeastMutationCore : Item, IScissorable
public PlagueBeastMutationCore() : base(0x1CF0)
{
_cut = true;
Weight = 1.0;
Hue = 0x480;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1153760; // a plague beast mutation core
public virtual bool Scissor(Mobile from, Scissors scissors)

View file

@ -9,7 +9,6 @@ public partial class RewardCake : Item
public RewardCake() : base(0x9e9)
{
Stackable = false;
Weight = 1.0;
Hue = Utility.RandomList(
0x135,
0xcd,
@ -31,6 +30,8 @@ public partial class RewardCake : Item
LootType = LootType.Blessed;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1049786; // Happy Birthday! ...
public override bool DisplayLootType => false;

View file

@ -27,12 +27,12 @@ public partial class BagOfSending : Item, TranslocationItem
[Constructible]
public BagOfSending(BagOfSendingHue hue) : base(0xE76)
{
Weight = 2.0;
BagOfSendingHue = hue;
_charges = Utility.RandomMinMax(3, 9);
}
public override double DefaultWeight => 2.0;
public override int LabelNumber => 1054104; // a bag of sending
[SerializableProperty(0)]

View file

@ -21,13 +21,14 @@ public partial class BallOfSummoning : Item, TranslocationItem
[Constructible]
public BallOfSummoning() : base(0xE2E)
{
Weight = 10.0;
Light = LightType.Circle150;
_charges = Utility.RandomMinMax(3, 9);
_petName = null;
}
public override double DefaultWeight => 10.0;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public int Recharges

View file

@ -23,11 +23,9 @@ public partial class BraceletOfBinding : BaseBracelet, TranslocationItem
private TransportTimer _timer;
[Constructible]
public BraceletOfBinding() : base(0x1086)
{
Hue = 0x489;
Weight = 1.0;
}
public BraceletOfBinding() : base(0x1086) => Hue = 0x489;
public override double DefaultWeight => 1.0;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]

View file

@ -19,10 +19,11 @@ public partial class PowderOfTranslocation : Item
public PowderOfTranslocation(int amount = 1) : base(0x26B8)
{
Stackable = true;
Weight = 0.1;
Amount = amount;
}
public override double DefaultWeight => 0.1;
public override void OnDoubleClick(Mobile from)
{
if (from.InRange(GetWorldLocation(), 2))

View file

@ -9,10 +9,11 @@ public partial class ZoogiFungus : Item, ICommodity
public ZoogiFungus(int amount = 1) : base(0x26B7)
{
Stackable = true;
Weight = 0.1;
Amount = amount;
}
public override double DefaultWeight => 0.1;
int ICommodity.DescriptionNumber => LabelNumber;
bool ICommodity.IsDeedable => Core.ML;
}

View file

@ -20,12 +20,13 @@ public abstract partial class SpecialScroll : Item
public SpecialScroll(SkillName skill, double value) : base(0x14F0)
{
LootType = LootType.Cursed;
Weight = 1.0;
_skill = skill;
_value = value;
}
public override double DefaultWeight => 1.0;
public abstract int Message { get; }
public virtual int Title => 0;
public abstract string DefaultTitle { get; }

View file

@ -100,12 +100,9 @@ public partial class BannerDeed : Item, IRewardItem
private bool _isRewardItem;
[Constructible]
public BannerDeed() : base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public BannerDeed() : base(0x14F0) => LootType = LootType.Blessed;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1041007; // a banner deed
public override void GetProperties(IPropertyList list)

View file

@ -25,11 +25,9 @@ public partial class RewardBrazier : Item, IRewardItem
}
[Constructible]
public RewardBrazier(int itemID) : base(itemID)
{
LootType = LootType.Blessed;
Weight = 10.0;
}
public RewardBrazier(int itemID) : base(itemID) => LootType = LootType.Blessed;
public override double DefaultWeight => 10.0;
public override bool ForceShowProperties => ObjectPropertyList.Enabled;
@ -115,11 +113,9 @@ public partial class RewardBrazierDeed : Item, IRewardItem
private bool _isRewardItem;
[Constructible]
public RewardBrazierDeed() : base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public RewardBrazierDeed() : base(0x14F0) => LootType = LootType.Blessed;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1080527; // Brazier Deed

View file

@ -13,12 +13,9 @@ public partial class CommodityDeedBox : BaseContainer, IRewardItem
private bool _isRewardItem;
[Constructible]
public CommodityDeedBox() : base(0x9AA)
{
Hue = 0x47;
Weight = 4.0;
}
public CommodityDeedBox() : base(0x9AA) => Hue = 0x47;
public override double DefaultWeight => 4.0;
public override int LabelNumber => 1080523; // Commodity Deed Box
public override int DefaultGumpID => 0x43;

View file

@ -84,12 +84,9 @@ public partial class DecorativeShieldDeed : Item, IRewardItem
private bool _isRewardItem;
[Constructible]
public DecorativeShieldDeed() : base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public DecorativeShieldDeed() : base(0x14F0) => LootType = LootType.Blessed;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1049771; // deed for a decorative shield wall hanging
public override void GetProperties(IPropertyList list)

View file

@ -98,12 +98,9 @@ public partial class FlamingHeadDeed : Item, IRewardItem
private bool _isRewardItem;
[Constructible]
public FlamingHeadDeed() : base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public FlamingHeadDeed() : base(0x14F0) => LootType = LootType.Blessed;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1041050; // a flaming head deed
public override void GetProperties(IPropertyList list)

View file

@ -88,12 +88,9 @@ public partial class HangingSkeletonDeed : Item, IRewardItem
private bool _isRewardItem;
[Constructible]
public HangingSkeletonDeed() : base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public HangingSkeletonDeed() : base(0x14F0) => LootType = LootType.Blessed;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1049772; // deed for a hanging skeleton decoration
public override void GetProperties(IPropertyList list)

View file

@ -37,12 +37,9 @@ public partial class PottedCactusDeed : Item, IRewardItem
private bool _isRewardItem;
[Constructible]
public PottedCactusDeed() : base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public PottedCactusDeed() : base(0x14F0) => LootType = LootType.Blessed;
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1080407; // Potted Cactus Deed
public override void OnDoubleClick(Mobile from)

View file

@ -24,11 +24,11 @@ public partial class WeaponEngravingTool : Item, IUsesRemaining, IRewardItem
public WeaponEngravingTool(int uses = 10) : base(0x32F8)
{
LootType = LootType.Blessed;
Weight = 1.0;
_usesRemaining = uses;
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1076158; // Weapon Engraving Tool
public bool ShowUsesRemaining

View file

@ -8,7 +8,6 @@ public abstract partial class BaseSuit : Item
public BaseSuit(AccessLevel level, int hue, int itemID) : base(itemID)
{
Hue = hue;
Weight = 1.0;
Movable = false;
LootType = LootType.Newbied;
Layer = Layer.OuterTorso;
@ -16,6 +15,8 @@ public abstract partial class BaseSuit : Item
_accessLevel = level;
}
public override double DefaultWeight => 1.0;
[SerializableProperty(0)]
public AccessLevel AccessLevel
{

View file

@ -271,7 +271,6 @@ public partial class BaseTalisman : Item, IAosItem
public BaseTalisman(int itemID) : base(itemID)
{
Layer = Layer.Talisman;
Weight = 1.0;
_protection = new TalismanAttribute();
_killer = new TalismanAttribute();
@ -280,6 +279,8 @@ public partial class BaseTalisman : Item, IAosItem
SkillBonuses = new AosSkillBonuses(this);
}
public override double DefaultWeight => 1.0;
public override int LabelNumber => 1071023; // Talisman
public virtual bool ForceShowName => false; // used to override default summoner/removal name

View file

@ -38,7 +38,6 @@ public abstract partial class BaseWand : BaseBashing
public BaseWand(WandEffect effect, int minCharges, int maxCharges) : base(0xDF2 + Utility.Random(4))
{
Weight = 1.0;
_wandEffect = effect;
_charges = Utility.RandomMinMax(minCharges, maxCharges);
Attributes.SpellChanneling = 1;
@ -47,6 +46,8 @@ public abstract partial class BaseWand : BaseBashing
Resource = CraftResource.None;
}
public override double DefaultWeight => 1.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Dismount;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class BattleAxe : BaseAxe
{
[Constructible]
public BattleAxe() : base(0xF47)
{
Weight = 4.0;
Layer = Layer.TwoHanded;
}
public BattleAxe() : base(0xF47) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 4.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;

View file

@ -12,11 +12,11 @@ namespace Server.Items
[Constructible]
public Pickaxe() : base(0xE86)
{
Weight = 11.0;
UsesRemaining = 50;
ShowUsesRemaining = true;
}
public override double DefaultWeight => 11.0;
public override HarvestSystem HarvestSystem => Mining.System;
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;

View file

@ -10,11 +10,9 @@ namespace Server.Items;
public partial class ThrowingDagger : Item
{
[Constructible]
public ThrowingDagger() : base(0xF52)
{
Weight = 1.0;
Layer = Layer.OneHanded;
}
public ThrowingDagger() : base(0xF52) => Layer = Layer.OneHanded;
public override double DefaultWeight => 1.0;
public override string DefaultName => "a throwing dagger";

View file

@ -8,11 +8,9 @@ namespace Server.Items
public partial class ElvenCompositeLongbow : BaseRanged
{
[Constructible]
public ElvenCompositeLongbow() : base(0x2D1E)
{
Weight = 8.0;
Resource = CraftResource.RegularWood;
}
public ElvenCompositeLongbow() : base(0x2D1E) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 8.0;
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class ElvenSpellblade : BaseKnife
{
[Constructible]
public ElvenSpellblade() : base(0x2D20)
{
Weight = 5.0;
Layer = Layer.TwoHanded;
}
public ElvenSpellblade() : base(0x2D20) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 5.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.PsychicAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.BleedAttack;

View file

@ -8,12 +8,9 @@ namespace Server.Items
public partial class MagicalShortbow : BaseRanged
{
[Constructible]
public MagicalShortbow() : base(0x2D2B)
{
Weight = 6.0;
Resource = CraftResource.RegularWood;
}
public MagicalShortbow() : base(0x2D2B) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 6.0;
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class OrnateAxe : BaseAxe
{
[Constructible]
public OrnateAxe() : base(0x2D28)
{
Weight = 12.0;
Layer = Layer.TwoHanded;
}
public OrnateAxe() : base(0x2D28) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 12.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Disarm;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class RuneBlade : BaseSword
{
[Constructible]
public RuneBlade() : base(0x2D32)
{
Weight = 7.0;
Layer = Layer.TwoHanded;
}
public RuneBlade() : base(0x2D32) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 7.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Disarm;
public override WeaponAbility SecondaryAbility => WeaponAbility.Bladeweave;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class WildStaff : BaseStaff
{
[Constructible]
public WildStaff() : base(0x2D25)
{
Weight = 8.0;
Resource = CraftResource.RegularWood;
}
public WildStaff() : base(0x2D25) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 8.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Block;
public override WeaponAbility SecondaryAbility => WeaponAbility.ForceOfNature;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class HammerPick : BaseBashing
{
[Constructible]
public HammerPick() : base(0x143D)
{
Weight = 9.0;
Layer = Layer.OneHanded;
}
public HammerPick() : base(0x143D) => Layer = Layer.OneHanded;
public override double DefaultWeight => 9.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class WarHammer : BaseBashing
{
[Constructible]
public WarHammer() : base(0x1439)
{
Weight = 10.0;
Layer = Layer.TwoHanded;
}
public WarHammer() : base(0x1439) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 10.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;

View file

@ -10,11 +10,11 @@ namespace Server.Items
[Constructible]
public Bow() : base(0x13B2)
{
Weight = 6.0;
Layer = Layer.TwoHanded;
Resource = CraftResource.RegularWood;
}
public override double DefaultWeight => 6.0;
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();

View file

@ -8,12 +8,9 @@ namespace Server.Items
public partial class CompositeBow : BaseRanged
{
[Constructible]
public CompositeBow() : base(0x26C2)
{
Weight = 5.0;
Resource = CraftResource.RegularWood;
}
public CompositeBow() : base(0x26C2) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 5.0;
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();

View file

@ -10,11 +10,11 @@ namespace Server.Items
[Constructible]
public Crossbow() : base(0xF50)
{
Weight = 7.0;
Layer = Layer.TwoHanded;
Resource = CraftResource.RegularWood;
}
public override double DefaultWeight => 7.0;
public override int EffectID => 0x1BFE;
public override Type AmmoType => typeof(Bolt);
public override Item Ammo => new Bolt();

View file

@ -10,11 +10,11 @@ namespace Server.Items
[Constructible]
public HeavyCrossbow() : base(0x13FD)
{
Weight = 9.0;
Layer = Layer.TwoHanded;
Resource = CraftResource.RegularWood;
}
public override double DefaultWeight => 9.0;
public override int EffectID => 0x1BFE;
public override Type AmmoType => typeof(Bolt);
public override Item Ammo => new Bolt();

View file

@ -8,12 +8,9 @@ namespace Server.Items
public partial class RepeatingCrossbow : BaseRanged
{
[Constructible]
public RepeatingCrossbow() : base(0x26C3)
{
Weight = 6.0;
Resource = CraftResource.RegularWood;
}
public RepeatingCrossbow() : base(0x26C3) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 6.0;
public override int EffectID => 0x1BFE;
public override Type AmmoType => typeof(Bolt);
public override Item Ammo => new Bolt();

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class Daisho : BaseSword
{
[Constructible]
public Daisho() : base(0x27A9)
{
Weight = 8.0;
Layer = Layer.TwoHanded;
}
public Daisho() : base(0x27A9) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 8.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Feint;
public override WeaponAbility SecondaryAbility => WeaponAbility.DoubleStrike;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class Kama : BaseKnife
{
[Constructible]
public Kama() : base(0x27AD)
{
Weight = 7.0;
Layer = Layer.TwoHanded;
}
public Kama() : base(0x27AD) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 7.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.DefenseMastery;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class Lajatang : BaseKnife
{
[Constructible]
public Lajatang() : base(0x27A7)
{
Weight = 12.0;
Layer = Layer.TwoHanded;
}
public Lajatang() : base(0x27A7) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 12.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.DefenseMastery;
public override WeaponAbility SecondaryAbility => WeaponAbility.FrenziedWhirlwind;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class NoDachi : BaseSword
{
[Constructible]
public NoDachi() : base(0x27A2)
{
Weight = 10.0;
Layer = Layer.TwoHanded;
}
public NoDachi() : base(0x27A2) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 10.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.RidingSwipe;

View file

@ -7,11 +7,9 @@ namespace Server.Items
public partial class Sai : BaseKnife
{
[Constructible]
public Sai() : base(0x27AF)
{
Weight = 7.0;
Layer = Layer.TwoHanded;
}
public Sai() : base(0x27AF) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 7.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Block;
public override WeaponAbility SecondaryAbility => WeaponAbility.ArmorPierce;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class Tekagi : BaseKnife
{
[Constructible]
public Tekagi() : base(0x27AB)
{
Weight = 5.0;
Layer = Layer.TwoHanded;
}
public Tekagi() : base(0x27AB) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 5.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.DualWield;
public override WeaponAbility SecondaryAbility => WeaponAbility.TalonStrike;

View file

@ -7,11 +7,9 @@ namespace Server.Items
public partial class Tessen : BaseBashing
{
[Constructible]
public Tessen() : base(0x27A3)
{
Weight = 6.0;
Layer = Layer.TwoHanded;
}
public Tessen() : base(0x27A3) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 6.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.Feint;
public override WeaponAbility SecondaryAbility => WeaponAbility.Block;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class Tetsubo : BaseBashing
{
[Constructible]
public Tetsubo() : base(0x27A6)
{
Weight = 8.0;
Layer = Layer.TwoHanded;
}
public Tetsubo() : base(0x27A6) => Layer = Layer.TwoHanded;
public override double DefaultWeight => 8.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.FrenziedWhirlwind;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class Wakizashi : BaseSword
{
[Constructible]
public Wakizashi() : base(0x27A4)
{
Weight = 5.0;
Layer = Layer.OneHanded;
}
public Wakizashi() : base(0x27A4) => Layer = Layer.OneHanded;
public override double DefaultWeight => 5.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.FrenziedWhirlwind;
public override WeaponAbility SecondaryAbility => WeaponAbility.DoubleStrike;

View file

@ -10,11 +10,11 @@ namespace Server.Items
[Constructible]
public Yumi() : base(0x27A5)
{
Weight = 9.0;
Layer = Layer.TwoHanded;
Resource = CraftResource.RegularWood;
}
public override double DefaultWeight => 9.0;
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();

View file

@ -7,11 +7,9 @@ namespace Server.Items
public partial class TribalSpear : BaseSpear
{
[Constructible]
public TribalSpear() : base(0xF62)
{
Weight = 7.0;
Hue = 837;
}
public TribalSpear() : base(0xF62) => Hue = 837;
public override double DefaultWeight => 7.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class GlassStaff : BaseStaff
{
[Constructible]
public GlassStaff() : base(0x905)
{
Weight = 4.0;
Resource = CraftResource.None;
}
public GlassStaff() : base(0x905) => Resource = CraftResource.None;
public override double DefaultWeight => 4.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
public override int AosStrengthReq => 20;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class GnarledStaff : BaseStaff
{
[Constructible]
public GnarledStaff() : base(0x13F8)
{
Weight = 3.0;
Resource = CraftResource.RegularWood;
}
public GnarledStaff() : base(0x13F8) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 3.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.ConcussionBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.ForceOfNature;

View file

@ -7,12 +7,9 @@ namespace Server.Items
public partial class QuarterStaff : BaseStaff
{
[Constructible]
public QuarterStaff() : base(0xE89)
{
Weight = 4.0;
Resource = CraftResource.RegularWood;
}
public QuarterStaff() : base(0xE89) => Resource = CraftResource.RegularWood;
public override double DefaultWeight => 4.0;
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;

Some files were not shown because too many files have changed in this diff Show more