dungeon_info
Retrieve detailed information about specific dungeons in the MCP Dungeon Game, including exploration data, events, and requirements for gameplay progression.
Instructions
特定のダンジョンの詳細情報を取得します。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dungeon_id | Yes | ダンジョンのID(list_dungeonsから取得) | |
| save_key | Yes | セーブキー |
Implementation Reference
- src/tools/dungeon.ts:41-83 (handler)The `dungeonInfo` function retrieves and displays detailed information about a specific dungeon, including stats, enemies, bosses, and loot.
export async function dungeonInfo(dungeonId: string, saveKey: string): Promise<string> { const data = await storage.load(saveKey); if (!data.player.name) { return "プレイヤーが見つかりません。先に'create_player'を実行してください。"; } const dungeon = getDungeonById(dungeonId); if (!dungeon) { return `ダンジョン '${dungeonId}' が見つかりません。`; } const playerStats = calculateTotalStats(data.player.equipment); const actualTime = calculateDungeonTime(dungeon.baseTime, playerStats.speed); let output = `=== ${dungeon.name} ===\n\n`; output += `階層: ${dungeon.floors}階\n`; output += `推定所要時間: ${actualTime}分\n\n`; output += `出現モンスター:\n`; for (const enemy of dungeon.enemies) { output += ` ${enemy.name}\n`; output += ` 攻撃: ${enemy.stats.attack} 防御: ${enemy.stats.defense} 速度: ${enemy.stats.speed} 運: ${enemy.stats.luck}\n`; output += ` ゴールド: ${enemy.goldDrop[0]}-${enemy.goldDrop[1]}\n`; output += ` ドロップ率: ${(enemy.equipmentDropRate * 100).toFixed(1)}%\n`; } output += `\nボス:\n`; output += ` ${dungeon.boss.name}\n`; output += ` 攻撃: ${dungeon.boss.stats.attack} 防御: ${dungeon.boss.stats.defense} 速度: ${dungeon.boss.stats.speed} 運: ${dungeon.boss.stats.luck}\n`; output += ` ゴールド: ${dungeon.boss.goldDrop[0]}-${dungeon.boss.goldDrop[1]}\n`; output += ` ドロップ率: ${(dungeon.boss.equipmentDropRate * 100).toFixed(1)}%\n`; output += `\n入手可能な装備:\n`; const rarities = [...new Set(dungeon.rewardPool.map(r => r.rarity))]; for (const rarity of rarities) { const items = dungeon.rewardPool.filter(r => r.rarity === rarity); output += ` ${rarity}: ${items.length}種類\n`; } return output; }