public static function FromDatabase(array $row) { $expedition = new Expedition(); $fleet = ShipFleet::FromDatabaseByID($row['fleetID']); $expedition->Fleet($fleet); $coordinates = new Coordinates($row['galaxy_position'], $row['system_position'], $row['planet_position']); $expedition->Target($coordinates); $expedition->ScheduledTime($row['scheduled_time']); return $expedition; }
public static function FromDatabase(array $row, Colony $colony = NULL) { $transport = new Transportation(); $fleet = ShipFleet::FromDatabaseByID($row['fleetID']); $transport->Fleet($fleet); $transport->ID($row['transportID']); if ($colony === NULL) { $colony = Colony::FromDatabaseByID($row['colonyID'], User::GetCurrentUser()); } $transport->ReceivingColony($colony); $transport->ScheduledTime($row['scheduled_time']); $transport->IsValid(true); // Anything that gets into the database is valid. return $transport; }
public function VerifySameColonyAndMission(ShipFleet $otherFleet, $throwException = false) { // Verify if these fleets are on the same colony and not on a mission if ($this->OriginalColony()->Equals($otherFleet->OriginalColony())) { if ($this->MissionType() == 0 && $otherFleet->MissionType() == 0) { return true; } } if ($throwException) { throw new Exception("The given fleet is not on the same colony and/or on a mission!"); } return false; }
public static function FromDatabase(array $row, User $user = NULL) { $colony = new Colony(); // Colony details $colony->Name($row["name"]); $colony->Coordinates(new Coordinates($row["galaxy_position"], $row["system_position"], $row["planet_position"])); $colony->ID($row["ID"]); if ($user == NULL) { $colony->Owner(User::GetOwnerOfColonyID($row["ID"], $colony)); } else { $colony->Owner($user); } $colony->HomeColony($row["is_home_colony"]); // Resources $rowResources = Database::Instance()->ExecuteQuery("SELECT * FROM colony_resources WHERE colonyID = " . $row['ID'] . ";", "SELECT"); $colony->CurrentResources(new Cost($rowResources["metal_available"], $rowResources["crystal_available"], $rowResources["deuterium_available"], 0)); // TODO: Add energy later // Storage $colony->MetalStorage($rowResources['metal_storage_limit']); $colony->CrystalStorage($rowResources['crystal_storage_limit']); $colony->DeuteriumStorage($rowResources['deuterium_storage_limit']); // Get planet surface properties $rowProperties = Database::Instance()->ExecuteQuery("SELECT * FROM colony_properties WHERE colonyID = " . $row['ID'] . ";", "SELECT"); $colony->MaxFields($rowProperties['max_build_fields']); $colony->UsedFields($rowProperties['used_build_fields']); $colony->Diameter($rowProperties['diameter']); $colony->PlanetType(PlanetType::FromDatabase($rowProperties)); $planetData = $colony->PlanetType()->Variations(); $colony->PlanetData($planetData[0]); // "Last updated" variable $colony->LastUpdated($row['last_updated']); // Is this colony a moon? $colony->IsMoon($row['is_moon']); // Get buildings $buildings = BuildingGroup::FromDatabaseByColony($colony); $colony->ProductionUnits($buildings[0]); $colony->BuildingUnits($buildings[1]); // Get combat units $colony->Defenses(CombatGroup::GetDefensesOfColony($colony)); $colony->Fleet(ShipFleet::GetShipsOfColony($colony)); return $colony; }
Database::Instance()->SetDebugging(true); $user = User::NewUser("Beerdude26", "aSimplePassword", 100, "*****@*****.**", "alternate_email"); $colony = Colony::NewColony("Nigron", new Coordinates(100, 50, 7), $user, FALSE); Colony::AddToDatabase($colony); echo "<br/>"; echo "<br/>"; echo "Current colony:"; Helper::var_dump_pre($user->CurrentColony()->ID()); $units = array("light_fighter" => 10, "small_cargo_ship" => 20, "cruiser" => 10); $extrafleet = ShipFleet::FromList($units, $user->CurrentColony(), 0); //Helper::var_dump_pre( $user->CurrentColony()->Fleet() ); echo "Adding some extra units to original fleet: "; $user->CurrentColony()->Fleet()->AddToFleet($extrafleet); $user->CurrentColony()->Fleet()->UpdateDatabase(); $t_units = array("light_fighter" => 5, "small_cargo_ship" => 5, "cruiser" => 3); $t_fleet = ShipFleet::FromList($t_units, $user->CurrentColony(), 0); echo "Splitting up some units from the original fleet: "; $fleets = $user->CurrentColony()->Fleet()->SplitFleet($t_fleet); // Let's send a part of the fleet on a transport mission $transport = Transportation::NewTransportation($fleets["new_fleet"], $colony); //$transport->AddToDatabase(); $transport->Validate(); $transport->AddToDatabase(); //$user->CurrentColony()->Fleet()->DeductFromFleet( $extrafleet ); //Helper::var_dump_pre( $user->CurrentColony()->Fleet() ); //Helper::var_dump_pre( $user->Officers() ); //Helper::var_dump_pre( $user->CurrentColony()->BuildingUnits() ); echo memory_get_peak_usage() / 1024; /*$user->Technologies()->ChangeTechnology( "espionage_technology", 5 ); $changes = $user->Technologies()->Changes();