36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
using GameCult.Caching;
|
|
using MessagePack;
|
|
|
|
namespace Aetheria.State.Documents;
|
|
|
|
[CultDocument("aetheria.trade_value_policy", "aetheria.trade_value_policy.v1")]
|
|
[CultGlobal]
|
|
[MessagePackObject]
|
|
public sealed class AetheriaTradeValuePolicy
|
|
{
|
|
public const string RecordKey = "global:aetheria.trade_value_policy.v1";
|
|
|
|
[Key(0)] public string Schema { get; set; } = "aetheria.trade_value_policy.v1";
|
|
[Key(1)] public string Name { get; set; } = "Aetheria trade value policy";
|
|
[Key(2)] public AetheriaExponentialLerp QualityPriceModifier { get; set; } = new();
|
|
[Key(3)] public AetheriaItemRarityTier[] Tiers { get; set; } = [];
|
|
[Key(4)] public string UpdatedAtUtc { get; set; } = "";
|
|
}
|
|
|
|
[MessagePackObject]
|
|
public sealed class AetheriaExponentialLerp
|
|
{
|
|
[Key(0)] public double Exponent { get; set; }
|
|
[Key(1)] public double Minimum { get; set; }
|
|
[Key(2)] public double Maximum { get; set; }
|
|
}
|
|
|
|
[MessagePackObject]
|
|
public sealed class AetheriaItemRarityTier
|
|
{
|
|
[Key(0)] public string Name { get; set; } = "";
|
|
[Key(1)] public double Quality { get; set; }
|
|
[Key(2)] public double Red { get; set; }
|
|
[Key(3)] public double Green { get; set; }
|
|
[Key(4)] public double Blue { get; set; }
|
|
}
|