Close DDD refactor and remove generated asset proxy

This commit is contained in:
kdletters
2026-05-02 00:27:22 +08:00
parent fd08262bf0
commit 9d9913095d
605 changed files with 11811 additions and 10106 deletions

View File

@@ -45,7 +45,7 @@ export const CAMP_TRAVEL_HOME_FUNCTION: FunctionDocumentationEntry = {
'它负责把开局同伴营地流程平稳切到角色真正的起始场景正式目标场景、encounter 清理、战斗态清理和镜头残留状态由后端 resolver 写入。',
trigger: '常见于开局同伴营地对话后的跟进选项。',
execution:
'点击后作为服务端 runtime function id 提交到 /api/runtime/story/actions/resolve由后端执行定制场景迁移和历史写入。',
'点击后作为服务端 runtime function id 提交到 /api/story/sessions/{storySessionId}/actions/resolve由后端执行定制场景迁移和历史写入。',
result: '玩家会离开营地进入角色主场景,正式开始该角色的冒险线。',
active: true,
runtime: {
@@ -53,7 +53,7 @@ export const CAMP_TRAVEL_HOME_FUNCTION: FunctionDocumentationEntry = {
uiMode: 'none',
visuals: CAMP_TRAVEL_HOME_OPTION_VISUALS,
executor:
'server-rs/crates/api-server/src/runtime_story/compat.rs -> resolve_camp_travel_home_scene_action',
'server-rs/crates/module-runtime-story/src/session_action.rs -> resolve_story_runtime_action',
animationNote:
'前端保留 run 视觉元信息;正式状态以服务端 hydrated snapshot 为准。',
storyNote:

View File

@@ -30,7 +30,7 @@ export const STORY_OPENING_CAMP_DIALOGUE_FUNCTION: FunctionDocumentationEntry =
storyMode: 'special_sequence',
uiMode: 'none',
executor:
'server-rs/crates/api-server/src/runtime_story/compat.rs -> resolve_runtime_story_choice_action',
'server-rs/crates/module-runtime-story/src/session_action.rs -> resolve_story_runtime_action',
animationNote: '重点在对白本身,不额外驱动独立战斗/位移动画。',
storyNote: '会把 prompt 切到营地开场对白模式,并要求输出结构化对话行。',
uiNote: '不弹 modal直接进入对白流。',

View File

@@ -105,7 +105,7 @@ describe('functionCatalog', () => {
expect(campTravelOption.actionText).toBe('前往 竹林古道');
expect(campTravelOption.detailText).toBe('离开营地,前往 竹林古道。');
expect(CAMP_TRAVEL_HOME_FUNCTION.runtime?.executor).toContain(
'server-rs/crates/api-server/src/runtime_story/compat.rs',
'server-rs/crates/module-runtime-story/src/session_action.rs',
);
expect(CAMP_TRAVEL_HOME_FUNCTION.detailedDescription).toContain(
'后端 resolver',

View File

@@ -8,7 +8,7 @@ import type { FunctionDocumentationEntry } from '../types';
*/
const QUEST_OFFER_SOURCE = 'src/data/functionCatalog/npc/npcChatQuestOffer.ts';
const QUEST_OFFER_EXECUTOR =
'server-rs/crates/api-server/src/runtime_story/compat.rs -> resolve_runtime_story_choice_action';
'server-rs/crates/module-runtime-story/src/session_action.rs -> resolve_story_runtime_action';
export const NPC_CHAT_QUEST_OFFER_VIEW_FUNCTION: FunctionDocumentationEntry = {
id: 'npc_chat_quest_offer_view',

View File

@@ -182,7 +182,10 @@ export function buildNpcBattleFormationFromEncounter(params: {
const slots = getSceneActBattleSlots(primaryX);
const resolvedFormation = formationSourceEncounters.map((memberEncounter, index) => {
const slot = slots[index] ?? slots[slots.length - 1];
const slot = slots[index] ?? slots[slots.length - 1] ?? {
xMeters: primaryX,
yOffset: 0,
};
const npcState = getResolvedNpcState(state, memberEncounter);
const battleMonster = createNpcBattleMonster(
memberEncounter,