summaryrefslogtreecommitdiff
path: root/src/http/Controller/Login.php
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-03-24 13:28:57 +0100
committerDaniel Weipert <git@mail.dweipert.de>2025-03-24 13:28:57 +0100
commita21b030abd4d5cd88f914f79574e425c7908553a (patch)
treec4eca5ff8e3dd5b12c4a151045ebb0991b211a9b /src/http/Controller/Login.php
parentd58f61770463aab2c71464c11f902f0074b49b62 (diff)
various changesHEADmain
Diffstat (limited to 'src/http/Controller/Login.php')
-rw-r--r--src/http/Controller/Login.php49
1 files changed, 47 insertions, 2 deletions
diff --git a/src/http/Controller/Login.php b/src/http/Controller/Login.php
index 8c04d85..37680a7 100644
--- a/src/http/Controller/Login.php
+++ b/src/http/Controller/Login.php
@@ -3,6 +3,7 @@
namespace App\http\Controller;
use App\DB;
+use App\Model\Building\Farm;
use App\View;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
@@ -26,15 +27,59 @@ class Login
if (empty($user)) {
$password = password_hash($request->get('password'), PASSWORD_DEFAULT);
DB::query('insert into users (username, password, email) values (:username, :password, :email)', ['username' => $email, 'password' => $password, 'email' => $email]);
+
+ $userId = DB::$connection->lastInsertId();
- // TODO: also insert new village at random free coordinates
+ // insert new village at random free coordinates
+ # TODO: check if coords are free
+ DB::query(
+ 'insert into villages (name, x, y, wood, clay, iron, food, satisfaction) values (:name, :x, :y, 100, 100, 100, 100, 100)',
+ [
+ 'name' => $email,
+ 'x' => random_int(-10, 10),
+ 'y' => random_int(-10, 10),
+ ]
+ );
+ $villageId = DB::$connection->lastInsertId();
+
+ DB::query('insert into user_villages (user_id, village_id) values (:user_id, :village_id)', [
+ 'user_id' => $userId,
+ 'village_id' => $villageId,
+ ]);
+
+ DB::query('insert into village_storage_config (wood, clay, iron, food, village_id) values (:wood, :clay, :iron, :food, :village_id)', [
+ 'wood' => 25,
+ 'clay' => 25,
+ 'iron' => 25,
+ 'food' => 25,
+ 'village_id' => $village->id,
+ ]);
+
+ $initialBuildings = ['TownHall', 'Storage', 'WoodCutter', 'ClayPit', 'IronMine', 'Farm'];
+ foreach ($initialBuildings as $buildingType) {
+ DB::query('insert into village_buildings (level, type, village_id) values (:level, :type, :village_id)', [
+ 'level' => 1,
+ 'type' => $buildingType,
+ 'village_id' => $villageId,
+ ]);
+ }
+
+ $initialUnits = ['WoodCutter', 'PitWorker', 'Miner', 'Farmer'];
+ foreach ($initialUnits as $unitType) {
+ DB::query('insert into village_units (amount, type, home_village_id, residence_village_id) values (:amount, :type, :village_id, :village_id)', [
+ 'amount' => 1,
+ 'type' => $unitType,
+ 'village_id' => $villageId,
+ ]);
+ }
} else {
$password = $user['password'];
+ $userId = $user['id'];
}
if (password_verify($request->get('password'), $password)) {
$_SESSION['user'] = [
- 'id' => $user['id'],
+ 'id' => $userId,
'username' => $user['username'],
];