Verification pass: crimes, reputation, approvals, timelock, English UI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZHU MINCHAOandClaude Opus 5.5 committed 2026-11-04 09:27:57 +08:00
1 parent fe4a2399ba
commit f8bbf295e3
3 files changed
+19 -2

No files matched your search

+5
View File
@@ -4,6 +4,11 @@
### 第九阶段:剧情与收尾
- 补验证(游戏内,阶段 5–9 只有单元测试的路径):
- 罪证与声望:高息理财被举报崩盘后罪证账本 FRAUD 400;手动卷走后下层声望 45 → 0、FRAUD 400;Tumbler 举报结局现金 +1,200、治安部声望 0 → 12;卖给黑市结局黑市声望 75 → 82(游戏的声望计算有自己的加成,比设定的 +5 多)。新增调试入口"Dump crimes and reputation"(罪证账本、证据、三派声望、现金写进日志)。
- 骗局:签名撤销钓鱼授权后(PLEDGER"授权已撤销"),三晚 CRT 没被转走(2,998.5,只扣了 1.5 手续费);时间锁池子取款两晚后到账("收益池「Test Lock」取款到账:主钱包 收到 500 CRC")。骗局池三晚没跑路(每晚 18%,三晚都没跑的概率约 55%),跑路仍只有单元测试。新增调试入口"Scams: phishing approval + scam pool"。
- 英文界面:终端、空投、预测(含 K 线图和阈值线)、Poinbase 现货与 K 线图都正常;"On-chain wallet Main wallet: CRC"改成"Main wallet: CRC"。测完已把游戏语言切回中文。
- 仍没有在游戏里验证:伪造转账顾客(要自然出现的用币顾客)、内幕被查、骗局池跑路、密钥盘被搜查翻出、剧情的自然触发(第 30 / 40 天以后)。
- 9.1 剧情联动:每晚读游戏剧情线的选择,每个只生效一次,改动本 mod 世界的倍率(存档里的 `StoryMods`),第二天报纸头版登一条新闻。选择是玩家自己做的,市场要过几天才反应完(SPARK 分 5 晚走完),可以抢在前面用永续和预测盘下注。
- 塞尔皮科的证据交给革命军:CRA 补贴池 +10,000,30 天内螺旋概率减半,SPARK 五晚内涨 20%;交给黑市:CRT 脱锚、镇压时被黑市出卖的概率永久减半;交给治安部:30 天内出金审查命中率 ×1.5、混币器制裁概率 ×1.5、操纵检出和内幕查处 ×1.3;举报他或他死了:没有影响。
- 埃莉诺泄露数据盘:CRC 托管银行减记的概率翻倍,SPARK 五晚内涨 15%;交回数据盘:CRC 脱锚概率减半。
+12
View File
@@ -157,6 +157,18 @@ namespace Decentralized
string Rep(string f) => f + " " + (StoreReputation.GetStoreReputation(f)?.GetReputation().ToString() ?? "-");
Log.Info($"测试:罪证 [{crimes}],证据 {sd.evidenceLevel};声望 {Rep(StoreReputation.FACTION_LOWER_LEVEL)},{Rep(StoreReputation.FACTION_SECURITY)},{Rep(StoreReputation.FACTION_BLACK_MARKET)};现金 {PlayerStore.Instance.playerCash}");
}));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Scams: phishing approval + scam pool (test)", () => Log.Guard("骗局补测", () =>
{
// 当前钱包:一个钓鱼授权(明晚转走 CRT);一个必然是骗局的池子(存 500)和一个正规的时间锁池子(存 500 并申请取出)
var d = Session.Data; int day = StoreStation.GetDayCounter(); var w = d.Hot;
d.Scams.Pools.Clear(); d.Scams.Approvals.Clear();
d.Scams.Approvals.Add(new Approval { Id = ++d.Scams.Seq, Wallet = w.Address, Asset = Assets.CRT, Spender = "P0inbase", Limit = double.PositiveInfinity, Scam = true, DrainDay = day + 1 });
var bad = new YieldPool { Id = ++d.Scams.Seq, Name = "Test Scam", OpenDay = day - 1, Rate = 0.03, Reserve = 9999, Cap = 1e6, Scam = true };
var ok = new YieldPool { Id = ++d.Scams.Seq, Name = "Test Lock", OpenDay = day - 1, Rate = 0.01, Reserve = 9999, Cap = 1e6, Timelock = true };
d.Scams.Pools.Add(bad); d.Scams.Pools.Add(ok);
d.Scams.Deposit(bad, w, 500, Session.Price); d.Scams.Deposit(ok, w, 500, Session.Price); d.Scams.Withdraw(ok, w, day);
Log.Info($"测试:钓鱼授权 #{d.Scams.Approvals[0].Id}(明晚转走 CRT {w.Get(Assets.CRT):0}),骗局池存 500,时间锁池取款第 {day + Tuning.YieldLockDays} 天到账;CRC {w.Get(Assets.CRC):0}");
}));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Predict: window = tomorrow (test)", () => { foreach (var m in Session.Data.Predict.Markets) { m.FromDay = m.ToDay = StoreStation.GetDayCounter() + 1; } Log.Info("测试:所有盘口窗口改成明天"); });
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Perp fund 0 (test)", () => { Session.Data.Perps.InsuranceFund = 0; Log.Info("测试:保险基金清零"); });
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "SPARK x0.3 (test)", () => { var st = Session.Data.Stable; st.Spark *= 0.3; Log.Info($"测试:SPARK 价格 {st.Spark:0.00}"); });
@@ -537,7 +537,7 @@ news.era.title,The miner era
news.era.desc,A new generation of dedicated miners is in mass production and the big farms have halved their power costs. Network hash will climb and GPU miners' returns will be diluted.
web3.sub.predict,Predict
predict.h,Prediction markets
predict.acct,On-chain wallet {0}: CRC {1}
predict.acct,{0}: CRC {1}
predict.none,No open markets today.
predict.closed,closed
predict.row,Yes {0} No {1}
@@ -584,7 +584,7 @@ nightlog.predict.void,"Prediction void: ""{0}"", stake {1} refunded."
nightlog.predict.caught,"Insider bet caught: ""{0}"", stake and winnings {1} confiscated, fraud on record."
predict.tab.markets,Markets
predict.tab.intel,Intel
predict.acct.crt,On-chain wallet {0}: CRT {1}
predict.acct.crt,{0}: CRT {1}
predict.tier.0,low
predict.tier.1,mid
predict.tier.2,high
Can't render this file because it contains an unexpected character in line 271 and column 1616.