Beispiel #1
0
function takeover_transfer_cave_to($caveID, $playerID)
{
    global $db;
    // check parameters
    $caveID = (int) $caveID;
    $playerID = (int) $playerID;
    // get player
    $winner = Player::getPlayer($playerID, true);
    if (!sizeof($winner)) {
        echo "ERROR (takeover_transfer_cave_to): Could not transfer Cave {$caveID} to Player {$playerID}.\n";
        return FALSE;
    }
    // secureCaveCredits
    $hasCredits = $winner['secureCaveCredits'] > 0 ? 1 : 0;
    // transfer cave to player
    $sql = $db->prepare("UPDATE " . CAVE_TABLE . "\n                       SET playerID = :playerID,\n                         takeoverable = 0,\n                         secureCave = :secureCave\n                       WHERE caveID = :caveID");
    $sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
    $sql->bindValue('secureCave', $hasCredits, PDO::PARAM_INT);
    $sql->bindValue('caveID', $caveID, PDO::PARAM_INT);
    if (!$sql->execute()) {
        return FALSE;
    }
    // update secureCaveCredits
    $sql = $db->prepare("UPDATE " . PLAYER_TABLE . "\n                       SET secureCaveCredits = GREATEST(0, secureCaveCredits - 1)\n                       WHERE playerID = :playerID");
    $sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
    if (!$sql->execute()) {
        echo "ERROR (takeover_transfer_cave_to): Could not update secureCaveCredits of Player {$playerID}.\n";
        return FALSE;
    }
    // copy sciences
    if (sizeof($GLOBALS['scienceTypeList'])) {
        $set = array();
        foreach ($GLOBALS['scienceTypeList'] as $science) {
            $temp = $science->dbFieldName;
            $set[] = "{$temp} = '{$winner[$temp]}'";
        }
        $set = implode(", ", $set);
        $sql = $db->prepare("UPDATE " . CAVE_TABLE . "\n                         SET " . $set . "\n                         WHERE playerID = :playerID");
        $sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
        if (!$sql->execute()) {
            echo "ERROR (takeover_transfer_cave_to): Could not update sciences of Player {$playerID}.\n";
            return FALSE;
        }
    }
    // get the cave's data
    $cave = getCaveByID($caveID);
    takeover_send_transfer($playerID, $cave);
}
Beispiel #2
0
function takeover_transfer_cave_to($caveID, $playerID)
{
    global $db, $scienceTypeList;
    // check parameters
    $caveID = intval($caveID);
    $playerID = intval($playerID);
    // get player
    $winner = getPlayerByID($playerID);
    if (!sizeof($winner)) {
        echo "ERROR (takeover_transfer_cave_to): Could not transfer Cave {$caveID} to Player {$playerID}.\n";
        return FALSE;
    }
    // secureCaveCredits
    $hasCredits = $winner['secureCaveCredits'] > 0 ? 1 : 0;
    // transfer cave to player
    $query = "UPDATE Cave SET playerID = {$playerID}, takeoverable = 0, " . "secureCave = '{$hasCredits}' WHERE caveID = {$caveID}";
    if (!DEBUG) {
        if (!$db->query($query)) {
            echo "ERROR (takeover_transfer_cave_to): Could not update Cave {$caveID}.\n";
            return FALSE;
        }
    } else {
        echo "DEBUG:  {$query} \n";
    }
    // update secureCaveCredits
    $query = "UPDATE Player SET secureCaveCredits = GREATEST(0, secureCaveCredits - 1) " . "WHERE playerID = {$playerID}";
    if (!DEBUG) {
        if (!$db->query($query)) {
            echo "ERROR (takeover_transfer_cave_to): Could not update secureCaveCredits of Player {$playerID}.\n";
            return FALSE;
        }
    } else {
        echo "DEBUG:  {$query} \n";
    }
    // copy sciences
    if (sizeof($scienceTypeList)) {
        $set = array();
        foreach ($scienceTypeList as $science) {
            $temp = $science->dbFieldName;
            $set[] = "{$temp} = '{$winner[$temp]}'";
        }
        $set = implode(", ", $set);
        $query = "UPDATE Cave SET {$set} WHERE playerID = {$playerID}";
        if (!DEBUG) {
            if (!$db->query($query)) {
                echo "ERROR (takeover_transfer_cave_to): Could not update sciences of Player {$playerID}.\n";
                return FALSE;
            }
        } else {
            echo "DEBUG:  {$query} \n";
        }
    }
    // get the cave's data
    $cave = getCaveByID($caveID);
    takeover_send_transfer($playerID, $cave);
}