Ejemplo n.º 1
0
 public static function kill(\PDO $pdo_db, int $ship_id, array $langvars, Reg $tkireg, bool $remove_planets = false)
 {
     $sql = "UPDATE ::prefix::ships SET ship_destroyed='Y', on_planet='N', sector=0, cleared_defenses=' ' WHERE ship_id=:ship_id";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':ship_id', $ship_id);
     $stmt->execute();
     $sql = "DELETE FROM ::prefix::bounty WHERE placed_by = :placed_by";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':placed_by', $ship_id);
     $stmt->execute();
     if ($remove_planets === true && $ship_id > 0) {
         $sql = "DELETE FROM ::prefix::planets WHERE owner=:owner";
         $stmt = $pdo_db->prepare($sql);
         $stmt->bindParam(':owner', $ship_id);
         $stmt->execute();
     } else {
         $sql = "UPDATE ::prefix::planets SET owner=0, team=0, fighters=0, base='N' WHERE owner=:owner";
         $stmt = $pdo_db->prepare($sql);
         $stmt->bindParam(':owner', $ship_id);
         $stmt->execute();
     }
     $sql = "SELECT DISTINCT sector_id FROM ::prefix::planets WHERE owner=:owner AND base='Y'";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':owner', $ship_id);
     $stmt->execute();
     $sectors_owned = $stmt->fetchAll(\PDO::FETCH_ASSOC);
     if ($sectors_owned !== null) {
         foreach ($sectors_owned as $tmp_sector) {
             Ownership::calc($pdo_db, $tmp_sector, $tkireg->min_bases_to_own, $langvars);
         }
     }
     $sql = "DELETE FROM ::prefix::sector_defense WHERE ship_id=:ship_id";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':owner', $ship_id);
     $stmt->execute();
     $sql = "SELECT zone_id FROM ::prefix::zones WHERE team_zone='N' AND owner=:owner";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':owner', $ship_id);
     $stmt->execute();
     $zone = $stmt->fetch(\PDO::FETCH_ASSOC);
     $sql = "UPDATE ::prefix::universe SET zone_id=1 WHERE zone_id=:zone_id";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':zone_id', $zone['zone_id']);
     $stmt->execute();
     $sql = "SELECT character_name FROM ::prefix::ships WHERE ship_id=:ship_id";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':owner', $ship_id);
     $stmt->execute();
     $name = $stmt->fetch(\PDO::FETCH_ASSOC);
     $headline = $name['character_name'] . ' ' . $langvars['l_killheadline'];
     $newstext = str_replace('[name]', $name['character_name'], $langvars['l_news_killed']);
     $sql = "INSERT INTO ::prefix::news (headline, newstext, user_id, date, news_type) VALUES (:headline,:newstext,:user_id,NOW(), 'killed')";
     $stmt = $pdo_db->prepare($sql);
     $stmt->bindParam(':headline', $headline);
     $stmt->bindParam(':newstext', $newstext);
     $stmt->bindParam(':user_id', $ship_id);
     $stmt->execute();
 }