Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement server settings popup logic #303

Merged
merged 2 commits into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions app/Http/Controllers/Admin/ServerSettingsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ public function index(PlayerService $player, SettingsService $settingsService):
'basic_income_deuterium' => $settingsService->basicIncomeDeuterium(),
'basic_income_energy' => $settingsService->basicIncomeEnergy(),
'registration_planet_amount' => $settingsService->registrationPlanetAmount(),
'universe_name' => $settingsService->universeName(),
'planet_fields_bonus' => $settingsService->planetFieldsBonus(),
'dark_matter_bonus' => $settingsService->darkMatterBonus(),
'alliance_combat_system_on' => $settingsService->allianceCombatSystemOn(),
'debris_field_from_ships' => $settingsService->debrisFieldFromShips(),
'debris_field_from_defense' => $settingsService->debrisFieldFromDefense(),
'debris_field_deuterium_on' => $settingsService->debrisFieldDeuteriumOn(),
'ignore_empty_systems_on' => $settingsService->ignoreEmptySystemsOn(),
'ignore_inactive_systems_on' => $settingsService->ignoreInactiveSystemsOn(),
'number_of_galaxies' => $settingsService->numberOfGalaxies(),
]);
}

Expand All @@ -50,6 +60,16 @@ public function update(SettingsService $settingsService): RedirectResponse

$settingsService->set('registration_planet_amount', request('registration_planet_amount'));

$settingsService->set('planet_fields_bonus', request('planet_fields_bonus'));
$settingsService->set('dark_matter_bonus', request('dark_matter_bonus'));
$settingsService->set('alliance_combat_system_on', request('alliance_combat_system_on', 0));
$settingsService->set('debris_field_from_ships', request('debris_field_from_ships'));
$settingsService->set('debris_field_from_defense', request('debris_field_from_defense'));
$settingsService->set('debris_field_deuterium_on', request('debris_field_deuterium_on', 0));
$settingsService->set('ignore_empty_systems_on', request('ignore_empty_systems_on', 0));
$settingsService->set('ignore_inactive_systems_on', request('ignore_inactive_systems_on', 0));
$settingsService->set('number_of_galaxies', request('number_of_galaxies'));

return redirect()->route('admin.serversettings.index')->with('success', __('Changes saved!'));
}
}
33 changes: 33 additions & 0 deletions app/Http/Controllers/ServerSettingsController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace OGame\Http\Controllers;

use Illuminate\View\View;
use OGame\Services\SettingsService;

class ServerSettingsController extends OGameController
{
/**
* Shows the server settings info popup page
*
* @return View
*/
public function overlay(SettingsService $settingsService): View
{
return view('ingame.serversettings.overlay')->with([
'universe_name' => $settingsService->universeName(),
'fleet_speed' => $settingsService->fleetSpeed(),
'economy_speed' => $settingsService->economySpeed(),
'research_speed' => $settingsService->researchSpeed(),
'planet_fields_bonus' => $settingsService->planetFieldsBonus(),
'dark_matter_bonus' => $settingsService->darkMatterBonus(),
'alliance_combat_system_on' => $settingsService->allianceCombatSystemOn(),
'debris_field_from_ships' => $settingsService->debrisFieldFromShips(),
'debris_field_from_defense' => $settingsService->debrisFieldFromDefense(),
'debris_field_deuterium_on' => $settingsService->debrisFieldDeuteriumOn(),
'ignore_empty_systems_on' => $settingsService->ignoreEmptySystemsOn(),
'ignore_inactive_systems_on' => $settingsService->ignoreInactiveSystemsOn(),
'number_of_galaxies' => $settingsService->numberOfGalaxies(),
]);
}
}
100 changes: 100 additions & 0 deletions app/Services/SettingsService.php
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,104 @@ public function registrationPlanetAmount(): int
{
return (int)$this->get('registration_planet_amount', 1);
}

/**
* Returns the amount of planet fields bonus given upon planet creation.
*
* @return int
*/
public function planetFieldsBonus(): int
{
return (int)$this->get('planet_fields_bonus', 0);
}

/**
* Returns the amount of dark matter given for a new player.
*
* @return int
*/
public function darkMatterBonus(): int
{
return (int)$this->get('dark_matter_bonus', 8000);
}

/**
* Returns the status of the Alliance Combat System.
*
* @return int
*/
public function allianceCombatSystemOn(): int
{
return (int)$this->get('alliance_combat_system_on', 1);
}

/**
* Returns the percentage of debris field generated from destroyed ships.
*
* @return int
*/
public function debrisFieldFromShips(): int
{
return (int)$this->get('debris_field_from_ships', 30);
}

/**
* Returns the percentage of debris field generated from destroyed defensive structures.
*
* @return int
*/
public function debrisFieldFromDefense(): int
{
return (int)$this->get('debris_field_from_defense', 0);
}

/**
* Returns the status of Deuterium in debris fields.
*
* @return int
*/
public function debrisFieldDeuteriumOn(): int
{
return (int)$this->get('debris_field_deuterium_on', 1);
}

/**
* Returns the status of ignoring empty systems.
*
* @return int
*/
public function ignoreEmptySystemsOn(): int
{
return (int)$this->get('ignore_empty_systems_on', 0);
}

/**
* Returns the status of ignoring inactive systems.
*
* @return int
*/
public function ignoreInactiveSystemsOn(): int
{
return (int)$this->get('ignore_inactive_systems_on', 0);
}

/**
* Returns the number of galaxies in the universe.
*
* @return int
*/
public function numberOfGalaxies(): int
{
return (int)$this->get('number_of_galaxies', 9);
}

/**
* Returns the name of the universe.
*
* @return string
*/
public function universeName(): string
{
return $this->get('universe_name', "Universe");
}
}
Loading
Loading