getGuardedUserId() public method

public getGuardedUserId ( ) : mixed
return mixed
Example #1
0
 public function fire()
 {
     $client = $this->client;
     if ($this->game->getState() != GameState::NIGHT) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: You can only guard at night.", $channel);
         });
         throw new Exception("Guarding occurs only during the night.");
     }
     // Voter should be alive
     if (!$this->game->hasPlayer($this->userId)) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: You aren't alive in the specified channel.", $channel);
         });
         throw new Exception("Can't guard if dead.");
     }
     // Person player is voting for should also be alive
     if (!$this->game->hasPlayer($this->args[1])) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Could not find that player.", $channel);
         });
         throw new Exception("Voted player not found in game.");
     }
     // Person should be werewolf
     $player = $this->game->getPlayerById($this->userId);
     if ($player->role != Role::BODYGUARD) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: You have to be a bodyguard to guard.", $channel);
         });
         throw new Exception("Only bodyguard can guard.");
     }
     if ($this->game->getGuardedUserId() !== null) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: You have already guarded.", $channel);
         });
         throw new Exception("You have already guarded.");
     }
     if ($this->game->getLastGuardedUserId() == $this->args[1]) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: You cant guard the same player as last night.", $channel);
         });
         throw new Exception("You cant guard the same player as last night");
     }
     $this->game->setGuardedUserId($this->args[1]);
     $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
         $client->send("Guarding successful.", $channel);
     });
     $this->gameManager->changeGameState($this->game->getId(), GameState::DAY);
 }
 public function fire()
 {
     $client = $this->client;
     if ($this->game->getState() != GameState::NIGHT) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Vous pouvez uniquement protéger la nuit", $channel);
         });
         throw new Exception("Impossible de protéger en dehors de la nuit");
     }
     // Voter should be alive
     if (!$this->game->isPlayerAlive($this->userId)) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Vous n'êtes pas vivant dans la partie spécifiée.", $channel);
         });
         throw new Exception("Impossible de protéger en étant mort.");
     }
     // Person player is voting for should also be alive
     if (!$this->game->isPlayerAlive($this->args[1])) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Ce joueur n'a pas pu être trouvé", $channel);
         });
         throw new Exception("Le joueur demandé n'a pas été trouvé dans la partie.");
     }
     // Person should be werewolf
     $player = $this->game->getPlayerById($this->userId);
     if ($player->role != Role::BODYGUARD) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Vous devez être Salvateur pour pouvoir protéger", $channel);
         });
         throw new Exception("Uniquement le Salvateur peut protéger.");
     }
     if ($this->game->getGuardedUserId() !== null) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Vous avez déjà protégé.", $channel);
         });
         throw new Exception("Vous avez déjà protégé.");
     }
     if ($this->game->getLastGuardedUserId() == $this->args[1]) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Vous ne pouvez pas protéger le même joueur que la nuit dernière.", $channel);
         });
         throw new Exception(":warning: Vous ne pouvez pas protéger le même joueur que la nuit dernière.");
     }
     $this->game->setGuardedUserId($this->args[1]);
     $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
         $client->send("Joueur protégé avec succès", $channel);
     });
     $this->gameManager->changeGameState($this->game->getId(), GameState::DAY);
 }
Example #3
0
 public function fire()
 {
     $client = $this->client;
     if ($this->game->getState() != GameState::NIGHT) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Ночь утра мудренее. Дождись заката.", $channel);
         });
         throw new Exception("Ночь утра мудренее. Дождись заката.");
     }
     // Voter should be alive
     if (!$this->game->isPlayerAlive($this->userId)) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Кажется тебя уже выпилили, наберись терпения и жди следующей игры.", $channel);
         });
         throw new Exception("Кажется тебя уже выпилили, наберись терпения и жди следующей игры.");
     }
     // Person player is voting for should also be alive
     if (!$this->game->isPlayerAlive($this->args[1])) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Не вижу такого чела, а он с какого района?", $channel);
         });
         throw new Exception("Не вижу такого чела, а он с какого района?");
     }
     // Person should be werewolf
     $player = $this->game->getPlayerById($this->userId);
     if ($player->role != Role::BODYGUARD) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: А справка, что ты телохранитель у тебя есть?", $channel);
         });
         throw new Exception("А справка, что ты телохранитель у тебя есть?");
     }
     if ($this->game->getGuardedUserId() !== null) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Палехче, не больше одного за раз, громила.", $channel);
         });
         throw new Exception("Палехче, не больше одного за раз, громила.");
     }
     if ($this->game->getLastGuardedUserId() == $this->args[1]) {
         $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
             $client->send(":warning: Я понимаю, что он твой любимчик, но два раза подряд не прокатит.", $channel);
         });
         throw new Exception("Я понимаю, что он твой любимчик, но два раза подряд не прокатит.");
     }
     $this->game->setGuardedUserId($this->args[1]);
     $client->getChannelGroupOrDMByID($this->channel)->then(function (ChannelInterface $channel) use($client) {
         $client->send("Все путем.", $channel);
     });
     $this->gameManager->changeGameState($this->game->getId(), GameState::DAY);
 }
