检视面板显示标签价;鉴定指南五个示例;展示样例排队按钮
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
55e7640390
commit
a8d7bc3427
13 files changed
+182
-23
No files matched your search
@@ -288,32 +288,62 @@ namespace Decentralized
|
||||
Text(b, y, T("gg.point.body"), "body");
|
||||
}
|
||||
|
||||
// ---- 9 鉴定示例 ----
|
||||
private static void Page9(PaperUI b)
|
||||
// ---- 9 起:鉴定示例 ----
|
||||
private sealed class Ex { public string Title, Label, Chip; public int Health, Fan, Fingers, Bracket, Seal; }
|
||||
|
||||
private static readonly Ex[] Examples =
|
||||
{
|
||||
new Ex { Title = "gg.ex.h", Label = "RTX80", Health = 60, Fan = 2, Fingers = 1, Seal = 2 },
|
||||
new Ex { Title = "gg.ex.h3", Label = "RX800", Health = 35, Fan = 2, Fingers = 2, Bracket = 1, Seal = 2 },
|
||||
new Ex { Title = "gg.ex.h2", Label = "RTX90", Chip = "RTX60", Health = 90, Fan = 1 },
|
||||
new Ex { Title = "gg.ex.h4", Label = "RTX70", Health = 85, Fan = 1 },
|
||||
new Ex { Title = "gg.ex.h5", Label = "RX70", Health = 100 },
|
||||
};
|
||||
|
||||
private static void Page9(PaperUI b) { foreach (var e in Examples) ExamplePage(b, e); }
|
||||
|
||||
private static string Brand(string model) => Hardware.Specs[model].Brand.ToString();
|
||||
|
||||
private static void ExamplePage(PaperUI b, Ex e)
|
||||
{
|
||||
float y = NewPage(b);
|
||||
y = Section(b, y, L.T("gg.ex.h"));
|
||||
const int health = 60;
|
||||
var u = new Unit
|
||||
{
|
||||
Model = "RTX80", Health = health,
|
||||
Look = new CardLook { Seed = 0, Fan = 2, Fingers = 1, Sticker = 2 },
|
||||
};
|
||||
long baseV = CardValue.Of("RTX80", health);
|
||||
long fan = (long)Math.Round(baseV * Tuning.CardFanChipped), fin = (long)Math.Round(baseV * Tuning.CardFingersDark), seal = (long)Math.Round(baseV * Tuning.CardSealMissing);
|
||||
long total = CardLabels.Value(u, null, 0);
|
||||
var layers = new[] { Front("probidia", 2), "gpu_big_ov_fan_dust1_" + Fans(2), "gpu_big_ov_fan_chip_" + Fans(2), "gpu_big_ov_fin_dim" };
|
||||
float bottom = Art(b, X + (W - 150f) / 2, y, 0.78f, layers);
|
||||
y = Section(b, y, L.T(e.Title));
|
||||
string real = e.Chip ?? e.Label;
|
||||
var u = new Unit { Model = e.Label, FakeOf = e.Chip, Health = e.Health, Look = new CardLook { Seed = 0, Fan = e.Fan, Fingers = e.Fingers, Bracket = e.Bracket, Sticker = e.Seal } };
|
||||
long baseV = CardValue.Of(real, e.Health);
|
||||
var layers = new List<string> { Front(Hardware.Specs[real].Brand == "PMD" ? "pmd" : "probidia", Hardware.Specs[real].Tier) };
|
||||
int fans = Fans(Hardware.Specs[real].Tier);
|
||||
if (e.Fan == 1) layers.Add("gpu_big_ov_fan_dust2_" + fans);
|
||||
if (e.Fan == 2) { layers.Add("gpu_big_ov_fan_dust1_" + fans); layers.Add("gpu_big_ov_fan_chip_" + fans); }
|
||||
if (e.Fingers == 1) layers.Add("gpu_big_ov_fin_dim");
|
||||
if (e.Fingers == 2) layers.Add("gpu_big_ov_fin_oxide");
|
||||
if (e.Bracket == 1) layers.Add("gpu_big_ov_brk_scratch");
|
||||
float bottom = Art(b, X + (W - 140f) / 2, y, 0.73f, layers.ToArray());
|
||||
y = bottom + 6f;
|
||||
y = Text(b, y, L.T("gg.ex.card", "Probidia RTX 80", health), "body", align: "center", gap: 10f);
|
||||
const float lx = X + 38f, lw = W - 76f;
|
||||
y = Text(b, y, L.T("gg.ex.base", baseV), "caption", align: "right", gap: 3f, x: lx, w: lw);
|
||||
y = Text(b, y, L.T("gg.ex.fan", fan), "caption", Bad, "right", 3f, lx, lw);
|
||||
y = Text(b, y, L.T("gg.ex.fin", fin), "caption", Bad, "right", 3f, lx, lw);
|
||||
y = Text(b, y, L.T("gg.ex.seal", seal), "caption", Bad, "right", 6f, lx, lw);
|
||||
string name = Hardware.Specs[e.Label].Brand + " " + Items.DisplayModel(e.Label);
|
||||
y = Text(b, y, L.T("gg.ex.card", name, e.Health), "body", align: "center", gap: 8f);
|
||||
const float lx = X + 20f, lw = W - 40f;
|
||||
if (e.Chip != null)
|
||||
{
|
||||
y = Text(b, y, L.T("gg.ex.fake", name, Hardware.Specs[e.Chip].Brand + " " + Items.DisplayModel(e.Chip)), "caption", Bad, "center", 6f);
|
||||
y = Text(b, y, L.T("gg.ex.claimed", CardValue.Of(e.Label, e.Health)), "caption", Ink, "right", 3f, lx, lw);
|
||||
}
|
||||
y = Text(b, y, L.T("gg.ex.base", baseV), "caption", Ink, "right", 3f, lx, lw);
|
||||
int n = 0;
|
||||
long Disc(double p) { n++; return (long)Math.Round(baseV * p); }
|
||||
if (e.Fan == 1) y = Text(b, y, L.T("gg.ex.fan1", Disc(Tuning.CardFanDust)), "caption", Bad, "right", 3f, lx, lw);
|
||||
if (e.Fan == 2) y = Text(b, y, L.T("gg.ex.fan", Disc(Tuning.CardFanChipped)), "caption", Bad, "right", 3f, lx, lw);
|
||||
if (e.Fingers == 1) y = Text(b, y, L.T("gg.ex.fin", Disc(Tuning.CardFingersDark)), "caption", Bad, "right", 3f, lx, lw);
|
||||
if (e.Fingers == 2) y = Text(b, y, L.T("gg.ex.fin2", Disc(Tuning.CardFingersOxidized)), "caption", Bad, "right", 3f, lx, lw);
|
||||
if (e.Bracket == 1) y = Text(b, y, L.T("gg.ex.brk", Disc(Tuning.CardBracketScratch)), "caption", Bad, "right", 3f, lx, lw);
|
||||
if (e.Seal == 2) y = Text(b, y, L.T("gg.ex.seal", Disc(Tuning.CardSealMissing)), "caption", Bad, "right", 3f, lx, lw);
|
||||
if (n == 0) y = Text(b, y, L.T("gg.ex.nodisc"), "caption", Good, "right", 3f, lx, lw);
|
||||
y += 3f;
|
||||
b.AddLine(lx, y, lx + lw, y, 1f, "#6A6458");
|
||||
y += 6f;
|
||||
y = Text(b, y, L.T("gg.ex.total", total), "label", Ink, "right", 10f, lx, lw);
|
||||
long total = CardLabels.Value(u, null, 0);
|
||||
y = Text(b, y, L.T("gg.ex.total", total), "label", Ink, "right", 8f, lx, lw);
|
||||
if (e.Chip != null) y = Text(b, y, L.T("gg.ex.gap", CardValue.Of(e.Label, e.Health) - total), "caption", Bad, "right", 8f, lx, lw);
|
||||
Text(b, y, L.T("gg.ex.note"), "caption", Ink, "center");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user