From a21b030abd4d5cd88f914f79574e425c7908553a Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Mon, 24 Mar 2025 13:28:57 +0100 Subject: various changes --- src/http/Controller/Login.php | 49 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) (limited to 'src/http/Controller/Login.php') 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'], ]; -- cgit v1.2.3