예제 #1
0
 /**
  * @return boolean
  */
 public function start()
 {
     $settings = new Settings();
     $settings->setBoardSize((int) $this->board_size);
     $settings->setMoveTime((int) $this->move_time);
     $settings->setRaceChange((bool) $this->race_change);
     $settings->setRaceMultipleTimes((bool) $this->race_multiple_times);
     $player = new Player();
     $player->setId(Yii::$app->user->id);
     $player->setName(Yii::$app->user->identity->username);
     $imperium = new Imperium();
     $imperium->setCreator(Yii::$app->user->id);
     $imperium->setSettings($settings);
     $imperium->setStage(Imperium::STAGE_START);
     $imperium->addPlayer($player);
     $imperium->setStage(Imperium::STAGE_RACE);
     $imperium->setCurrentPlayer($player);
     return (new Game())->save($imperium);
 }
예제 #2
0
 /**
  * Checks if new playter can enter the game.
  * @return boolean
  */
 public function takeSeat()
 {
     if ($this->getHero() === null) {
         if ($this->getPlayers()->count() >= $this->getSettings()->getBoardSize()) {
             return false;
         }
         $player = new Player();
         $player->setId(Yii::$app->user->id);
         $player->setName(Yii::$app->user->identity->username);
         $this->addPlayer($player);
     }
     return true;
 }