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