Skip to content

Commit f10e186

Browse files
committed
Merge branch '1.7-the-emerald-illusion'
2 parents f6af810 + 6b9f4c1 commit f10e186

96 files changed

Lines changed: 14682 additions & 7767 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/laravel.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
run: |
6363
php artisan migrate
6464
mkdir test-coverage
65-
vendor/bin/phpunit --stop-on-error --stop-on-failure --coverage-html=./test-coverage
65+
vendor/bin/phpunit --coverage-html=./test-coverage
6666
6767
- name: Upload HTML coverage report
6868
uses: actions/upload-artifact@v4

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,11 @@ deploy.yml
2828
.idea/
2929
.phpunit.cache/
3030
public/build/
31+
.pnp.*
32+
.yarn/*
33+
!.yarn/releases
34+
!.yarn/releases/**
35+
!.yarn/plugins
36+
!.yarn/plugins/**
37+
!.yarn/patches
38+
!.yarn/patches/**

.yarn/install-state.gz

909 KB
Binary file not shown.

.yarnrc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodeLinker: node-modules

app/Admin/Controllers/LocationGemsController.php

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
use App\Admin\Import\LocationGems\LocationGemsImport;
77
use App\Admin\Requests\LocationGemParamtersImportRequest;
88
use App\Admin\Requests\LocationGemParamtersManagementRequest;
9-
use App\Flare\Models\GameLocationGemParamters;
9+
use App\Flare\Models\GameLocationGemParamter;
1010
use App\Flare\Models\GameSkill;
1111
use App\Flare\Models\Location;
1212
use App\Flare\Values\MapNameValue;
13+
use App\Admin\Services\AdminGemRollService;
1314
use App\Game\Gems\Values\GemTypeValue;
1415
use App\Http\Controllers\Controller;
1516
use Illuminate\Contracts\View\View;
@@ -20,6 +21,10 @@
2021

2122
class LocationGemsController extends Controller
2223
{
24+
public function __construct(private readonly AdminGemRollService $adminGemRollService)
25+
{
26+
}
27+
2328
public function index(): View
2429
{
2530
return view('admin.location-gems.index');
@@ -28,17 +33,17 @@ public function index(): View
2833
public function create(): View
2934
{
3035
return view('admin.location-gems.manage', [
31-
'gameLocationGemParamters' => null,
36+
'gameLocationGemParamter' => null,
3237
'locations' => $this->eligibleLocations(),
3338
'gemTypes' => GemTypeValue::getNames(),
3439
'craftingSkills' => GameSkill::where('can_train', false)->orderBy('name')->get(),
3540
]);
3641
}
3742

38-
public function edit(GameLocationGemParamters $gameLocationGemParamters): View
43+
public function edit(GameLocationGemParamter $gameLocationGemParamter): View
3944
{
4045
return view('admin.location-gems.manage', [
41-
'gameLocationGemParamters' => $gameLocationGemParamters,
46+
'gameLocationGemParamter' => $gameLocationGemParamter,
4247
'locations' => $this->eligibleLocations(),
4348
'gemTypes' => GemTypeValue::getNames(),
4449
'craftingSkills' => GameSkill::where('can_train', false)->orderBy('name')->get(),
@@ -79,36 +84,60 @@ private function eligibleLocations(): Collection
7984
->values();
8085
}
8186

82-
public function show(GameLocationGemParamters $gameLocationGemParamters): View
87+
public function show(GameLocationGemParamter $gameLocationGemParamter): View
8388
{
8489
return view('admin.location-gems.show', [
85-
'gameLocationGemParamters' => $gameLocationGemParamters->load('location.map'),
90+
'gameLocationGemParamter' => $gameLocationGemParamter->load('location.map'),
8691
]);
8792
}
8893

94+
public function rolled(GameLocationGemParamter $gameLocationGemParamter): View|RedirectResponse
95+
{
96+
$gameLocationGemParamter->load('location.map', 'rolledGem.rolledByUser');
97+
98+
if (is_null($gameLocationGemParamter->rolled_gem_id) || is_null($gameLocationGemParamter->rolledGem)) {
99+
return response()
100+
->redirectToRoute('admin.location-gems.show', ['gameLocationGemParamter' => $gameLocationGemParamter->id])
101+
->with('error', 'No rolled gem is available for this location gem profile.');
102+
}
103+
104+
return view('admin.location-gems.rolled', [
105+
'gameLocationGemParamter' => $gameLocationGemParamter,
106+
]);
107+
}
108+
109+
public function roll(GameLocationGemParamter $gameLocationGemParamter): RedirectResponse
110+
{
111+
$gem = $this->adminGemRollService->rollLocationGem($gameLocationGemParamter, auth()->user());
112+
113+
return response()
114+
->redirectToRoute('admin.location-gems.show', ['gameLocationGemParamter' => $gameLocationGemParamter->id])
115+
->with('success', 'Rolled '.$gem->name);
116+
}
117+
89118
public function store(LocationGemParamtersManagementRequest $request): RedirectResponse
90119
{
91-
$gameLocationGemParamters = null;
120+
$gameLocationGemParamter = null;
92121
$validatedData = $request->validated();
93122
$validatedData['crafting_skill_ids'] = array_map(
94123
'intval',
95124
$validatedData['crafting_skill_ids'] ?? [],
96125
);
97126

98127
if ($request->integer('id') !== 0) {
99-
$gameLocationGemParamters = GameLocationGemParamters::find($request->integer('id'));
128+
$gameLocationGemParamter = GameLocationGemParamter::find($request->integer('id'));
100129
}
101130

102-
if (is_null($gameLocationGemParamters)) {
103-
$gameLocationGemParamters = GameLocationGemParamters::create($validatedData);
104-
$message = 'Created '.$gameLocationGemParamters->name;
131+
if (is_null($gameLocationGemParamter)) {
132+
$gameLocationGemParamter = GameLocationGemParamter::create($validatedData);
133+
$message = 'Created '.$gameLocationGemParamter->name;
105134
} else {
106-
$gameLocationGemParamters->update($validatedData);
107-
$message = 'Updated '.$gameLocationGemParamters->name;
135+
$gameLocationGemParamter->update($validatedData);
136+
$message = 'Updated '.$gameLocationGemParamter->name;
108137
}
109138

110139
return response()
111-
->redirectToRoute('admin.location-gems.show', ['gameLocationGemParamters' => $gameLocationGemParamters->id])
140+
->redirectToRoute('admin.location-gems.show', ['gameLocationGemParamter' => $gameLocationGemParamter->id])
112141
->with('success', $message);
113142
}
114143

app/Admin/Controllers/MapGemsController.php

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
use App\Admin\Requests\MapGemParamtersImportRequest;
88
use App\Admin\Requests\MapGemParamtersManagementRequest;
99
use App\Flare\Models\GameMap;
10-
use App\Flare\Models\GameMapGemParamters;
10+
use App\Flare\Models\GameMapGemParamter;
1111
use App\Flare\Models\GameSkill;
12+
use App\Admin\Services\AdminGemRollService;
1213
use App\Game\Gems\Values\GemTypeValue;
1314
use App\Http\Controllers\Controller;
1415
use Illuminate\Contracts\View\View;
@@ -18,6 +19,10 @@
1819

1920
class MapGemsController extends Controller
2021
{
22+
public function __construct(private readonly AdminGemRollService $adminGemRollService)
23+
{
24+
}
25+
2126
public function index(): View
2227
{
2328
return view('admin.map-gems.index');
@@ -26,53 +31,77 @@ public function index(): View
2631
public function create(): View
2732
{
2833
return view('admin.map-gems.manage', [
29-
'gameMapGemParamters' => null,
34+
'gameMapGemParamter' => null,
3035
'gameMaps' => GameMap::orderBy('name')->get(),
3136
'gemTypes' => GemTypeValue::getNames(),
3237
'craftingSkills' => GameSkill::where('can_train', false)->orderBy('name')->get(),
3338
]);
3439
}
3540

36-
public function edit(GameMapGemParamters $gameMapGemParamters): View
41+
public function edit(GameMapGemParamter $gameMapGemParamter): View
3742
{
3843
return view('admin.map-gems.manage', [
39-
'gameMapGemParamters' => $gameMapGemParamters,
44+
'gameMapGemParamter' => $gameMapGemParamter,
4045
'gameMaps' => GameMap::orderBy('name')->get(),
4146
'gemTypes' => GemTypeValue::getNames(),
4247
'craftingSkills' => GameSkill::where('can_train', false)->orderBy('name')->get(),
4348
]);
4449
}
4550

46-
public function show(GameMapGemParamters $gameMapGemParamters): View
51+
public function show(GameMapGemParamter $gameMapGemParamter): View
4752
{
4853
return view('admin.map-gems.show', [
49-
'gameMapGemParamters' => $gameMapGemParamters->load('gameMap'),
54+
'gameMapGemParamter' => $gameMapGemParamter->load('gameMap'),
5055
]);
5156
}
5257

58+
public function rolled(GameMapGemParamter $gameMapGemParamter): View|RedirectResponse
59+
{
60+
$gameMapGemParamter->load('gameMap', 'rolledGem.rolledByUser');
61+
62+
if (is_null($gameMapGemParamter->rolled_gem_id) || is_null($gameMapGemParamter->rolledGem)) {
63+
return response()
64+
->redirectToRoute('admin.map-gems.show', ['gameMapGemParamter' => $gameMapGemParamter->id])
65+
->with('error', 'No rolled gem is available for this map gem profile.');
66+
}
67+
68+
return view('admin.map-gems.rolled', [
69+
'gameMapGemParamter' => $gameMapGemParamter,
70+
]);
71+
}
72+
73+
public function roll(GameMapGemParamter $gameMapGemParamter): RedirectResponse
74+
{
75+
$gem = $this->adminGemRollService->rollMapGem($gameMapGemParamter, auth()->user());
76+
77+
return response()
78+
->redirectToRoute('admin.map-gems.show', ['gameMapGemParamter' => $gameMapGemParamter->id])
79+
->with('success', 'Rolled '.$gem->name);
80+
}
81+
5382
public function store(MapGemParamtersManagementRequest $request): RedirectResponse
5483
{
55-
$gameMapGemParamters = null;
84+
$gameMapGemParamter = null;
5685
$validatedData = $request->validated();
5786
$validatedData['crafting_skill_ids'] = array_map(
5887
'intval',
5988
$validatedData['crafting_skill_ids'] ?? [],
6089
);
6190

6291
if ($request->integer('id') !== 0) {
63-
$gameMapGemParamters = GameMapGemParamters::find($request->integer('id'));
92+
$gameMapGemParamter = GameMapGemParamter::find($request->integer('id'));
6493
}
6594

66-
if (is_null($gameMapGemParamters)) {
67-
$gameMapGemParamters = GameMapGemParamters::create($validatedData);
68-
$message = 'Created '.$gameMapGemParamters->name;
95+
if (is_null($gameMapGemParamter)) {
96+
$gameMapGemParamter = GameMapGemParamter::create($validatedData);
97+
$message = 'Created '.$gameMapGemParamter->name;
6998
} else {
70-
$gameMapGemParamters->update($validatedData);
71-
$message = 'Updated '.$gameMapGemParamters->name;
99+
$gameMapGemParamter->update($validatedData);
100+
$message = 'Updated '.$gameMapGemParamter->name;
72101
}
73102

74103
return response()
75-
->redirectToRoute('admin.map-gems.show', ['gameMapGemParamters' => $gameMapGemParamters->id])
104+
->redirectToRoute('admin.map-gems.show', ['gameMapGemParamter' => $gameMapGemParamter->id])
76105
->with('success', $message);
77106
}
78107

app/Admin/Exports/LocationGems/Sheets/LocationGemsSheet.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace App\Admin\Exports\LocationGems\Sheets;
44

5-
use App\Flare\Models\GameLocationGemParamters;
5+
use App\Flare\Models\GameLocationGemParamter;
66
use Illuminate\Contracts\View\View;
77
use Maatwebsite\Excel\Concerns\FromView;
88
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
@@ -13,7 +13,7 @@ class LocationGemsSheet implements FromView, ShouldAutoSize, WithTitle
1313
public function view(): View
1414
{
1515
return view('admin.exports.location-gems.sheets.location-gems', [
16-
'locationGems' => GameLocationGemParamters::with('location.map')->get(),
16+
'locationGems' => GameLocationGemParamter::with('location.map')->get(),
1717
]);
1818
}
1919

app/Admin/Exports/MapGems/Sheets/MapGemsSheet.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace App\Admin\Exports\MapGems\Sheets;
44

5-
use App\Flare\Models\GameMapGemParamters;
5+
use App\Flare\Models\GameMapGemParamter;
66
use Illuminate\Contracts\View\View;
77
use Maatwebsite\Excel\Concerns\FromView;
88
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
@@ -13,7 +13,7 @@ class MapGemsSheet implements FromView, ShouldAutoSize, WithTitle
1313
public function view(): View
1414
{
1515
return view('admin.exports.map-gems.sheets.map-gems', [
16-
'mapGems' => GameMapGemParamters::with('gameMap')->get(),
16+
'mapGems' => GameMapGemParamter::with('gameMap')->get(),
1717
]);
1818
}
1919

app/Admin/Import/LocationGems/Sheets/LocationGemsSheet.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace App\Admin\Import\LocationGems\Sheets;
44

5-
use App\Flare\Models\GameLocationGemParamters;
5+
use App\Flare\Models\GameLocationGemParamter;
66
use App\Flare\Models\GameMap;
77
use App\Flare\Models\GameSkill;
88
use App\Flare\Models\Location;
@@ -23,7 +23,7 @@ public function collection(Collection $rows): void
2323
$cleanData = $this->cleanData($data);
2424

2525
if (! empty($cleanData)) {
26-
GameLocationGemParamters::updateOrCreate(
26+
GameLocationGemParamter::updateOrCreate(
2727
['location_id' => $cleanData['location_id']],
2828
$cleanData,
2929
);

app/Admin/Import/MapGems/Sheets/MapGemsSheet.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace App\Admin\Import\MapGems\Sheets;
44

55
use App\Flare\Models\GameMap;
6-
use App\Flare\Models\GameMapGemParamters;
6+
use App\Flare\Models\GameMapGemParamter;
77
use App\Flare\Models\GameSkill;
88
use App\Game\Gems\Values\GemTypeValue;
99
use Illuminate\Support\Collection;
@@ -22,7 +22,7 @@ public function collection(Collection $rows): void
2222
$cleanData = $this->cleanData($data);
2323

2424
if (! empty($cleanData)) {
25-
GameMapGemParamters::updateOrCreate(
25+
GameMapGemParamter::updateOrCreate(
2626
['game_map_id' => $cleanData['game_map_id']],
2727
$cleanData,
2828
);

0 commit comments

Comments
 (0)