setStream($stream); $input->setInteractive(true); $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("TestHero", 100, 10, 5); $stateManager->setPlayer($player); // 设置地图位置到新手村 $stateManager->setCurrentTileId('TOWN_01'); echo "=== 测试开始 ===\n"; echo "当前位置: " . $stateManager->getCurrentTile()->name . "\n"; echo "NPC列表: " . implode(', ', $stateManager->getCurrentTile()->npcIds) . "\n\n"; // 触发与NPC交谈 echo "触发 StartInteractionEvent...\n"; $dispatcher->dispatch(new Event('AttemptTalkEvent')); // 获取输出 $display = $output->fetch(); echo "\n=== 输出结果 ===\n"; echo $display; $dispatcher->dispatch(new Event('StartInteractionEvent', ['npcId' => 'VILLAGER_1'])); dd($stateManager->getPendingNpcSelection());