This commit is contained in:
2026-04-26 16:50:53 +08:00
parent ea33413187
commit 705a2d3dd8
30 changed files with 1537 additions and 570 deletions

View File

@@ -127,6 +127,32 @@ export interface RpgAgentFoundationDraftCamp {
summary: string;
}
export interface RpgAgentWorldAttributeSlot {
slotId: 'axis_a' | 'axis_b' | 'axis_c' | 'axis_d' | 'axis_e' | 'axis_f';
name: string;
definition: string;
positiveSignals: string[];
negativeSignals: string[];
combatUseText: string;
socialUseText: string;
explorationUseText: string;
}
export interface RpgAgentWorldAttributeSchema {
id: string;
worldId: string;
schemaVersion: number;
generatedFrom: {
worldType: 'CUSTOM' | 'WUXIA' | 'XIANXIA';
worldName: string;
settingSummary: string;
tone: string;
conflictCore: string;
};
schemaName?: string;
slots: RpgAgentWorldAttributeSlot[];
}
export type RpgAgentSceneActStage =
| 'opening'
| 'expansion'
@@ -148,6 +174,8 @@ export interface RpgAgentFoundationDraftSceneAct {
backgroundAssetId?: string | null;
encounterNpcIds: string[];
primaryNpcId: string;
oppositeNpcId: string;
eventDescription: string;
linkedThreadIds: string[];
actGoal: string;
transitionHook: string;
@@ -160,6 +188,7 @@ export interface RpgAgentFoundationDraftSceneChapter {
sceneName: string;
title: string;
summary: string;
sceneTaskDescription: string;
linkedThreadIds: string[];
linkedLandmarkIds: string[];
acts: RpgAgentFoundationDraftSceneAct[];
@@ -179,6 +208,7 @@ export interface RpgAgentFoundationDraftProfile {
camp?: RpgAgentFoundationDraftCamp | null;
themePack?: Record<string, unknown> | null;
storyGraph?: Record<string, unknown> | null;
attributeSchema: RpgAgentWorldAttributeSchema;
factions: RpgAgentFoundationDraftFaction[];
threads: RpgAgentFoundationDraftThread[];
chapters: RpgAgentFoundationDraftChapter[];

View File

@@ -178,6 +178,81 @@ export function createRpgAgentFoundationDraftProfileFixture(): RpgAgentFoundatio
},
],
},
attributeSchema: {
id: 'schema:rpg-agent:tide-fixture',
worldId: 'custom:潮雾列岛',
schemaVersion: 1,
schemaName: '潮雾六脉',
generatedFrom: {
worldType: 'CUSTOM',
worldName: '潮雾列岛',
settingSummary: '旧灯塔与失控航路',
tone: '压抑、潮湿、悬疑',
conflictCore: '沉船夜的航灯与灯册被人动过手脚。',
},
slots: [
{
slotId: 'axis_a',
name: '潮骨',
definition: '承受潮压、封航令与正面冲击的底子。',
positiveSignals: ['承压', '稳阵'],
negativeSignals: ['散乱', '畏压'],
combatUseText: '顶住正面压迫并守住行动空间。',
socialUseText: '在封锁与质问中保持可信姿态。',
explorationUseText: '穿过潮湿险境时维持身体与装备状态。',
},
{
slotId: 'axis_b',
name: '浪步',
definition: '顺潮借势、换线穿行与抢占位置的能力。',
positiveSignals: ['借势', '轻快'],
negativeSignals: ['迟滞', '失位'],
combatUseText: '借地形切线、拉开距离或抢先手。',
socialUseText: '顺着对方语气调整节奏。',
explorationUseText: '穿越港口、水路、雾区与复杂地形。',
},
{
slotId: 'axis_c',
name: '灯识',
definition: '看懂灯号、潮痕、档案错页与人心遮掩的能力。',
positiveSignals: ['辨伪', '识局'],
negativeSignals: ['误读', '迟钝'],
combatUseText: '识破破绽并判断局势变化。',
socialUseText: '听出隐瞒、试探与交换空间。',
explorationUseText: '辨认潮痕、灯册和沉船遗留线索。',
},
{
slotId: 'axis_d',
name: '雾魄',
definition: '在海雾、旧案与封锁压力中推进真相的胆气。',
positiveSignals: ['果断', '压前'],
negativeSignals: ['犹疑', '退缩'],
combatUseText: '顶着高压窗口推进突破口。',
socialUseText: '在谈判或对峙中定调。',
explorationUseText: '面对陌生雾区与异状仍敢继续前探。',
},
{
slotId: 'axis_e',
name: '旧约',
definition: '与旧友、信物、灯令和地方关系建立牵引的能力。',
positiveSignals: ['守诺', '通人情'],
negativeSignals: ['疏离', '失信'],
combatUseText: '借同伴协同与旧约牵制形成连锁。',
socialUseText: '安抚、结盟、交换与维系信任。',
explorationUseText: '从人情、传闻和旧物中打开线索。',
},
{
slotId: 'axis_f',
name: '回澜',
definition: '在长线消耗中回稳节奏并维持判断的能力。',
positiveSignals: ['回稳', '续航'],
negativeSignals: ['紊乱', '断流'],
combatUseText: '久战不乱,把节奏重新拉回手里。',
socialUseText: '情绪稳定,不轻易被带偏。',
explorationUseText: '在漫长远行与恶劣天气里保有余力。',
},
],
},
factions: [
{
id: 'faction-1',
@@ -223,6 +298,7 @@ export function createRpgAgentFoundationDraftProfileFixture(): RpgAgentFoundatio
sceneName: '回潮旧灯塔',
title: '灯塔初章',
summary: '围绕灯塔推进的首个场景章节。',
sceneTaskDescription: '首次进入回潮旧灯塔时,追查禁航灯册为何被人改写。',
linkedThreadIds: ['thread-1'],
linkedLandmarkIds: ['landmark-1'],
acts: [
@@ -236,6 +312,8 @@ export function createRpgAgentFoundationDraftProfileFixture(): RpgAgentFoundatio
backgroundAssetId: 'scene-asset-runtime',
encounterNpcIds: ['story-1'],
primaryNpcId: 'story-1',
oppositeNpcId: 'story-1',
eventDescription: '顾潮音在旧灯塔门前拦住玩家,交出第一段灯册疑点。',
linkedThreadIds: ['thread-1'],
actGoal: '接住首幕入口',
transitionHook: '向第二幕推进。',
@@ -435,6 +513,7 @@ export function createRpgCreationPublishedProfileFixture(): CustomWorldProfileRe
sceneName: chapter.sceneName,
title: chapter.title,
summary: chapter.summary,
sceneTaskDescription: chapter.sceneTaskDescription,
acts: chapter.acts.map((act) => ({
id: act.id,
title: act.title,
@@ -443,6 +522,8 @@ export function createRpgCreationPublishedProfileFixture(): CustomWorldProfileRe
backgroundAssetId: act.backgroundAssetId,
encounterNpcIds: act.encounterNpcIds,
primaryNpcId: act.primaryNpcId,
oppositeNpcId: act.oppositeNpcId,
eventDescription: act.eventDescription,
actGoal: act.actGoal,
transitionHook: act.transitionHook,
})),