v0.1.5: 人物志(志向/渡劫/列传/契合/回声)

- 志向系统:七向(求道/镇族/承宗/商略/兵略/耕读/云游)成年礼自动定志,
  量化加成入修炼/战力/坊市/灵田/添丁/声望,云游减修但际遇更频
- 大境界渡劫:炼气→筑基起,晋升改走劫难事件三选——硬渡/请护法(100灵石)/
  压制来年;护法失败或受牵连;渡劫成败与心性、气血挂勾,高阶有小陨落率
- 灵根本命契合:功法元素×主灵根,契合者修炼+6%/战力+4%,详情页「本命」徽章
- 人物列传:自动列传生成器(生平/修行脉络/历险/姻缘/子嗣/大比/墓志铭),
  成员详情小传分页 + 春秋原列传长卷
- 四邻回声:每两年一桩——友好赠礼/敌视暗桩/中立传闻三态动态事件
- 修复:回声事件 npcId 解析错误、事件优先级(惯例>传闻)
- 测试 176→197(志向加成/契合/渡劫三轨/压制通道/列传结构/回声三态)
This commit is contained in:
Hermes Agent
2026-08-23 09:08:16 +08:00
parent 8152b5c4bc
commit 5b40d9158c
17 changed files with 791 additions and 7 deletions
@@ -1,4 +1,5 @@
import { World } from '../world'
import { aspirationById } from '../../data/aspirations'
export function productionTick(w: World): void {
const fam = w.state.family
@@ -12,8 +13,10 @@ export function productionTick(w: World): void {
const fangshi = lvl('fangshi')
const lingshou = lvl('lingshou')
const fielders = w.aliveMembers().filter((c) => aspirationById(c.aspiration)?.effect.type === 'field').length
const merchants = w.aliveMembers().filter((c) => aspirationById(c.aspiration)?.effect.type === 'market').length
if (lingtian > 0) {
const v = 10 * lingtian
const v = Math.round(10 * lingtian * (1 + fielders * 0.05))
inv.lingcao = (inv.lingcao ?? 0) + v
parts.push(`灵田+${v}灵草`)
}
@@ -32,7 +35,7 @@ export function productionTick(w: World): void {
parts.push(`灵矿+${v}灵矿`)
}
if (fangshi > 0) {
const v = Math.round(55 * fangshi * (1 + w.postBonus('marketIncome')))
const v = Math.round(55 * fangshi * (1 + w.postBonus('marketIncome') + merchants * 0.03))
fam.stones += v
parts.push(`坊市+${v}灵石`)
}