ttrpg-tools/src/cli/prompts/design-card-game.ts

188 lines
4.6 KiB
TypeScript
Raw Normal View History

2026-03-18 12:12:43 +08:00
/**
* design-card-game Prompt
*
*
*/
export interface DesignCardGameOptions {
/**
*
*/
deck_name?: string;
/**
*
*/
output_dir?: string;
/**
* /
*/
game_theme?: string;
}
export interface DesignCardGameResult {
messages: PromptMessage[];
}
export interface PromptMessage {
role: 'user' | 'assistant';
content: TextContent | ImageContent | AudioContent | ResourceContent;
}
export interface TextContent {
type: 'text';
text: string;
}
export interface ImageContent {
type: 'image';
data: string;
mimeType: string;
}
export interface AudioContent {
type: 'audio';
data: string;
mimeType: string;
}
export interface ResourceContent {
type: 'resource';
resource: {
uri: string;
mimeType: string;
text?: string;
blob?: string;
};
}
/**
* design-card-game prompt
*/
export function designCardGame(options?: DesignCardGameOptions): DesignCardGameResult {
const deckName = options?.deck_name || '未命名卡牌组';
const outputDir = options?.output_dir || './content';
const gameTheme = options?.game_theme || '通用';
const messages: PromptMessage[] = [
{
role: 'user',
content: {
type: 'text',
text: `我想设计一个"${gameTheme}"主题的卡牌游戏,卡牌组名称为"${deckName}",输出目录为"${outputDir}"。请帮我设计卡牌的字段结构。`
}
},
{
role: 'assistant',
content: {
type: 'text',
text: `好的!我来帮你设计"${deckName}"卡牌组的字段结构。
## 1.
- [ ] Characters-
- [ ] Items-
- [ ] /Spells/Abilities-
- [ ] Locations-
- [ ] Events-
- [ ] _______
## 2.
- /
-
- /
- /
## 3.
-
- /
- /
- _______
---
****
###
\`\`\`json
{
"fields": [
{"name": "name", "description": "物品名称"},
{"name": "type", "description": "物品类型", "examples": ["武器", "防具", "饰品", "消耗品"]},
{"name": "rarity", "description": "稀有度", "examples": ["普通", "稀有", "史诗", "传说"]},
{"name": "cost", "description": "价格/费用"},
{"name": "effect", "description": "效果描述"}
]
}
\`\`\`
### NPC
\`\`\`json
{
"fields": [
{"name": "name", "description": "角色名称"},
{"name": "class", "description": "职业", "examples": ["战士", "法师", "盗贼", "牧师"]},
{"name": "level", "description": "等级"},
{"name": "background", "description": "背景故事"},
{"name": "ability", "description": "特殊能力"}
]
}
\`\`\`
###
\`\`\`json
{
"fields": [
{"name": "name", "description": "牌名"},
{"name": "number", "description": "编号"},
{"name": "element", "description": "元素", "examples": ["火", "水", "风", "土"]},
{"name": "meaning", "description": "含义"},
{"name": "reversed", "description": "逆位含义"}
]
}
\`\`\``
}
}
];
return { messages };
}
/**
* prompt
*/
export function getDesignCardGamePrompt() {
return {
name: 'design-card-game',
title: '设计卡牌游戏',
description: '引导用户设计新的卡牌游戏系统,定义卡牌模板和字段结构',
arguments: [
{
name: 'deck_name',
description: '卡牌组名称',
required: false
},
{
name: 'output_dir',
description: '输出目录(相对路径)',
required: false
},
{
name: 'game_theme',
description: '游戏主题/类型(如:奇幻、科幻、恐怖等)',
required: false
}
]
};
}