Files
ChronicleOfTheImmortalClan/src/renderer/game/data/secrets.ts
T
thzxx a491b9c54a v0.1.34a: 功法万象+世界自演化——流派效果/元素时节/悟位大成/战争疲劳/换代半衰/断供应急/新秘境
【功法】TechniqueDef 新增 critChance/guardBonus/tribBonus/secretBonus(optional 零漂);
6 部新功法(玄冰凝甲/紫电惊雷/丹鼎护道/风遁青冥/山灵镇岳/澜海听涛);
季节元素共鸣(春木夏火秋金冬水——修炼额外×1.04);演武场联动悟位积累;悟位2大成战斗效果倍增
【世界】warFatigue 互攻累积→世界温度冷降→乱世加速(打不动即荒年);
NpcDyn 换代恩义清(关系网向零收敛×0.5);断供应急(连续3月池深<70%→广播+价×1.5);
新秘境灵机(年首几率·乱世×2·模板化生成 addMission 扩展口);addMission 公共口(secrets.ts)
【修复】shortage 广播模块级全局污染→世界状态化(多世界确定性恢复)
【测试】world 确定性恢复绿;金钟罩预期漂移(换代/共鸣/warFatigue)——0.1.34 基线待重算
2026-08-23 22:00:55 +08:00

163 lines
9.0 KiB
TypeScript

