ModernUO/Projects/UOContent/Spells/Spellweaving/Items/ArcaneFocus.cs
Kamron Batman 910e06767b
fix: Optimizes TextDefinition to eliminate allocations. Removes TextDefinition ctor. (#1221)
### BREAKING CHANGE ###
The constructor for `TextDefinition` has been removed. Instead use `TextDefinition.Of()` or cast the integer/string to TextDefinition.
2022-10-30 16:53:23 -07:00

60 lines
1.6 KiB
C#

using System;
namespace Server.Items
{
public class ArcaneFocus : TransientItem
{
[Constructible]
public ArcaneFocus()
: this(TimeSpan.FromHours(1), 1)
{
}
[Constructible]
public ArcaneFocus(int lifeSpan, int strengthBonus)
: this(TimeSpan.FromSeconds(lifeSpan), strengthBonus)
{
}
public ArcaneFocus(TimeSpan lifeSpan, int strengthBonus) : base(0x3155, lifeSpan)
{
LootType = LootType.Blessed;
StrengthBonus = strengthBonus;
}
public ArcaneFocus(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1032629; // Arcane Focus
[CommandProperty(AccessLevel.GameMaster)]
public int StrengthBonus { get; set; }
public override TextDefinition InvalidTransferMessage { get; } = 1073480; // Your arcane focus disappears.
public override bool Nontransferable => true;
public override void GetProperties(IPropertyList list)
{
base.GetProperties(list);
list.Add(1060485, StrengthBonus); // strength bonus ~1_val~
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
writer.Write(StrengthBonus);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
StrengthBonus = reader.ReadInt();
}
}
}