Split custom world generation into staged lightweight batches
Some checks failed
CI / verify (push) Has been cancelled
Some checks failed
CI / verify (push) Has been cancelled
This commit is contained in:
@@ -3,6 +3,7 @@ import type {
|
||||
RoleAttributeProfile,
|
||||
WorldAttributeSchema,
|
||||
} from './attributes';
|
||||
import type { CharacterBackstoryRevealConfig } from './characters';
|
||||
import {
|
||||
type EquipmentSlotId,
|
||||
type ItemRarity,
|
||||
@@ -10,6 +11,23 @@ import {
|
||||
} from './core';
|
||||
import type {ItemStatProfile, ItemUseProfile} from './items';
|
||||
|
||||
export interface CustomWorldRoleSkill {
|
||||
id: string;
|
||||
name: string;
|
||||
summary: string;
|
||||
style: string;
|
||||
}
|
||||
|
||||
export interface CustomWorldRoleInitialItem {
|
||||
id: string;
|
||||
name: string;
|
||||
category: string;
|
||||
quantity: number;
|
||||
rarity: ItemRarity;
|
||||
description: string;
|
||||
tags: string[];
|
||||
}
|
||||
|
||||
export interface CustomWorldRoleProfile {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -23,6 +41,9 @@ export interface CustomWorldRoleProfile {
|
||||
initialAffinity: number;
|
||||
relationshipHooks: string[];
|
||||
tags: string[];
|
||||
backstoryReveal: CharacterBackstoryRevealConfig;
|
||||
skills: CustomWorldRoleSkill[];
|
||||
initialItems: CustomWorldRoleInitialItem[];
|
||||
attributeProfile?: RoleAttributeProfile;
|
||||
}
|
||||
|
||||
@@ -75,12 +96,35 @@ export interface CustomWorldItem {
|
||||
attributeResonance?: ItemAttributeResonance | null;
|
||||
}
|
||||
|
||||
export type CustomWorldSceneRelativePosition =
|
||||
| 'forward'
|
||||
| 'back'
|
||||
| 'left'
|
||||
| 'right'
|
||||
| 'north'
|
||||
| 'south'
|
||||
| 'east'
|
||||
| 'west'
|
||||
| 'up'
|
||||
| 'down'
|
||||
| 'inside'
|
||||
| 'outside'
|
||||
| 'portal';
|
||||
|
||||
export interface CustomWorldSceneConnection {
|
||||
targetLandmarkId: string;
|
||||
relativePosition: CustomWorldSceneRelativePosition;
|
||||
summary: string;
|
||||
}
|
||||
|
||||
export interface CustomWorldLandmark {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
dangerLevel: string;
|
||||
imageSrc?: string;
|
||||
sceneNpcIds: string[];
|
||||
connections: CustomWorldSceneConnection[];
|
||||
}
|
||||
|
||||
export interface CustomWorldProfile {
|
||||
|
||||
@@ -4,6 +4,7 @@ import type {
|
||||
RoleRelationState,
|
||||
} from './attributes';
|
||||
import type {Character} from './characters';
|
||||
import type {CustomWorldSceneRelativePosition} from './customWorld';
|
||||
import {
|
||||
AnimationState,
|
||||
type CharacterGender,
|
||||
@@ -188,4 +189,11 @@ export interface ScenePresetInfo {
|
||||
monsterIds?: string[];
|
||||
npcs?: SceneNpc[];
|
||||
treasureHints?: string[];
|
||||
connections?: SceneConnectionInfo[];
|
||||
}
|
||||
|
||||
export interface SceneConnectionInfo {
|
||||
sceneId: string;
|
||||
relativePosition: CustomWorldSceneRelativePosition;
|
||||
summary: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user