From 9d1bf68f28b62c6f3e37b041fc9cfc4f597700bd Mon Sep 17 00:00:00 2001 From: Vari Date: Thu, 19 Dec 2024 22:30:33 +0100 Subject: [PATCH] Added check that automatically sets the picked challenges of the new lvl 10 default items to completed so that they don't show up in game. --- dist/app/Enums/Game/Hunter.php | 5 ++++- dist/app/Enums/Game/Runner.php | 5 ++++- .../Api/Player/MetadataController.php | 20 +++++++++++++++++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/dist/app/Enums/Game/Hunter.php b/dist/app/Enums/Game/Hunter.php index d3b9596..c2b5c45 100644 --- a/dist/app/Enums/Game/Hunter.php +++ b/dist/app/Enums/Game/Hunter.php @@ -41,7 +41,10 @@ public function getGroupType(): ItemGroupType }; } - public function getItemConfigClass(): string|CharacterItemConfig + /** + * @return class-string + */ + public function getItemConfigClass(): string { return match ($this) { Hunter::Stalker => StalkerItemConfig::class, diff --git a/dist/app/Enums/Game/Runner.php b/dist/app/Enums/Game/Runner.php index fcac40c..cd1b03b 100644 --- a/dist/app/Enums/Game/Runner.php +++ b/dist/app/Enums/Game/Runner.php @@ -49,7 +49,10 @@ public function getGroupType(): ItemGroupType }; } - public function getItemConfigClass(): string|CharacterItemConfig + /** + * @return class-string + */ + public function getItemConfigClass(): string { return match ($this) { self::Smoke => FogItemConfig::class, diff --git a/dist/app/Http/Controllers/Api/Player/MetadataController.php b/dist/app/Http/Controllers/Api/Player/MetadataController.php index d2eb89b..c5354ed 100644 --- a/dist/app/Http/Controllers/Api/Player/MetadataController.php +++ b/dist/app/Http/Controllers/Api/Player/MetadataController.php @@ -140,6 +140,17 @@ private function handleUpdateCharacterMetadata(UpdateMetadataGroupRequest &$requ $convertedIds = UuidHelper::convertFromHexToUuidCollecton($request->metadata['equippedWeapons'], true); $characterData->equippedWeapons()->sync($convertedIds); + $characterConfig = $characterData->character->getCharacter()->getItemConfigClass(); + $defaultCompletedIds = [ + ...$characterConfig::getDefaultEquippedBonuses(), + ...$characterConfig::getDefaultEquippedWeapons(), + ...$characterConfig::getDefaultEquipment(), + ...$characterConfig::getDefaultPowers(), + ...$characterConfig::getDefaultEquippedPerks(), + ]; + + $defaultCompletedIds = UuidHelper::convertFromHexToUuidCollecton($defaultCompletedIds, true); + foreach ($request->metadata['pickedChallenges'] as $picked) { $itemId = Uuid::fromHexadecimal(new Hexadecimal($picked['itemId'])); $pickedChallenge = $characterData->getPicketChallengeForItem($itemId); @@ -153,11 +164,16 @@ private function handleUpdateCharacterMetadata(UpdateMetadataGroupRequest &$requ $assetPath = $challenge['challengeAsset']; $completionValue = static::reducePickedChallengeCompletionValue($assetPath, $challenge['challengeCompletionValue']); - $newPicked = new PickedChallenge([ + $attributes = [ 'id' => $challengeId->toString(), 'completion_value' => $completionValue, 'asset_path' => $assetPath, - ]); + ]; + + if($defaultCompletedIds->has($itemId->toString())) + $attributes['progress'] = $completionValue; + + $newPicked = new PickedChallenge($attributes); $newPicked->characterData()->associate($characterData); $newPicked->catalogItem()->associate($itemId->toString());