涡轮增压器可以作用于矿架和矿机:立刻挖一轮

- 原来挡掉增压器(白天多扣一次电、挖矿不多);改为照原版机器规则多跑一轮:增压器作用于矿机时打标记,矿架、矿机的夜间回调据此立刻结算一轮(TurboMine)——扣一晚的电、按全网份额出块发到收款地址、算一次损耗和暴毙
- 增压器的判断、消耗、充电走原版;夜间按机器发放抽成 Night.PayMachine 供两处共用
- 手册矿机一章、夜间日志 nightlog.turbo,8 种语言

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZHU MINCHAOandClaude Opus 5.5 committed 2026-11-08 15:19:36 +08:00
1 parent 7269c253af
commit 2badc45a5a
13 files changed
+109 -19

No files matched your search

+12 -5
View File
@@ -72,6 +72,17 @@ namespace Decentralized
}
/// <summary>挖矿产出按各台机器的算力占比,发到每台机器设置的收款地址;没设置或地址对应的钱包已销毁,这一份丢失。</summary>
/// <summary>一台机器的产出发到它的收款地址;没设置或钱包已销毁返回 false(产出丢失)。</summary>
public static bool PayMachine(SaveData d, GameItem machine, double amount)
{
string addr = Payout.Get(machine);
var w = string.IsNullOrEmpty(addr) ? null : d.Own(addr);
if (w == null) return false;
w.Add(Assets.PSC, amount);
d.Chain(d.Address("pool"), w.Address, Assets.PSC, amount, history: false);
return true;
}
private static void PayMined(SaveData d, IEnumerable<(GameItem item, double hash)> cards, double mined, double totalHash)
{
var byMachine = new Dictionary<GameItem, double>();
@@ -84,11 +95,7 @@ namespace Decentralized
foreach (var kv in byMachine)
{
double share = mined * kv.Value / totalHash;
string addr = Payout.Get(kv.Key);
var w = string.IsNullOrEmpty(addr) ? null : d.Own(addr);
if (w == null) { lost += share; continue; }
w.Add(Assets.PSC, share);
d.Chain(d.Address("pool"), w.Address, Assets.PSC, share, history: false);
if (!PayMachine(d, kv.Key, share)) lost += share;
}
if (lost > 1e-9)
{