import { RealmMajor } from '../types/domain'
export interface EnemyDef {
id: string
name: string
realm: RealmMajor
strength: number
icon: string
desc: string
}
export const ENEMIES: EnemyDef[] = [
{ id: 'e-huiyuan', name: '灰狼王', realm: 'qi', strength: 0.8, icon: '狼', desc: '啸聚山林的妖兽头领,凶性难驯。' },
{ id: 'e-tiebei', name: '铁背熊罴', realm: 'qi', strength: 1.1, icon: '熊', desc: '皮糙肉厚的山中猛兽,以力御敌。' },
{ id: 'e-muche', name: '赤瞳木魅', realm: 'foundation', strength: 1.0, icon: '木', desc: '千年老树成精,嗜血成性。' },
{ id: 'e-baiqi', name: '白骨修士', realm: 'foundation', strength: 1.2, icon: '骨', desc: '枯骨道人的傀儡余孽,邪气森森。' },
{ id: 'e-huanhan', name: '幻寒螭', realm: 'core', strength: 1.15, icon: '螭', desc: '远古寒螭之遗种,吐息生霜。' },
{ id: 'e-yeshen', name: '夜哭古影', realm: 'core', strength: 1.3, icon: '影', desc: '怨念凝结,闻见其声者神魂惑乱。' },
{ id: 'e-jiaoyun', name: '焦云妖鹤', realm: 'nascent', strength: 1.2, icon: '鹤', desc: '焚山煮海的老妖,万兽避让。' },
{ id: 'e-kuangzun', name: '堕墟魔尊', realm: 'spirit', strength: 1.5, icon: '魔', desc: '屠戮一族的魔道巨擘,举手投足皆天威。' }
]
export interface MissionStageDef {
kind: 'event' | 'combat' | 'resource' | 'boss'
months: number
title: string
text?: { safe?: string; good?: string; bad?: string }
enemyId?: string
loot?: LootDef
}
export interface LootDef {
resources: Record<string, [number, number]>
artifactChance: number
techniqueChance: number
beastcoreChance?: number
/** 掉功法品阶上限(按秘境难度设定,防低阶秘境出四阶仙典) */
techGrades?: number[]
}
export interface MissionDef {
id: string
name: string
region: string
icon: string
desc: string
realmHint: RealmMajor
minMembers: number
maxMembers: number
risk: number
stages: MissionStageDef[]
completionLoot: LootDef
}
export const MISSIONS: MissionDef[] = [
{
id: 'm-anmoku', name: '暗墨林', region: '祖城西郊', icon: '林',
desc: '灵气暗涌的密林,常有低阶妖兽出没,是子弟试炼的好去处。',
realmHint: 'qi', minMembers: 1, maxMembers: 4, risk: 0.5,
stages: [
{ kind: 'event', months: 3, title: '深入林间', text: { safe: '一路无波,采得几株灵草压惊。', bad: '林深迷路,误入瘴气,队伍折损了体力。' } },
{ kind: 'combat', months: 2, title: '遭遇袭击', enemyId: 'e-tiebei' },
{ kind: 'resource', months: 2, title: '寻获残洞', loot: { resources: { lingcao: [30, 80], beastcore: [1, 3] }, artifactChance: 0.05, techniqueChance: 0.03 } }
],
completionLoot: { resources: { lingcao: [20, 60], lingkuang: [5, 15], lingmu: [4, 12] }, artifactChance: 0.08, techniqueChance: 0.03, techGrades: [1, 2] }
},
{
id: 'm-xuangu', name: '玄冰谷', region: '北境寒渊', icon: '冰',
desc: '寒潭彻骨,谷中灵泉可淬骨洗髓,也匿着护泉的凶兽。',
realmHint: 'qi', minMembers: 1, maxMembers: 4, risk: 0.65,
stages: [
{ kind: 'resource', months: 3, title: '踏雪寻泉', loot: { resources: { lingkuang: [20, 50] }, artifactChance: 0.02, techniqueChance: 0.02 } },
{ kind: 'combat', months: 2, title: '泉主现身', enemyId: 'e-huiyuan' },
{ kind: 'boss', months: 2, title: '冰潭之下', enemyId: 'e-baiqi' }
],
completionLoot: { resources: { lingkuang: [30, 70], beastcore: [2, 5], lingyu: [2, 6], shoupi: [3, 8] }, artifactChance: 0.15, techniqueChance: 0.06, techGrades: [2, 3] }
},
{
id: 'm-guzhan', name: '古战阵', region: '南陵荒原', icon: '战',
desc: '上古两族交兵的战场,杀气千年未散,宝物与凶险兼存。',
realmHint: 'foundation', minMembers: 2, maxMembers: 4, risk: 0.75,
stages: [
{ kind: 'event', months: 3, title: '踏勘阵眼', text: { safe: '寻得阵眼遗骸,得一部残简。', bad: '触动禁制,一行人负伤遁走。' } },
{ kind: 'combat', months: 2, title: '怨灵缠身', enemyId: 'e-baiqi' },
{ kind: 'combat', months: 2, title: '守阵铁骑', enemyId: 'e-huanhan' },
{ kind: 'resource', months: 3, title: '挖开枯井', loot: { resources: { lingkuang: [40, 90], beastcore: [2, 6] }, artifactChance: 0.2, techniqueChance: 0.08 } }
],
completionLoot: { resources: { lingkuang: [40, 90], beastcore: [2, 8], lingyu: [4, 8], shoupi: [4, 12] }, artifactChance: 0.22, techniqueChance: 0.1, techGrades: [2, 3] }
},
{
id: 'm-lingshan', name: '灵鹫山', region: '东海之滨', icon: '鹫',
desc: '孤峰入云,鹫鸣震谷,山腹有灵矿与丹谷仙人遗泽。',
realmHint: 'foundation', minMembers: 2, maxMembers: 4, risk: 0.85,
stages: [
{ kind: 'combat', months: 2, title: '登山遇鹫', enemyId: 'e-muche' },
{ kind: 'resource', months: 3, title: '灵鹫巢穴', loot: { resources: { lingkuang: [50, 120], beastcore: [3, 8] }, artifactChance: 0.25, techniqueChance: 0.15 } },
{ kind: 'boss', months: 3, title: '丹谷试剑', enemyId: 'e-yeshen' }
],
completionLoot: { resources: { lingcao: [60, 140], beastcore: [4, 10] }, artifactChance: 0.3, techniqueChance: 0.2 }
},
{
id: 'm-tiankeng', name: '天地秘境', region: '传说天外', icon: '玄',
desc: '百年一开的无上秘境,传言其中有登天造化。',
realmHint: 'core', minMembers: 3, maxMembers: 5, risk: 1.0,
stages: [
{ kind: 'event', months: 2, title: '踏入秘境', text: { safe: '奇花异果满目,造化之气扑面。', bad: '紫霄神雷击碎阵法,众人惊魂不定。' } },
{ kind: 'combat', months: 2, title: '守宫神兽', enemyId: 'e-huanhan' },
{ kind: 'combat', months: 3, title: '天劫傀儡', enemyId: 'e-jiaoyun' },
{ kind: 'boss', months: 3, title: '群雄夺宝', enemyId: 'e-kuangzun' }
],
completionLoot: { resources: { lingcao: [100, 220], lingkuang: [80, 160], beastcore: [10, 22] }, artifactChance: 0.6, techniqueChance: 0.5 }
}
]
/** 0.1.34 新秘境可加性:ext 表+唯一 id 追加(MOD/插件/世界生成共用——MISSIONS 静态表不变) */
const EXTRA_MISSIONS: MissionDef[] = []
export function addMission(def: MissionDef): void {
if (!EXTRA_MISSIONS.find((x) => x.id === def.id)) EXTRA_MISSIONS.push(def)
}
/** 全部任务:静态 + MOD/世界新增合并(每次构建——小规模数组,且扩张随时生效) */
export function allMissions(): MissionDef[] {
return [...MISSIONS, ...EXTRA_MISSIONS]
}
/** 新秘境生成模板(万象归元·天下灵机偶现)——年首世界侧 chance 生出,皆可探索 */
export const WONDER_TEMPLATES: Omit<MissionDef, 'id' | 'name'>[] = [
{
region: '云梦大泽', icon: '泽', desc: '千年碧潭,隐有灵机吞吐——是仙家典籍中的洞天妙处。',
realmHint: 'foundation', minMembers: 2, maxMembers: 4, risk: 0.7,
stages: [
{ kind: 'event', months: 2, title: '雾锁重泽', text: { safe: '泽畔灵雾和煦,众人寻得一泓灵泉。', bad: '泽中瘴气潜涌,队伍仓促退避。' } },
{ kind: 'combat', months: 2, title: '水泽龙王', enemyId: 'e-huanhan' },
{ kind: 'resource', months: 2, title: '泽底洞府', loot: { resources: { lingyu: [4, 10], linglu: [3, 8] }, artifactChance: 0.18, techniqueChance: 0.1, techGrades: [2, 3] } }
],
completionLoot: { resources: { lingyu: [3, 9], lingcao: [30, 70] }, artifactChance: 0.2, techniqueChance: 0.12, techGrades: [2, 3] }
},
{
region: '苍梧断崖', icon: '崖', desc: '断崖云雾缭绕,偶见琼光微闪——遗世洞府的门扉近在眼前。',
realmHint: 'qi', minMembers: 1, maxMembers: 3, risk: 0.55,
stages: [
{ kind: 'combat', months: 2, title: '崖间宿怨', enemyId: 'e-tiebei' },
{ kind: 'resource', months: 2, title: '崖扉初启', loot: { resources: { lingkuang: [25, 55], lingmu: [5, 12] }, artifactChance: 0.1, techniqueChance: 0.06 } }
],
completionLoot: { resources: { lingkuang: [20, 55], lingmu: [6, 16], shoupi: [3, 6] }, artifactChance: 0.12, techniqueChance: 0.08, techGrades: [1, 2] }
},
{
region: '幽都古道', icon: '幽', desc: '青石古道上阴风掠耳——上古修士埋骨之地,得之者富。',
realmHint: 'core', minMembers: 3, maxMembers: 4, risk: 0.8,
stages: [
{ kind: 'event', months: 2, title: '古道逢阴', text: { safe: '香火未绝的驿亭里,捡得一把尘封古剑。', bad: '阴煞蚀骨,众人寒战如大病初愈。' } },
{ kind: 'combat', months: 2, title: '尸修拦路', enemyId: 'e-baiqi' },
{ kind: 'boss', months: 3, title: '墓庭之主', enemyId: 'e-huanhan' }
],
completionLoot: { resources: { lingyu: [3, 8], beastcore: [4, 10], dansha: [3, 7] }, artifactChance: 0.3, techniqueChance: 0.14, techGrades: [3] }
}
]
export function missionById(id: string): MissionDef {
const m = MISSIONS.find((x) => x.id === id)
if (!m) throw new Error(`mission not found: ${id}`)
return m
}