Four tiers per brand: RZX 60/70/80/90 and RZ 70/80/800/900

Model name is display only; performance and price follow brand and tier.
Tier physical traits: power pins 6/8/8/8+8 and fans 1/2/3/3.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ZHU MINCHAOandClaude Sonnet 5.5 committed 2026-11-03 14:05:47 +08:00
1 parent 0ba2845609
commit 202bdbbfbc
7 files changed
+29 -22

No files matched your search

+3 -3
View File
@@ -9,9 +9,9 @@ namespace Decentralized.Domain
{
public const string Rig = "RIG";
public static readonly string[] Basic = { "RZX50", "RZX60", "RZ470", "RZ580" };
public static readonly string[] Advanced = { "RZX70", "RZX80Ti", "RZ6800" };
public static readonly string[] Flagship = { "RZX90", "RZ7900" };
public static readonly string[] Basic = { "RZX60", "RZ70" };
public static readonly string[] Advanced = { "RZX70", "RZ80", "RZX80", "RZ800" };
public static readonly string[] Flagship = { "RZX90", "RZ900" };
public const int AdvancedFromDay = 10, FlagshipFromDay = 30, SpecialFlagshipFromDay = 20;
public const double RigRestockChance = 0.30, AdvancedChance = 0.60, AdvancedSecondChance = 0.30, FlagshipChance = 0.25;
+13 -6
View File
@@ -13,6 +13,8 @@ namespace Decentralized.Domain
public double Kj;
public int Price;
/// <summary>暴毙概率的品牌系数。</summary>
/// <summary>档次:0 低端、1 中端、2 高端、3 旗舰(显卡)。实物特征(供电口、风扇数)只看档次。</summary>
public int Tier;
public double DeathFactor;
/// <summary>每天损耗的系数。</summary>
public double WearFactor;
@@ -25,20 +27,25 @@ namespace Decentralized.Domain
public static class Hardware
{
/// <summary>各档次的实物特征:供电口针数(旗舰是两个 8 针)与风扇数量。</summary>
public static readonly string[] PowerPins = { "6", "8", "8", "8+8" };
public static readonly int[] FanCount = { 1, 2, 3, 3 };
public const string Probidia = "Probidia", Pmd = "PMD", RatDigg = "RatDigg";
public static readonly IReadOnlyDictionary<string, HardwareSpec> Specs = new[]
{
Gpu("RZX50", Probidia, 1.0, 4, 220), Gpu("RZX60", Probidia, 1.5, 5, 330), Gpu("RZX70", Probidia, 5.0, 12, 800),
Gpu("RZX80Ti", Probidia, 8.0, 18, 1300), Gpu("RZX90", Probidia, 20.0, 30, 5000),
Gpu("RZ470", Pmd, 0.8, 2.5, 170), Gpu("RZ580", Pmd, 1.2, 3, 250), Gpu("RZ6800", Pmd, 4.0, 8, 680),
Gpu("RZ7900", Pmd, 15.0, 20, 4000),
// 四个档次(低端、中端、高端、旗舰),两个牌子通用:型号只是显示名,性能和价格由「牌子 + 档次」决定
Gpu("RZX60", Probidia, 0, 1.0, 4, 220), Gpu("RZX70", Probidia, 1, 5.0, 12, 800),
Gpu("RZX80", Probidia, 2, 8.0, 18, 1300), Gpu("RZX90", Probidia, 3, 20.0, 30, 5000),
Gpu("RZ70", Pmd, 0, 0.8, 2.5, 170), Gpu("RZ80", Pmd, 1, 4.0, 8, 680),
Gpu("RZ800", Pmd, 2, 8.0, 12, 1500), Gpu("RZ900", Pmd, 3, 15.0, 20, 4000),
Asic("M1", 50, 60, 11000), Asic("M2", 120, 110, 27000), Asic("M3", 300, 220, 72000),
}.ToDictionary(s => s.Model);
private static HardwareSpec Gpu(string model, string brand, double h, double kj, int price) => new HardwareSpec
private static HardwareSpec Gpu(string model, string brand, int tier, double h, double kj, int price) => new HardwareSpec
{
Model = model, Brand = brand, Hash = h, Kj = kj, Price = price,
Model = model, Brand = brand, Tier = tier, Hash = h, Kj = kj, Price = price,
DeathFactor = brand == Probidia ? 0.7 : 1.0, WearFactor = brand == Probidia ? 1.0 : 1.2,
};
+4 -4
View File
@@ -19,10 +19,10 @@ namespace Decentralized
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Used cards x4 (test)", () =>
{
var rng = Session.Data.Rng;
Items.Give(Items.NewCard("RZX80Ti", 40, null, rng));
Items.Give(Items.NewCard("RZX80Ti", 70, "RZX60", rng));
Items.Give(Items.NewCard("RZ6800", 30, "RZ580", rng));
Items.Give(Items.NewCard("RZ7900", 90, "RZ470", rng));
Items.Give(Items.NewCard("RZX80", 40, null, rng));
Items.Give(Items.NewCard("RZX80", 70, "RZX60", rng));
Items.Give(Items.NewCard("RZ800", 30, "RZ70", rng));
Items.Give(Items.NewCard("RZ900", 90, "RZ70", rng));
});
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Dump inspection UI (test)", () => Log.Guard("检视界面结构", () =>
{
+1 -1
View File
@@ -63,7 +63,7 @@ namespace Decentralized
// ---------- 显卡 ----------
/// <summary>RZX70 → "RZX 70",RZX80Ti → "RZX 80 Ti",RZ6800 → "RZ 6800"。</summary>
/// <summary>RZX70 → "RZX 70",RZ800 → "RZ 800"。</summary>
public static string DisplayModel(string model) => Regex.Replace(Regex.Replace(model, @"(?<=[A-Za-z])(?=\d)", " "), @"(?<=\d)(?=[A-Z])", " ");
private static GameItem CreateGpu(HardwareSpec spec)
+1 -1
View File
@@ -32,7 +32,7 @@ namespace Decentralized
{
Items.Give(ModHelper.SpawnItem(Items.Terminal));
Items.Give(ModHelper.SpawnItem(Items.Rig));
Items.Give(ModHelper.SpawnItem(Items.GpuId("RZX50")));
Items.Give(ModHelper.SpawnItem(Items.GpuId("RZX60")));
Log.Info("已加入 Web3 治理社区");
}
}
+1 -1
View File
@@ -18,7 +18,7 @@ namespace Decentralized
public static void Subscribe()
{
ModHook.OnGenerateCustomerNormal += OnGenerate;
ModHelper.AddAppraisalItem(ModInfo.Id, Appraisal, Items.GpuId("RZX50"), 2, CreateForAppraisal, u => (int)CardValue.True(Items.ToUnit(u)),
ModHelper.AddAppraisalItem(ModInfo.Id, Appraisal, Items.GpuId("RZX60"), 2, CreateForAppraisal, u => (int)CardValue.True(Items.ToUnit(u)),
Items.IsGpu, null, () => L.T("appraisal.gpu"));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Appraisal client (test)", () => Log.Guard("鉴定客户(测试)", () =>
{