/** * @param LegEvent $legCompletedEvent * @param string $name * @param EventDispatcherInterface $dispatcher */ public function onLegCompleted(LegEvent $legCompletedEvent, $name, EventDispatcherInterface $dispatcher) { // $this->log('onLegCompleted'); $leg = $legCompletedEvent->getLeg(); if ($leg->getGame()->getId() != $this->getGame()->getId()) { // $this->log('onLegCompleted, not my game - bailing'); return; } // $this->log('onLegCompleted, proceed - forward event to implementing class'); $this->handleLegCompleted($leg); if (null !== $this->gameCompleted) { $gameCompletedEvent = new GameEvent(); $gameCompletedEvent->setGame($this->gameCompleted); $dispatcher->dispatch(EngineEvents::GAME_COMPLETED, $gameCompletedEvent); } }
/** * @param GameEvent $gameCompletedEvent * @param string $name * @param EventDispatcherInterface $dispatcher */ public function onGameCompleted(GameEvent $gameCompletedEvent, $name, EventDispatcherInterface $dispatcher) { if (!$this->isRoundInitialized) { // if this round is not yet initialized, we are probably not meant... // $this->log('onGameCompleted, no round initialized - bailing'); return; } $game = $gameCompletedEvent->getGame(); if ($this->getRound()->getId() != $game->getGroup()->getRound()->getId()) { $this->log('onGameCompleted, event happened in another round (id mismatch)'); return; } $this->log('onGameCompleted, proceed - forward event to implementing class'); $this->handleGameCompleted($game, $dispatcher); }