Пример #1
0
 public static function getTargetForUser($user)
 {
     $memberIDs = GameMemberPeer::getMemberIdsInGame($user->getCurrentGameId());
     $memberIDs = array_diff($memberIDs, array($user->getId()));
     $targetIDs = self::getTargetedMembersByIds($memberIDs);
     if (!is_array($memberIDs) || count($memberIDs) < 1) {
         return false;
     }
     if (!is_array($targetIDs)) {
         $targetID = array_shift($memberIDs);
         self::assignTarget($user->getId(), $targetID);
         return $targetID;
     }
     $possibleTargets = array_diff($memberIDs, $targetIDS);
     $targetID = array_shift($possibleTargets);
     self::assignTarget($user->getId(), $targetID);
     return $targetID;
 }
Пример #2
0
 public function executeKill(sfWebRequest $request)
 {
     $user = UserPeer::retrieveByPk($request->getParameter('username'));
     $arr = array();
     if (!$user) {
         $arr["result"] = false;
         $arr["message"] = "Invalid username";
         $this->renderText(json_encode($arr));
         return sfView::NONE;
     }
     if (!$user->getCurrentGameId()) {
         $arr["result"] = false;
         $arr["message"] = "You are dead, you cannot kill.";
         $this->renderText(json_encode($arr));
         return sfView::NONE;
     }
     TargetPeer::killTarget($user->getId());
     $user->setKills($user->getKills() + 1);
     $user->save();
     $arr["result"] = true;
     if (count(GameMemberPeer::getMemberIdsInGame($user->getCurrentGameId())) < 2) {
         GameMemberPeer::setMemberInactive($user->getId(), $user->getCurrentGameId());
         $user->setWins($user->getWins() + 1);
         $user->setCurrentGameId(null);
         $user->save();
         $arr["message"] = "You have won!  Game is over!";
         $arr["win"] = true;
     } else {
         $arr["message"] = "Target Killed, new one will be assigned soon!";
         $arr["win"] = false;
     }
     $this->renderText(json_encode($arr));
     return sfView::NONE;
 }