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; }
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; }