From 81b42ac2d39bb3c58b264f312349175b4531a329 Mon Sep 17 00:00:00 2001 From: ZHU MINCHAO <48154958+MinchaoZhu@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:34:57 +0800 Subject: [PATCH] =?UTF-8?q?Rename=20GPU=20models:=20RZX=E2=86=92RTX,=20RZ?= =?UTF-8?q?=E2=86=92RX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- CHANGELOG.md | 15 ++--- art/__pycache__/big_cases.cpython-314.pyc | Bin 44059 -> 44059 bytes art/__pycache__/sprites.cpython-314.pyc | Bin 55586 -> 55586 bytes art/big_cases.py | 8 +-- art/sprites.py | 2 +- src/Decentralized.Domain/Dealer.cs | 6 +- src/Decentralized.Domain/Mining.cs | 10 ++-- src/Decentralized/DealerStock.cs | 14 ++--- src/Decentralized/Items.cs | 4 +- .../ModFiles/Localization/en.csv | 4 +- .../ModFiles/Localization/zh.csv | 4 +- .../Items/gpu_big_ov_print_normal_rtx60.png | Bin 0 -> 434 bytes .../Items/gpu_big_ov_print_normal_rtx70.png | Bin 0 -> 430 bytes .../Items/gpu_big_ov_print_normal_rtx80.png | Bin 0 -> 420 bytes .../Items/gpu_big_ov_print_normal_rtx90.png | Bin 0 -> 432 bytes .../Items/gpu_big_ov_print_normal_rx70.png | Bin 0 -> 410 bytes .../Items/gpu_big_ov_print_normal_rx80.png | Bin 0 -> 387 bytes .../Items/gpu_big_ov_print_normal_rx800.png | Bin 0 -> 404 bytes .../Items/gpu_big_ov_print_normal_rx900.png | Bin 0 -> 431 bytes .../Items/gpu_big_ov_print_normal_rz70.png | Bin 402 -> 0 bytes .../Items/gpu_big_ov_print_normal_rz80.png | Bin 388 -> 0 bytes .../Items/gpu_big_ov_print_normal_rz800.png | Bin 405 -> 0 bytes .../Items/gpu_big_ov_print_normal_rz900.png | Bin 424 -> 0 bytes .../Items/gpu_big_ov_print_normal_rzx60.png | Bin 450 -> 0 bytes .../Items/gpu_big_ov_print_normal_rzx70.png | Bin 447 -> 0 bytes .../Items/gpu_big_ov_print_normal_rzx80.png | Bin 428 -> 0 bytes .../Items/gpu_big_ov_print_normal_rzx90.png | Bin 442 -> 0 bytes .../Items/gpu_big_ov_print_skew_rtx60.png | Bin 0 -> 590 bytes .../Items/gpu_big_ov_print_skew_rtx70.png | Bin 0 -> 577 bytes .../Items/gpu_big_ov_print_skew_rtx80.png | Bin 0 -> 591 bytes .../Items/gpu_big_ov_print_skew_rtx90.png | Bin 0 -> 595 bytes .../Items/gpu_big_ov_print_skew_rx70.png | Bin 0 -> 513 bytes .../Items/gpu_big_ov_print_skew_rx80.png | Bin 0 -> 510 bytes .../Items/gpu_big_ov_print_skew_rx800.png | Bin 0 -> 592 bytes .../Items/gpu_big_ov_print_skew_rx900.png | Bin 0 -> 596 bytes .../Items/gpu_big_ov_print_skew_rz70.png | Bin 502 -> 0 bytes .../Items/gpu_big_ov_print_skew_rz80.png | Bin 507 -> 0 bytes .../Items/gpu_big_ov_print_skew_rz800.png | Bin 582 -> 0 bytes .../Items/gpu_big_ov_print_skew_rz900.png | Bin 593 -> 0 bytes .../Items/gpu_big_ov_print_skew_rzx60.png | Bin 596 -> 0 bytes .../Items/gpu_big_ov_print_skew_rzx70.png | Bin 586 -> 0 bytes .../Items/gpu_big_ov_print_skew_rzx80.png | Bin 592 -> 0 bytes .../Items/gpu_big_ov_print_skew_rzx90.png | Bin 604 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rtx60.png | Bin 0 -> 849 bytes .../Items/gpu_big_ov_print_stamp_rtx70.png | Bin 0 -> 862 bytes .../Items/gpu_big_ov_print_stamp_rtx80.png | Bin 0 -> 862 bytes .../Items/gpu_big_ov_print_stamp_rtx90.png | Bin 0 -> 872 bytes .../Items/gpu_big_ov_print_stamp_rx70.png | Bin 0 -> 814 bytes .../Items/gpu_big_ov_print_stamp_rx80.png | Bin 0 -> 823 bytes .../Items/gpu_big_ov_print_stamp_rx800.png | Bin 0 -> 875 bytes .../Items/gpu_big_ov_print_stamp_rx900.png | Bin 0 -> 883 bytes .../Items/gpu_big_ov_print_stamp_rz70.png | Bin 805 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rz80.png | Bin 848 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rz800.png | Bin 903 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rz900.png | Bin 883 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rzx60.png | Bin 855 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rzx70.png | Bin 883 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rzx80.png | Bin 881 -> 0 bytes .../Items/gpu_big_ov_print_stamp_rzx90.png | Bin 874 -> 0 bytes .../Textures/Items/gpu_ov_txs_rtx60.png | Bin 0 -> 151 bytes .../Textures/Items/gpu_ov_txs_rtx70.png | Bin 0 -> 148 bytes .../Textures/Items/gpu_ov_txs_rtx80.png | Bin 0 -> 151 bytes .../Textures/Items/gpu_ov_txs_rtx90.png | Bin 0 -> 152 bytes .../Textures/Items/gpu_ov_txs_rx70.png | Bin 0 -> 140 bytes .../Textures/Items/gpu_ov_txs_rx80.png | Bin 0 -> 139 bytes .../Textures/Items/gpu_ov_txs_rx800.png | Bin 0 -> 146 bytes .../Textures/Items/gpu_ov_txs_rx900.png | Bin 0 -> 147 bytes .../Textures/Items/gpu_ov_txs_rz70.png | Bin 142 -> 0 bytes .../Textures/Items/gpu_ov_txs_rz80.png | Bin 145 -> 0 bytes .../Textures/Items/gpu_ov_txs_rz800.png | Bin 152 -> 0 bytes .../Textures/Items/gpu_ov_txs_rz900.png | Bin 150 -> 0 bytes .../Textures/Items/gpu_ov_txs_rzx60.png | Bin 154 -> 0 bytes .../Textures/Items/gpu_ov_txs_rzx70.png | Bin 153 -> 0 bytes .../Textures/Items/gpu_ov_txs_rzx80.png | Bin 152 -> 0 bytes .../Textures/Items/gpu_ov_txs_rzx90.png | Bin 153 -> 0 bytes .../Textures/Items/gpu_ov_txt_rtx60.png | Bin 0 -> 140 bytes .../Textures/Items/gpu_ov_txt_rtx70.png | Bin 0 -> 142 bytes .../Textures/Items/gpu_ov_txt_rtx80.png | Bin 0 -> 142 bytes .../Textures/Items/gpu_ov_txt_rtx90.png | Bin 0 -> 143 bytes .../Textures/Items/gpu_ov_txt_rx70.png | Bin 0 -> 133 bytes .../Textures/Items/gpu_ov_txt_rx80.png | Bin 0 -> 136 bytes .../Textures/Items/gpu_ov_txt_rx800.png | Bin 0 -> 137 bytes .../Textures/Items/gpu_ov_txt_rx900.png | Bin 0 -> 140 bytes .../Textures/Items/gpu_ov_txt_rz70.png | Bin 136 -> 0 bytes .../Textures/Items/gpu_ov_txt_rz80.png | Bin 138 -> 0 bytes .../Textures/Items/gpu_ov_txt_rz800.png | Bin 139 -> 0 bytes .../Textures/Items/gpu_ov_txt_rz900.png | Bin 140 -> 0 bytes .../Textures/Items/gpu_ov_txt_rzx60.png | Bin 146 -> 0 bytes .../Textures/Items/gpu_ov_txt_rzx70.png | Bin 144 -> 0 bytes .../Textures/Items/gpu_ov_txt_rzx80.png | Bin 142 -> 0 bytes .../Textures/Items/gpu_ov_txt_rzx90.png | Bin 144 -> 0 bytes src/Decentralized/Unlock.cs | 4 +- src/Decentralized/UsedDealerClient.cs | 2 +- tests/Decentralized.Domain.Tests/Program.cs | 56 +++++++++--------- 94 files changed, 65 insertions(+), 64 deletions(-) create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx60.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rx800.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rx900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz800.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx60.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rtx60.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rtx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rtx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rtx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rx800.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rx900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz800.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx60.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx60.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx800.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz800.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx60.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx60.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx800.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz800.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx60.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx60.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx90.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx70.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx80.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx800.png create mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rz70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rz80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rz800.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rz900.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx60.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx70.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx80.png delete mode 100644 src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx90.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 57a219c..64f18c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,11 @@ ### 第三阶段:数值调优(进行中) - 混币器每轮手续费 6% → 4%;用币付款的顾客概率提到上层 30%、黑市 50%、革命派 50%、下层 25%,并多付 12%(溢价只加在币数上,污点仍按货值算)。 -- 区块奖励 90 → 100;RZ800 耗电 12 → 14 kJ。 +- 区块奖励 90 → 100;RX800 耗电 12 → 14 kJ。 - 减半对币价的传导改成每次在 0.15–0.85 的指数里随机(锚 +11% 到 +80%),历次累计存档。 -- 低档次的卡也会被冒充:新增废片芯片 RZ10(不上架,只作假卡背后的真实芯片)。 +- 低档次的卡也会被冒充:新增废片芯片 RX10(不上架,只作假卡背后的真实芯片)。 - 型号档次与实物不符(供电口、风扇数)的卡,摆给顾客时必被看穿并扣信誉(原来 50%),堵住用标签机把低档卡改成高档型号转卖的漏洞。 +- 显卡型号改名:Probidia RZX → RTX,PMD RZ → RX(RTX 60/70/80/90,RX 70/80/800/900);贴图重新生成。旧存档里的旧型号物品不再识别。 - 买家看穿率、信誉扣减封顶收进 `Tuning.cs`。 - 单元测试 8909 项通过;游戏内只验证了模组正常载入,没有跑到新的假卡、减半随机和币付款溢价的实际画面。 @@ -27,18 +28,18 @@ 以下条目取代下面较早条目里已过时的部分(型号、入口价、终端页面): -- 显卡改成每个牌子四档(低端、中端、高端、旗舰):Probidia RZX 60 / 70 / 80 / 90,PMD RZ 70 / 80 / 800 / 900;型号只是显示名,性能由牌子和档次定;档次对应供电口(6 / 8 / 8 / 8+8 针)和风扇数(1 / 2 / 3 / 3)。显卡 3×2 格,正反面各一张图;价格约为最初的 1.8 倍,出块奖励 90。 +- 显卡改成每个牌子四档(低端、中端、高端、旗舰):Probidia RTX 60 / 70 / 80 / 90,PMD RX 70 / 80 / 800 / 900;型号只是显示名,性能由牌子和档次定;档次对应供电口(6 / 8 / 8 / 8+8 针)和风扇数(1 / 2 / 3 / 3)。显卡 3×2 格,正反面各一张图;价格约为最初的 1.8 倍,出块奖励 90。 - 显卡外观:叶片、金手指、挡板、封条,随每晚损耗变差,影响价值、算力、损耗、暴毙。 - 二手卡贩子(老实人、中间商、骗子)、假卡(低档芯片套高档壳)、序列号(牌子前缀、档次码、工厂码、流水)、背面丝印、鉴定公会收显卡、显卡鉴定手册。 - 放大镜检视显卡:专门的大图和标签栏(型号真伪加叶片、金手指、挡板、封条四项成色),卖家说法与逐项指出、标签机改说法、买家验货与按价差扣信誉。 - 减半抬高价格锚(传导 0.6,减半前一周有预期行情,减半前 3 天上报纸)。 - 交易终端重做:首页三个入口(银行、Poinbase、Web3)加报告;左右分栏表格;买入均价;Web3 页的稳定币价格与状态;银行提取前的审查提示;金额输入框加宽。 -- 入口升级价 400,开局送交易终端、矿架、RZX 60 和鉴定手册。 -- 经济模拟 v7(运维库 research/sim/out_v7.md):电网电价下 RZX 70 挖矿第 30 天占总收入 18%、第 60 天 20%。 +- 入口升级价 400,开局送交易终端、矿架、RTX 60 和鉴定手册。 +- 经济模拟 v7(运维库 research/sim/out_v7.md):电网电价下 RTX 70 挖矿第 30 天占总收入 18%、第 60 天 20%。 - 纯逻辑层:带种子的随机数、资产登记、地址账本(污点与成本随币走)、恒定乘积交易对、挖矿(显卡、矿机、全网算力、减半、损耗与暴毙)。 - 纯逻辑层:市场(价格锚、情绪、游戏事件冲击、NPC 大户、多交易对套利回归、当日均价),三种稳定币(CRC 脱锚与减记、CRT 脱锚与冻结概率、CRA 补贴池与死亡螺旋),合规出金与 AML(大额与累计阈值、污点比例、轻度与重度命中、只对收益计税)。 -- mod 本体(第一阶段的第一部分):人脉网络"Web3 治理社区"(300,整个 mod 的入口)交付交易终端和一张 RZX 50;矿架向杰克逊博士购买;矿架是带电池槽和 4 个显卡槽的机器,每晚从电池扣电挖 PSC;显卡按型号显示算力、耗电与健康度,每晚损耗并可能烧毁;交易终端有钱包、交易(四个交易对、存入信用点、提取 CRC 过合规审查)、报告三页;夜间结算写晨间日志;PSC 交易所开业与减半上报纸;状态存进游戏的 mod 存档数据。中英双语。 +- mod 本体(第一阶段的第一部分):人脉网络"Web3 治理社区"(300,整个 mod 的入口)交付交易终端和一张 RTX 50;矿架向杰克逊博士购买;矿架是带电池槽和 4 个显卡槽的机器,每晚从电池扣电挖 PSC;显卡按型号显示算力、耗电与健康度,每晚损耗并可能烧毁;交易终端有钱包、交易(四个交易对、存入信用点、提取 CRC 过合规审查)、报告三页;夜间结算写晨间日志;PSC 交易所开业与减半上报纸;状态存进游戏的 mod 存档数据。中英双语。 - 物品图:art/sprites.py 生成显卡(Probidia、PMD、烧毁)、矿架、交易终端。 - 矿架加入游戏原有的通用模块槽:性能、效率、品质三项百分比折算 1/4 后作用于算力、耗电和显卡损耗,算力最多 +20%、省电最多 25%、损耗最多 −30%;性能加成同时提高损耗与暴毙率。取代原计划的 mod 自带超频模块。 - 杰克逊博士上货(游戏给 mod 的进货钩子,夜间去他店里或他每周来本店摆摊时):没有矿架时必有一个,有了之后 30% 再上;基础显卡每次两张;进阶显卡第 10 天起 60%(再 30% 多一张);旗舰第 30 天起 25%,特供货事件时第 20 天起必有。全新真货,价格为物品价值加他的加价。加入 Web3 治理社区后才上货。开发者模式 F9 有测试入口。 @@ -50,4 +51,4 @@ - 矿架默认 2 个显卡槽,投入电子元件升级,最多 5 个:第 3 槽 4 个普通电子元件,第 4 槽 1 个稀有,第 5 槽 2 个稀有。窗口里新增"升级槽位",只收下一级需要的元件,放进去立即消耗并累计进度;显卡格子的形状随槽数变化,槽数与进度存在矿架标签上。 - 矿架的"基础耗电"标签随显卡变化(机身 + 各卡耗电,不含模块),游戏装卸模块时据此重算,不会把耗电改回只有机身的 2 kJ。 -- Web3 治理社区改为同时送一个矿架:交易终端、矿架、一张 RZX 50,送的货值 520;解锁价定为 400(见运维库定价说明)。 +- Web3 治理社区改为同时送一个矿架:交易终端、矿架、一张 RTX 50,送的货值 520;解锁价定为 400(见运维库定价说明)。 diff --git a/art/__pycache__/big_cases.cpython-314.pyc b/art/__pycache__/big_cases.cpython-314.pyc index 972e03c5c3030a214bede02cf2910f1cb7a7723e..98817ed13bc826a3568c2c27f3aae3765fb3a703 100644 GIT binary patch delta 35 ocmbPzgK72+CN6D0UM>b8=-;uC>vB3{$mVb8;LP60bvd0eYV*DHa7Q3zw(=b8=-;uC>*QJUkO&1cgDSQlAZ-q%EugfeK^1EdSQtcsML`ru LHexf^ISFn6vkw+G delta 82 zcmZ3qiFwf`W-e_$UM>b8DDB?Jb@HrvRD^<=K^0pNkT!?X7Es#Kpo%pp3M34oAfiAD LEW4TOoCG%jrLh(e diff --git a/art/big_cases.py b/art/big_cases.py index ee2d3d9..20852a7 100644 --- a/art/big_cases.py +++ b/art/big_cases.py @@ -644,7 +644,7 @@ def print_overlay(model_text, style="normal"): elif style == "stamp": # 1) 底层被磨掉/发暗的原型号痕迹(原先低配型号残影) - orig_text = "RZX 50" if "80" in model_text else "PMD 60" + orig_text = "RTX 50" if "80" in model_text else "PMD 60" text57(c, x_start + 4, y_start + 1, orig_text, "z", scale=scale, gap=1) text57(c, x_start + 5, y_start + 2, orig_text, "k", scale=scale, gap=1) @@ -683,15 +683,15 @@ def print_overlay(model_text, style="normal"): return c -def print_skew(model_text="RZX 80Ti"): +def print_skew(model_text="RTX 80Ti"): return print_overlay(model_text, "skew") -def print_stamp(model_text="RZX 80Ti"): +def print_stamp(model_text="RTX 80Ti"): return print_overlay(model_text, "stamp") -def print_normal(model_text="RZX 80Ti"): +def print_normal(model_text="RTX 80Ti"): return print_overlay(model_text, "normal") diff --git a/art/sprites.py b/art/sprites.py index bdfbd0e..32ff337 100644 --- a/art/sprites.py +++ b/art/sprites.py @@ -379,7 +379,7 @@ def ov_sticker(kind): return c -MODELS = ['RZX 60', 'RZX 70', 'RZX 80', 'RZX 90', 'RZ 70', 'RZ 80', 'RZ 800', 'RZ 900'] +MODELS = ['RTX 60', 'RTX 70', 'RTX 80', 'RTX 90', 'RX 70', 'RX 80', 'RX 800', 'RX 900'] def rig(): diff --git a/src/Decentralized.Domain/Dealer.cs b/src/Decentralized.Domain/Dealer.cs index 2074e28..51fad19 100644 --- a/src/Decentralized.Domain/Dealer.cs +++ b/src/Decentralized.Domain/Dealer.cs @@ -9,9 +9,9 @@ namespace Decentralized.Domain { public const string Rig = "RIG"; - public static readonly string[] Basic = { "RZX60", "RZ70" }; - public static readonly string[] Advanced = { "RZX70", "RZ80", "RZX80", "RZ800" }; - public static readonly string[] Flagship = { "RZX90", "RZ900" }; + public static readonly string[] Basic = { "RTX60", "RX70" }; + public static readonly string[] Advanced = { "RTX70", "RX80", "RTX80", "RX800" }; + public static readonly string[] Flagship = { "RTX90", "RX900" }; public const int AdvancedFromDay = 10, FlagshipFromDay = 30, SpecialFlagshipFromDay = 20; public const double RigRestockChance = 0.30, AdvancedChance = 0.60, AdvancedSecondChance = 0.30, FlagshipChance = 0.25; diff --git a/src/Decentralized.Domain/Mining.cs b/src/Decentralized.Domain/Mining.cs index b27bc58..d64cae7 100644 --- a/src/Decentralized.Domain/Mining.cs +++ b/src/Decentralized.Domain/Mining.cs @@ -38,11 +38,11 @@ namespace Decentralized.Domain public static readonly IReadOnlyDictionary Specs = new[] { // 四个档次(低端、中端、高端、旗舰),两个牌子通用:型号只是显示名,性能和价格由「牌子 + 档次」决定 - 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, 14, 1500), Gpu("RZ900", Pmd, 3, 15.0, 20, 4000), - Scrap("RZ10", Pmd, 0, 0.3, 2, 60), + Gpu("RTX60", Probidia, 0, 1.0, 4, 220), Gpu("RTX70", Probidia, 1, 5.0, 12, 800), + Gpu("RTX80", Probidia, 2, 8.0, 18, 1300), Gpu("RTX90", Probidia, 3, 20.0, 30, 5000), + Gpu("RX70", Pmd, 0, 0.8, 2.5, 170), Gpu("RX80", Pmd, 1, 4.0, 8, 680), + Gpu("RX800", Pmd, 2, 8.0, 14, 1500), Gpu("RX900", Pmd, 3, 15.0, 20, 4000), + Scrap("RX10", Pmd, 0, 0.3, 2, 60), Asic("M1", 50, 60, 11000), Asic("M2", 120, 110, 27000), Asic("M3", 300, 220, 72000), }.ToDictionary(s => s.Model); diff --git a/src/Decentralized/DealerStock.cs b/src/Decentralized/DealerStock.cs index 7907be3..a08cbd3 100644 --- a/src/Decentralized/DealerStock.cs +++ b/src/Decentralized/DealerStock.cs @@ -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("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)); + Items.Give(Items.NewCard("RTX80", 40, null, rng)); + Items.Give(Items.NewCard("RTX80", 70, "RTX60", rng)); + Items.Give(Items.NewCard("RX800", 30, "RX70", rng)); + Items.Give(Items.NewCard("RX900", 90, "RX70", rng)); }); ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Dump inspection UI (test)", () => Log.Guard("检视界面结构", () => { @@ -45,10 +45,10 @@ namespace Decentralized { var rng = Session.Data.Rng; // 自己的一张真卡:标签机改成旗舰型号并把成色说成没问题,再摆给一位买家 - var item = Items.NewCard("RZX70", 55, null, rng); + var item = Items.NewCard("RTX70", 55, null, rng); Items.Give(item); var u = Items.ToUnit(item); - var c = Claim.Truth(u); c.Model = "RZX90"; c.Fan = 0; c.Fingers = 0; c.Bracket = 0; c.Sticker = 0; + var c = Claim.Truth(u); c.Model = "RTX90"; c.Fan = 0; c.Fingers = 0; c.Bracket = 0; c.Sticker = 0; item.EnableTag(Items.EditedTag); Items.SetClaim(item, c, 0); var client = new StoreClient { identifier = "pd_test_buyer", displayName = "买家", spriteName = SpriteDict.GetRandomScavSpriteName(), clientIntent = StoreClient.ClientIntent.BUY }; @@ -61,7 +61,7 @@ namespace Decentralized ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Buy scam card (test)", () => Log.Guard("买入侧测试", () => { var rng = Session.Data.Rng; - var item = Items.NewCard("RZX90", 60, "RZX60", rng, DealerKind.Scammer, 0); + var item = Items.NewCard("RTX90", 60, "RTX60", rng, DealerKind.Scammer, 0); long before = item.unitValue; GeneralHelper.SetItemOwned(item, true); Items.Refresh(item); diff --git a/src/Decentralized/Items.cs b/src/Decentralized/Items.cs index c4dbd47..0177790 100644 --- a/src/Decentralized/Items.cs +++ b/src/Decentralized/Items.cs @@ -79,7 +79,7 @@ namespace Decentralized // ---------- 显卡 ---------- - /// RZX70 → "RZX 70",RZ800 → "RZ 800"。 + /// RTX70 → "RTX 70",RX800 → "RX 800"。 public static string DisplayModel(string model) => Regex.Replace(Regex.Replace(model, @"(?<=[A-Za-z])(?=\d)", " "), @"(?<=\d)(?=[A-Z])", " "); private static GameItem CreateGpu(HardwareSpec spec) @@ -257,7 +257,7 @@ namespace Decentralized public static Unit ToUnit(GameItem item) { string model = item.identifier.Substring(GpuPrefix.Length); - model = Hardware.Specs.Keys.FirstOrDefault(k => k.ToLowerInvariant() == model) ?? "RZX60"; + model = Hardware.Specs.Keys.FirstOrDefault(k => k.ToLowerInvariant() == model) ?? "RTX60"; var u = new Unit { Model = model, Health = 100 }; if (item.IsTag(HealthTag)) u.Health = item.GetTagReadonly(HealthTag).GetDouble(); if (item.IsTag(FakeTag)) u.FakeOf = item.GetTagReadonly(FakeTag).GetString(); diff --git a/src/Decentralized/ModFiles/Localization/en.csv b/src/Decentralized/ModFiles/Localization/en.csv index ca1c4ee..c81c86d 100644 --- a/src/Decentralized/ModFiles/Localization/en.csv +++ b/src/Decentralized/ModFiles/Localization/en.csv @@ -2,7 +2,7 @@ # Source language and fallback. Format: key,text (text may be quoted; \n is a line break). upgrade.tab,Web3 upgrade.title,Web3 Governance Community -upgrade.desc,"Members receive a trading terminal, a mining rig, an RZX 60 graphics card and a graphics card appraisal guide. The terminal holds the bank, the Poinbase exchange and the Web3 wallet. More cards and rigs are sold by Dr. Jackson." +upgrade.desc,"Members receive a trading terminal, a mining rig, an RTX 60 graphics card and a graphics card appraisal guide. The terminal holds the bank, the Poinbase exchange and the Web3 wallet. More cards and rigs are sold by Dr. Jackson." item.terminal.name,Trading Terminal item.terminal.desc,Wallet, the Poinbase exchange and the nightly mining report. item.rig.name,Mining Rig @@ -117,7 +117,7 @@ lbl.tier.1,"Mid" lbl.tier.2,"High" lbl.tier.3,"Flagship" item.guide.name,"Graphics card appraisal guide" -item.guide.desc,"Tiers: entry has a 6-pin connector and one fan; mid 8-pin and two fans; high 8-pin and three fans; flagship dual 8-pin and three fans. Model names are display only: Probidia RZX 60 / 70 / 80 / 90, PMD RZ 70 / 80 / 800 / 900, lowest to highest tier. Serial: prefix PB (Probidia) or MD (PMD), tier code 1 to 4, a dash, a two-digit factory code, a dash, four digits. Valid factory codes: PB 11, 12, 21, 34, 47; MD 13, 22, 35, 41, 58. A tier code that does not match the model, or a bad factory code or length, means a fake. Appearance discounts: dusty blades -4%, chipped -12%; dull contacts -4%, oxidised -12%; scratched bracket -2%; missing seal -6%." +item.guide.desc,"Tiers: entry has a 6-pin connector and one fan; mid 8-pin and two fans; high 8-pin and three fans; flagship dual 8-pin and three fans. Model names are display only: Probidia RTX 60 / 70 / 80 / 90, PMD RX 70 / 80 / 800 / 900, lowest to highest tier. Serial: prefix PB (Probidia) or MD (PMD), tier code 1 to 4, a dash, a two-digit factory code, a dash, four digits. Valid factory codes: PB 11, 12, 21, 34, 47; MD 13, 22, 35, 41, 58. A tier code that does not match the model, or a bad factory code or length, means a fake. Appearance discounts: dusty blades -4%, chipped -12%; dull contacts -4%, oxidised -12%; scratched bracket -2%; missing seal -6%." lbl.row.spec,"Model authenticity" lbl.hint,"Check: power connector and fan count, serial, back print" lbl.ev.prefix,"Evidence: " diff --git a/src/Decentralized/ModFiles/Localization/zh.csv b/src/Decentralized/ModFiles/Localization/zh.csv index 51aaea3..efe4bbe 100644 --- a/src/Decentralized/ModFiles/Localization/zh.csv +++ b/src/Decentralized/ModFiles/Localization/zh.csv @@ -1,7 +1,7 @@ # Probably Decentralized 本地化表:简体中文(zh) upgrade.tab,Web3 upgrade.title,Web3 治理社区 -upgrade.desc,"成员可获得一台交易终端、一个矿架、一张 RZX 60 显卡和一本显卡鉴定手册。终端里有银行、Poinbase 交易所和 Web3 钱包。更多显卡和矿架由杰克逊博士出售。" +upgrade.desc,"成员可获得一台交易终端、一个矿架、一张 RTX 60 显卡和一本显卡鉴定手册。终端里有银行、Poinbase 交易所和 Web3 钱包。更多显卡和矿架由杰克逊博士出售。" item.terminal.name,交易终端 item.terminal.desc,钱包、Poinbase 交易所与夜间挖矿报告。 item.rig.name,矿架 @@ -116,7 +116,7 @@ lbl.tier.1,"中端" lbl.tier.2,"高端" lbl.tier.3,"旗舰" item.guide.name,"显卡鉴定手册" -item.guide.desc,"档次:低端 6 针供电、单风扇;中端 8 针、双风扇;高端 8 针、三风扇;旗舰双 8 针、三风扇。型号只是显示名:Probidia 为 RZX 60 / 70 / 80 / 90,PMD 为 RZ 70 / 80 / 800 / 900,按档次从低到高。序列号:前缀 PB(Probidia)或 MD(PMD),接档次码 1 至 4,一道横杠,两位工厂码,一道横杠,四位流水。合法工厂码:PB 为 11、12、21、34、47;MD 为 13、22、35、41、58。档次码与型号不符,或工厂码、位数不对,都是假的。外观折扣:叶片积灰 -4%,缺角 -12%;金手指发暗 -4%,氧化 -12%;挡板划痕 -2%;封条缺失 -6%。" +item.guide.desc,"档次:低端 6 针供电、单风扇;中端 8 针、双风扇;高端 8 针、三风扇;旗舰双 8 针、三风扇。型号只是显示名:Probidia 为 RTX 60 / 70 / 80 / 90,PMD 为 RX 70 / 80 / 800 / 900,按档次从低到高。序列号:前缀 PB(Probidia)或 MD(PMD),接档次码 1 至 4,一道横杠,两位工厂码,一道横杠,四位流水。合法工厂码:PB 为 11、12、21、34、47;MD 为 13、22、35、41、58。档次码与型号不符,或工厂码、位数不对,都是假的。外观折扣:叶片积灰 -4%,缺角 -12%;金手指发暗 -4%,氧化 -12%;挡板划痕 -2%;封条缺失 -6%。" lbl.row.spec,"型号真伪" lbl.hint,"依据:供电口与风扇数、序列号、背面丝印" lbl.ev.prefix,"依据:" diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx60.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx60.png new file mode 100644 index 0000000000000000000000000000000000000000..e9158c71b5dc57688cdc37b1c7f7b289b342f832 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne&x=|J?$^{=KR{|>C7hMQZjqr^e@~lJ~JKNr?Ud}VF3-=wsQNkUthny-)5be-!@z8 z_xE0ZK0i6?!uI*Ucd0Y{>s#F$+!vmG{#r|J-?Q z`pfX$di!h`{w4pu_iuBV9E-zur!J$sDGRHO|Id3}q<{ z-bt&x$wy6oZP--C@N>=#91ZKVE<}F+;2yd<%es$2VGWaO=v-xauk7O)`#x5wm;6{lf@q-w9qN&iw-XnC?wvd$@?2>{ddn)3hv literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx70.png new file mode 100644 index 0000000000000000000000000000000000000000..73ceb8d3180afcd6ca27d68267c9f89e96ac30ff GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne=p07F20 z*4D50EZR@(m05a&jW_YYgNRSnleEvMa~ZR}$z=xW!vY@6o_GHEzn8D}?q3t0tsZT6 zD}VL8`gvE5{QCRzw!7M+`n^%ssnuIQU95}#8uhnuGed=c$BQnbv=F(gb0ry4_irtn z_V?PWN}&yBXDnEK+P(gGcaI> z3{QVl`)?OuxGj30rT^ahKl7iNn}zGnFRlNwRtQTV5HGZOFT;Vab8M5D(>y_%JYD@< J);T3K0RW&MoH76a literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx80.png new file mode 100644 index 0000000000000000000000000000000000000000..8933e28718475227d9df2e82a606f0e2c3f85cec GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneA1;+{6}QsX`u@_7oB#g2%&&MNeYloh&zSIC>%twr*v%7`sXL}U*T1{pT zrop+;+-rJgUd*iTzTe3tHaCUoz=W04zUcW^@gF!p#nIUMOB~~hwM<*TxHGhE-pBb( vS73JJEzbTt{jdG|Y+qfJ$L4!t#TrcKt-tuU^n;sF7D$VytDnm{r-UW|8CaB= literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx90.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rtx90.png new file mode 100644 index 0000000000000000000000000000000000000000..2ffe8405f6b43b6f6382d6f68ad4ea923b701724 GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneY4KLJFYwQXV;m`G*aj{&+xTT|H$p4_ONMRq!>^iHt_HAuDaan>lyz)?Ym}i@!N~f z>0jL${>Ak7pVt*`xc@uq@s!6~Z!P}(wpae`d0*xan-#LcbC0jtdi~v8$%f~ZF3&7) z$ur(qcVnJx`nQwK3`@j=O4{v|8RA-Z9O0W+`(2#DZ#~o7w-=PTSK4qYS=Yb*cd`Hd zr=3g=tGG;7cTJA1c+aL#%~Uv9D`4#^<7CI}We?8G`M%2PDO3Jj3#J2_@1Jd+H~FvZ z-h4(zfrja=2AiDS?ftUf|1o~`aiZ+LvPql_-bgZ+W0OaitGul#=*7P{`%z12*qtK68d1q0Dy1yl0(q~A__a5U%vNROwh KpUXO@geCycRiRG+ literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rx70.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a6da7fba71fa3a6aaaba7fc19af9c1b293a8c8 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneH);LXYZJ#Fa(?+Nvc(=pq`Fq`W`){@u5ZUdp zbX~xbZsS}3-@j#YE$5J^VwYI^Cwwn+&pdyJSua1i?6S4BK6u8vATxaugU(x~xwS%X zWE$SyUXVVI<$GD9+oQzWlN0VUZR`zusuTKX-j5f*enyD$WAh!cVh1GeU76`^Ib+7o P2#^*}S3j3^P6fWg5o z)#i7y{K5SOaXn@tyK)x>rcaVPvbFkU-a-pspe}5n$K?F?)a)mZzCX)8Yp*58`oVDB z^xK=n=Ev#(-DmRu-XHg)pO>?Kh!MzEemi3?*Mr)79`_bM3S@BQ-c`;hGj;oSzgDJ- z+W1?A=QSGcto1dKV-Ki$DX0)asaMlwCYQzTay)64}85OO&uYB*#kM~9U zSt@SrTX+9>WX(?dDjTc1_rG>O`gwt+!lz^N+BGv)3q5#WYW(H%#BX zQWq6^@V#QoqkT$@S?kSiR;W0v3QE&n$MWEQS!0&y-Wnknt@^ir?j>#gwtLUH3>%?@ z712i46VrqfuIBGyl1)v`3H=h~D!a2iZ2Gb}8@8&S%drtsFf}X-zjCjoZ=I*x{`3zA zyB~zP=I{Ny{>6HCt#3CcubetzVui{9!_DfWg5o z)#i7y{K5SOay}fIZ!hURNK|{M)M{2(zEt}%3s4&taKL`n^Y1~{eSP%F$y``IyE z!A^etQuTuE*T1Scl>EC^6To{UpJ8fWQ0rak-E#7rCzQWOu2zj}O;)@R(YguA5lY5zM; z6$Z`N1wr92&YjvneZ@svrX^+3>(>3bm|n~25XErq*Q>~>^(m8OZz>;H89RNA!|7i~ zCo(KyPk1?9;dShSc?V+GKhN0C6|`G_@!iE2>t}ua?|FIEoZFwbmRCgGT|DpS;`ahS h)flmOm1v=LUl@-ZXBXT&YYQhxkEg4j%Q~loCID9ekKzCT diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz80.png deleted file mode 100644 index baee0d871e51effe11d1d6c6619246f126083282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneX$q6-v$4z_RT-muxW$TtTQU}xbpblaIHSg1k{BE9O$|B^{?fwMUS&TFZ#Io*x>*s z8~OGA{!DM4yFR}Dtp8Z^qo!ZF3oeDO+OT!w?T_i)Mb-DG?YQ_+z^`H6{p#cHkJJA9 zd-yg4weC}9%xRsW#kgsnh)_f3E(do}+o+%4(>t&2*xGXAzB^MvrnpA+d)c>kb5&bd z5>{}Byy8j?|2I)D;I%N*u5%3K;s0JpF8IpHc$fR*iuHC;KaKegF5My2a7FLJ)v4F2 z8J6WYZ+mmpec##6lE$iIho4p#-e>yw{hU_%N}=sB7k{k%?EaV$i|>dQn(&bOVpfJ{ T*sPf=Kzck~{an^LB{Ts5{A`Z; diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz800.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz800.png deleted file mode 100644 index b226216f5f1c8147ad5d690e53b3eb86f18b779d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxnef_`=)OQXg}9BGw97GpeAhKgXi|!rhBC?{|dS0Uo?>gT@`Oc8(h4+tJ#U|RigUU{z4atHS#iy0187rtlu`1zYv;=0Y(dNTgq k`nmZrBR2mMEB2z0{owVv4_x0ANr1F?y85}Sb4q9e03KVO+5i9m diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz900.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rz900.png deleted file mode 100644 index 0d13c9c40e3935268eb7cbc01190eee7f6611853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxnecA^!lQYYd_rEr)htau$M|W{`%aP-PUrP0Y?ARA20s< zuFsumiYW6hi^u=mn6_*)yI7%eU=mBj)*ugte?Fos%on?-|NFf8$eY6@uYc6c&9M5nEdJU#Wk{BHkuh8*qYZ}&F5`z5ww`=&3e+_rvR^wFc?LtM?*?GBsI z%k5)Lnt9PDVs>PD)HbduE2YlfssHv5i}#5a>ZoAM3a&o0D5=B@q{-9O&t;ucLK6UI CDxXLI diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx60.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx60.png deleted file mode 100644 index dd7b405605293822523bec57164c19728a889790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne@qJ~9y6v}eoqGaRc_^p1Eh*>QX0CUWy{dN0 z{V-eqc^3}simQ`TX8yQ6Zspu9doO*xSQq^@>hH%?#t%{gJLC0|r=8k2Jzkb!@!x5$ zW^!7D@n4AfdG+o8?RA0-?wXJHrN6s%OF`GZ=zpg5#c(A?1%_#C4qN8N&b0rvpFv>{ zcgX1rwli(!a+an13p=p%yCMUN!}WEiUYQ<>G`_x0vV;FN>#4U~XVd;gvBk~(>D?$B ztNh_} dAy%xcf~jM|Bf(u4Rttc%c)I$ztaD0e0swCatbPCh diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx80.png deleted file mode 100644 index 4c18910659b2952d1fc389fad09941bc2d16b61d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne&4VatlKkjW2U3#S@zhPn`P!~4vU~=B}*R`3a`||r=pB26t66r!nm5dwurux$C#(W8dHUbMfP!Oon;lNA8$~8&)SDf4rL6AkIBy?#+)J z4wIHn^Yh+lW*Ry!H zbLe}9i`Fbm8*Xe}x$4iw&msF*&aVw-kWjiiX|H(Sf5sm-%`%?cwECqRaI|&COQu}O zeugFU*Vb|$Ip6)|{q0jyH@BUWkIjEyQ+=EnTPP4Kw&6H)d5&|0t@Kr4kQPr@KbLh* G2~7a!N16@* diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx90.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_normal_rzx90.png deleted file mode 100644 index d9ad64a6ec60658577b265d68a2eee082b813b24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneBV2K_GkJdbA492b$oWc*}cU-H$VP)fu-V}K=tjoqdC2?{ql1eURxLy zh8=6;+99`*`+eZTrX)7f7l zN>xIxv5V*FiTq=)*qz_F$=l#>J>PDvn}08Ecc{*O_v+78y#W8~9!yxmgLt7cpBP%0 V6kX=VX;y1!Gj> z=MP_E=Jc=M?Z&ibZ(i9fhM!rLQcJx)eEndN< z($y?N3$pFlg8dbqPffVOxOED{My)6FFYZd4nvl*pA?$RN_zKY_-p#2`PQ~A1n(7wE znRR_m{&STEy$e@f&G^FRz3)^1oB!L-G5p-a@}R(~=9pfCD@o?x9V^+77QRt*uzD|N8%2?ZBNs9fu3@I1wZmR4a(yuA4ty--PxM`{Xa97s3BI! a;F^Bqo>no#kRniuVeoYIb6Mw<&;$TUC->_B literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rtx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rtx70.png new file mode 100644 index 0000000000000000000000000000000000000000..c0085e68eb94f07974db6b3f1c86c9412273d0c4 GIT binary patch literal 577 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 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz800.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz800.png deleted file mode 100644 index 98555d16da7a7943a0a4b1b5f662d4cec11ddc5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne)OHB*KisPoDdMD7|5k-3c|LoWaa&^0-+L;)yLEv2u>j+m7`^OwAErON z!dOvNC(5+$@4tU*wm!bdWxt2-=sdYJCO*~$rbYYq>`lMz-m|0H>88}n%in_bTV^s8 zEl#s2a{d1G@6K;Bo0%qPe+pvQc7N)v^sjT-c^vYqSARJCLaI(~F6*NUU)wf`HQd_j zaOeF6vHfAPOaVFiXC;)oUUrXJJGw!m|37}w`jxL zT3v>v?+t|K=rAl?;3YmMTJWpbzj^0-<}nuScHG%8h07-P9A`u9g01DpQ&KJ-$^JVp zVB57{Ob3E)9qTD?EZXf=+CS0|S7d);FG z7jG@!N8L|9llO;tFQY`M{erD?W)|vk&3A6KTpjSfQ19PqEYU)&P{C~bs3QSUd&bP0l+XkKSyJZ9 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz900.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rz900.png deleted file mode 100644 index 3d48db417873ba29b5042c60c4c1d10189892f49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne)OHB*8-8Dv638+0&(>weSL)$gRRdrKY?(B-Ie|D>I%K`r9iZ?DF_BybPCFATI{rvYgKMESZo3$k8?3b4nFZWqy zGCfH-_6GvAfvxlLb)m9wCz$xxpUKV{qk5l(tq7D?hxR-5X$`|?W(P?0!z6z z^l-y|R-hItsu4 zTHW>VT3kGn!PHwb3dJ?9i$)oLULHNUdTYjIU4I*~cPpndynLm~=oiIolXU)m6sK40 zf+$`C(_2fHvb1!OE*UuFtCv=@k&)y>^zu_3!6{)>xuU4^ zyc>$XO=4ib%e-dqvwpXKVWlsmj2&LvvfpC4{_219+Mn(Fyqk67U%Q`YdOBb5>fgn6 zoCO!OE=-x3kTv0oP{NJqoLIizw6<$e@k|=cWoxYu25Y-$Uie-mlJrK-RrkR3DV~Mu z6=4Nigi_zLU%SJe5LWPP>4lx=neKl2F1NePf1=TA#!c007T*87wU~Lc+v>ZY%Rg!} gW5y4$A_r3cF({iH=g?1hH5sJG)78&qol`;+0Dvp>Gynhq diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx70.png deleted file mode 100644 index 7a30318b277c2993e6562d8391bd88d871a9eff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne0Ri_MG{W`qAs7~sg=_>7ht{Z*Iv(GS1)q{&A=Uaa%`(VE|EI6}$=VQn>sZfjhn?##Oq#gA%y{>4TL(Rcoeaxa=bejVD!5SH za54MeofG$8@x>;wW$bzo5%9Ktix&H`=2U1p3iy2wBA--fZ;r2mw(fA5%<*^+pFX@lzkIw zV1B82ZpY+JU+Npz{oIxPd|$c7PQks5J6a#@d|LdRE3Nlh+3D+#*7IOS3(+F~KXY52 Vo*sJ2VYdcIkEg4j%Q~loCIIjF@zwwU diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_skew_rzx80.png deleted file mode 100644 index 42d72cf0be58720a86bf57628fda27c867d9fadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneFOV#k!?$?Y`;ruk$ej&A{Q1i- z&&d8~bmz?P=f@>(ZT*|Aa^Ude%_51Ff3q{5Uzn{N;Q^g^;{@fLfS?5>^1HP?ddRph6yTn{rMu+iGM&v4{t!$ZjA#b-ni;rT}Vy)OU zXEMVohve*|OTehMYY44&{4m56INsr;0`&;jV?fvgpw&u^B^2Q~b>5XE=x0<(i4z3BzuHGm9KNT}_ ch!%->#(#$C;Xpv?CJ$UyoQ0T+$pMPwxA3MRK!J3#|=lh`j`orQ&iK-9$IWKUX zYG3~RP0gQu*=i0ijW7MYR9bw2x&5tM}J=G3glk2BOKTEyj-8@!ZO0-z_ zWoxy7qR@iZIull}TKd)_=I8W=*=9M-&$cn!ftfo}HvJHFgeV&q$*Zt*zm#jW>DcR$r$U-$Qx=SjaWY6s++($8N% q$Gb*q?Z)TTALBvsO(tkK{fA*=`;lAw{g?HCjPP{zb6Mw<&;$UP`vf%r diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx60.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx60.png new file mode 100644 index 0000000000000000000000000000000000000000..46046dbbb64737a5329a837490dcffd3d164b20d GIT binary patch literal 849 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneMBYKZaQ!do%J0uxVz#A~3DrC#5UAM~^j@J2aQrkFp+vJt6=D%I84m1PY`mPata;Lf4F^jj`@piA-adwY?Cf^fAlM& z&gS0Urd3z(y`8aI_ufQ>X$4mGkQQ_1p4w_g~NYTUQ(ZE@%I=iq*%b zGN{kye6?FBT1a7a;_t7u-G*Kbw?D4_l&%}G=HTYf>%N^9O1LI;W>>V02h)*;_xF!8 zoXy&sQyn%rtnuEp@V_tj{fYd)`__K`Yun=O>t;?(<|%lncVXJwNZ(mkPgDypxO!vp ztomy~N7e;;w^;B^U=WvKIo|mC)SPm8jkm^;XYI2BS2;*;WhlIsUN-OVuYWelOh;U% zGKkM(J*CH$x>?m-IKd=iUTNm4;w>8>&3FR?{l4Owof`AkQqWlUpu`>UD7fJ2Wt`|JGLCsqeeDO8)S4xTE! zJltKkEm9$NfitJT^UL4W4rEAe^STqs^yRrKxD)*UU=Z4HuvOuM=Crbwh{oR?gYAJvaCKdvkAT);6u(N2^lHytxY|I)0cp ztKjs%#hDkUI)0n>c>R>krS+TzMxo*gx1>5Y|NZ^;yH7)4<@a0h;xCr;yPlhOP0Chu z>vzK=KW3!vQB{0>J->3%nyR9l(~sw_zU^|cQ?B#QZ=ZKBem>Im42*p!%lhlo^K{Nj u^~+zCmikQm@?dR4JR?TxBvzoI{<*ld?E2I58#-@;^mw}ZxvX`8 zsA~S&xOSEu9T~3G>+=tO_;+{tbKNH0_t~szcjMLX74DfP&v;k6-h5;6&b0}>zh3{; z{yK|g{tosVo(*@Bo-v&Ny*Rb^>XJC7Cy&>DN-y#k>b&9AaOcu@q5QD*at~TK1KM>g z9m4y*M_mf@mUr&2xI0Vw%BS+Ee;1#x(fzOSQT4#dc8Arr2XZ<>svB-iIwzE1;xbd! zVato1?OD8M(>NzQXWU$soqVAA8$+pR#+F@1+!t;!U4Oi|O7diZ}DgJGHdEQYn#SF|}3I7&7t2E>ZZ zWqq+&#UcOZ=Iv8<&SD5_)GJZ1NPSy9jp3v4lQ572Wt&ob)$nEmap!<@PC{r8O--JafkUBg*$ zNG{=P=USVZ8MYU%?w+~r^SrCe&m>tG|I)GcU-EUHO}4F^R+rxwk0)LVatUs0Ua++U`C?-z0rva$UaoVbq_GqDmY@^4=J!`dlNX0MrF3DV-}>gTe~DWM4f DagT%8 literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rtx80.png new file mode 100644 index 0000000000000000000000000000000000000000..a32b25b6f5e3d48b4f809a9322a5a8364a4b5084 GIT binary patch literal 862 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxne59bV+I)80K=+~UpVK?8`o}Z-ZQy(kz;0UL{ z^iOV_8#dL8%!p(-E@r{K?A2%OuVVcEh4Uyb7+*7V9`uI%IVf-al zrOx;$M!E0r=BnOj7ModKOrFc`+purxnXu5X=ofdVZF$eRYT?CGXZP#~bzc9^>UY(5 zXHDA!uJ72s|G)BPS>QIVE88#Z<`n3EfBc>{XTaS9QJxJJ;wN7zGWs+vpM2}?#-D5E z%$-*Myv}LiCftqmtO|MD}ww?DEpQYF6}GC$<@`p0ImUl~ki zPR0M!yO6PU)i19vIi=oAF)5NI+f{4c{$2bye4252zd6gU2j#cY89(0oz4~!D^Dhsk zp0Gs~8`KZE`P<(8JtOhYtHPQx1?g>XYz)I}CAWS4@yt7RxrWt6<%w4xH!ptPUf#5H z*I^s3FH_H-7h1A^*{iQB&Rq1L_~pT8hI&?vq)N2Fzxnp@`pZQY#+1f^^mw}ZxvXg0KM^HlaRHm%j$@0IDouH|9rrx#H2M3IjN3}oA|Fw^Acy3Ys|8n&8zTdyXRctp@ zvpmr~7{{72PuUwe^(w<$-ojOKi_2?56~ev?u9~MO zU;b{T%7K$r4foD2x~UV8bMw23L+QmBRfp2YdhyjEoD-_GoEJ=vXZfC1o5r|l7Q@?r z2k$9fSQ8_Y^z`QHIPd*McZ41ky?NfaN-i;<>4}^Yd(H2AZL#0I8s_Zyc`QaJ{;Z!T z!{r73s~_LZ@(^Ag_&p{ioYR2oRMxMnIu|^@rg^(vZq@d;JNEO-RF;=#l{^{#?PihK zdSS8RRqwA1KX)#Em1Jel8Fg22U0P$>dDD*yoC49`Y{cY!qr=Rvr7>Dpi753Qb>HlB z^>FUmc^7j+-wVE;dQ;c-fTv#5_qdjI)8_kjuZu~^zxm(GHu|)8L-ThA+i2#ETJyKx zH)c%xdUy36=|uKg-Az@|+26vh+`BIDc=5@Pcbo3RL<<}^{gZRYouyx$CvLq4 O(&Xvt=d#Wzp$Pzuw25K> literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx70.png new file mode 100644 index 0000000000000000000000000000000000000000..791fe4cb0fdfa510502804d63840dee36819c1c5 GIT binary patch literal 814 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneL<TTu|DVWzWUceweNB)?dqROtdn`Zv47UaiBr9Vr*2ub zCS2=-?!y_OuOjZteO@s~=F{W#Q5z!}wp5+3cDa9~&DLShx~MbXzUKU2%@{4aDP-!l zTkqxWvr4linC!E=SO59l<;|+^<==m2nsEJjky63l;!KK1lUrVG~QTa%d$_q^R44+V<;?S<2?eP7MFJ4g^*fDcqX&#f#xqksD)&*xtGKWOyg8I^SEnYF?M`GRO4K zA2xT1h;9f!n7;mVz?$v*#P67`SbTGN9RGy%(kuy=`eE&U zdyaozI#7B`d$SBUL3OZmfpRbCO4l#b+_CAMU5!d{^R z-&Kz5thoL0#`BAnMU&+JcXgc=IuQE)YsU-yjSo34e5(#Wv%`LMeSTAD_)lZy8&_NA zZ9U4yX)rr~f93a=SEs%H-Y5U{^ZVkTalbd-4gBBFa@KS5?bC0+{E~j%)pJ%@f$hX` z{`k0UWj62EPwS7?iD#`U{d2FZ`fHTY*Ha(m)en4}UuU}E))$R=#?$h{pG{@y_#5Hb zU~%>3S7Wx~^>@pb_Lue*Z>v>4*w+0Zkg2CHJp4sWz3G9^AI;8oW>1Y{I`Z{YhVF&e z;V~@df1PbpK5&!8;@oZ_kESqR_77|BuDZY2^necIs?uhSn+1Y*c8f;cJzMF*^hCS%-En0hh5NOqvYWE@DtVbn zGd`MRuM!|JESNlzyxO}nwT;r#E7eVP+Y4-`aA5LRG+ag(LvYjyaWEZz?t zEE#V-8hD>-9?O|%9W4^xxWkGmB>ctA;)ZIW1>b#~nJNUnoqx2&cj}|5#bOyUVFbG zrjqZ%H6CqF18!j899g?6e(xgN-O*FsXZ*PrwBAO#he4aaXWq*nEB>5%dnRI^>f{5{ z8MfcsZF|0IkJkPw`~6jA3RY%+l-B$@^!m*6$sfJf{K#^uzN#SidhYi(;qmFe4XxL& zxM9F}j^)Hnf2rsN{Y>A_Jnz4n-j}{FcAl)Tw`^B_e)IP7?@`w8-!Avqm0Yi^ zaGvG2jz@GQ&yI_~pDdA8^?kp0)%p9?|F?B6V)tOU-}3(5rn?JrSFhvPd`<6ty_v_V z)rVKqtxt`A`E73QQPl&?+mbf3RD6AQI6wN{ey#KCpa0tXc>R~ntMkI_;%=`h^e?U3 z{625WpF5sRM;K23zoIK~Z~yNvo3?)XQSR3eQ-AwWc5e6A)z`LY&6h3z?eo#*@%_Eu z^G{AV@6QyIqPD`TBhukJ)AtOfFHygYIR*M}+ojv&WxtI6xy`?(|K`*MZT?oJjvMEyIns>I!8xOk!Baz<+~P>TGkkZVC64n0(ap`0vH3FKinZABdM_UUO~z zx$G@=hF))K=Gb_r@FWP_$&LJ9%5+4`;@qJgrd`+h=daB_^0_OSg>wOS2%p~eU3(or zp7Q#j!}w^+(^C(sQ(G&pJYBiW_bgLvjo1pQBgdv~yIv&c+pxz;`gL#L<-C;DVN*Uo z&xqX{$Q1Hge({p60%Z$ZH{5u1KCIxoio^P)=gXVIe!ri)_EdS(x^sDJYszgd>~+}8 zvf|nE)rQCBvAnpu!OXj1kH2a3)~f#Cd3P_d?m8inkndgb`cvTFsV~p${rde5=V{rp z#(7;of8O+Zr+a$!uhopTCX8vl?B(BFZp>5Pwn}~THygXkEpJ{VPhRZq@LeW<8{0vk z4!1_TU(drmCkU&sr+oeWV#d|;i_i1UuiR$AccHXdZh`cZXv}0wtjL4^KRNd<+r^m9 RclazwkEg4j%Q~loCIFldlwkk> literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx900.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rx900.png new file mode 100644 index 0000000000000000000000000000000000000000..b8502173c8cd522747967903f22d2e3c10015791 GIT binary patch literal 883 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneF_`-py@S_ZRVfpOgM=-kYsu_io2e{Bop^ zdijFIMM;mIxNY0^*UK^QdAnL@!TtO5wm<&0%kAlzsQYh?zdpY?@A%`W zzq*o1dxah-X*-5GrEp$gKc#Wtx7gnN*wrjIUY!+Ec%8Y5C8P96L*M+(`7dw(i}=4r zJ>$KgtN%Ubl;VcK?s=*n@-GYnH@S4JKhDtmG`(|{to(C<&F4eUvOaol#=hf(%z~|R zs@qL+I|P}x<$Jnw8f0DE{P$+%ws}gkZNi_+PWM_pFDv!O3C}i%#ibv#9HJL|X|$L6 z9DY9ix?tMm?-g=aKYp}H=HF%{-r;$IGraLp>%yF^D%=nDPh?o!@b2~5XL8z{m)m?+ zb0%<cSe=SkH#N#SPzny-Km=yBa2ZUF*Wps)ofv3f~0W)g8EBU1d2T zwE4Z_H?;=22PcmfzRB3CGW$dCI_Wn%`2tv@_Rq28+84QZbLh(Iu*NftdKZ|_Ow)9~ z&fDkFAhF}>h1{_G-w&gwGHm`7R_AtT@;8QBhU41Hu4xYl3VeM#t@W!)5p#h%|* z1y;Jt=rij5nEh>UqlLBIJ9{HWx2LkDdsr+UY6Z-`aMXIkySE!OR?{QmOhB_^ZnSz8`&|NHCf)wGK`3|C9T_Sb*g-Lvn!HqU{7 z^W#{P^m*j%Ybv8|eftp^zu?jHwcl23`+ofVv^ABN;>$&QURiB^otY?KJ71bb!Ax-z z!x5)V`hR6@>*n2^*w3aQmwqkgW%iW7fZL_v55t7-IAre&d7b|Lg`q~Mdq+!>WmMBOSZW zc0|su7iox)Sp9Zm!}sTVgP2nspSmq}xTzA7EtR@hJ2L%iJj(+4eZ8iB+#aS}Q)1g0 zI2^2QT`I5I%p}w<&@b|%Zm<1+9frt&b3I{OpG~$qQ1<@j`BiQaoDQYO?SvZkd6t{u diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz80.png deleted file mode 100644 index 3bc38fef55838077f805c8fe0c5dcb90799824da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneMBNR72^_bJOxPVQpxYtqgx-?>>dWq(k+_E(!eK}qRI&RJqh_9pBV zI`H1JFEU{J+l}WIe}1B3|F5g-tdPU%^83oaRL$Nn-g+L_Eot9hH6d6E|k^ zPq3Fi_~Gg2@7tH=_P;K2c>1@$rQ`LZ!rcGc;`JSpcdq`Lvo|a>@BNNxTlW6_(J!pP zcF&7RrcvnnQ?bukOkea$SG^4vGM#?=Rjlk{^$W~*Si_{1k2svU{Wu~?tPW*n}kpEq^$oA9Uu8Uji zr!u^i;N0+0HNbSUG53;HPv^3R?7Mcp`SsO#uTMoRwQ6U%;gDDP+2`D;oO5g1S492O z`NonitiYd;o;>y5(g@QyK~?Fye`ao7b9KR|tkd&f2fmHJT5RgLYNNY8V-F)w)9GoY zri|yd{INVxty}iK?e1cs1yhp+-UzMWnNz{}<;1l8*DtT>(GAO=uvW!E&fJ5+_Q2^E zZXr3ApXWZ=tXsd2dvspWJjaC-hxn)p;h*243L@um1df zaVg29!mj$?%)pMBNR72^_bJOxPVQpm^Z-f(}^joa@1{^Nb(FDxJyN9az5Pe~o`Y zs_9oR^Sq^Dakl!L1s9`orZK#qXZL^Wk$0X~-*&#<`uFJft2Kx?exOmfmd2;a>1>b6vIe)8AjCev0k+_~X`h-GbyrA-{7uFYdoT?N!C^ z_nSXYVo>*M*w=07-JlbY)GH~hFzvjM0$a(Q`q{0ogcsD$mrb8vVaWJvmYw&EH+xhL zutqfmp5687uZ~61&j{xA+ZaL@h1LF!{CR^Z^tmdd-?GxcFyVwNPCZS^*LKwYT*E!( z>V;~d1#{is{7!#*J73^9lhA`h$qiZes>2qqpC*0vi+1yaRZmy#$}-%TJbi`yn)Fyx z&Vr3BEA%*0H>++ITeRxu;x*ixXE7K)Sp7Ye>C5GVLJ!LJ-c}4_UM+P-Ztc&$8}kH25} z^H;}rPr%fx7Z%@KweM)h)7!oIp-gN1-uLAxKXi<4uxog{C8JbUVH?k8YioDT30pM^ z72;TvO2ad^&M(_nIPJ9u_cHF1OJWIA7&flA+Z|d_w%&JYLg7r+1Fv#I=dbzOTeJD5 zZtQ~YdzW@w)yJ3WrZqp`dwag*+yA0%zZ2CKMFJrAgQwC$+ z^GcnfZ(FY1JFeVcSN>(=iHpkfs=rOQ?Kim9reSr^bP0l+XkK2N|HQ diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz900.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rz900.png deleted file mode 100644 index 2185487061075f9f3c62946b87591d6a18c86b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxneg0NaB& zjtU2kc@rw0dd%rsT)-x`gH6LDj`v#6+a;`5p8Q^tvEA1!bN6TKZL{y>0S&5 zMV{CmwbQ<|%}(r2hJ9^@`@)moLihg9`JWr;s?O2ie<;2DX5NKuA?YoV+2*hMjy(S^ z5_&CYeaYjnsHa!It1^h^9!+Dc`1v-p3hx4AUz#J`Jgzc07_?dq>@3$^dU(aG)AX*~UP?pxQesleu`GHXhs~C<< z+qbsA@#X#L3^7l5E^J>@d+^+~blohmC0V}%x##wVrq%w5+~6L&_2x_m2EPUG7oFj% zDQR25BoKW|i=meB9j`;q&t&`k?|-NN&Ygeog%8kE(##>B?}avgV>}u4Z|d>QmOr&t z{4HGl)$m8*ZwrZYOMkcTvkW|o}lGVw& zW&4Bl*xsz33-f2DHGjQv_GDbTjEOWe$ANbYA+1;EEB3K1cy(#Zx=T6?H)rac`*!AB z3{$})#}BV^Jk8!l@amAtk+q#?@S5|PnQZ*b3ON9xb^4HiXUl= z9rulGv>4tdS%sEV|MOn7I=gvOe%WLDyr z{KvG%?DIBon`nKxXuqG!QGUWch1K`nkFTkd+nfJmUUm251JUL$Snev!XTnUs#ESes Yryp@qq<6;>d2WyvPgg&ebxsLQ0BYuuhyVZp diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx60.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx60.png deleted file mode 100644 index e4c587741bafd32307b98cedfd9ac7348cd2f4de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxnea&_9D=}(Fnfrem!AO8FH z*8hI}`}+C%ZPVx5$Hi~geYbyKUh1Rg-}4qf4!iyJhxYS=)0KVujDM|}`~B;BkE#TB zmM69c<5)9q%QNSN`On|7d5PrJsek`3{&ice%Wnch9q0bLm-(94MPE}6S$j9fLdd@V z>+#33q9JR)<{giD`|%xT5@*4our*!{=I`zPZav#(RcJ9$cK!PGwafSJFSWaT-TK%6 zM<2Ab3RR~$>>ds3b6AddzCJapTwdd?_2Oyu*A}NVn!RRxw93D9-rwhcE03{s zbZRlqs}Rj73C!3MRg}+kqW23qeOVy*$1$q!66gdM*Y`ru4hd)ceg zVWnx;H_ScCLi6jVK5~A2-qy!`+aCWgeqQj*Cj0;LZ;_VoAIDGpa^Rid zgz%H0aLSVUpczj-kYj0jX^qW<3)jIS7-Cr=d4Y1o~QrhfbRS3x3bZd_pRUC*sS6W zF0x*Gf7*FxCY#P6*XZ~C2^Ig}T|OPwq+2I;yZiTbtvb$gpK9~=vy`m^DmICI~C^Km9E6D~D-|*0(ICBafdI_pJ6_%hF-{(2MB>quG3x>tXI$ zj6tgx7#Fv!c3u$obRF-`sOOemcV=d5Zum@7G1o(e(Rf?QKzmj+gudT2-`Q4JMrhW&P`9HA3w6SGUmLn zOFU!QrsIFJRy%y`%HP+Xkyh%>bmv>0#bakV}t^HfQO8Qw|Y%O2^HmyIVbUXI$ke9<|(Hi>r6LXNAuk5)aaSgU?K zOz!=hzkVXQUp$`NOfRZFFTP&I_3g%^feX(6`5)Ny#y0Xg_blj{7|bY=eOqBz>cZrgjdt~w0jIY+}7E51HEEFWyH_wHZb8R^^7@1H-OlvgL-AhT!B z{KERr8-2F!VX&!SNMhVq|NUj9)aS?5g|(}nx@X(|)6=W3wtW`Lu09uP=w?%xcWO3k zLV8{Jg36zU_S+6@e){=W`M1qh+g3*Xdlj+Z_Bw``J?s%%5A1FY;!REJmSzrORnV_j zVfYxK-1m3&!mDp2(nTBep6uDc@MPL1tJRxsJIUvsEcU;^+gqmh?5HMR>Z*pL3uErQ zx0!N@+2+L62Y>w6>PdyBHx_Z%`g_kie$SfmgH4?Mi@+-X&DJg{R&AFMXQ( zz~!y$nM1-@Cq9?wJTUX?dKuje#tY0k^B+k)e*LHA+D-L+yVQ60+0<2*-Me{QZ@0Tg z=tb7NR*TmG diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx90.png b/src/Decentralized/ModFiles/Textures/Items/gpu_big_ov_print_stamp_rzx90.png deleted file mode 100644 index 4240368c60100eac55cd32d97535b6f8a4691054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SNgAGW=wxnex;TbZ+j@EPeb)??6)gp7mc{6^{R2%NZcN{+hMc z{C3mWO3n`pI43ZF`McZSKl;u2`A>fp{S2(V7O6OtILM#MTLJn zdaf3#Hn9BA4k+rLdHT8BqHhwLSyphGWlcUD?M?r8!3D7ko-g!!7r9Gp*R~U@Kb5Y#IJew9)qx=W?rAR@hEeywL35uraLJx}G{ca4iJ#-PM*oF6pRr-!_rYlF*ia*v zd%sS5Wy=|$ACVi$+GTk(%SiU?@d??btrb%l^4jel8oijuGUM(po2b4yu?o_$mg|Z; z0-2tt-d?dhdhM%ezTvB*qwB2wD!kucQ#^6))8^1cH&v=vN7jDV&6x-WMr8U)`vd=%B>Hhs~txmAWTm{Co$v15e zUW)ac$NFp9|9Dl8T7%`)w$^Fi%cnB5IZmHmZ+K=sX0jz#H|bt~Bo8d*8UiA|*MBi-G4x|Jyz8ulLMze<#&BH|jv~y2&p@1v+D|HQw7N zKK)kX`mfPJ7xVsZYPj~<`|pj3&!^7=*(4mRVm|Tq%UdC-Kn{batDnm{r-UW|{4hP5 literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx70.png new file mode 100644 index 0000000000000000000000000000000000000000..5c42b1a9488bb6727e8aad806fd58b7bed6fbf0d GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qqi6+jv*Dd-d+x5V^9=exbUvN z|Hk^gkJA2c3K7mcTD|1b37^GN7!)4t`uw@?UZt)3yRIX8x(}?cdw$`X(Rue)<3+nq x9Q#WbY|T?O6|Qz+y#4=x#>%N1fd^)t`xfLI`p!PC{xWt~$(697lQI&c60 literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx80.png new file mode 100644 index 0000000000000000000000000000000000000000..55329d3523d48db0834be239a6bcc0706e4c54a2 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QgNOxjv*Dd-d=X(YETeh4R~MQ zzaTVR=T_&DB`SX1-yK3kzAm1|#31`E+4{Xu@AcC2QMSd)*)m@L5(sRVxYIlT!CLuN zf6fbezpniI%3H%JV7vcHzwM_#m-u-Y7!J6IugaW$zLbOe2hb)4Pgg&ebxsLQ0KS7b AQvd(} literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx90.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rtx90.png new file mode 100644 index 0000000000000000000000000000000000000000..86853c7b2a3b1d1806457a1d1814ffc6f1c5e087 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qt_THjv*Dd-d>63YETeh4fwvl zf5G}~5nt4mE`K?|b&fGGGeAFSDTBkIJwC7REqY%%KTFVdQ&MBb@09%tf AGXMYp literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx70.png new file mode 100644 index 0000000000000000000000000000000000000000..b915abc87a6f71e9300737424c478f6f88f572c7 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qo)`sjv*Dd-d=X(YETei33y-6 zzc4i1brkCx|Vuujcyg&HVDU nzI4KFwn=W=e%}BZxTk=zX+ojww7e&BKpumqtDnm{r-UW|nFTM` literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rx80.png new file mode 100644 index 0000000000000000000000000000000000000000..3618221cecce91f6a017d95bb20581f51db72abf GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QbC?Bjv*Dd-d;B3I-nrH;_&}J zzhdaV3=ioK5gaO9#tLT9cdBkkF|hP)?*F}Hr^@fj##i&6PSgA(c;&frPNv+pj waQ&wF&b3@WtQwzMPk8wy%$u8m;XsPHljE|DOT=Q{0xeiS$)^4aYduf?`Y=5 v^Ur=dZZ^SJVfEd8%u_pMwr&BMtMiS?K7PU8@2Y(DKpumqtDnm{r-UW|)wDIo literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz70.png deleted file mode 100644 index 252aaac44e7b7020647dd85bf11eed74185aa685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QlXwMjv*Dd-d=WOJ76Hddg0E0 zIn~v1hEro(dlaus`Q9P0`A57@Hp7Gq@3YTLo_qRCU0lN6#S7kl7g}1zXq2D*Q^;O` r^_Od-hR;bR_0v&h8yOiGEIu$aO(>L|!l`2gw1C0W)z4*}Q$iB}{qQo3 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rz80.png deleted file mode 100644 index 5ae80ca4f189374dbe6dc8f8a5791ef014de2a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QW2gmjv*Dd-d;B3YB1noy>Rcp zTvPD+6+7BoxLD7Akei}ce?mQlhasZi+~cZyS$V3zD;s~LHy?|c9dwl;vT?>)ufO{m uvleWRShQk4 z-zj`=lJ|B+uLbh4XBu`?KHxrhjbTB8{kG3`SMO*Rcp zT+`(6kQnb(jJhvB$W76cpEY5bDTBw2{$OTD?bP0l+XkKQY1F6 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx60.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx60.png deleted file mode 100644 index 744cce5c6de269a69e3a9dfe4c4010fadec39974..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qi+}}jv*Dd-d=X(YETehaQOef ze?f4(&Mw`?)vnXpB?Vkv%OiDJ8LZaa-ZWn~y1({(q-}M)?}J;%6{0xr-29!%`Y1;1 z&*d!M)egBa-bGzpDbu$LotSrj{rsw1{@e@<2NKwSDNR3bkkYIRw2Z;i)z4*}Q$iB} D(C9Z; diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx70.png deleted file mode 100644 index 8e4f770fc40910a344fe25b0203dcd346763a7b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QVE_ejv*Dd-d=X(Vo>C0efX}v ze?e%t&aF=FV6EGK{tDnm{r-UW|^D8&L diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx80.png deleted file mode 100644 index 95ebf31cd595f5a3be74206575b21f57b755a816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qt_THjv*Dd-d;Y))u6z`5b*!M zeUsncq>H&M(QH%Y?lA|3lqBDhVkn8&o@yVxRqpq^%~jv_%{s8P-!X*K=H~Be)<-d7 z0b)NcaHTw6sT~koH{IdupSHSJnfAIs!{x0R8j|N8K6qbeJ&?!X>FVdQ&MBb@0Nw95 A>Hq)$ diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx90.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txs_rzx90.png deleted file mode 100644 index 87a86f2f291ab55c2bd34adc57099b24d3f37194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QVE_ejv*Dd-d+jhYEa-|2zX!L zzhM2kh%e?%CtEx^zdMMC&h^RVW#IajZ2kU{bbo2;+EaJJ`9G{l7TC+&bLOuN^G1Dc z4epvOwoTtINxsO9i_1fE#A^@ChTr+^2?HZ}&n0v3?PTW)78&qol`;+08P;|lK=n! literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx70.png new file mode 100644 index 0000000000000000000000000000000000000000..cfeabc0edba82d3e92358722b8c9ade716f75233 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QlXwMjv*Dd-d;YhQi^ zivQu>DSEpyCPeI7p?jv`hoee=f+jdTcm$~6uq9cgZ13C%?vm9tYwbe pxSB7A`@?TO8{Q9{_CO;U!kO8U7k}H-e6kG0^K|udS?83{1ORn6G6nzu literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx90.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rtx90.png new file mode 100644 index 0000000000000000000000000000000000000000..110673e3e80f14951e5d162caf88f5d447ce1d4d GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QemDhjv*Dd-d;Y)c|d`O!QuP- zV~TfHFYT{ua(TJfaR+l}mxt39Q-&J`Zu{p6UVk6gb8~0K^?cSNEa{&k86$OGJ4}1C riaC|F=H-D^!tOQ;-@FH!=`c~+)OT*jY{N~JKpumqtDnm{r-UW|LO?WV literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx70.png new file mode 100644 index 0000000000000000000000000000000000000000..2ebd6e1132dfca4ab157e9251f7c2f57b63bd267 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qa+w8jv*Dd-d;Y)$)L!?;_!R@ zF{L-&JLA77{*>&KoS@)VAR5iw&|>)OkK3H%Ro{+&Eq=e5Vf(DN`k$F*9-huUVeifR htQsHLfhHwvXJ~j*rM<{ZcpH$%;OXk;vd$@?2>=OFFb)6! literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx80.png new file mode 100644 index 0000000000000000000000000000000000000000..2b99550911f7e59715e8613465beb4def307741c GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QvRMUjv*Dd-d;}RVh|Ky3;1q- zR_@T=oPWG;yW&@T_nO@E$<&jRLG8((DZ3uoUE8NW?|b=nR*9=u_q`SVQGMk)OCM*! kUzRjxnV;-H!xnsH3fa+Hdafhg8OUSsboFyt=akR{0Lu(A6951J literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx800.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx800.png new file mode 100644 index 0000000000000000000000000000000000000000..60858b1820589a2969cd0c3ca413d8425dab7be1 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QURVWjv*Dd-d;Y)c|d`O!QuP- zV~TfHAB~@)RoU5UJwc!+foB>M1LxYS%h%61ZgKtS-`Kh>jj?C0tvx3@|G+Duc>OwG k=Kb>>wl!-12b#vv6IZfn3#Uhz;0X}V)78&qol`;+0P3SLaR2}S literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx900.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rx900.png new file mode 100644 index 0000000000000000000000000000000000000000..464b063049086dcf18626b85f517bc9a42fcaf97 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qo)`sjv*Dd-d;Y)c|d`O!QuP- zWzIXoyZ38o{SxFZR}ku%pyA2MAok?Xp46ij?{ed8<{x#Jp7C~d<>Kn&^$8&^?~ks} nOjthQzS)J@Q?=881~O#H+w568J5cld8xYUa)z4*}Q$iB}ASW_J literal 0 HcmV?d00001 diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rz70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rz70.png deleted file mode 100644 index 784b5e6a97627e4daf0cecde28ee7d66a6d66b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QvRMUjv*Dd-d;Y)c|d`OHQ@XF zV~TfHUz**q@TF(#cZVYrob8STF(@qD`fE>mUH{fl+gG=R681d*75-n4@gHA(Ov4+8 k>nt5*)}O`jv*Dd-d=X(Vo>B@IPmZP ztXh}1Mgn@$JQV1o^PrNEl+8%JXRALzSnwRa706@oboFyt=akR{0N<-`zgm;Qul!WA6`B o<~1fCx*7MCC6uWH4SX;`+-A?(+5Z(y?SVW7Pgg&ebxsLQ0NCU-VgLXD diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx60.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx60.png deleted file mode 100644 index a754fc905902f5a8021207647a09e983fe02e644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(Qjwl6jv*Dd-d;YjM` zV~TfHUvlQ>?Rx22UBT}n!u&HqlVQSzsJ-t*&!3OIlfKa~FPm{OOE~MAd-Ag#)NZby te9NjaCq2DzzlOr)n-_O0*8`1ZxM#(mwD_CJsptM6o~Nsy%Q~loCIDv_G>HHJ diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx70.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx70.png deleted file mode 100644 index 7c4bafcc5ef717f96b3c76714d7c7266046fabfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QsJI1jv*Dd-d;Y)c|d`OHQ@XF zWzIXom$u7EnY?h-+{3PvC15`(h#|pg?e)JsJLbP0l+XkK^ye}_ diff --git a/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx80.png b/src/Decentralized/ModFiles/Textures/Items/gpu_ov_txt_rzx80.png deleted file mode 100644 index ec7fc0b20541c4a68adf7961b392251a567b7069..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!3HEluKbn(QlXwMjv*Dd-d+ymYEa-|2zXyV zi|^syF1ueD8@AY8d0;Crvnz+so3Vj!Yu<0mq?)xyf4+>_lO4er*%be6xyS_7=|}Ue qO!qLaogTM|x$xgrd7zOEyP0!DR;65DnHd1&F?hQAxvXjM` zWzIXMFKv%w%A75C=Bcefr+v>sLxu;d^)3`CpOWCG+dc)I$ztaD0e0sxroHmm>u diff --git a/src/Decentralized/Unlock.cs b/src/Decentralized/Unlock.cs index 0a9645d..36ee44b 100644 --- a/src/Decentralized/Unlock.cs +++ b/src/Decentralized/Unlock.cs @@ -2,7 +2,7 @@ using System; namespace Decentralized { - /// 人脉网络里的"Web3 治理社区":整个 mod 的入口。买下后交付交易终端、一个矿架、一张 RZX 60 和一本显卡鉴定手册,并开始每天的行情与挖矿结算;更多显卡、矿架向杰克逊博士购买。 + /// 人脉网络里的"Web3 治理社区":整个 mod 的入口。买下后交付交易终端、一个矿架、一张 RTX 60 和一本显卡鉴定手册,并开始每天的行情与挖矿结算;更多显卡、矿架向杰克逊博士购买。 public static class Unlock { public const string Id = "PD_WEB3_COMMUNITY"; @@ -38,7 +38,7 @@ namespace Decentralized { Items.Give(ModHelper.SpawnItem(Items.Terminal)); Items.Give(ModHelper.SpawnItem(Items.Rig)); - Items.Give(ModHelper.SpawnItem(Items.GpuId("RZX60"))); + Items.Give(ModHelper.SpawnItem(Items.GpuId("RTX60"))); Items.Give(ModHelper.SpawnItem(Items.Guide)); Log.Info("已加入 Web3 治理社区"); } diff --git a/src/Decentralized/UsedDealerClient.cs b/src/Decentralized/UsedDealerClient.cs index 4a0acfc..c873d47 100644 --- a/src/Decentralized/UsedDealerClient.cs +++ b/src/Decentralized/UsedDealerClient.cs @@ -18,7 +18,7 @@ namespace Decentralized public static void Subscribe() { ModHook.OnGenerateCustomerNormal += OnGenerate; - ModHelper.AddAppraisalItem(ModInfo.Id, Appraisal, Items.GpuId("RZX60"), 2, CreateForAppraisal, u => (int)CardValue.True(Items.ToUnit(u)), + ModHelper.AddAppraisalItem(ModInfo.Id, Appraisal, Items.GpuId("RTX60"), 2, CreateForAppraisal, u => (int)CardValue.True(Items.ToUnit(u)), Items.IsGpu, Items.Guide, () => L.T("appraisal.gpu")); ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Appraisal client (test)", () => Log.Guard("鉴定客户(测试)", () => { diff --git a/tests/Decentralized.Domain.Tests/Program.cs b/tests/Decentralized.Domain.Tests/Program.cs index 57fe91d..7375c70 100644 --- a/tests/Decentralized.Domain.Tests/Program.cs +++ b/tests/Decentralized.Domain.Tests/Program.cs @@ -112,19 +112,19 @@ internal static class Program Test("显卡:型号、显示单位、健康度与算力衰减", () => { - Check(Hardware.Specs["RZX70"].DisplayHash == 50 && Hardware.Specs["RZ80"].DisplayHash == 40, "RZX70 50 MH/s,RZ80 40 MH/s"); + Check(Hardware.Specs["RTX70"].DisplayHash == 50 && Hardware.Specs["RX80"].DisplayHash == 40, "RTX70 50 MH/s,RX80 40 MH/s"); Check(Near(Hardware.Specs["M3"].DisplayHash, 3, 1e-9), "RatDigg M3 3 GH/s"); - var u = new Unit { Model = "RZX70" }; + var u = new Unit { Model = "RTX70" }; Check(u.Hash(ModuleBonus.None) == 5, "满健康 5 H"); u.Health = 25; Check(Near(u.Hash(ModuleBonus.None), 4.0, 1e-9), "健康 25:5 × (0.6 + 0.4 × 0.5) = 4 H"); u.Health = 0; Check(Near(u.Hash(ModuleBonus.None), 3.0, 1e-9), "健康 0:60%"); - Check(Near(new Unit { Model = "RZX70" }.Hash(ModuleBonus.From(36, -44, 0)), 5 * 1.09, 1e-9), "一个超频模块(+36 性能):算力 +9%"); - var fake = new Unit { Model = "RZX90", FakeOf = "RZX60" }; - Check(fake.Hash(ModuleBonus.None) == 1.0 && fake.Label.Model == "RZX90", "假卡标着 RZX90,算力按 RZX60"); - Check(Near(fake.DeathChance(ModuleBonus.None), new Unit { Model = "RZX90" }.DeathChance(ModuleBonus.None) * 2, 1e-12), "假卡暴毙率 ×2"); - var r = new Unit { Model = "RZX70", Health = 50 }; + Check(Near(new Unit { Model = "RTX70" }.Hash(ModuleBonus.From(36, -44, 0)), 5 * 1.09, 1e-9), "一个超频模块(+36 性能):算力 +9%"); + var fake = new Unit { Model = "RTX90", FakeOf = "RTX60" }; + Check(fake.Hash(ModuleBonus.None) == 1.0 && fake.Label.Model == "RTX90", "假卡标着 RTX90,算力按 RTX60"); + Check(Near(fake.DeathChance(ModuleBonus.None), new Unit { Model = "RTX90" }.DeathChance(ModuleBonus.None) * 2, 1e-12), "假卡暴毙率 ×2"); + var r = new Unit { Model = "RTX70", Health = 50 }; Check(r.Refurbish() && r.Health == 80 && !r.Refurbish(), "翻新一次 +30,不能再翻新"); }); @@ -152,15 +152,15 @@ internal static class Program Check(Near(fakeSigns / (double)n, 0.55 * 1 + 0.65 * 1, 0.1), $"假卡平均 1.2 处额外破绽(重印丝印、补贴序列号):{fakeSigns / (double)n:0.00}"); Check(oldWorn > newWorn * 1.8, $"低健康度的真卡明显更旧:{oldWorn / (double)n:P0} 对 {newWorn / (double)n:P0}"); Check(seen.Count >= 60, $"抽样见到 {seen.Count} 种不同组合(上限 243)"); - Check(Hardware.Specs["RZX60"].Price == 220 && Hardware.Specs["RZX90"].Price == 5000 && Hardware.Specs["RZ900"].Price == 4000, "价格已抬高到约 1.8 倍"); - var u = new Unit { Model = "RZX90", FakeOf = "RZX60", Health = 80 }; - Check(CardValue.True(u) == CardValue.Of("RZX60", 80) && CardValue.Of("RZX90", 80) > CardValue.True(u) * 8, "真实价值按芯片型号,标称型号的价远高于真值"); - var worn = new Unit { Model = "RZX70", Health = 100, Look = new CardLook { Fan = 2, Fingers = 2, Bracket = 1, Sticker = 2 } }; + Check(Hardware.Specs["RTX60"].Price == 220 && Hardware.Specs["RTX90"].Price == 5000 && Hardware.Specs["RX900"].Price == 4000, "价格已抬高到约 1.8 倍"); + var u = new Unit { Model = "RTX90", FakeOf = "RTX60", Health = 80 }; + Check(CardValue.True(u) == CardValue.Of("RTX60", 80) && CardValue.Of("RTX90", 80) > CardValue.True(u) * 8, "真实价值按芯片型号,标称型号的价远高于真值"); + var worn = new Unit { Model = "RTX70", Health = 100, Look = new CardLook { Fan = 2, Fingers = 2, Bracket = 1, Sticker = 2 } }; Check(CardValue.True(worn) == (long)Math.Round(800 * (1 - 0.12 - 0.12 - 0.02 - 0.06)), "各标签折扣相加进真实价值:风扇缺角 + 金手指氧化 + 划痕 + 封条缺失"); - var clean = new Unit { Model = "RZX70", Health = 80 }; - var dusty = new Unit { Model = "RZX70", Health = 80, Look = new CardLook { Fan = 2, Fingers = 2 } }; + var clean = new Unit { Model = "RTX70", Health = 80 }; + var dusty = new Unit { Model = "RTX70", Health = 80, Look = new CardLook { Fan = 2, Fingers = 2 } }; Check(dusty.DeathChance(ModuleBonus.None) > clean.DeathChance(ModuleBonus.None) * 1.5 && Near(CardLook.Decode("20000").WearFactor, 1.3, 1e-9), "风扇缺角、金手指氧化抬高暴毙概率与损耗"); - Check(CardValue.Of("RZX70", 100) == 800 && CardValue.Of("RZX70", 0) == 200 && CardValue.Of("RZX70", 50) == 500, "健康 100 满价、0 剩 25%、50 为 62.5%"); + Check(CardValue.Of("RTX70", 100) == 800 && CardValue.Of("RTX70", 0) == 200 && CardValue.Of("RTX70", 50) == 500, "健康 100 满价、0 剩 25%、50 为 62.5%"); }); Test("矿架槽位:默认 2 个,投入电子元件逐个升级到最多 5 个;只收下一级需要的;形状随槽数变化", () => @@ -214,10 +214,10 @@ internal static class Program } return deadBy.Select(x => (double)x / n).ToArray(); } - var p = Run("RZX70", ModuleBonus.None, 20000); + var p = Run("RTX70", ModuleBonus.None, 20000); Check(Near(p[0], 0.11, 0.02) && Near(p[1], 0.53, 0.02) && Near(p[2], 0.84, 0.02), $"Probidia 11% / 53% / 84%:{p[0]:P0} / {p[1]:P0} / {p[2]:P0}"); - var q = Run("RZ80", ModuleBonus.None, 20000); + var q = Run("RX80", ModuleBonus.None, 20000); Check(Near(q[0], 0.20, 0.02) && Near(q[1], 0.76, 0.02) && Near(q[2], 0.95, 0.02), $"PMD 20% / 76% / 95%:{q[0]:P0} / {q[1]:P0} / {q[2]:P0}"); }); @@ -393,19 +393,19 @@ internal static class Program Check(Hardware.Specs[c.FakeOf].Price * 2 <= Hardware.Specs[c.Model].Price, "假卡的芯片至少便宜一半"); } Check(fakes > cards * 0.2 && fakes < cards * 0.5, $"骗子的假卡占两成多(入门卡便宜到没法冒充):{fakes}/{cards}"); - Check(UsedDealers.Pool(5).All(m => Dealer.Basic.Contains(m)) && UsedDealers.Pool(30).Contains("RZX90"), "型号按天数放开"); - // 标签:假 RZX 70(芯片 RZX 50)、健康 60、风扇缺角、金手指氧化、丝印印着真实型号 - var u = new Unit { Model = "RZX70", FakeOf = "RZX60", Health = 60, Look = new CardLook { Fan = 2, Fingers = 2, Print = 1 } }; + Check(UsedDealers.Pool(5).All(m => Dealer.Basic.Contains(m)) && UsedDealers.Pool(30).Contains("RTX90"), "型号按天数放开"); + // 标签:假 RTX 70(芯片 RTX 50)、健康 60、风扇缺角、金手指氧化、丝印印着真实型号 + var u = new Unit { Model = "RTX70", FakeOf = "RTX60", Health = 60, Look = new CardLook { Fan = 2, Fingers = 2, Print = 1 } }; var claim = CardLabels.DealerClaim(u, DealerKind.Scammer, new Rng(3)); - Check(claim.Model == "RZX70" && claim.Fan == 0 && claim.Fingers == 0 && claim.Print == 0, "骗子的说法:标称型号,外观全是没问题"); + Check(claim.Model == "RTX70" && claim.Fan == 0 && claim.Fingers == 0 && claim.Print == 0, "骗子的说法:标称型号,外观全是没问题"); long hidden = CardLabels.Value(u, claim, 0), real = CardValue.True(u); - Check(hidden == CardValue.Of("RZX70", 60) && real == (long)Math.Round(CardValue.Of("RZX60", 60) * 0.76), "没指出时按说法算(标称型号满价),真实价值按芯片和外观算"); + Check(hidden == CardValue.Of("RTX70", 60) && real == (long)Math.Round(CardValue.Of("RTX60", 60) * 0.76), "没指出时按说法算(标称型号满价),真实价值按芯片和外观算"); int ex = 0; - Check(CardLabels.Point(u, claim, CardLabels.RowFan, ref ex) == 1 && CardLabels.Value(u, claim, ex) == (long)Math.Round(CardValue.Of("RZX70", 60) * 0.88), "指出风扇缺角:扣 12%"); + Check(CardLabels.Point(u, claim, CardLabels.RowFan, ref ex) == 1 && CardLabels.Value(u, claim, ex) == (long)Math.Round(CardValue.Of("RTX70", 60) * 0.88), "指出风扇缺角:扣 12%"); Check(CardLabels.Point(u, claim, CardLabels.RowPrint, ref ex) == 2 && (ex & CardLabels.RowSpec) != 0, "指出丝印印着真实型号:拆穿假货,型号标签一并拆穿"); Check(CardLabels.Point(u, claim, CardLabels.RowFingers, ref ex) == 1 && CardLabels.Value(u, claim, ex) == real, "全部指出之后价格回到真实价值"); int ex2 = 0; - var honestUnit = new Unit { Model = "RZX70", Health = 60, Look = new CardLook { Fan = 1 } }; + var honestUnit = new Unit { Model = "RTX70", Health = 60, Look = new CardLook { Fan = 1 } }; Check(CardLabels.Point(honestUnit, CardLabels.DealerClaim(honestUnit, DealerKind.Honest, new Rng(1)), CardLabels.RowFan, ref ex2) == 0, "老实人说的是实话,指出去没用"); Check(CardLabels.Lies(u, claim, 0) == (CardLabels.RowSpec | CardLabels.RowFan | CardLabels.RowFingers), "骗子隐瞒了型号、叶片、金手指"); Check(CardLabels.Lies(u, claim, ex) == 0, "指出之后不再算隐瞒"); @@ -427,13 +427,13 @@ internal static class Program } } Check(lowFake && !midScrap, "低档次的卡也会被冒充(背后是废片),中高档的假卡不用废片"); - var real = new Unit { Model = "RZ80", Health = 100, Look = new CardLook { Seed = 7 } }; + var real = new Unit { Model = "RX80", Health = 100, Look = new CardLook { Seed = 7 } }; var t = CardLabels.SerialText(real); Check(t.StartsWith("MD2-") && CardLabels.Factories("PMD").Contains(int.Parse(t.Substring(4, 2))) && t.Length == 11, $"真卡的序列号:牌子 + 档次码 + 合法工厂码 + 四位流水:{t}"); - var forged = new Unit { Model = "RZX90", FakeOf = "RZX60", Health = 100, Look = new CardLook { Seed = 7, Serial = 1 } }; + var forged = new Unit { Model = "RTX90", FakeOf = "RTX60", Health = 100, Look = new CardLook { Seed = 7, Serial = 1 } }; var f = CardLabels.SerialText(forged); Check(f.StartsWith("PB4-") && (!CardLabels.Factories("Probidia").Contains(int.Parse(f.Substring(4, 2))) || f.Length == 10), $"补贴的序列号:档次码对,工厂码不合法或位数不对:{f}"); - var original = new Unit { Model = "RZX90", FakeOf = "RZX60", Health = 100, Look = new CardLook { Seed = 7, Serial = 2 } }; + var original = new Unit { Model = "RTX90", FakeOf = "RTX60", Health = 100, Look = new CardLook { Seed = 7, Serial = 2 } }; Check(CardLabels.SerialText(original).StartsWith("PB1-"), "贴的是原芯片的序列号:档次码是真实芯片的档次"); var claim = CardLabels.DealerClaim(original, DealerKind.Scammer, new Rng(1)); int ex = 0; @@ -455,8 +455,8 @@ internal static class Program Check(worse > total * 0.9, $"健康度从 100 掉到 20,九成以上的卡外观变差:{worse}/{total}"); var fake = CardLook.Generate(rng, 80, true); Check(fake.HasFakeSign && fake.Appearance(10).HasFakeSign, "假卡的破绽不随健康度变化"); - var clean = new Unit { Model = "RZX70", Health = 100 }; - var bad = new Unit { Model = "RZX70", Health = 100, Look = new CardLook { Fan = 2, Fingers = 2 } }; + var clean = new Unit { Model = "RTX70", Health = 100 }; + var bad = new Unit { Model = "RTX70", Health = 100, Look = new CardLook { Fan = 2, Fingers = 2 } }; Check(Near(bad.Hash(ModuleBonus.None) / clean.Hash(ModuleBonus.None), 0.92 * 0.94, 1e-9), "风扇缺角 + 金手指氧化:算力 ×0.92 ×0.94"); });