From 66b01d5111a053a3310de18eaf312eda8391e60e Mon Sep 17 00:00:00 2001 From: ZHU MINCHAO <48154958+MinchaoZhu@users.noreply.github.com> Date: Wed, 4 Nov 2026 20:12:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=BF=E6=9E=B6=E6=94=B9=E5=9B=9E=204=C3=974?= =?UTF-8?q?=EF=BC=885=C3=974=20=E6=94=BE=E4=B8=8D=E8=BF=9B=E4=BB=BB?= =?UTF-8?q?=E4=BD=95=E5=AE=B9=E5=99=A8=EF=BC=89=EF=BC=9B=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=B8=85=E6=9F=9C=E5=8F=B0=E5=92=8C=E4=B8=80?= =?UTF-8?q?=E5=8D=8A=E5=82=A8=E7=89=A9=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- CHANGELOG.md | 4 ++-- art/__pycache__/sprites.cpython-314.pyc | Bin 68094 -> 68094 bytes art/sprites.py | 8 ++++---- .../ModFiles/Textures/Items/rig.png | Bin 369 -> 355 bytes src/Decentralized/ShowcaseCases.cs | 10 ++++++++++ 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2def60..b014279 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,8 @@ - 多语言第二轮审校(Claude 子代理逐语言通读 UI 与 16 章手册,交叉复审 Gemini 的修订):采用 de 39、fr 56、es 34、pl 37、ru 45、ja 142 条(ja 里约一半是全角标点、×、〜 等机械统一)。要点:天数不再缩写、Tumbler 称谓与 Key-Drive 统一、手册页签名对齐界面、ASIC 时代统一、修正数处误译(俄语手册首章“卖出”写成用交易币付款、永续/挖矿章、日语质押章“向池子付款”等)。 - 真伪依据改版:检视面板最前面四行是风扇数、供电口、背面丝印、序列号,四项全部符合标称型号才是正品,任何一项不符即为假冒;其后是型号和四项成色。风扇数、供电口各自独立(假卡不再固定两项都对不上),假卡四项各自露出破绽,至少一项,平均约 1.5 项(`Tuning.FakeSignChance`)。去掉检视面板和指南里的“卖家的说法”,该机制只在后台生效。指南里不再用“档次”,改称型号;背面图上画出序列号。 -- 矿架改版:图 5×4 格(原 3×3);去掉升级槽位,改成把电子元件拖到矿架上就投入升级(每次一件,和游戏里别的机器一致);原升级槽位那一栏换成只读的状态面板(显卡数、耗电、算力);不显示显卡磨损外观。 -- 修正:电子元件拖到矿架上原来会被元件自己的判断否决(游戏取三方判断的与),改为在原版电子元件(普通、稀有)上追加“作用于矿架”的判断,升级才真正可触发。升级流程用探查命令走通:普通 ×4 解锁第 3 槽,稀有 ×1 第 4 槽,稀有 ×2 第 5 槽,满级后不再收;5 张卡放满窗口显示 5/5。 +- 矿架改版:图 4×4 格(原 3×3;5×4 放不进任何容器,改回 4×4);去掉升级槽位,改成把电子元件拖到矿架上就投入升级(每次一件,和游戏里别的机器一致);原升级槽位那一栏换成只读的状态面板(显卡数、耗电、算力);不显示显卡磨损外观。 +- 修正:电子元件拖到矿架上原来会被元件自己的判断否决(游戏取三方判断的与),改为在原版电子元件(普通、稀有)上追加“作用于矿架”的判断,升级才真正可触发。升级流程用探查命令和真实鼠标拖拽都走通(4 次拖拽解锁第 3 槽):普通 ×4 解锁第 3 槽,稀有 ×1 第 4 槽,稀有 ×2 第 5 槽,满级后不再收;5 张卡放满窗口显示 5/5。 - 检视面板的型号鉴定只留一个“指出型号”按钮(第一行,型号);风扇数、供电口、背面丝印、序列号四行只读,四项全部符合才是正品。 - 检视面板的型号行右侧显示“标签价”(当前报价,随指出和改标签实时变化),鉴定客户的估价框同步。 - 显卡鉴定指南的鉴定示例由 1 个增至 5 个(成色很差、假冒、轻微使用、全新),共 13 页。 diff --git a/art/__pycache__/sprites.cpython-314.pyc b/art/__pycache__/sprites.cpython-314.pyc index b4bb1ae2ae93967ea568c345f078221110193b0c..f8030bcd67a91e560385dc84b35328b86223bc48 100644 GIT binary patch delta 297 zcmex2ndRSP7A|c*UM>b8@KD&uHMNq_Ve^8@sZ5MYo6TynxVg+s4o^2TdB3N}Wb>-_ zTP%z=n_GKk=Lx^`0cy}>ei;v>US7nw>Tf^-=mo~j&;N?^006O+S}p(p delta 297 zcmex2ndRSP7A|c*UM>b8@Ri=kHMNp4VDo~?sZ5MUo6TynxVbD04o^2TdB3N}bn~kA zTP%z|n_GKk=Lr{SGcqt}GQW%m>U)_1B#ItQHvX;4_;PaMZ*z_pV9BDVlNbCp;(i6> zyz~Mo`9AsXZ$-IZ5XrwFVJ(m_0~5%oq8~tkqF<9`{wOm3nr!z+hVjef=s#*+zrn%~ zJx@VwCZO`7+hBp0&p_5c0vW;rF@yo6LJ~yCf>jiOY%BT(BHm0s{YOy_qVA;)NTWT7 g@Bk7(k3@kC`7)X7?*-mxAk|+X+8H)K|0~V|0AaRTGXMYp diff --git a/art/sprites.py b/art/sprites.py index 30e3f55..069c900 100644 --- a/art/sprites.py +++ b/art/sprites.py @@ -387,10 +387,10 @@ MODELS = ['RTX 60', 'RTX 70', 'RTX 80', 'RTX 90', 'RX 70', 'RX 80', 'RX 800', 'R def rig(): - """矿架(80×64,5×4 格):和游戏里其他机器一样的略微俯视(3/4 视角)——顶面是上窄下宽的梯形, + """矿架(64×64,4×4 格):和游戏里其他机器一样的略微俯视(3/4 视角)——顶面是上窄下宽的梯形, 下面是正面,正面里四层显卡位,左下角电源;光从左上来,左亮右暗;轮廓统一深紫、削掉尖角、底下两只脚和一圈阴影。""" - c = Canvas(80, 64) - FL, FR, FY, DEP = 3, 76, 36, 31 # 正面左右边、顶面前沿所在行、顶面深度(顶面后沿在 y=6,中心行 y=8 落在顶面上) + c = Canvas(64, 64) + FL, FR, FY, DEP = 3, 60, 36, 31 # 正面左右边、顶面前沿所在行、顶面深度(顶面后沿在 y=6,中心行 y=8 落在顶面上) BOT = 60 # 正面底边 inset = lambda v: v // 8 # 顶面后部只略微收窄:原版机器的顶面也近似矩形,并且要让左右两格的中心落在顶面内 @@ -406,7 +406,7 @@ def rig(): c.put(x, FY - DEP + 1, 'l') # 顶面上的散热格栅和一个小指示灯 for v in range(4, 26, 3): - for u in range(6, 50): + for u in range(6, 34): c.put(FL + inset(v) + u, FY - v, 'g') c.put(FR - 9, FY - 8, 'G'); c.put(FR - 8, FY - 8, 'G') # 正面:中间色,左端受光、右端暗;顶部一条暗折线 diff --git a/src/Decentralized/ModFiles/Textures/Items/rig.png b/src/Decentralized/ModFiles/Textures/Items/rig.png index ebb0d8f865075d0d93b7c0dfc4d1e321a3604f09..5ece865744d599a7f34e431e907ef1ba5dd9fe16 100644 GIT binary patch literal 355 zcmV-p0i6DcP)>Y z5g-Ec5m3AO&JX|~W`7(203v_`f&s8OEgtd)plW|>2&(o6z_$Q`i@^SPkQ4v_U;!Xa z6KRzK7!JnLDg~fwevPgw)V+a^1)ZTm*qyMYq`)0QfkcXogQ zpd^0F+?3CCHN?9RL7IkS9S(uqFV~9q?)4yGvXEVDk2F zTW0|IgB4}f~*(+`pcZ!FM#!(pavkMxdZQ$ufB literal 369 zcmV-%0gnEOP)D;laAP&Wg@V+W(i3XK;aza|u^Zf9lLv(og zzw;T8bUMZuV~n}8=|1$na3V_J=5w7q^W~C20tqDW$jj@rRoK8bZXkIzC5mrD0&O6H zA}qopOrQuiDbV)Slt^Gh0#l8z4J1&6MHmDIG5eT&6D?4DYi^K%5}(F9a%($P&4B2BushyXU?VQ6fr2i6{{z;!Z?~C=mjch!Sxpl1Pb! zez`L+Lf~S%z7Uw77ys?GvcTfSxFqN=ZpDky3zv8P$P*8LiS$7rAHOySa{|Fl(!>Yh P00000NkvXXu0mjf;bNaG diff --git a/src/Decentralized/ShowcaseCases.cs b/src/Decentralized/ShowcaseCases.cs index 93b477c..69579b9 100644 --- a/src/Decentralized/ShowcaseCases.cs +++ b/src/Decentralized/ShowcaseCases.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Collections.Generic; using Decentralized.Domain; @@ -98,6 +99,15 @@ namespace Decentralized Place(item); Log.Info($"展示样例(鉴定){_next}/{All.Count}:{c.Name}"); })); + ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Clear counter + half of storage (test)", () => Log.Guard("清柜台与一半储物", () => + { + var e = EmporiumEntry.Instance; + int counter = 0, bays = 0; + foreach (var it in e.backInvinvElement.childItems.ToList()) { it.Destroy(); counter++; } + var storage = e.invElement.childItems.Where(i => i.identifier != null && i.identifier.StartsWith("storage_bay")).ToList(); + for (int i = 0; i < storage.Count; i += 2) { storage[i].Destroy(); bays++; } + Log.Info($"清空柜台 {counter} 件;储物箱 {storage.Count} 个里去掉 {bays} 个"); + })); ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Paper: dump starters (test)", () => Log.Guard("纸张起点", () => { var sb = new System.Text.StringBuilder("\n");