示例#1
0
 private function move_xenobe($id, $aggression, $turns)
 {
     global $db_prefix, $sector_max;
     $sql_manager = new manage_table();
     $player_manager = new manage_player();
     $manage_log = new manage_log();
     /*get xenobe current sector*/
     $xenobe_data = $sql_manager->playerinfo($id, "");
     /*check current warp links, are there any? pick one at random to warp to*/
     //$link_query = ;
     $sector_links = $sql_manager->process_query("SELECT * FROM " . $db_prefix . "links WHERE link_start='" . $xenobe_data['sector'] . "'");
     $available_links = array();
     if ($sector_links) {
         #Sector Links Detected#
         foreach ($sector_links as $row) {
             /*List all the links, and pick one at random*/
             array_push($available_links, $row['link_dest']);
         }
         $selected = array_rand($available_links, 1);
         $target_sector = $available_links[$selected];
     } else {
         #No Sector Links Detected - PICKING RANDOM FROM THE UNIVERSE#
         $target_sector = mt_rand(1, $sector_max);
         /*We want the xenobes to have a presence everywhere, for intimidation reasons*/
     }
     /*Right target sector has been selected, now we just need to move there. check for fighters and mines*/
     /*
     To override for testing purposes, you can force a single target sector using  $target_sector = 400; for example here
     */
     $total_sector_mines = $sql_manager->sector_defence_quantities($target_sector, 'M', $id, "investigate");
     $total_sector_fighters = $sql_manager->sector_defence_quantities($target_sector, 'F', $id, "investigate");
     $total_sector_fighters = (int) $total_sector_fighters;
     $total_sector_mines = (int) $total_sector_mines;
     if ($total_sector_fighters > 0 || $total_sector_mines > 0 || $total_sector_fighters > 0 && $total_sector_mines > 0) {
         if ($aggression > 0) {
             /*Attacks sector defence*/
             if ($sql_manager->move_ship($id, $target_sector, $turns)) {
                 $sector_manager = new manage_sector();
                 if ($sector_manager->sector_defence_challange($target_sector, $id)) {
                     echo "<br/>ship moved to sector<br/>";
                     /*Ship in sector, got through defences - do nothing*/
                     ##New Log ##
                     $player_manager->last_activity_stamp($id);
                     $manage_log->player_log($id, 17, $target_sector, '', '', '', "<font color='#6190a5'>Low Priority</font>", "<b>Information</b>");
                 } else {
                     echo "<br/>Ship was destroyed<br/>";
                     /*ship was destroyed trying to enter sector*/
                     if ($xenobe_data['dev_emerwarp'] == "Y") {
                         ##New Log ##
                         $manage_log->player_log($id, 19, $target_sector, '', '', '', "<font color='#FF0000'><b>Extreme Priority</b></font>", '<b><font color="#FF0000">Warning</font></b>');
                         $sql_manager->reset_ship($id);
                     } else {
                         ##New Log ##
                         $manage_log->player_log($id, 18, $target_sector, '', '', '', "<font color='#FF0000'><b>Extreme Priority</b></font>", '<b><font color="#FF0000">Warning</font></b>');
                         $sql_manager->reset_ship($id);
                         $sql_manager->kill_ship($id);
                     }
                     /*Need function to remove bounty? or ignore this? only remove bounty in ship to ship or ship to planet combat situations?*/
                 }
             } else {
                 ##not enough turns##
                 /*move failed, stay in sector*/
             }
         } else {
             /*Avoids sector*/
         }
     } else {
         if ($target_sector > 0) {
             if ($sql_manager->move_ship($id, $target_sector, $turns)) {
                 $player_manager->last_activity_stamp($id);
                 /*no defences sucessful move*/
             } else {
                 /*move failed, stay in sector*/
             }
         } else {
             /*Avoids sector*/
         }
     }
 }