new QuestionHelper()]); $container = new ServiceContainer($input, $output, $helperSet); $dispatcher = $container->registerServices(); $stateManager = $container->getStateManager(); // 创建测试玩家 $player = new \Game\Model\Player("HanLi", 100, 10, 5); $player->gainGold(50); // 给玩家一些初始金币 $stateManager->setPlayer($player); $stateManager->setCurrentTileId('TOWN_01'); echo "=== 《凡人修仙传》第一阶段地图显示测试 ===\n\n"; // 测试地图显示 $mapRepo = $container->getMapRepository(); $stateManager->setCurrentTileId('CAVE_01'); $dispatcher->dispatch(new Event('StartInteractionEvent', ['npcId' => 'MODOCTOR'])); dd(2); // 手动调用UIService显示地图信息 $uiService = new \Game\System\UIService($output, $stateManager, $container->getQuestRepository()); echo "1. 地图显示测试:\n"; $uiService->handleEvent(new Event('ShowMenuEvent')); echo "\n" . $output->fetch() . "\n"; echo "\n2. 目标位置名称验证:\n"; foreach ($tile->connections as $dir => $targetId) { $targetTile = $mapRepo->createTile($targetId); $directionMap = [ 'N' => '北', 'S' => '南', 'E' => '东', 'W' => '西' ]; $direction = $directionMap[$dir] ?? $dir; echo " - {$direction}方向: {$targetTile->name} (ID: {$targetId})\n"; } echo "\n=== 测试完成 ===\n"; echo "地图显示已更新,现在会显示方向和目标位置名称!\n";