66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
#region Header
|
|
// _,-'/-'/
|
|
// . __,-; ,'( '/
|
|
// \. `-.__`-._`:_,-._ _ , . ``
|
|
// `:-._,------' ` _,`--` -: `_ , ` ,' :
|
|
// `---..__,,--' (C) 2023 ` -'. -'
|
|
// # Vita-Nex [http://core.vita-nex.com] #
|
|
// {o)xxx|===============- # -===============|xxx(o}
|
|
// # #
|
|
#endregion
|
|
|
|
#region References
|
|
using System;
|
|
#endregion
|
|
|
|
namespace Server
|
|
{
|
|
public class AttributeDefinition : AttributeFactors
|
|
{
|
|
[CommandProperty(AccessLevel.Administrator)]
|
|
public TextDefinition Name { get; set; }
|
|
|
|
[CommandProperty(AccessLevel.Administrator)]
|
|
public string NameString { get => Name.String; set => Name = new TextDefinition(Name.Number, value); }
|
|
|
|
[CommandProperty(AccessLevel.Administrator)]
|
|
public int NameNumber { get => Name.Number; set => Name = new TextDefinition(value, Name.String); }
|
|
|
|
[CommandProperty(AccessLevel.Administrator)]
|
|
public bool Percentage { get; set; }
|
|
|
|
public AttributeDefinition(TextDefinition name = default, double weight = 1.0, int min = 0, int max = 1, int inc = 1, bool percentage = false)
|
|
: base(weight, min, max, inc)
|
|
{
|
|
Name = name;
|
|
Percentage = percentage;
|
|
}
|
|
|
|
public AttributeDefinition(AttributeDefinition def)
|
|
: this(new TextDefinition(def.Name.Number, def.Name.String), def.Weight, def.Min, def.Max, def.Inc)
|
|
{ }
|
|
|
|
public AttributeDefinition(GenericReader reader)
|
|
: base(reader)
|
|
{ }
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
|
|
writer.SetVersion(0);
|
|
|
|
writer.WriteTextDef(Name);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
|
|
reader.GetVersion();
|
|
|
|
Name = reader.ReadTextDef();
|
|
}
|
|
}
|
|
}
|