Stage 6.3: RatDigg ASIC miners, miner dealers on the black market, miner era event
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b249747855
commit
7d13ae2fe8
18 files changed
+395
-19
No files matched your search
@@ -47,6 +47,7 @@ namespace Decentralized
|
||||
dir.Add(Guide, CreateGuide);
|
||||
dir.Add(Web3Guide, CreateWeb3Guide);
|
||||
dir.Add(HwWallet, CreateHwWallet);
|
||||
AsicItems.Register(dir);
|
||||
foreach (var spec in Hardware.Specs.Values.Where(s => !s.Asic && !s.Scrap))
|
||||
{
|
||||
var s = spec;
|
||||
@@ -316,9 +317,17 @@ namespace Decentralized
|
||||
|
||||
public static Unit ToUnit(GameItem item)
|
||||
{
|
||||
string model = item.identifier.Substring(GpuPrefix.Length);
|
||||
model = Hardware.Specs.Keys.FirstOrDefault(k => k.ToLowerInvariant() == model) ?? "RTX60";
|
||||
bool asic = AsicItems.Is(item);
|
||||
string model = item.identifier.Substring(asic ? AsicItems.Prefix.Length : GpuPrefix.Length);
|
||||
model = Hardware.Specs.Keys.FirstOrDefault(k => k.ToLowerInvariant() == model) ?? (asic ? "M1" : "RTX60");
|
||||
var u = new Unit { Model = model, Health = 100 };
|
||||
if (asic)
|
||||
{
|
||||
// 矿机没有外观、没有真假:不记外观种子,算力、损耗、暴毙都按规格表
|
||||
if (item.IsTag(HealthTag)) u.Health = item.GetTagReadonly(HealthTag).GetDouble();
|
||||
u.Dead = item.IsTag(DeadTag);
|
||||
return u;
|
||||
}
|
||||
if (item.IsTag(HealthTag)) u.Health = item.GetTagReadonly(HealthTag).GetDouble();
|
||||
if (item.IsTag(FakeTag)) u.FakeOf = item.GetTagReadonly(FakeTag).GetString();
|
||||
u.Refurbished = item.IsTag(RefurbTag);
|
||||
@@ -335,14 +344,18 @@ namespace Decentralized
|
||||
if (u.FakeOf != null) item.ModifyTag(FakeTag, s => s.Enable().SetString(u.FakeOf));
|
||||
if (u.Refurbished) item.EnableTag(RefurbTag);
|
||||
if (u.Dead) item.EnableTag(DeadTag);
|
||||
item.ModifyTag(LookTag, s => s.Enable().SetString(u.Look.Encode()));
|
||||
item.ModifyTag(SeedTag, s => s.Enable().SetInt((int)u.Look.Seed));
|
||||
if (!AsicItems.Is(item))
|
||||
{
|
||||
item.ModifyTag(LookTag, s => s.Enable().SetString(u.Look.Encode()));
|
||||
item.ModifyTag(SeedTag, s => s.Enable().SetInt((int)u.Look.Seed));
|
||||
}
|
||||
Refresh(item);
|
||||
}
|
||||
|
||||
/// <summary>按标签更新名字、说明、价值和图:显示的是标签上的型号(假卡也显示被冒充的型号)。</summary>
|
||||
public static void Refresh(GameItem item)
|
||||
{
|
||||
if (AsicItems.Is(item)) { AsicItems.Refresh(item); return; }
|
||||
var u = ToUnit(item);
|
||||
var label = u.Label;
|
||||
if (u.Dead)
|
||||
|
||||
Reference in new issue
Block a user