v0.1.31: 万物皆可 MOD——内容面七口 + kind 分类 + 数值松弛 + 测试 4006

【MOD 内容面总攻(七口新开:14 口全)】
- items/techniques:PACK 增量合入(extend 键级/mergeAdd 数组——内置不覆盖)
  ——新丹药武器有名字/新功法入藏书阁·掉落·拍卖
- buildings:新建筑(produceTable 表达式 DSL '4 * L' 白名单)——领地页可建可升、
  productionTick 自动消费、World/build/upgrade 走双源建筑表
- posts/aspirations/formations/traits:职事(11 效果型)/志向(5 型)/阵型(攻防系数)/
  性格(bonus 白名单集)——全部双源注册(registerXxx),卸载只摘自己的键

【MOD 类型(M5)】kind: content/data/rules 分类标签;【M6】ERA_DURA 聚合(eraDuraOf)
+ REGION_TIDE 聚合(regionTideOf)——默认零漂(金钟罩实证未红)

【测试 4006】85 套件(+1000:matrix-macro 100 + sprint-a/b/c 900 +
内容面覆盖矩阵后续)——全部语义真实;金钟罩 0.1.31 零漂(聚合默认表不变)

【验证】4006 全绿;build 通过
This commit is contained in:
2026-08-23 20:53:22 +08:00
parent 0965eaead4
commit c08f3c1f7f
27 changed files with 873 additions and 24 deletions
@@ -104,6 +104,18 @@ export const ERA_CONF: Record<'shengshi' | 'pingshi' | 'luanshi' | 'mofa', {
mofa: { name: '末法', desc: '灵机衰微,大能隐迹,仙路将绝。', calamityMult: 1.2, supplyMult: 0.7, demandMult: 0.85, auctionMult: 0.6, tideBias: -0.09, flow: [['pingshi', 0.4], ['shengshi', 0.2]] }
}
const ERA_DURA_OVERRIDES = new Map<string, [number, number]>()
export function overrideEraDura(era: string, dur: [number, number]): void {
if (era in ERA_DURA) ERA_DURA_OVERRIDES.set(era, dur)
}
export function resetEraDura(era?: string): void {
if (era) ERA_DURA_OVERRIDES.delete(era)
else ERA_DURA_OVERRIDES.clear()
}
export function eraDuraOf(era: string): [number, number] {
return ERA_DURA_OVERRIDES.get(era) ?? ERA_DURA[era as keyof typeof ERA_DURA] ?? [20, 40]
}
/** era 持续年数区间(转移时机) */
export const ERA_DURA: Record<'shengshi' | 'pingshi' | 'luanshi' | 'mofa', [number, number]> = {
shengshi: [25, 45],
@@ -112,6 +124,22 @@ export const ERA_DURA: Record<'shengshi' | 'pingshi' | 'luanshi' | 'mofa', [numb
mofa: [20, 40]
}
const REGION_TIDE_OVERRIDES = new Map<string, Record<string, number>>()
export function overrideRegionTide(npcId: string, byEra: Record<string, number>): void {
REGION_TIDE_OVERRIDES.set(npcId, byEra)
}
export function resetRegionTide(npcId?: string): void {
if (npcId) REGION_TIDE_OVERRIDES.delete(npcId)
else REGION_TIDE_OVERRIDES.clear()
}
export function regionTideOf(npcId: string, era: string): number {
const override = REGION_TIDE_OVERRIDES.get(npcId)?.[era]
if (override !== undefined) return override
const base = REGION_TIDE[npcId]
if (!base) return 0
return base[era as keyof typeof base] ?? 0
}
/** 区域灵势(NPC id × era → 修正量 +-0.06~0.1):乱世北岳凶、盛世东丘旺…… */
export const REGION_TIDE: Record<string, Record<'shengshi' | 'pingshi' | 'luanshi' | 'mofa', number>> = {
'n-xuanying': { shengshi: 0.06, pingshi: 0, luanshi: -0.08, mofa: -0.06 },