Пример #1
0
 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;
 }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }
Пример #5
0
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();