Example #4
0
 private function onNightEnd(Game $game)
 {
     $client = $this->client;
     $votes = $game->getVotes();
     foreach ($votes as $lynch_id => $voters) {
         $player = $game->getPlayerById($lynch_id);
         if ($lynch_id == $game->getGuardedUserId()) {
             $killMsg = ":muscle: @{$player->getUsername()} was protected from being killed during the night.";
             $game->setLastGuardedUserId($game->getGuardedUserId());
             $game->setGuardedUserId(null);
         } else {
             $killMsg = ":skull_and_crossbones: @{$player->getUsername()} was killed during the night.";
             $game->removePlayer($lynch_id);
         }
         $client->getChannelGroupOrDMByID($game->getId())->then(function (Channel $channel) use($client, $killMsg) {
             $client->send($killMsg, $channel);
         });
     }
 }
Example #5
0
 private function onNightEnd(Game $game)
 {
     $votes = $game->getVotes();
     foreach ($votes as $lynch_id => $voters) {
         $player = $game->getPlayerById($lynch_id);
         if ($lynch_id == $game->getGuardedUserId()) {
             $killMsg = ":muscle: @{$player->getUsername()} was protected from being killed during the night.";
         } else {
             $killMsg = ":skull_and_crossbones: @{$player->getUsername()} ({$player->role}) was killed during the night.";
             $game->killPlayer($lynch_id);
         }
         $game->setLastGuardedUserId($game->getGuardedUserId());
         $game->setGuardedUserId(null);
         $this->sendMessageToChannel($game, $killMsg);
     }
 }
Example #6
0
 private function onNightEnd(Game $game)
 {
     $votes = $game->getVotes();
     foreach ($votes as $lynch_id => $voters) {
         $player = $game->getPlayerById($lynch_id);
         if ($lynch_id == $game->getGuardedUserId()) {
             $killMsg = ":muscle: @{$player->getUsername()} a été protégé par le Salvateur de l'attaque des Loups-Garous.";
         } else {
             $killMsg = ":skull_and_crossbones: @{$player->getUsername()} ({$player->role}) a été tué pendant la nuit.";
             $game->killPlayer($lynch_id);
         }
         $game->setLastGuardedUserId($game->getGuardedUserId());
         $game->setGuardedUserId(null);
         $this->sendMessageToChannel($game, $killMsg);
     }
 }
Example #7
0
 /**
  * @param Game $game
  */
 private function onNightEnd(Game $game)
 {
     $votes = $game->getVotes();
     $numKilled = 0;
     $hasGuarded = false;
     $hasHealed = false;
     $hasKilled = false;
     $hunterKilled = false;
     $hunterName = "";
     $killMsg = ":skull_and_crossbones: ";
     foreach ($votes as $lynch_id => $voters) {
         $player = $game->getPlayerById($lynch_id);
         if ($lynch_id == $game->getGuardedUserId()) {
             $hasGuarded = true;
         } elseif ($lynch_id == $game->getWitchHealedUserId()) {
             $hasHealed = true;
         } else {
             $killMsg .= " @{$player->getUsername()} ({$player->role->getName()})";
             if ($player->role->isRole(Role::HUNTER)) {
                 $hunterKilled = true;
                 $hunterName = $player->getUsername();
             }
             $game->killPlayer($lynch_id);
             $hasKilled = true;
             $numKilled++;
         }
     }
     // see if witch poisoned someone
     if ($game->getWitchPoisonedUserId()) {
         $poisoned_player_id = $game->getWitchPoisonedUserId();
         $poisoned_player = $game->getPlayerById($poisoned_player_id);
         $poisoned_player_name = $poisoned_player->getUsername();
         $poisoned_player_role = (string) $poisoned_player->role->getName();
         if ($numKilled > 0) {
             $killMsg .= " and";
         }
         $killMsg .= " @{$poisoned_player->getUsername()} ({$poisoned_player_role})";
         $game->killPlayer($poisoned_player_id);
         $hasKilled = true;
         $numKilled++;
         $game->setWitchPoisonedUserId(null);
         // if killed player was hunter
         if ($poisoned_player->role->isRole(Role::HUNTER)) {
             $hunterKilled = true;
             $hunterName = $poisoned_player_name;
         }
     }
     $wasOrWere = "was";
     if ($numKilled > 1) {
         $wasOrWere = "were";
     }
     $killMsg .= " {$wasOrWere} killed during the night.";
     $game->setLastGuardedUserId($game->getGuardedUserId());
     $game->setGuardedUserId(null);
     if ($hasKilled) {
         $this->sendMessageToChannel($game, $killMsg);
         // send shoot command to hunter if in game
         if ($hunterKilled) {
             $game->setHunterNeedsToShoot(true);
             $hunterMsg = ":bow_and_arrow: " . $hunterName . " you were killed.  The night isn't over, though, because as a hunter you can take one other player with you to your grave.  Type !shoot @playername, or !shoot noone.";
             $this->sendMessageToChannel($game, $hunterMsg);
         }
     }
     if ($numKilled == 0) {
         $this->sendMessageToChannel($game, "There was no deaths in the night!");
     }
     $game->setNightEnded(true);
 }
Example #8
0
 private function onNightEnd(Game $game)
 {
     $votes = $game->getVotes();
     foreach ($votes as $lynch_id => $voters) {
         $player = $game->getPlayerById($lynch_id);
         if ($lynch_id == $game->getGuardedUserId()) {
             $killMsg = ":muscle: @{$player->getUsername()} спасен благодаря тебе, мужик.";
         } else {
             $killMsg = ":skull_and_crossbones: @{$player->getUsername()} ({$player->role}) был беспощадно убит.";
             $game->killPlayer($lynch_id);
         }
         $game->setLastGuardedUserId($game->getGuardedUserId());
         $game->setGuardedUserId(null);
         $this->sendMessageToChannel($game, $killMsg);
     }
 }