public function sector_defence_challange($sector, $id)
 {
     global $db_prefix;
     global $torp_dmg_rate;
     global $level_factor;
     $sql_manager = new manage_table();
     $player_manager = new manage_player();
     $ship_manager = new manage_ship();
     $manage_log = new manage_log();
     /*load player information*/
     $player_data = $sql_manager->playerinfo($id, "");
     /*Load sector information - Team defences are removed from the quantities, so if there are any left, it must be hostile, take the apropriate action*/
     $total_sector_mines = $sql_manager->sector_defence_quantities($sector, 'M', $id, "investigate");
     $total_sector_fighters = $sql_manager->sector_defence_quantities($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) {
         ##Hostile defences detected!##
         /*Mark player as in combat*/
         if ($sql_manager->ship_in_sector_defence_combat($sector, $id)) {
             ##Log this##
             /*Log player engaging sector defences*/
         } else {
             ##log this##
             /*Failed to update ship and set to in combat*/
         }
         ##YOU HAVE ENGAGED THE SECTOR DEFENCES##
         $sector_defence_fighters = $total_sector_fighters;
         $playerbeams = $ship_manager->number_beams($player_data['beams']);
         if ($playerbeams > $player_data['ship_energy']) {
             /*Player Beams Armed*/
             $playerbeams = $player_data['ship_energy'];
         }
         $player_data['ship_energy'] = $player_data['ship_energy'] - $playerbeams;
         $playershields = $ship_manager->number_shields($player_data['shields']);
         if ($playershields > $player_data['ship_energy']) {
             /*Player Shields Raised*/
             $playershields = $player_data['ship_energy'];
         }
         $playertorpnum = round(pow($level_factor, $player_data['torp_launchers'])) * 2;
         if ($playertorpnum > $player_data['torps']) {
             /*Torpedos places in firing tubes*/
             $playertorpnum = $player_data['torps'];
         }
         /*Torpedo warheads armed*/
         $playertorpdmg = $torp_dmg_rate * $playertorpnum;
         /*polerize the armour plating*/
         $playerarmor = $player_data['armor_pts'];
         /*pilots to fighter bays*/
         $playerfighters = $player_data['ship_fighters'];
         /*fetch amount of sector mines in minefield*/
         $sector_defence_minefield = $total_sector_mines;
         if ($sector_defence_minefield > 1) {
             /*change of getting through minefield*/
             $roll = mt_rand(1, $sector_defence_minefield);
         } else {
             $roll = 1;
         }
         /*total mines which are attracted to the hull of the players ship*/
         $sector_defence_minefield = $sector_defence_minefield - $roll;
         /*prepare mine deflectors for launch*/
         $playerminedeflect = $player_data['dev_minedeflector'];
         /*Where are the fighters? inside or outside the fighter formation?*/
         $fighter_or_mines_first = mt_rand(1, 100);
         if ($fighter_or_mines_first > 50) {
             /*Engages the fighters first*/
             $fighter_results = $this->sector_fighter_engaged($playerbeams, $sector_defence_fighters, $playertorpdmg, $playerarmor, $playerfighters, $playershields, $id);
             $playerbeams = $fighter_results[0];
             $sector_defence_fighters = $fighter_results[1];
             $playertorpdmg = $fighter_results[2];
             $playerarmor = $fighter_results[3];
             $playerfighters = $fighter_results[4];
             $playershields = $fighter_results[5];
             if ($playerarmor > 0) {
                 if ($playerminedeflect >= $roll) {
                     /*do nothing... players fought off the fighters, and found a hole in minefield*/
                     /*ship is in sector \o/*/
                     if ($sql_manager->ship_in_sector_defence_combat("", $id)) {
                         ###
                         ##
                         ## Update Sector Information
                         ##
                         ###
                         $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                         ###
                         ##
                         ## Update Player Stats
                         ##
                         ###
                         /*Leftover torpedoes?*/
                         $y = $playertorpdmg / $torp_dmg_rate;
                         $torpedoes_left = $y;
                         /*Leftover energy?*/
                         $t = $playershields + $playerbeams;
                         $energy_left = $player_data['ship_energy'] - $t;
                         if ($energy_left < 0) {
                             $energy_left = 0;
                         }
                         $updated_stats = array('cleared_defences' => ' ', 'ship_energy' => $energy_left, 'dev_minedeflector' => $playerminedeflect, 'armor_pts' => $playerarmor, 'ship_fighters' => $playerfighters, 'torps' => $torpedoes_left);
                         if ($sql_manager->updatePlayer($id, "ships", $updated_stats)) {
                             ##Log this##
                             /*Log player got passed sector defences*/
                             return true;
                         } else {
                             ##Log this##
                             /*Log player failed to update their stats*/
                             return false;
                         }
                     } else {
                         ##log this##
                         /*Failed to update ship setting got into sector - fail entire move*/
                         return false;
                     }
                 } else {
                     $minefield_results = $this->sector_minefield_engaged($playerminedeflect, $playershields, $playerarmor, $sector_defence_minefield, $id);
                     $playerminedeflect = $minefield_results[0];
                     $playershields = $minefield_results[1];
                     $playerarmor = $minefield_results[2];
                     $sector_defence_minefield = $minefield_results[3];
                     if ($playerarmor > 0) {
                         /*ship is in sector \o/*/
                         if ($sql_manager->ship_in_sector_defence_combat("", $id)) {
                             ###
                             ##
                             ## Update Sector Information
                             ##
                             ###
                             $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                             ###
                             ##
                             ## Update Player Stats
                             ##
                             ###
                             /*Leftover torpedoes?*/
                             $y = $playertorpdmg / $torp_dmg_rate;
                             $torpedoes_left = $y;
                             /*Leftover energy?*/
                             $t = $playershields + $playerbeams;
                             $energy_left = $player_data['ship_energy'] - $t;
                             if ($energy_left < 0) {
                                 $energy_left = 0;
                             }
                             $updated_stats = array('cleared_defences' => ' ', 'ship_energy' => $energy_left, 'dev_minedeflector' => $playerminedeflect, 'armor_pts' => $playerarmor, 'ship_fighters' => $playerfighters, 'torps' => $torpedoes_left);
                             if ($sql_manager->updatePlayer($id, "ships", $updated_stats)) {
                                 ##Log this##
                                 /*Log player got passed sector defences*/
                                 return true;
                             } else {
                                 ##Log this##
                                 /*Log player failed to update their stats*/
                                 return false;
                             }
                         } else {
                             ##log this##
                             /*Failed to update ship setting got into sector - fail entire move*/
                             return false;
                         }
                     } else {
                         ###
                         ##
                         ## Update Sector Information
                         ##
                         ###
                         $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                         //ship destroyed!
                         return false;
                     }
                 }
             } else {
                 echo "player died";
                 ###
                 ##
                 ## Update Sector Information
                 ##
                 ###
                 $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                 echo "passed function";
                 //ship destroyed!
                 return false;
             }
         } else {
             /*Engages the minefield first*/
             if ($playerminedeflect >= $roll) {
                 /*do nothing... hole in minefield sucessfully found. Now lets go and get those fighters...*/
             } else {
                 $minefield_results = $this->sector_minefield_engaged($playerminedeflect, $playershields, $playerarmor, $sector_defence_minefield, $id);
                 $playerminedeflect = $minefield_results[0];
                 $playershields = $minefield_results[1];
                 $playerarmor = $minefield_results[2];
                 $sector_defence_minefield = $minefield_results[3];
             }
             if ($playerarmor > 0) {
                 $fighter_results = $this->sector_fighter_engaged($playerbeams, $sector_defence_fighters, $playertorpdmg, $playerarmor, $playerfighters, $playershields, $id);
                 $playerbeams = $fighter_results[0];
                 $sector_defence_fighters = $fighter_results[1];
                 $playertorpdmg = $fighter_results[2];
                 $playerarmor = $fighter_results[3];
                 $playerfighters = $fighter_results[4];
                 $playershields = $fighter_results[5];
                 if ($playerarmor > 0) {
                     /*ship is in sector \o/*/
                     if ($sql_manager->ship_in_sector_defence_combat("", $id)) {
                         ###
                         ##
                         ## Update Sector Information
                         ##
                         ###
                         $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                         ###
                         ##
                         ## Update Player Stats
                         ##
                         ###
                         /*Leftover torpedoes?*/
                         $y = $playertorpdmg / $torp_dmg_rate;
                         $torpedoes_left = $y;
                         /*Leftover energy?*/
                         $t = $playershields + $playerbeams;
                         $energy_left = $player_data['ship_energy'] - $t;
                         if ($energy_left < 0) {
                             $energy_left = 0;
                         }
                         $updated_stats = array('cleared_defences' => ' ', 'ship_energy' => $energy_left, 'dev_minedeflector' => $playerminedeflect, 'armor_pts' => $playerarmor, 'ship_fighters' => $playerfighters, 'torps' => $torpedoes_left);
                         if ($sql_manager->updatePlayer($id, "ships", $updated_stats)) {
                             ##Log this##
                             /*Log player got passed sector defences*/
                             return true;
                         } else {
                             ##Log this##
                             /*Log player failed to update their stats*/
                             return false;
                         }
                     } else {
                         ##log this##
                         /*Failed to update ship setting got into sector - fail entire move*/
                         return false;
                     }
                 } else {
                     ###
                     ##
                     ## Update Sector Information
                     ##
                     ###
                     $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                     //ship destroyed!
                     return false;
                 }
             } else {
                 ###
                 ##
                 ## Update Sector Information
                 ##
                 ###
                 $sql_manager->manage_sector_defences($sector, $sector_defence_fighters, $sector_defence_minefield, $id);
                 //ship destroyed!
                 return false;
             }
         }
     } else {
         /*NO sector defences, or sector defences belong to self or friend. Player in sector.*/
         return true;
     }
 }