54 lines
1.8 KiB
PHP
54 lines
1.8 KiB
PHP
<?php
|
|
require __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use Game\Core\ServiceContainer;
|
|
use Game\Event\Event;
|
|
use Symfony\Component\Console\Input\ArrayInput;
|
|
use Symfony\Component\Console\Output\BufferedOutput;
|
|
use Symfony\Component\Console\Helper\HelperSet;
|
|
use Symfony\Component\Console\Helper\QuestionHelper;
|
|
|
|
$input = new ArrayInput([]);
|
|
$output = new BufferedOutput();
|
|
$helperSet = new HelperSet(['question' => 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"; |