23 lines
680 B
TypeScript
23 lines
680 B
TypeScript
import {
|
|
buildMedievalNpcVisual,
|
|
parseCustomWorldNpcVisualFromSpec,
|
|
} from '../data/medievalNpcVisuals';
|
|
import type { CustomWorldNpc } from '../types';
|
|
|
|
type EditableNpcSource = Pick<CustomWorldNpc, 'id' | 'name' | 'role' | 'description'>;
|
|
|
|
function buildCustomWorldNpcEncounter(npc: EditableNpcSource) {
|
|
return {
|
|
id: npc.id,
|
|
kind: 'npc' as const,
|
|
npcName: npc.name,
|
|
npcDescription: npc.description,
|
|
npcAvatar: npc.name.slice(0, 1) || '角',
|
|
context: npc.role,
|
|
};
|
|
}
|
|
|
|
export function buildDefaultCustomWorldNpcVisual(npc: EditableNpcSource) {
|
|
return parseCustomWorldNpcVisualFromSpec(buildMedievalNpcVisual(buildCustomWorldNpcEncounter(npc)));
|
|
}
|