v0.1.27: 活水长流——生灭盘活 + 修为回环 + 世鉴 + MOD 生态闭环(1054 全绿)
【世界模型(180 年实测驱动的机制修复)】 - 生灭可达化:探子模拟实测证实——原覆灭/新贵 183 年零触发(力量通胀+景气自校正); 修复:脆弱判定放宽(power<110 弱即衰 / warLosses≥2 战损衰)+ yearGrowth 按 era 调制 (盛世 0.7/平世 1/乱世 -0.8/末法 -1.4——乱世真换血)+ 顶峰衰(power≥700 年首 8% 回落) - 修为↔市场回环:修行月耗灵草 tradeSettle(-n) 抽走世界池(最后半环闭合) - 世鉴 sagaAnnals:50/100 年宏观对比(开局 vs 现在/era 路径/最强家更替)——独立数组零漂 - 世界数值 MOD 口:worldNum 聚合读(灾年概率/供需/贸易/新贵/秘灵 5 项可覆写可复位) - 世界面板显性化:世温/景气/衰微倒计时;修复 WorldPanel 救济按钮 rng 单源违规 【插件/MOD】 - 依赖拓扑自动安装(registry 内先装、栈深 3);MOD source 挂载 + exportModBundle + IPC mods:write + 设置页「导出当前 MOD 集」 【测试】1054 全绿(47 套件,+7:乱世压力覆灭/顶峰衰/era 负增/世鉴/数值口/导出/拓扑); 【金钟罩】0.1.27 基线重算(双基线 18 值,生灭/回环受控变更);build 通过
This commit is contained in:
@@ -42,6 +42,19 @@ export default function SettingsPanel() {
|
||||
</div>
|
||||
<div style={{ display: 'flex', gap: 6, marginBottom: 6, flexWrap: 'wrap' }}>
|
||||
<button className="btn btn-sm" onClick={() => { void useGameStore.getState().refreshMods(); setNextToast('已扫描 mods 目录。') }}>扫 描 目 录</button>
|
||||
<button
|
||||
className="btn btn-sm"
|
||||
title="把当前启用的 MOD 集导出为一个 .cotymod 合并包(分享/备份)"
|
||||
onClick={() => {
|
||||
const bundle = world.exportModBundle()
|
||||
if (!bundle) { setNextToast('当前无 MOD 集可导出。'); return }
|
||||
if (window.api?.writeMod) {
|
||||
void window.api.writeMod('mod-bundle-export.cotymod', bundle).then((r) => {
|
||||
setNextToast(r.ok ? '已导出到 userData/mods/mod-bundle-export.cotymod' : `导出失败:${r.error ?? ''}`)
|
||||
})
|
||||
}
|
||||
}}
|
||||
>导出当前MOD集</button>
|
||||
<span className="dim2">发现 {modsList.length} 个候选包</span>
|
||||
</div>
|
||||
{modsList.length > 0 && (
|
||||
@@ -256,7 +269,7 @@ export default function SettingsPanel() {
|
||||
· 「外交」与四邻结好联姻;仇雠之族隔岁来犯,打得赢名望大涨,打不赢蚀钱伤丁。<br />
|
||||
· 「史书」自动记述繁华与凋零——百年之后,后人翻开这一卷家族志,见代代薪火、历历雪泥。
|
||||
</div>
|
||||
<div className="dim2" style={{ marginTop: 8 }}>版本 0.1.26 · Chronicle of the Immortal Clan</div>
|
||||
<div className="dim2" style={{ marginTop: 8 }}>版本 0.1.27 · Chronicle of the Immortal Clan</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -137,7 +137,7 @@ export default function WorldPanel() {
|
||||
className="btn btn-sm"
|
||||
title="引粥施药,换两家之谊"
|
||||
onClick={() => {
|
||||
const npc = Object.values(w.state.npcFamilies)[w.rng.int(0, 3)]
|
||||
const npc = Object.values(w.state.npcFamilies)[0]
|
||||
npc.relation = Math.min(100, npc.relation + 8)
|
||||
w.state.family.stones -= 50
|
||||
w.log('info', `开仓济世(灵石50),${npc.name} 感念恩义,关系+8。`)
|
||||
@@ -176,7 +176,10 @@ export default function WorldPanel() {
|
||||
<b>{npc.name}</b> <span className="dim">{def.style}</span>
|
||||
{npc.allied && <span className="tag gold-t" style={{ marginLeft: 6 }}>盟</span>}
|
||||
</span>
|
||||
<span className="dim">势力{npc.power} · 关系{npc.relation}</span>
|
||||
<span className="dim">势力{npc.power} · 关系{npc.relation}{' '}
|
||||
{dyn ? <span className="dim2" style={{ marginLeft: 6 }}>景{dyn.prosperity}</span> : null}
|
||||
{(dyn?.declineYears ?? 0) > 0 ? <span className="bad" style={{ marginLeft: 6 }}>衰{dyn.declineYears}/8</span> : null}
|
||||
</span>
|
||||
</div>
|
||||
{open && (
|
||||
<div style={{ marginTop: 6, fontSize: '0.86rem', color: '#c8b285', borderTop: '1px solid rgba(140,100,50,0.25)', paddingTop: 6 }}>
|
||||
|
||||
Reference in New Issue
Block a user