You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.1 KiB
54 lines
1.1 KiB
using System;
|
|
using UnityEngine;
|
|
|
|
[Serializable]
|
|
public class ValueModifier
|
|
{
|
|
static readonly byte _defaultOrder = 0;
|
|
|
|
public enum Type : byte
|
|
{
|
|
LowestFlat = 8,
|
|
GreatestFlat = 9,
|
|
Flat = 10,
|
|
AppendablePercent = 20,
|
|
Percent = 30,
|
|
Set = 40,
|
|
}
|
|
|
|
[SerializeField] Type _type;
|
|
[SerializeField] float _value;
|
|
[SerializeField] byte order;
|
|
|
|
public Type type => _type;
|
|
public float value => _value;
|
|
public byte Order => order == _defaultOrder ? (byte)_type : order;
|
|
public object From { get; set; }
|
|
|
|
public ValueModifier(Type type, float value)
|
|
{
|
|
_type = type;
|
|
_value = value;
|
|
order = _defaultOrder;
|
|
}
|
|
|
|
public ValueModifier(Type type, float value, byte order)
|
|
{
|
|
_type = type;
|
|
_value = value;
|
|
this.order = order;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
switch (type)
|
|
{
|
|
case Type.AppendablePercent:
|
|
case Type.Percent:
|
|
return $"{value}%";
|
|
}
|
|
|
|
return value.ToString("F2");
|
|
}
|
|
}
|
|
|