From 77c6ca71ceb8c5e937dbc15658f4add329f89ee2 Mon Sep 17 00:00:00 2001 From: Vari Date: Sat, 19 Oct 2024 23:34:12 +0200 Subject: [PATCH] Removed the Equipped_bonuses table because players cannot change their passives anyway. Now the equipped passives are retrieved directly from the config. --- .../Api/Player/MetadataController.php | 3 -- .../Api/Player/InitOrGetGroupsResponse.php | 4 ++- dist/app/Models/Game/CharacterData.php | 20 ------------- ...9_232253_remove_equipped_bonuses_table.php | 29 +++++++++++++++++++ 4 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 dist/database/migrations/2024_10_19_232253_remove_equipped_bonuses_table.php diff --git a/dist/app/Http/Controllers/Api/Player/MetadataController.php b/dist/app/Http/Controllers/Api/Player/MetadataController.php index 7d1bbe9..e93587a 100644 --- a/dist/app/Http/Controllers/Api/Player/MetadataController.php +++ b/dist/app/Http/Controllers/Api/Player/MetadataController.php @@ -96,9 +96,6 @@ private function handleUpdateCharacterMetadata(UpdateMetadataGroupRequest &$requ $convertedIds = UuidHelper::convertFromHexToUuidCollecton($request->metadata['equippedWeapons'], true); $characterData->equippedWeapons()->sync($convertedIds); - $convertedIds = UuidHelper::convertFromHexToUuidCollecton($request->metadata['equippedBonuses'], true); - $characterData->equippedBonuses()->sync($convertedIds); - foreach ($request->metadata['pickedChallenges'] as $picked) { $itemId = Uuid::fromHexadecimal(new Hexadecimal($picked['itemId'])); $pickedChallenge = $characterData->getPicketChallengeForItem($itemId); diff --git a/dist/app/Http/Responses/Api/Player/InitOrGetGroupsResponse.php b/dist/app/Http/Responses/Api/Player/InitOrGetGroupsResponse.php index 19e8627..5b054e3 100644 --- a/dist/app/Http/Responses/Api/Player/InitOrGetGroupsResponse.php +++ b/dist/app/Http/Responses/Api/Player/InitOrGetGroupsResponse.php @@ -78,7 +78,9 @@ public function addCharacterMetadataGroup(Characters $character, User $user): vo $newGroup->equippedPerks = UuidHelper::convertFromUuidToHexCollection($characterData->equippedPerks()->allRelatedIds())->toArray(); $newGroup->equippedWeapons = UuidHelper::convertFromUuidToHexCollection($characterData->equippedWeapons()->allRelatedIds())->toArray(); $newGroup->equipment = UuidHelper::convertFromUuidToHexCollection($characterData->equipment()->allRelatedIds())->toArray(); - $newGroup->equippedBonuses = UuidHelper::convertFromUuidToHexCollection($characterData->equippedBonuses()->allRelatedIds())->toArray(); + + // Since players cannot change their equipped powers or passives(bonuses), we can just read them from the config. + $newGroup->equippedBonuses = $itemConfigClass::getDefaultEquippedBonuses(); $newGroup->equippedPowers = $itemConfigClass::getDefaultPowers(); $newGroup->prestigeLevel = $characterData->prestige_level; diff --git a/dist/app/Models/Game/CharacterData.php b/dist/app/Models/Game/CharacterData.php index 15ecb3a..b636eea 100644 --- a/dist/app/Models/Game/CharacterData.php +++ b/dist/app/Models/Game/CharacterData.php @@ -49,11 +49,6 @@ public function equipment(): BelongsToMany return $this->belongsToMany(CatalogItem::class,'character_data_equipment'); } - public function equippedBonuses(): BelongsToMany - { - return $this->belongsToMany(CatalogItem::class,'character_data_equipped_bonuses'); - } - public function equippedPerks(): BelongsToMany { return $this->belongsToMany(CatalogItem::class,'character_data_equipped_perks'); @@ -133,10 +128,6 @@ public function validateEquippedItems(): void $equippedEquipment = $this->equipment()->allRelatedIds(); if($equippedEquipment->count() === 0) $this->resetEquipment($itemConfigClass); - - $equippedBonuses = $this->equippedBonuses()->allRelatedIds(); - if($equippedBonuses->count() === 0) - $this->resetEquippedBonuses($itemConfigClass); } protected function resetEquippedPerks(string|CharacterItemConfig $itemConfigClass): void @@ -172,17 +163,6 @@ protected function resetEquipment(string|CharacterItemConfig $itemConfigClass): static::getResetItemsLogger()->warning(sprintf('User %s(%s) had unallowed Equipment Equipped', $user->id, $user->last_known_username)); } - protected function resetEquippedBonuses(string|CharacterItemConfig $itemConfigClass): void - { - // Remove all equipped Weapons and reset to default config - $this->equippedBonuses()->detach(); - $defaultBonusIds = UuidHelper::convertFromHexToUuidCollecton($itemConfigClass::getDefaultEquippedBonuses()); - $this->equippedBonuses()->attach($defaultBonusIds); - - $user = Auth::user(); - static::getResetItemsLogger()->warning(sprintf('User %s(%s) had unallowed Bonuses Equipped', $user->id, $user->last_known_username)); - } - protected static function getResetItemsLogger(): LoggerInterface { if(static::$resetItemsLogger === null) { diff --git a/dist/database/migrations/2024_10_19_232253_remove_equipped_bonuses_table.php b/dist/database/migrations/2024_10_19_232253_remove_equipped_bonuses_table.php new file mode 100644 index 0000000..442bb17 --- /dev/null +++ b/dist/database/migrations/2024_10_19_232253_remove_equipped_bonuses_table.php @@ -0,0 +1,29 @@ +id(); + $table->foreignId('character_data_id')->constrained('character_data')->cascadeOnDelete()->cascadeOnUpdate(); + $table->foreignUuid('catalog_item_id')->constrained()->cascadeOnDelete()->cascadeOnDelete(); + $table->timestamps(); + }); + } +};