require_once './common.php'; Tki\Login::checkLogin($pdo_db, $lang, $tkireg, $template); // Database driven language entries $langvars = Tki\Translate::load($pdo_db, $lang, array('main', 'report', 'device', 'common', 'global_includes', 'global_funcs', 'footer', 'regional')); // Get playerinfo from database $sql = "SELECT * FROM ::prefix::ships WHERE email=:email LIMIT 1"; $stmt = $pdo_db->prepare($sql); $stmt->bindParam(':email', $_SESSION['username']); $stmt->execute(); $playerinfo = $stmt->fetch(PDO::FETCH_ASSOC); $shiptypes[0] = "tinyship.png"; $shiptypes[1] = "smallship.png"; $shiptypes[2] = "mediumship.png"; $shiptypes[3] = "largeship.png"; $shiptypes[4] = "hugeship.png"; $shipavg = Tki\CalcLevels::avgTech($playerinfo, "ship"); if ($shipavg < 8) { $shiplevel = 0; } elseif ($shipavg < 12) { $shiplevel = 1; } elseif ($shipavg < 16) { $shiplevel = 2; } elseif ($shipavg < 20) { $shiplevel = 3; } else { $shiplevel = 4; } $holds_used = $playerinfo['ship_ore'] + $playerinfo['ship_organics'] + $playerinfo['ship_goods'] + $playerinfo['ship_colonists']; $holds_max = Tki\CalcLevels::holds($playerinfo['hull'], $tkireg); $armor_pts_max = Tki\CalcLevels::armor($playerinfo['armor'], $tkireg); $ship_fighters_max = Tki\CalcLevels::fighters($playerinfo['computer'], $tkireg);
$targetship = $playerinfo; $num_defenses = 0; $total_sector_mines = 0; $owner = true; while (!$result3->EOF) { $row = $result3->fields; $defenses[$num_defenses] = $row; $total_sector_mines += $defenses[$num_defenses]['quantity']; if ($defenses[$num_defenses]['ship_id'] != $playerinfo['ship_id']) { $owner = false; } $num_defenses++; $result3->MoveNext(); } // Compute the ship average. If it's too low then the ship will not hit mines. $shipavg = Tki\CalcLevels::avgTech($targetship, 'ship'); // The mines will attack if 4 conditions are met // 1) There is at least 1 group of mines in the sector // 2) There is at least 1 mine in the sector // 3) You are not the owner or on the team of the owner - team 0 dosent count // 4) You ship is at least $tkireg->mine_hullsize (setable in config/classic_config.ini) big if ($num_defenses > 0 && $total_sector_mines > 0 && !$owner && $shipavg > $tkireg->mine_hullsize) { // Find out if the mine owner and player are on the same team $fm_owner = $defenses[0]['ship_id']; $result2 = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE ship_id = ?;", array($fm_owner)); Tki\Db::LogDbErrors($pdo_db, $result2, __LINE__, __FILE__); $mine_owner = $result2->fields; if ($mine_owner['team'] != $playerinfo['team'] || $playerinfo['team'] == 0) { // You hit mines echo "<h1>" . $title . "</h1>\n"; $ok = 0;
Tki\Db::LogDbErrors($pdo_db, $result4, __LINE__, __FILE__); if ($result4 !== false) { $ships_detected = 0; $ship_detected = null; while (!$result4->EOF) { $row = $result4->fields; $success = Tki\Scan::success($playerinfo['sensors'], $row['cloak']); if ($success < 5) { $success = 5; } if ($success > 95) { $success = 95; } $roll = random_int(1, 100); if ($roll < $success) { $shipavg = Tki\CalcLevels::avgTech($row, "ship"); if ($shipavg < 8) { $shiplevel = 0; } elseif ($shipavg < 12) { $shiplevel = 1; } elseif ($shipavg < 16) { $shiplevel = 2; } elseif ($shipavg < 20) { $shiplevel = 3; } else { $shiplevel = 4; } $row['shiplevel'] = $shiplevel; $ship_detected[] = $row; $ships_detected++; }