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.
This commit is contained in:
Kamron Batman 2022-10-30 16:53:23 -07:00 • committed by GitHub
parent 213b7025af
commit 910e06767b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 790 additions and 722 deletions

View file

@ -17,7 +17,7 @@ namespace Server.Spells
public virtual SkillName MoveSkill => SkillName.Bushido;
public virtual double RequiredSkill => 0.0;
public virtual TextDefinition AbilityMessage => 0;
public virtual TextDefinition AbilityMessage => TextDefinition.Empty;
public virtual bool BlockedByAnimalForm => true;
public virtual bool DelayedContext => false;

View file

@ -10,8 +10,8 @@ namespace Server.Spells.Bushido
public override int BaseMana => 0;
public override double RequiredSkill => 25.0;
public override TextDefinition AbilityMessage =>
new(1063122); // You better kill your enemy with your next hit or you'll be rather sorry...
// You better kill your enemy with your next hit or you'll be rather sorry...
public override TextDefinition AbilityMessage { get; } = 1063122;
public override double GetDamageScalar(Mobile attacker, Mobile defender) =>
// TODO: 20 -> Perfection

View file

@ -7,7 +7,7 @@ namespace Server.Spells.Bushido
public override int BaseMana => 5;
public override double RequiredSkill => 50.0;
public override TextDefinition AbilityMessage => new(1063167); // You prepare to strike quickly.
public override TextDefinition AbilityMessage { get; } = 1063167; // You prepare to strike quickly.
public override bool DelayedContext => true;

View file

@ -7,8 +7,8 @@ namespace Server.Spells.Bushido
public override int BaseMana => 10;
public override double RequiredSkill => 70.0;
public override TextDefinition AbilityMessage =>
new(1070757); // You prepare to strike two enemies with one blow.
// You prepare to strike two enemies with one blow.
public override TextDefinition AbilityMessage { get; } = 1070757;
public override void OnHit(Mobile attacker, Mobile defender, int damage)
{

View file

@ -8,8 +8,8 @@ namespace Server.Spells.Ninjitsu
public override int BaseMana => 30;
public override double RequiredSkill => Core.ML ? 40.0 : 20.0;
public override TextDefinition AbilityMessage =>
new(1063089); // You prepare to Backstab your opponent.
// You prepare to Backstab your opponent.
public override TextDefinition AbilityMessage { get; } = 1063089;
public override bool ValidatesDuringHit => false;

View file

@ -13,8 +13,8 @@ namespace Server.Spells.Ninjitsu
public override int BaseMana => 30;
public override double RequiredSkill => 85.0;
public override TextDefinition AbilityMessage =>
new(1063091); // You prepare to hit your opponent with a Death Strike.
// You prepare to hit your opponent with a Death Strike.
public override TextDefinition AbilityMessage { get; } = 1063091;
public override double GetDamageScalar(Mobile attacker, Mobile defender) => 0.5;

View file

@ -7,8 +7,8 @@ namespace Server.Spells.Ninjitsu
public override int BaseMana => Core.ML ? 10 : 20;
public override double RequiredSkill => Core.ML ? 30.0 : 60;
public override TextDefinition AbilityMessage =>
new(1063095); // You prepare to focus all of your abilities into your next strike.
// You prepare to focus all of your abilities into your next strike.
public override TextDefinition AbilityMessage { get; } = 1063095;
public override bool Validate(Mobile from)
{

View file

@ -11,8 +11,8 @@ namespace Server.Spells.Ninjitsu
public override int BaseMana => 25;
public override double RequiredSkill => 80.0;
public override TextDefinition AbilityMessage =>
new(1063099); // Your Ki Attack must be complete within 2 seconds for the damage bonus!
// Your Ki Attack must be complete within 2 seconds for the damage bonus!
public override TextDefinition AbilityMessage { get; } = 1063099;
public override void OnUse(Mobile from)
{

View file

@ -11,7 +11,7 @@ namespace Server.Spells.Ninjitsu
public override int BaseMana => 20;
public override double RequiredSkill => Core.ML ? 60.0 : 30.0;
public override TextDefinition AbilityMessage => new(1063128); // You prepare to surprise your prey.
public override TextDefinition AbilityMessage { get; } = 1063128; // You prepare to surprise your prey.
public override bool ValidatesDuringHit => false;

View file

@ -31,7 +31,7 @@ namespace Server.Items
[CommandProperty(AccessLevel.GameMaster)]
public int StrengthBonus { get; set; }
public override TextDefinition InvalidTransferMessage => 1073480; // Your arcane focus disappears.
public override TextDefinition InvalidTransferMessage { get; } = 1073480; // Your arcane focus disappears.
public override bool Nontransferable => true;
public override void GetProperties(IPropertyList list)

View file

@ -29,7 +29,7 @@ namespace Server.Items
public override bool Nontransferable => true;
public virtual TextDefinition InvalidTransferMessage => null;
public virtual TextDefinition InvalidTransferMessage => TextDefinition.Empty;
public override void HandleInvalidTransfer(Mobile from)
{