Beispiel #1
0
function vessel_show_trade_details($vessel_id)
{
    assert(is_numeric($vessel_id));
    $vessel = vessel_get_vessel($vessel_id);
    // Default action is not to show anything from a planet,
    // since we can be in flight
    for ($i = 0; $i != ore_get_ore_count(); $i++) {
        $planet_stock_ores[$i] = '?';
    }
    $status = vessel_get_current_status($vessel_id);
    if (vessel_is_in_orbit($vessel_id)) {
        $result = sql_query("SELECT * FROM g_ores WHERE planet_id=" . $vessel['planet_id']);
        $tmp = sql_fetchrow($result);
        $planet_stock_ores = ore_csl_to_list($tmp['stock_ores']);
    }
    $result = sql_query("SELECT * FROM i_vessels WHERE vessel_id=" . $vessel['id']);
    $tmp = sql_fetchrow($result);
    $vessel_stock_ores = ore_csl_to_list($tmp['ores']);
    echo "<table border=0 width=75% align=center>\n";
    echo "  <tr class=wb><th colspan=2>Trade vessel: " . $vessel['name'] . "</th></tr>\n";
    echo "  <tr><td>\n";
    echo "    <table border=0 width=100% cellpading=0 cellspacing=0>\n";
    echo "    <tr class=bl><th colspan=2>Ores on planet:</th></tr>\n";
    for ($i = 0; $i != ore_get_ore_count(); $i++) {
        echo "    <tr class=bl><td>" . ore_get_ore_name($i) . "</td> <td>" . $planet_stock_ores[$i] . "</td></tr>\n";
    }
    echo "    </table>\n";
    echo "  </td><td>\n";
    echo "    <table border=0 width=100% cellpading=0 cellspacing=0>\n";
    echo "      <tr class=bl><th colspan=2>Ores on trader:</th></tr>\n";
    for ($i = 0; $i != ore_get_ore_count(); $i++) {
        echo "      <tr class=bl><td>" . ore_get_ore_name($i) . "</td> <td>" . $vessel_stock_ores[$i] . "</td></tr>\n";
    }
    echo "    </table>\n";
    echo "  </td></tr>\n";
    // Don't load/unload when we are in a trade route
    if (vessel_in_traderoute($vessel_id)) {
        echo "  <tr class=wb><th colspan=2>Cannot load/unload because vessel is part of a trade route.</th></tr>";
    }
    // TODO: Don't load/unload when it's not our planet :)
    if (vessel_is_in_orbit($vessel_id)) {
        $planet = anomaly_get_anomaly($vessel['planet_id']);
        echo "  <tr class=bl align=center><td colspan=2>";
        form_start();
        echo "    <input type=hidden name=vid value=" . encrypt_get_vars($vessel['id']) . ">\n";
        echo "    <input type=hidden name=pid value=" . encrypt_get_vars($vessel['planet_id']) . ">\n";
        echo "    <select name=sl>\n";
        echo "      <option value=dump>Unload from vessel</option>\n";
        echo "      <option value=store>Load into vessel</option>\n";
        echo "    </select>&nbsp;\n";
        echo "    <select name=pc>\n";
        echo "      <option value=5>5%</option>\n";
        echo "      <option value=10>10%</option>\n";
        echo "      <option value=25>25%</option>\n";
        echo "      <option value=50>50%</option>\n";
        echo "      <option value=75>75%</option>\n";
        echo "      <option value=100>100%</option>\n";
        echo "    </select>&nbsp;\n";
        echo "    <select name=sp>\n";
        for ($i = 0; $i != ore_get_ore_count(); $i++) {
            echo "      <option value={$i}>" . ore_get_ore_name($i) . "</option>\n";
        }
        echo "      <option value=" . ORE_ALL . ">All ores</option>\n";
        echo "    </select>&nbsp;\n";
        echo "    <input type=submit name=submit value=go>\n";
        form_end();
        echo "  </td></tr>\n";
    }
    echo "</table>";
    echo "<br><br>\n\n\n";
}
function get_correct_da($vessel_id)
{
    assert(isset($vessel_id));
    $vessel = vessel_get_vessel($vessel_id);
    if (vessel_is_in_orbit($vessel_id) and $vessel['planet_id'] == 0) {
        $src_distance = $vessel['distance'];
        $src_angle = $vessel['angle'];
    } elseif (vessel_is_in_orbit($vessel_id) and $vessel['planet_id'] != 0) {
        $planet = anomaly_get_anomaly($vessel['planet_id']);
        $sector = sector_get_sector($planet['sector_id']);
        $src_distance = $sector['distance'];
        $src_angle = $sector['angle'];
    } else {
        $src_distance = $vessel['distance'];
        $src_angle = $vessel['angle'];
    }
    return array($src_distance, $src_angle);
}
function vessel_get_current_status($vessel_id, $create_hyperlink = true)
{
    assert(is_numeric($vessel_id));
    assert(is_bool($create_hyperlink));
    $vessel = vessel_get_vessel($vessel_id);
    $status = "Unknown status";
    // Are we in orbit?
    if (vessel_is_in_orbit($vessel_id)) {
        $anomaly = anomaly_get_anomaly($vessel['planet_id']);
        if (anomaly_is_planet($anomaly['id'])) {
            if ($create_hyperlink) {
                $status = "Orbiting planet <a href=anomaly.php?cmd=" . encrypt_get_vars("show") . "&aid=" . encrypt_get_vars($anomaly['id']) . ">" . $anomaly['name'] . "</a>";
            } else {
                $status = "Orbiting planet " . $anomaly['name'];
            }
        }
        if (anomaly_is_nebula($anomaly['id'])) {
            if ($create_hyperlink) {
                $status = "Hiding in nebula <a href=anomaly.php?cmd=" . encrypt_get_vars("show") . "&aid=" . encrypt_get_vars($anomaly['id']) . ">" . $anomaly['name'] . "</a>";
            } else {
                $status = "Hiding in nebula " . $anomaly['name'];
            }
        }
        if (anomaly_is_starbase($anomaly['id'])) {
            if ($create_hyperlink) {
                $status = "Docking at starbase <a href=anomaly.php?cmd=" . encrypt_get_vars("show") . "&aid=" . encrypt_get_vars($anomaly['id']) . ">" . $anomaly['name'] . "</a>";
            } else {
                $status = "Docking at starbase " . $anomaly['name'];
            }
        }
    }
    // Is the vessel flying?
    if (vessel_is_flying($vessel_id)) {
        if ($vessel['dst_planet_id'] == 0) {
            // Are we flying to a sector or deep space?
            if ($vessel['dst_sector_id'] == 0) {
                $status = "Flying to " . $vessel['dst_distance'] . " / " . $vessel['dst_angle'];
            } else {
                $tmp = sector_get_sector($vessel['dst_sector_id']);
                if ($create_hyperlink) {
                    $status = "Flying to sector <a href=sector.php?id=" . encrypt_get_vars($tmp['id']) . ">" . $tmp['name'] . "</a>";
                } else {
                    $status = "Flying to sector " . $tmp['name'];
                }
            }
        } else {
            // Are we flying to a planet?
            $tmp_anomaly = anomaly_get_anomaly($vessel['dst_planet_id']);
            if (anomaly_is_planet($tmp_anomaly['id'])) {
                if (anomaly_is_discovered_by_user($tmp_anomaly['id'], user_ourself())) {
                    if ($create_hyperlink) {
                        $status = "Flying to planet <a href=anomaly.php?cmd=" . encrypt_get_vars("show") . "&aid=" . encrypt_get_vars($tmp_anomaly['id']) . ">" . $tmp_anomaly['name'] . "</a>";
                    } else {
                        $status = "Flying to planet " . $tmp_anomaly['name'];
                    }
                } else {
                    $status = "Flying to an unknown anomaly.";
                }
            }
            if (anomaly_is_starbase($tmp_anomaly['id'])) {
                $status = "Flying to starbase " . $tmp_anomaly['name'];
            }
            if (anomaly_is_nebula($tmp_anomaly['id'])) {
                $status = "Flying to nebula " . $tmp_anomaly['name'];
            }
            if (anomaly_is_wormhole($tmp_anomaly['id'])) {
                $status = "Flying to wormhole " . $tmp_anomaly['name'];
            }
        }
    }
    // Are we halted in deep space?
    if (vessel_is_in_space($vessel_id) and $vessel['sector_id'] == 0) {
        $status = "Located in deep space (" . $vessel['distance'] . " / " . $vessel['angle'] . ")";
    }
    // Or are we bordering a sector?
    if (vessel_is_in_space($vessel_id) and $vessel['sector_id'] != 0) {
        $sector = sector_get_sector($vessel['sector_id']);
        $status = "Bordering sector " . $sector['name'];
    }
    if (vessel_in_traderoute($vessel_id)) {
        $status = "Part of traderoute.";
    }
    // TODO: change this into vessel_is_in_convoy ($vessel_id)
    if ($vessel['status'] == "CONVOY") {
        $result = sql_query("SELECT * FROM s_convoys WHERE id=" . $vessel['convoy_id']);
        $tmp = sql_fetchrow($result);
        if ($create_hyperlink) {
            $status = "Part of convoy <a href=convoy.php?id=" . encrypt_get_vars($tmp['id']) . ">" . $tmp['name'] . "</a>";
        } else {
            $status = "Part of convoy " . $tmp['name'];
        }
    }
    return $status;
}