supernova-ws /
SuperNova
| 1 | <?php |
||||
| 2 | /** |
||||
| 3 | * index.php - overview.php |
||||
| 4 | * |
||||
| 5 | * 2.4 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 6 | * [-] Removed News frame |
||||
| 7 | * [-] Time & Usersonline moved to Top-Frame |
||||
| 8 | * 2.3 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 9 | * [*] Complying with PCG |
||||
| 10 | * 2.2 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 11 | * [+] Redo flying fleet list |
||||
| 12 | * 2.1 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 13 | * [+] Planets on planet list now have indication of planet fill |
||||
| 14 | * [+] Planets on planet list now have indication when there is enemy fleet flying to planet |
||||
| 15 | * 2.0 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 16 | * [+] Now there is full planet list on right side of screen a-la oGame |
||||
| 17 | * [+] Planet list now include icons for buildings/tech/fleet on progress |
||||
| 18 | * 1.5 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 19 | * [*] Subplanet timers now use sn_timer.js library |
||||
| 20 | * 1.4 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 21 | * [*] All mainplanet timers now use new sn_timer.js library |
||||
| 22 | * 1.3 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 23 | * [*] Adjusted layouts of player infos |
||||
| 24 | * 1.2 - copyright (c) 2010 by Gorlum for http://supernova.ws |
||||
| 25 | * [*] Adjusted layouts of planet infos |
||||
| 26 | * 1.1 - Security checks by Gorlum for http://supernova.ws |
||||
| 27 | * @version 1 |
||||
| 28 | * @copyright 2008 By Chlorel for XNova |
||||
| 29 | */ |
||||
| 30 | |||||
| 31 | //define('SN_RENDER_NAVBAR_PLANET', false); |
||||
| 32 | |||||
| 33 | include('common.' . substr(strrchr(__FILE__, '.'), 1)); |
||||
| 34 | |||||
| 35 | lng_include('overview'); |
||||
| 36 | |||||
| 37 | $result = array(); |
||||
| 38 | |||||
| 39 | switch ($mode = sys_get_param_str('mode')) { |
||||
| 40 | case 'manage': |
||||
| 41 | sn_sys_sector_buy('overview.php?mode=manage'); |
||||
| 42 | |||||
| 43 | $user_dark_matter = mrc_get_level($user, false, RES_DARK_MATTER); |
||||
| 44 | $result[] = sn_sys_planet_core_transmute($user, $planetrow); |
||||
| 45 | |||||
| 46 | $template = gettemplate('planet_manage', true); |
||||
| 47 | $planet_id = sys_get_param_id('planet_id'); |
||||
| 48 | |||||
| 49 | if (sys_get_param_str('rename') && $new_name = sys_get_param_str('new_name')) { |
||||
| 50 | $planetrow['name'] = $new_name; |
||||
| 51 | // $new_name = db_escape($new_name); |
||||
| 52 | DBStaticPlanet::db_planet_set_by_id($planetrow['id'], "`name` = '{$new_name}'"); |
||||
| 53 | } elseif (sys_get_param_str('action') == 'make_capital') { |
||||
| 54 | try { |
||||
| 55 | sn_db_transaction_start(); |
||||
| 56 | $user = db_user_by_id($user['id'], true, '*'); |
||||
| 57 | $planetrow = DBStaticPlanet::db_planet_by_id($planetrow['id'], true, '*'); |
||||
| 58 | // $global_data = sys_o_get_updated($user, $planetrow['id'], SN_TIME_NOW); |
||||
| 59 | // $user = $global_data['user']; |
||||
| 60 | // $planetrow = $global_data['planet']; |
||||
| 61 | |||||
| 62 | if ($planetrow['planet_type'] != PT_PLANET) { |
||||
| 63 | throw new exception(classSupernova::$lang['ov_capital_err_not_a_planet'], ERR_ERROR); |
||||
| 64 | } |
||||
| 65 | |||||
| 66 | if ($planetrow['id'] == $user['id_planet']) { |
||||
| 67 | throw new exception(classSupernova::$lang['ov_capital_err_capital_already'], ERR_ERROR); |
||||
| 68 | } |
||||
| 69 | |||||
| 70 | if ($user_dark_matter < classSupernova::$config->planet_capital_cost) { |
||||
| 71 | throw new exception(classSupernova::$lang['ov_capital_err_no_dark_matter'], ERR_ERROR); |
||||
| 72 | } |
||||
| 73 | |||||
| 74 | rpg_points_change($user['id'], RPG_CAPITAL, -classSupernova::$config->planet_capital_cost, |
||||
| 75 | array('Planet %s ID %d at coordinates %s now become Empire Capital', $planetrow['name'], $planetrow['id'], uni_render_coordinates($planetrow)) |
||||
| 76 | ); |
||||
| 77 | |||||
| 78 | db_user_set_by_id($user['id'], "id_planet = {$planetrow['id']}, galaxy = {$planetrow['galaxy']}, system = {$planetrow['system']}, planet = {$planetrow['planet']}"); |
||||
| 79 | |||||
| 80 | $user['id_planet'] = $planetrow['id']; |
||||
| 81 | $result[] = array( |
||||
| 82 | 'STATUS' => ERR_NONE, |
||||
| 83 | 'MESSAGE' => classSupernova::$lang['ov_capital_err_none'], |
||||
| 84 | ); |
||||
| 85 | sn_db_transaction_commit(); |
||||
| 86 | sys_redirect('overview.php?mode=manage'); |
||||
| 87 | } catch (exception $e) { |
||||
| 88 | sn_db_transaction_rollback(); |
||||
| 89 | $result[] = array( |
||||
| 90 | 'STATUS' => $e->getCode(), |
||||
| 91 | 'MESSAGE' => $e->getMessage(), |
||||
| 92 | ); |
||||
| 93 | } |
||||
| 94 | } elseif (sys_get_param_str('action') == 'planet_teleport') { |
||||
| 95 | try { |
||||
| 96 | if (!uni_coordinates_valid($new_coordinates = array( |
||||
| 97 | 'galaxy' => sys_get_param_int('new_galaxy'), |
||||
| 98 | 'system' => sys_get_param_int('new_system'), |
||||
| 99 | 'planet' => sys_get_param_int('new_planet'))) |
||||
| 100 | ) { |
||||
| 101 | throw new exception(classSupernova::$lang['ov_teleport_err_wrong_coordinates'], ERR_ERROR); |
||||
| 102 | } |
||||
| 103 | |||||
| 104 | sn_db_transaction_start(); |
||||
| 105 | // При телепорте обновлять данные не надо - просто получить текущие данные и залочить их |
||||
| 106 | $user = db_user_by_id($user['id'], true, '*'); |
||||
| 107 | $planetrow = DBStaticPlanet::db_planet_by_id($planetrow['id'], true, '*'); |
||||
| 108 | // $global_data = sys_o_get_updated($user, $planetrow['id'], SN_TIME_NOW); |
||||
| 109 | // $user = $global_data['user']; |
||||
| 110 | // $planetrow = $global_data['planet']; |
||||
| 111 | |||||
| 112 | $can_teleport = uni_planet_teleport_check($user, $planetrow, $new_coordinates); |
||||
| 113 | if ($can_teleport['result'] != ERR_NONE) { |
||||
| 114 | throw new exception($can_teleport['message'], $can_teleport['result']); |
||||
| 115 | } |
||||
| 116 | |||||
| 117 | rpg_points_change($user['id'], RPG_TELEPORT, -classSupernova::$config->planet_teleport_cost, |
||||
| 118 | array(&classSupernova::$lang['ov_teleport_log_record'], $planetrow['name'], $planetrow['id'], uni_render_coordinates($planetrow), uni_render_coordinates($new_coordinates)) |
||||
| 119 | ); |
||||
| 120 | $planet_teleport_next = SN_TIME_NOW + classSupernova::$config->planet_teleport_timeout; |
||||
| 121 | DBStaticPlanet::db_planet_set_by_gspt($planetrow['galaxy'], $planetrow['system'], $planetrow['planet'], PT_ALL, |
||||
| 122 | "galaxy = {$new_coordinates['galaxy']}, system = {$new_coordinates['system']}, planet = {$new_coordinates['planet']}, planet_teleport_next = {$planet_teleport_next}"); |
||||
| 123 | |||||
| 124 | if ($planetrow['id'] == $user['id_planet']) { |
||||
| 125 | db_user_set_by_id($user['id'], "galaxy = {$new_coordinates['galaxy']}, system = {$new_coordinates['system']}, planet = {$new_coordinates['planet']}"); |
||||
| 126 | } |
||||
| 127 | |||||
| 128 | // $global_data = sys_o_get_updated($user, $planetrow['id'], SN_TIME_NOW); |
||||
| 129 | sn_db_transaction_commit(); |
||||
| 130 | $user = db_user_by_id($user['id'], true, '*'); |
||||
| 131 | $planetrow = DBStaticPlanet::db_planet_by_id($planetrow['id'], true, '*'); |
||||
| 132 | $result[] = array( |
||||
| 133 | 'STATUS' => ERR_NONE, |
||||
| 134 | 'MESSAGE' => classSupernova::$lang['ov_teleport_err_none'], |
||||
| 135 | ); |
||||
| 136 | sys_redirect('overview.php?mode=manage'); |
||||
| 137 | } catch (exception $e) { |
||||
| 138 | sn_db_transaction_rollback(); |
||||
| 139 | $result[] = array( |
||||
| 140 | 'STATUS' => $e->getCode(), |
||||
| 141 | 'MESSAGE' => $e->getMessage(), |
||||
| 142 | ); |
||||
| 143 | } |
||||
| 144 | } elseif (sys_get_param_str('action') == 'planet_abandon') { |
||||
| 145 | // if(sec_password_check($user['id'], sys_get_param('abandon_confirm'))) { |
||||
| 146 | if (classSupernova::$auth->password_check(sys_get_param('abandon_confirm'))) { |
||||
| 147 | if ($user['id_planet'] != $user['current_planet'] && $user['current_planet'] == $planet_id) { |
||||
| 148 | $destroyed = SN_TIME_NOW + 60 * 60 * 24; |
||||
| 149 | DBStaticPlanet::db_planet_set_by_id($user['current_planet'], "`destruyed`='{$destroyed}', `id_owner`=0"); |
||||
| 150 | DBStaticPlanet::db_planet_set_by_parent($user['current_planet'], "`destruyed`='{$destroyed}', `id_owner`=0"); |
||||
| 151 | db_user_set_by_id($user['id'], '`current_planet` = `id_planet`'); |
||||
| 152 | messageBox(classSupernova::$lang['ov_delete_ok'], classSupernova::$lang['colony_abandon'], 'overview.php?mode=manage'); |
||||
| 153 | } else { |
||||
| 154 | messageBox(classSupernova::$lang['ov_delete_wrong_planet'], classSupernova::$lang['colony_abandon'], 'overview.php?mode=manage'); |
||||
| 155 | } |
||||
| 156 | } else { |
||||
| 157 | messageBox(classSupernova::$lang['ov_delete_wrong_pass'], classSupernova::$lang['colony_abandon'], 'overview.php?mode=manage'); |
||||
| 158 | } |
||||
| 159 | } elseif ( |
||||
| 160 | ($hire = sys_get_param_int('hire')) && in_array($hire, sn_get_groups('governors')) |
||||
| 161 | && ( |
||||
| 162 | !get_unit_param($hire, P_MAX_STACK) || |
||||
| 163 | ($planetrow['PLANET_GOVERNOR_ID'] != $hire) || |
||||
| 164 | ( |
||||
| 165 | $planetrow['PLANET_GOVERNOR_ID'] == $hire && |
||||
| 166 | $planetrow['PLANET_GOVERNOR_LEVEL'] < get_unit_param($hire, P_MAX_STACK) |
||||
| 167 | ) |
||||
| 168 | ) |
||||
| 169 | ) { |
||||
| 170 | sn_db_transaction_start(); |
||||
| 171 | $user = db_user_by_id($user['id'], true); |
||||
|
0 ignored issues
–
show
Deprecated Code
introduced
by
Loading history...
|
|||||
| 172 | $planetrow = DBStaticPlanet::db_planet_by_id($planetrow['id'], true); |
||||
| 173 | $build_data = eco_get_build_data($user, $planetrow, $hire, $planetrow['PLANET_GOVERNOR_ID'] == $hire ? $planetrow['PLANET_GOVERNOR_LEVEL'] : 0); |
||||
|
0 ignored issues
–
show
$user of type false is incompatible with the type array expected by parameter $user of eco_get_build_data().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 174 | if ($build_data['CAN'][BUILD_CREATE]) { |
||||
| 175 | if ($planetrow['PLANET_GOVERNOR_ID'] == $hire) { |
||||
| 176 | $planetrow['PLANET_GOVERNOR_LEVEL']++; |
||||
| 177 | $query = '`PLANET_GOVERNOR_LEVEL` + 1'; |
||||
| 178 | } else { |
||||
| 179 | $planetrow['PLANET_GOVERNOR_LEVEL'] = 1; |
||||
| 180 | $planetrow['PLANET_GOVERNOR_ID'] = $hire; |
||||
| 181 | $query = '1'; |
||||
| 182 | } |
||||
| 183 | DBStaticPlanet::db_planet_set_by_id($planetrow['id'], "`PLANET_GOVERNOR_ID` = {$hire}, `PLANET_GOVERNOR_LEVEL` = {$query}"); |
||||
| 184 | rpg_points_change( |
||||
| 185 | $user['id'], |
||||
| 186 | RPG_GOVERNOR, |
||||
| 187 | -$build_data[BUILD_CREATE][RES_DARK_MATTER], |
||||
| 188 | sprintf(classSupernova::$lang['ov_governor_purchase'], classSupernova::$lang['tech'][$hire], $hire, $planetrow['PLANET_GOVERNOR_LEVEL'], uni_render_planet_full($planetrow, '', false, true)) |
||||
| 189 | ); |
||||
| 190 | |||||
| 191 | // => 'Игрок купил Губернатора %1$s ID %2$d уровня %3$d на планету %4$s', |
||||
| 192 | // die(); |
||||
| 193 | } |
||||
| 194 | sn_db_transaction_commit(); |
||||
| 195 | sys_redirect('overview.php?mode=manage'); |
||||
| 196 | die(); |
||||
| 197 | } |
||||
| 198 | |||||
| 199 | lng_include('mrc_mercenary'); |
||||
| 200 | int_planet_pretemplate($planetrow, $template); |
||||
| 201 | foreach (sn_get_groups('governors') as $governor_id) { |
||||
| 202 | if ($planetrow['planet_type'] == PT_MOON && $governor_id == MRC_TECHNOLOGIST) { |
||||
| 203 | continue; |
||||
| 204 | } |
||||
| 205 | |||||
| 206 | $governor_level = $planetrow['PLANET_GOVERNOR_ID'] == $governor_id ? $planetrow['PLANET_GOVERNOR_LEVEL'] : 0; |
||||
| 207 | $build_data = eco_get_build_data($user, $planetrow, $governor_id, $governor_level); |
||||
| 208 | $template->assign_block_vars('governors', array( |
||||
| 209 | 'ID' => $governor_id, |
||||
| 210 | 'NAME' => classSupernova::$lang['tech'][$governor_id], |
||||
| 211 | 'COST' => $build_data[BUILD_CREATE][RES_DARK_MATTER], |
||||
| 212 | 'MAX' => get_unit_param($governor_id, P_MAX_STACK), |
||||
| 213 | 'LEVEL' => $governor_level, |
||||
| 214 | 'LEVEL_PLUS' => mrc_get_level($user, $planetrow, $governor_id) - $governor_level, |
||||
| 215 | )); |
||||
| 216 | } |
||||
| 217 | |||||
| 218 | $user_dark_matter = mrc_get_level($user, false, RES_DARK_MATTER); |
||||
| 219 | $planet_density_index = $planetrow['density_index']; |
||||
| 220 | $density_price_chart = planet_density_price_chart($planetrow); |
||||
| 221 | tpl_planet_density_info($template, $density_price_chart, $user_dark_matter); |
||||
| 222 | |||||
| 223 | $sector_cost = eco_get_build_data($user, $planetrow, UNIT_SECTOR, mrc_get_level($user, $planetrow, UNIT_SECTOR), true); |
||||
| 224 | $sector_cost = $sector_cost[BUILD_CREATE][RES_DARK_MATTER]; |
||||
| 225 | $planet_fill = floor($planetrow['field_current'] / eco_planet_fields_max($planetrow) * 100); |
||||
| 226 | $planet_fill = $planet_fill > 100 ? 100 : $planet_fill; |
||||
| 227 | $can_teleport = uni_planet_teleport_check($user, $planetrow); |
||||
| 228 | $template->assign_vars(array( |
||||
| 229 | 'DARK_MATTER' => $user_dark_matter, |
||||
| 230 | |||||
| 231 | 'PLANET_FILL' => floor($planetrow['field_current'] / eco_planet_fields_max($planetrow) * 100), |
||||
| 232 | 'PLANET_FILL_BAR' => $planet_fill, |
||||
| 233 | 'SECTOR_CAN_BUY' => $sector_cost <= $user_dark_matter, |
||||
| 234 | 'SECTOR_COST' => $sector_cost, |
||||
| 235 | 'SECTOR_COST_TEXT' => HelperString::numberFloorAndFormat($sector_cost), |
||||
| 236 | 'planet_field_current' => $planetrow['field_current'], |
||||
| 237 | 'planet_field_max' => eco_planet_fields_max($planetrow), |
||||
| 238 | |||||
| 239 | 'CAN_TELEPORT' => $can_teleport['result'] == ERR_NONE, |
||||
| 240 | 'CAN_NOT_TELEPORT_MSG' => $can_teleport['message'], |
||||
| 241 | 'TELEPORT_COST_TEXT' => prettyNumberStyledCompare(classSupernova::$config->planet_teleport_cost, $user_dark_matter), |
||||
| 242 | |||||
| 243 | 'CAN_CAPITAL' => $user_dark_matter >= classSupernova::$config->planet_capital_cost, |
||||
| 244 | 'CAPITAL_COST_TEXT' => prettyNumberStyledCompare(classSupernova::$config->planet_capital_cost, $user_dark_matter), |
||||
| 245 | |||||
| 246 | 'PLANET_DENSITY_INDEX' => $planet_density_index, |
||||
| 247 | 'PLANET_CORE_TEXT' => classSupernova::$lang['uni_planet_density_types'][$planet_density_index], |
||||
| 248 | |||||
| 249 | 'IS_CAPITAL' => $planetrow['id'] == $user['id_planet'], |
||||
| 250 | |||||
| 251 | 'PAGE_HINT' => classSupernova::$lang['ov_manage_page_hint'], |
||||
| 252 | )); |
||||
| 253 | |||||
| 254 | foreach ($result as &$a_result) { |
||||
| 255 | $template->assign_block_vars('result', $a_result); |
||||
| 256 | } |
||||
| 257 | |||||
| 258 | display($template, classSupernova::$lang['rename_and_abandon_planet']); |
||||
| 259 | break; |
||||
| 260 | |||||
| 261 | default: |
||||
| 262 | sn_sys_sector_buy(); |
||||
| 263 | |||||
| 264 | if (sys_get_param_str('rename') && $new_name = sys_get_param_str('new_name')) { |
||||
| 265 | $planetrow['name'] = $new_name; |
||||
| 266 | $new_name_safe = db_escape($new_name); |
||||
| 267 | DBStaticPlanet::db_planet_set_by_id($planetrow['id'], "`name` = '{$new_name_safe}'"); |
||||
| 268 | } |
||||
| 269 | |||||
| 270 | $result[] = sn_sys_planet_core_transmute($user, $planetrow); |
||||
| 271 | |||||
| 272 | $template = gettemplate('planet_overview', true); |
||||
| 273 | |||||
| 274 | $user_dark_matter = mrc_get_level($user, false, RES_DARK_MATTER); |
||||
| 275 | $planet_density_index = $planetrow['density_index']; |
||||
| 276 | $density_price_chart = planet_density_price_chart($planetrow); |
||||
| 277 | tpl_planet_density_info($template, $density_price_chart, $user_dark_matter); |
||||
| 278 | |||||
| 279 | rpg_level_up($user, RPG_STRUCTURE); |
||||
| 280 | rpg_level_up($user, RPG_RAID); |
||||
| 281 | rpg_level_up($user, RPG_TECH); |
||||
| 282 | rpg_level_up($user, RPG_EXPLORE); |
||||
| 283 | |||||
| 284 | $fleet_id = 1; |
||||
| 285 | |||||
| 286 | $fleets = flt_parse_fleets_to_events(fleet_and_missiles_list_incoming($user['id'])); |
||||
| 287 | |||||
| 288 | $planet_count = 0; |
||||
| 289 | $planets_query = DBStaticPlanet::db_planet_list_sorted($user, false, '*'); |
||||
| 290 | foreach ($planets_query as $an_id => $planetRecord) { |
||||
| 291 | sn_db_transaction_start(); |
||||
| 292 | $updatedData = sys_o_get_updated($user, $planetRecord['id'], SN_TIME_NOW, false, true); |
||||
| 293 | sn_db_transaction_commit(); |
||||
| 294 | |||||
| 295 | $templatizedPlanet = tpl_parse_planet($updatedData['planet'], $fleets_to_planet); |
||||
| 296 | |||||
| 297 | if ($planetRecord['planet_type'] == PT_MOON) { |
||||
| 298 | continue; |
||||
| 299 | } |
||||
| 300 | $moon = DBStaticPlanet::db_planet_by_parent($planetRecord['id']); |
||||
| 301 | if ($moon) { |
||||
| 302 | $moon_fill = min(100, floor($moon['field_current'] / eco_planet_fields_max($moon) * 100)); |
||||
| 303 | } else { |
||||
| 304 | $moon_fill = 0; |
||||
| 305 | } |
||||
| 306 | |||||
| 307 | $moon_fleets = flt_get_fleets_to_planet($moon); |
||||
| 308 | $template->assign_block_vars('planet', array_merge($templatizedPlanet, array( |
||||
| 309 | 'MOON_ID' => $moon['id'], |
||||
| 310 | 'MOON_NAME' => $moon['name'], |
||||
| 311 | 'MOON_IMG' => $moon['image'], |
||||
| 312 | 'MOON_FILL' => min(100, $moon_fill), |
||||
| 313 | 'MOON_ENEMY' => $moon_fleets['enemy']['count'], |
||||
| 314 | |||||
| 315 | 'MOON_PLANET' => $moon['parent_planet'], |
||||
| 316 | ))); |
||||
| 317 | |||||
| 318 | $planet_count++; |
||||
| 319 | } |
||||
| 320 | |||||
| 321 | tpl_assign_fleet($template, $fleets_to_planet); |
||||
| 322 | tpl_assign_fleet($template, $fleets); |
||||
| 323 | |||||
| 324 | $lune = $planetrow['planet_type'] == PT_PLANET ? DBStaticPlanet::db_planet_by_parent($planetrow['id']) : DBStaticPlanet::db_planet_by_id($planetrow['parent_planet']); |
||||
| 325 | if ($lune) { |
||||
| 326 | $template->assign_vars(array( |
||||
| 327 | 'MOON_ID' => $lune['id'], |
||||
| 328 | 'MOON_IMG' => $lune['image'], |
||||
| 329 | 'MOON_NAME' => $lune['name'], |
||||
| 330 | )); |
||||
| 331 | } |
||||
| 332 | |||||
| 333 | $planet_fill = floor($planetrow['field_current'] / eco_planet_fields_max($planetrow) * 100); |
||||
| 334 | $planet_fill = $planet_fill > 100 ? 100 : $planet_fill; |
||||
| 335 | |||||
| 336 | $planet_recyclers_orbiting = 0; |
||||
| 337 | foreach (sn_get_groups('flt_recyclers') as $recycler_id) { |
||||
| 338 | $planet_recyclers_orbiting += mrc_get_level($user, $planetrow, $recycler_id); |
||||
| 339 | } |
||||
| 340 | |||||
| 341 | int_planet_pretemplate($planetrow, $template); |
||||
| 342 | |||||
| 343 | $sn_group_ques = sn_get_groups('ques'); |
||||
| 344 | if (!defined('GAME_STRUCTURES_DISABLED') || !GAME_STRUCTURES_DISABLED) { |
||||
| 345 | foreach (array(QUE_STRUCTURES => $sn_group_ques[QUE_STRUCTURES]) as $que_id => $que_type_data) { |
||||
| 346 | $this_que = $que['ques'][$que_id][$user['id']][$planetrow['id']]; |
||||
| 347 | $template->assign_block_vars('ques', array( |
||||
| 348 | 'ID' => $que_id, |
||||
| 349 | 'NAME' => classSupernova::$lang['sys_ques'][$que_id], |
||||
| 350 | 'LENGTH' => empty($this_que) ? 0 : count($this_que), |
||||
| 351 | )); |
||||
| 352 | |||||
| 353 | if (!empty($this_que)) { |
||||
| 354 | foreach ($this_que as $que_item) { |
||||
| 355 | $template->assign_block_vars('que', que_tpl_parse_element($que_item)); |
||||
| 356 | } |
||||
| 357 | } |
||||
| 358 | } |
||||
| 359 | } |
||||
| 360 | |||||
| 361 | $que_hangar_length = tpl_assign_hangar($template, $planetrow, SUBQUE_FLEET); |
||||
| 362 | $template->assign_block_vars('ques', array( |
||||
| 363 | 'ID' => QUE_HANGAR, |
||||
| 364 | 'NAME' => classSupernova::$lang['sys_ques'][QUE_HANGAR], |
||||
| 365 | 'LENGTH' => $que_hangar_length, |
||||
| 366 | )); |
||||
| 367 | |||||
| 368 | if (!defined('GAME_DEFENSE_DISABLED') || !GAME_DEFENSE_DISABLED) { |
||||
| 369 | $que_hangar_length = tpl_assign_hangar($template, $planetrow, SUBQUE_DEFENSE); |
||||
| 370 | $template->assign_block_vars('ques', array( |
||||
| 371 | 'ID' => SUBQUE_DEFENSE, |
||||
| 372 | 'NAME' => classSupernova::$lang['sys_ques'][SUBQUE_DEFENSE], |
||||
| 373 | 'LENGTH' => $que_hangar_length, |
||||
| 374 | )); |
||||
| 375 | } |
||||
| 376 | |||||
| 377 | $overview_planet_rows = $user['opt_int_overview_planet_rows']; |
||||
| 378 | $overview_planet_columns = $user['opt_int_overview_planet_columns']; |
||||
| 379 | |||||
| 380 | if ($overview_planet_rows <= 0 && $overview_planet_columns <= 0) { |
||||
| 381 | $overview_planet_rows = $user_option_list[OPT_INTERFACE]['opt_int_overview_planet_rows']; |
||||
| 382 | $overview_planet_columns = $user_option_list[OPT_INTERFACE]['opt_int_overview_planet_columns']; |
||||
| 383 | } |
||||
| 384 | |||||
| 385 | if ($overview_planet_rows > 0 && $overview_planet_columns <= 0) { |
||||
| 386 | $overview_planet_columns = ceil($planet_count / $overview_planet_rows); |
||||
| 387 | } |
||||
| 388 | |||||
| 389 | $sector_cost = eco_get_build_data($user, $planetrow, UNIT_SECTOR, mrc_get_level($user, $planetrow, UNIT_SECTOR), true); |
||||
| 390 | $sector_cost = $sector_cost[BUILD_CREATE][RES_DARK_MATTER]; |
||||
| 391 | $governor_level = $planetrow['PLANET_GOVERNOR_ID'] ? mrc_get_level($user, $planetrow, $planetrow['PLANET_GOVERNOR_ID'], false, true) : 0; |
||||
| 392 | $template->assign_vars(array( |
||||
| 393 | 'USER_ID' => $user['id'], |
||||
| 394 | 'user_username' => $user['username'], |
||||
| 395 | 'USER_AUTHLEVEL' => $user['authlevel'], |
||||
| 396 | |||||
| 397 | 'NEW_MESSAGES' => $user['new_message'], |
||||
| 398 | 'NEW_LEVEL_MINER' => $level_miner, |
||||
| 399 | 'NEW_LEVEL_RAID' => $level_raid, |
||||
| 400 | |||||
| 401 | 'planet_diameter' => HelperString::numberFloorAndFormat($planetrow['diameter']), |
||||
| 402 | 'planet_field_current' => $planetrow['field_current'], |
||||
| 403 | 'planet_field_max' => eco_planet_fields_max($planetrow), |
||||
| 404 | 'PLANET_FILL' => floor($planetrow['field_current'] / eco_planet_fields_max($planetrow) * 100), |
||||
| 405 | 'PLANET_FILL_BAR' => $planet_fill, |
||||
| 406 | 'metal_debris' => HelperString::numberFloorAndFormat($planetrow['debris_metal']), |
||||
| 407 | 'crystal_debris' => HelperString::numberFloorAndFormat($planetrow['debris_crystal']), |
||||
| 408 | 'PLANET_RECYCLERS' => $planet_recyclers_orbiting, |
||||
| 409 | 'planet_image' => $planetrow['image'], |
||||
| 410 | 'planet_temp_min' => $planetrow['temp_min'], |
||||
| 411 | 'planet_temp_avg' => round(($planetrow['temp_min'] + $planetrow['temp_max']) / 2), |
||||
| 412 | 'planet_temp_max' => $planetrow['temp_max'], |
||||
| 413 | 'planet_density' => $planetrow['density'], |
||||
| 414 | 'planet_density_index' => $planetrow['density_index'], |
||||
| 415 | 'planet_density_text' => classSupernova::$lang['uni_planet_density_types'][$planetrow['density_index']], |
||||
| 416 | |||||
| 417 | 'GATE_LEVEL' => mrc_get_level($user, $planetrow, STRUC_MOON_GATE), |
||||
| 418 | 'GATE_JUMP_REST_TIME' => uni_get_time_to_jump($planetrow), |
||||
| 419 | |||||
| 420 | 'ADMIN_EMAIL' => classSupernova::$config->game_adminEmail, |
||||
| 421 | |||||
| 422 | 'PLANET_GOVERNOR_ID' => $planetrow['PLANET_GOVERNOR_ID'], |
||||
| 423 | 'PLANET_GOVERNOR_LEVEL' => $governor_level, |
||||
| 424 | 'PLANET_GOVERNOR_LEVEL_PLUS' => mrc_get_level($user, $planetrow, $planetrow['PLANET_GOVERNOR_ID']) - $governor_level, |
||||
| 425 | 'PLANET_GOVERNOR_NAME' => classSupernova::$lang['tech'][$planetrow['PLANET_GOVERNOR_ID']], |
||||
| 426 | |||||
| 427 | 'LIST_ROW_COUNT' => $overview_planet_rows, |
||||
| 428 | 'LIST_COLUMN_COUNT' => $overview_planet_columns, |
||||
| 429 | |||||
| 430 | 'DARK_MATTER' => $user_dark_matter, |
||||
| 431 | |||||
| 432 | 'PLANET_DENSITY_INDEX' => $planet_density_index, |
||||
| 433 | 'PLANET_CORE_TEXT' => classSupernova::$lang['uni_planet_density_types'][$planet_density_index], |
||||
| 434 | |||||
| 435 | 'SECTOR_CAN_BUY' => $sector_cost <= mrc_get_level($user, null, RES_DARK_MATTER), |
||||
| 436 | 'SECTOR_COST' => $sector_cost, |
||||
| 437 | 'SECTOR_COST_TEXT' => HelperString::numberFloorAndFormat($sector_cost), |
||||
| 438 | |||||
| 439 | 'PAGE_HEADER' => classSupernova::$lang['ov_overview']. " - " . classSupernova::$lang['sys_planet_type'][$planetrow['planet_type']] . " {$planetrow['name']} [{$planetrow['galaxy']}:{$planetrow['system']}:{$planetrow['planet']}]", |
||||
| 440 | )); |
||||
| 441 | tpl_set_resource_info($template, $planetrow, $fleets_to_planet); |
||||
| 442 | |||||
| 443 | foreach ($result as &$a_result) { |
||||
| 444 | $template->assign_block_vars('result', $a_result); |
||||
| 445 | } |
||||
| 446 | |||||
| 447 | display($template); |
||||
| 448 | break; |
||||
| 449 | } |
||||
| 450 |