Verification pass: crimes, reputation, approvals, timelock, English UI
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fe4a2399ba
commit
f8bbf295e3
3 files changed
+19
-2
No files matched your search
@@ -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 晚走完),可以抢在前面用永续和预测盘下注。
|
- 9.1 剧情联动:每晚读游戏剧情线的选择,每个只生效一次,改动本 mod 世界的倍率(存档里的 `StoryMods`),第二天报纸头版登一条新闻。选择是玩家自己做的,市场要过几天才反应完(SPARK 分 5 晚走完),可以抢在前面用永续和预测盘下注。
|
||||||
- 塞尔皮科的证据交给革命军:CRA 补贴池 +10,000,30 天内螺旋概率减半,SPARK 五晚内涨 20%;交给黑市:CRT 脱锚、镇压时被黑市出卖的概率永久减半;交给治安部:30 天内出金审查命中率 ×1.5、混币器制裁概率 ×1.5、操纵检出和内幕查处 ×1.3;举报他或他死了:没有影响。
|
- 塞尔皮科的证据交给革命军:CRA 补贴池 +10,000,30 天内螺旋概率减半,SPARK 五晚内涨 20%;交给黑市:CRT 脱锚、镇压时被黑市出卖的概率永久减半;交给治安部:30 天内出金审查命中率 ×1.5、混币器制裁概率 ×1.5、操纵检出和内幕查处 ×1.3;举报他或他死了:没有影响。
|
||||||
- 埃莉诺泄露数据盘:CRC 托管银行减记的概率翻倍,SPARK 五晚内涨 15%;交回数据盘:CRC 脱锚概率减半。
|
- 埃莉诺泄露数据盘:CRC 托管银行减记的概率翻倍,SPARK 五晚内涨 15%;交回数据盘:CRC 脱锚概率减半。
|
||||||
|
|||||||
@@ -157,6 +157,18 @@ namespace Decentralized
|
|||||||
string Rep(string f) => f + " " + (StoreReputation.GetStoreReputation(f)?.GetReputation().ToString() ?? "-");
|
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}");
|
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, "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, "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}"); });
|
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.
|
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
|
web3.sub.predict,Predict
|
||||||
predict.h,Prediction markets
|
predict.h,Prediction markets
|
||||||
predict.acct,On-chain wallet {0}: CRC {1}
|
predict.acct,{0}: CRC {1}
|
||||||
predict.none,No open markets today.
|
predict.none,No open markets today.
|
||||||
predict.closed,closed
|
predict.closed,closed
|
||||||
predict.row,Yes {0} No {1}
|
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."
|
nightlog.predict.caught,"Insider bet caught: ""{0}"", stake and winnings {1} confiscated, fraud on record."
|
||||||
predict.tab.markets,Markets
|
predict.tab.markets,Markets
|
||||||
predict.tab.intel,Intel
|
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.0,low
|
||||||
predict.tier.1,mid
|
predict.tier.1,mid
|
||||||
predict.tier.2,high
|
predict.tier.2,high
|
||||||
|
|||||||
|
Can't render this file because it contains an unexpected character in line 271 and column 1616.
|
Reference in new issue
Block a user