refactor(0.1.14-P1): 内核归位——game/ 按引擎架构重排(零行为漂移)
结构(旧 game/core+engine → 新 engine/ 域): - engine/kernel/ 时钟/随机/插件协议/fxqueue/timesense/format/urgency/guide/names(原 core) - engine/narrative/ legacy/报告/列传/谱系/年轴(原 core 叙事族) - engine/runtime/ World/creation/pcgen/ApiFacade/capabilities/pluginManager/boot/clocks + Systems/*(12 系统) - engine/sim/ Market(未来 WorldSim 同行) - 旧 game/core、engine/systems、engine/world.ts 等路径全部废弃(无 re-export 兼容层) 验证:35 套件/967 测试全绿(金钟罩三档零漂移=纯搬迁无行为变化) typecheck 0 error
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { GameFacade, ACT_CATALOG, ActName } from '../src/renderer/game/engine/api'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { GameFacade, ACT_CATALOG, ActName } from '../src/renderer/game/engine/runtime/ApiFacade'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { monthlyRate, resolveBreakthrough } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { combatPowerOf } from '../src/renderer/game/engine/systems/combat'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { monthlyRate, resolveBreakthrough } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { combatPowerOf } from '../src/renderer/game/engine/runtime/Systems/combat'
|
||||
import { isFit } from '../src/renderer/game/data/aspirations'
|
||||
import { needsTribulation, resolveTribulation, tribulationEventId } from '../src/renderer/game/engine/systems/tribulation'
|
||||
import { buildBiography } from '../src/renderer/game/core/biography'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { needsTribulation, resolveTribulation, tribulationEventId } from '../src/renderer/game/engine/runtime/Systems/tribulation'
|
||||
import { buildBiography } from '../src/renderer/game/engine/narrative/biography'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { computeUrgency } from '../src/renderer/game/core/urgency'
|
||||
import { monthlyRate } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { computeUrgency } from '../src/renderer/game/engine/kernel/urgency'
|
||||
import { monthlyRate } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { newCharacter } from '../src/renderer/game/engine/pcgen'
|
||||
import { Rng, seedToRng } from '../src/renderer/game/core/rng'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { newCharacter } from '../src/renderer/game/engine/runtime/pcgen'
|
||||
import { Rng, seedToRng } from '../src/renderer/game/engine/kernel/rng'
|
||||
import { PACK } from '../src/renderer/game/data/registry'
|
||||
import { buildApprentice } from '../src/renderer/game/engine/systems/tournament'
|
||||
import { sendMission } from '../src/renderer/game/engine/systems/missions'
|
||||
import { buyItem, marketPrice } from '../src/renderer/game/engine/market'
|
||||
import { findEvent } from '../src/renderer/game/engine/systems/events'
|
||||
import { runTournament } from '../src/renderer/game/engine/systems/tournament'
|
||||
import { buildApprentice } from '../src/renderer/game/engine/runtime/Systems/tournament'
|
||||
import { sendMission } from '../src/renderer/game/engine/runtime/Systems/missions'
|
||||
import { buyItem, marketPrice } from '../src/renderer/game/engine/sim/Market'
|
||||
import { findEvent } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { runTournament } from '../src/renderer/game/engine/runtime/Systems/tournament'
|
||||
import { stateFingerprint, longRun } from './fingerprint.helper'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World, normalizeGameState } from '../src/renderer/game/engine/world'
|
||||
import { World, normalizeGameState } from '../src/renderer/game/engine/runtime/World'
|
||||
import {
|
||||
marryNpcFamily,
|
||||
makePeace
|
||||
} from '../src/renderer/game/engine/systems/diplomacy'
|
||||
import { sendMission, recallAll } from '../src/renderer/game/engine/systems/missions'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
} from '../src/renderer/game/engine/runtime/Systems/diplomacy'
|
||||
import { sendMission, recallAll } from '../src/renderer/game/engine/runtime/Systems/missions'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { GameState } from '../src/renderer/game/types/domain'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { monthlyRate } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { combatPowerOf } from '../src/renderer/game/engine/systems/combat'
|
||||
import { resolveBreakthrough } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { computeLegacy, resolveLegacy } from '../src/renderer/game/core/legacy'
|
||||
import { yearAxis } from '../src/renderer/game/core/yearaxis'
|
||||
import { buildBiography } from '../src/renderer/game/core/biography'
|
||||
import { computeGenealogy } from '../src/renderer/game/core/genealogy'
|
||||
import { marketPrice, buyItem, sellItem } from '../src/renderer/game/engine/market'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { monthlyRate } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { combatPowerOf } from '../src/renderer/game/engine/runtime/Systems/combat'
|
||||
import { resolveBreakthrough } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { computeLegacy, resolveLegacy } from '../src/renderer/game/engine/narrative/legacy'
|
||||
import { yearAxis } from '../src/renderer/game/engine/narrative/yearaxis'
|
||||
import { buildBiography } from '../src/renderer/game/engine/narrative/biography'
|
||||
import { computeGenealogy } from '../src/renderer/game/engine/narrative/genealogy'
|
||||
import { marketPrice, buyItem, sellItem } from '../src/renderer/game/engine/sim/Market'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { GameClock, PHASE_ORDER } from '../src/renderer/game/core/clock'
|
||||
import { buildClock } from '../src/renderer/game/engine/clocks'
|
||||
import { RngHub } from '../src/renderer/game/core/rng'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { GameClock, PHASE_ORDER } from '../src/renderer/game/engine/kernel/clock'
|
||||
import { buildClock } from '../src/renderer/game/engine/runtime/clocks'
|
||||
import { RngHub } from '../src/renderer/game/engine/kernel/rng'
|
||||
import { seasonOf, seasonMod, SEASON } from '../src/renderer/game/data/season'
|
||||
import { yearAxis, decadeLabel } from '../src/renderer/game/core/yearaxis'
|
||||
import { yearAxis, decadeLabel } from '../src/renderer/game/engine/narrative/yearaxis'
|
||||
import { stateFingerprint } from './fingerprint.helper'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { stateFingerprint, longRun } from './fingerprint.helper'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
|
||||
/**
|
||||
* 金钟罩:固定种子长跑 560 月的状态指纹。
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { combatPowerOf, resolveEncounter, resolveRaid, rollWarbooty } from '../src/renderer/game/engine/systems/combat'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { combatPowerOf, resolveEncounter, resolveRaid, rollWarbooty } from '../src/renderer/game/engine/runtime/Systems/combat'
|
||||
import { ENEMIES } from '../src/renderer/game/data/secrets'
|
||||
import { sendMission, recallAll } from '../src/renderer/game/engine/systems/missions'
|
||||
import { sendMission, recallAll } from '../src/renderer/game/engine/runtime/Systems/missions'
|
||||
import { missionById } from '../src/renderer/game/data/secrets'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { applyEventChoice, applyEffect } from '../src/renderer/game/engine/systems/events'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { applyEventChoice, applyEffect } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { EffectDef } from '../src/renderer/game/data/events'
|
||||
import { Character } from '../src/renderer/game/types/domain'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ import { NPCS, npcById } from '../src/renderer/game/data/npcs'
|
||||
import { POSTS, POST_ORDER } from '../src/renderer/game/data/posts'
|
||||
import { EVENTS } from '../src/renderer/game/data/events'
|
||||
import { MAJOR_RATE, masteryRateOfMajor } from '../src/renderer/game/data/pacing'
|
||||
import { SURNAME_POOL, MALE_GIVEN, FEMALE_GIVEN } from '../src/renderer/game/core/names'
|
||||
import { SURNAME_POOL, MALE_GIVEN, FEMALE_GIVEN } from '../src/renderer/game/engine/kernel/names'
|
||||
import { TRAITS } from '../src/renderer/game/data/traits'
|
||||
|
||||
describe('realms 境界表', () => {
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { applyEventChoice, eventRoll } from '../src/renderer/game/engine/systems/events'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { applyEventChoice, eventRoll } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
|
||||
describe('echo 四邻回声', () => {
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { marketPrice, buyItem, sellItem, buyTechnique, techniquePrice } from '../src/renderer/game/engine/market'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { marketPrice, buyItem, sellItem, buyTechnique, techniquePrice } from '../src/renderer/game/engine/sim/Market'
|
||||
import { ITEMS } from '../src/renderer/game/data/items'
|
||||
|
||||
describe('economy 经济系统', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World, normalizeGameState } from '../src/renderer/game/engine/world'
|
||||
import { World, normalizeGameState } from '../src/renderer/game/engine/runtime/World'
|
||||
import { EVENTS, EffectDef } from '../src/renderer/game/data/events'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { POSTS } from '../src/renderer/game/data/posts'
|
||||
import { ASPIRATIONS } from '../src/renderer/game/data/aspirations'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { matchesCond } from '../src/renderer/game/engine/systems/events'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { matchesCond } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { Cond } from '../src/renderer/game/data/events'
|
||||
|
||||
export function matchesCondPub(w: World, cond?: Cond): boolean {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { matchesCond, applyEventChoice, findEvent, eventRoll } from '../src/renderer/game/engine/systems/events'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { matchesCond, applyEventChoice, findEvent, eventRoll } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { EVENTS } from '../src/renderer/game/data/events'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { GameFacade } from '../src/renderer/game/engine/api'
|
||||
import { SYSTEM_DEFS } from '../src/renderer/game/engine/capabilities'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { GameFacade } from '../src/renderer/game/engine/runtime/ApiFacade'
|
||||
import { SYSTEM_DEFS } from '../src/renderer/game/engine/runtime/capabilities'
|
||||
import { PACK, pack, DEFAULT_PACK } from '../src/renderer/game/data/registry'
|
||||
import { marketPrice } from '../src/renderer/game/engine/market'
|
||||
import { marketPrice } from '../src/renderer/game/engine/sim/Market'
|
||||
import { stateFingerprint, longRun } from './fingerprint.helper'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { buildReport, verdictLine } from '../src/renderer/game/core/legacyreport'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { buildReport, verdictLine } from '../src/renderer/game/engine/narrative/legacyreport'
|
||||
import { migrateIfNeeded, exportEnvelope, parseImportEnvelope, CURRENT_SCHEMA, APP_ID } from '../src/renderer/game/storage/migrate'
|
||||
import { FORMATIONS, formationById, FormationId } from '../src/renderer/game/data/formations'
|
||||
import { resolveEncounter } from '../src/renderer/game/engine/systems/combat'
|
||||
import { resolveEncounter } from '../src/renderer/game/engine/runtime/Systems/combat'
|
||||
import { ENEMIES } from '../src/renderer/game/data/secrets'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { sendMission } from '../src/renderer/game/engine/systems/missions'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { sendMission } from '../src/renderer/game/engine/runtime/Systems/missions'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { GameState } from '../src/renderer/game/types/domain'
|
||||
|
||||
export function stateFingerprint(s: GameState): string {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { seasonOf } from '../src/renderer/game/data/season'
|
||||
import { tideOf, yearRing, seasonTint, seasonCssVars, TIDES } from '../src/renderer/game/core/timesense'
|
||||
import { FxGate, FxKind } from '../src/renderer/game/core/fxqueue'
|
||||
import { tideOf, yearRing, seasonTint, seasonCssVars, TIDES } from '../src/renderer/game/engine/kernel/timesense'
|
||||
import { FxGate, FxKind } from '../src/renderer/game/engine/kernel/fxqueue'
|
||||
|
||||
describe('timesense 时间感知矩阵', () => {
|
||||
it.each([[1, 'spring'], [3, 'spring'], [4, 'summer'], [6, 'summer'], [7, 'autumn'], [9, 'autumn'], [10, 'winter'], [12, 'winter']] as const)(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CotycPlugin } from '../../src/renderer/game/core/plugin'
|
||||
import { CotycPlugin } from '../../src/renderer/game/engine/kernel/plugin'
|
||||
|
||||
/** 示例内容插件:注入事件池 + 一个护山能力(开发范本) */
|
||||
export const examplePlugin: CotycPlugin = {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { computeLegacy, resolveLegacy, peakRealmIndex, grandTechniqueCount } from '../src/renderer/game/core/legacy'
|
||||
import { runTournament, buildApprentice, finalizeApprentice, apprenticeCandidates } from '../src/renderer/game/engine/systems/tournament'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { computeLegacy, resolveLegacy, peakRealmIndex, grandTechniqueCount } from '../src/renderer/game/engine/narrative/legacy'
|
||||
import { runTournament, buildApprentice, finalizeApprentice, apprenticeCandidates } from '../src/renderer/game/engine/runtime/Systems/tournament'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
const SEEDS = ['long-a', 'long-b', 'long-c']
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import {
|
||||
giftNpc,
|
||||
marryNpcFamily,
|
||||
makePeace,
|
||||
arrangeWedding,
|
||||
diplomacyTick
|
||||
} from '../src/renderer/game/engine/systems/diplomacy'
|
||||
import { yearStartMarriage } from '../src/renderer/game/engine/systems/marriage'
|
||||
} from '../src/renderer/game/engine/runtime/Systems/diplomacy'
|
||||
import { yearStartMarriage } from '../src/renderer/game/engine/runtime/Systems/marriage'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
@@ -189,7 +189,7 @@ describe('genealogy 谱系结构', () => {
|
||||
})
|
||||
})
|
||||
|
||||
import { computeGenealogy } from '../src/renderer/game/core/genealogy'
|
||||
import { computeGenealogy } from '../src/renderer/game/engine/narrative/genealogy'
|
||||
function computeGenealogyLocal(w: World) {
|
||||
return computeGenealogy(w)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { calcGiftGain, GIFT_TIERS, giftNpc } from '../src/renderer/game/engine/systems/diplomacy'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { calcGiftGain, GIFT_TIERS, giftNpc } from '../src/renderer/game/engine/runtime/Systems/diplomacy'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { Rng, seedToRng } from '../src/renderer/game/core/rng'
|
||||
import { newCharacter, rollAttributes, rollRoots, rollPersonality, traitBonuses, calcLifespan } from '../src/renderer/game/engine/pcgen'
|
||||
import { monthlyRate, perAttemptChance } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { lifespanOf } from '../src/renderer/game/engine/systems/lifecycle'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { Rng, seedToRng } from '../src/renderer/game/engine/kernel/rng'
|
||||
import { newCharacter, rollAttributes, rollRoots, rollPersonality, traitBonuses, calcLifespan } from '../src/renderer/game/engine/runtime/pcgen'
|
||||
import { monthlyRate, perAttemptChance } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { lifespanOf } from '../src/renderer/game/engine/runtime/Systems/lifecycle'
|
||||
|
||||
function rng(): Rng {
|
||||
return new Rng(seedToRng('pcgen'))
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { GameFacade } from '../src/renderer/game/engine/api'
|
||||
import { installCoreSystems, buildClock } from '../src/renderer/game/engine/clocks'
|
||||
import { emptyClock } from '../src/renderer/game/engine/clocks'
|
||||
import { CORE_PLUGINS } from '../src/renderer/game/engine/plugin-bootstrap'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { GameFacade } from '../src/renderer/game/engine/runtime/ApiFacade'
|
||||
import { installCoreSystems, buildClock } from '../src/renderer/game/engine/runtime/clocks'
|
||||
import { emptyClock } from '../src/renderer/game/engine/runtime/clocks'
|
||||
import { CORE_PLUGINS } from '../src/renderer/game/engine/runtime/plugin-bootstrap'
|
||||
import { examplePlugin, brokenPlugin } from './helpers/examplePlugin'
|
||||
import { stateFingerprint, longRun } from './fingerprint.helper'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { monthlyRate } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { monthlyRate } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { MAJORS } from '../src/renderer/game/data/realms'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
@@ -73,8 +73,8 @@ describe('0.1.10 数值重建验收', () => {
|
||||
})
|
||||
})
|
||||
|
||||
import { resolveBreakthrough } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { perTribChance } from '../src/renderer/game/engine/systems/tribulation'
|
||||
import { resolveBreakthrough } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { perTribChance } from '../src/renderer/game/engine/runtime/Systems/tribulation'
|
||||
|
||||
describe('事件悬置与周期(0.1.10)', () => {
|
||||
it('大比征召 FIFO 不被拍卖/传薪挤掉(20 年三年都触发)', () => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { Rng, seedToRng, RngHub } from '../src/renderer/game/core/rng'
|
||||
import { Rng, seedToRng, RngHub } from '../src/renderer/game/engine/kernel/rng'
|
||||
|
||||
describe('RNG 多种子矩阵', () => {
|
||||
it.each([
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { Rng, seedToRng } from '../src/renderer/game/core/rng'
|
||||
import { Rng, seedToRng } from '../src/renderer/game/engine/kernel/rng'
|
||||
|
||||
describe('Rng.sfc32 特性', () => {
|
||||
it('同一种子产生的序列完全一致', () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { SaveSlot, SaveDbDriver } from '../src/renderer/game/storage/slots'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
|
||||
interface Row {
|
||||
[k: string]: unknown
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { SaveSlot, SaveDbDriver } from '../src/renderer/game/storage/slots'
|
||||
import { GameState } from '../src/renderer/game/types/domain'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
|
||||
interface Row {
|
||||
[k: string]: unknown
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { combatPowerOf } from '../src/renderer/game/engine/systems/combat'
|
||||
import { marketPrice, buyItem, sellItem, buyTechnique } from '../src/renderer/game/engine/market'
|
||||
import { resolveBreakthrough, monthlyRate } from '../src/renderer/game/engine/systems/cultivation'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { computeGenealogy } from '../src/renderer/game/core/genealogy'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { combatPowerOf } from '../src/renderer/game/engine/runtime/Systems/combat'
|
||||
import { marketPrice, buyItem, sellItem, buyTechnique } from '../src/renderer/game/engine/sim/Market'
|
||||
import { resolveBreakthrough, monthlyRate } from '../src/renderer/game/engine/runtime/Systems/cultivation'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { computeGenealogy } from '../src/renderer/game/engine/narrative/genealogy'
|
||||
import { matchesCondPub } from './events.helpers'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { computeUrgency } from '../src/renderer/game/core/urgency'
|
||||
import { computeGuide, GUIDE_STEPS, guideAdvance } from '../src/renderer/game/core/guide'
|
||||
import { fmt } from '../src/renderer/game/core/format'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { computeUrgency } from '../src/renderer/game/engine/kernel/urgency'
|
||||
import { computeGuide, GUIDE_STEPS, guideAdvance } from '../src/renderer/game/engine/kernel/guide'
|
||||
import { fmt } from '../src/renderer/game/engine/kernel/format'
|
||||
|
||||
function baseWorld(seed: string): World {
|
||||
return World.create({ seed, surname: '舒', familyName: '舒家', motto: 'm', difficulty: 'normal' })
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { createWorldState, NewGameOptions, findInheritor } from '../src/renderer/game/engine/creation'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { createWorldState, NewGameOptions, findInheritor } from '../src/renderer/game/engine/runtime/creation'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
function opts(seed: string, difficulty: 'easy' | 'normal' | 'hard' = 'normal', surname = '彭'): NewGameOptions {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { stateFingerprint, longRun } from './fingerprint.helper'
|
||||
import { computeGenealogy } from '../src/renderer/game/core/genealogy'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/systems/events'
|
||||
import { computeGenealogy } from '../src/renderer/game/engine/narrative/genealogy'
|
||||
import { applyEventChoice } from '../src/renderer/game/engine/runtime/Systems/events'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
describe('多 seed 长跑矩阵', () => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { World, WorldEventBus } from '../src/renderer/game/engine/world'
|
||||
import { World, WorldEventBus } from '../src/renderer/game/engine/runtime/World'
|
||||
import { LogItem, ChronicleEntry, BattleLog } from '../src/renderer/game/types/domain'
|
||||
|
||||
const sinks: Set<WorldEventBus> = new Set()
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/world'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { resetSaveBus, attachLogSink } from './world.helpers'
|
||||
|
||||
describe('World engine', () => {
|
||||
|
||||
Reference in New Issue
Block a user