using System;
namespace Decentralized.Domain
{
/// mod 设置里的倍率(全局,不随存档)。接入层读设置后写进来;领域层在对应概率和产出处乘上。
public static class Scales
{
/// 风险倍率:骗局、跑路、钱包投毒、地址劫持、钓鱼的发生概率。
public static double Risk = 1;
/// 挖矿产出倍率:玩家矿机拿到的区块奖励。
public static double Mining = 1;
/// 概率乘风险倍率,封顶 1。
public static double R(double chance) => Math.Min(1, chance * Risk);
/// 设置里的倍率档位(“×1.5”)。
public static readonly string[] Choices = { "×0.5", "×1", "×1.5", "×2" };
public const string Default = "×1";
public static double Parse(string s)
{
if (s != null && s.StartsWith("×") && double.TryParse(s.Substring(1), System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out var v) && v >= 0) return v;
return 1;
}
}
}