diff --git a/src/App/Avatar/Lorelei.php b/src/App/Avatar/Lorelei.php index b9ce8b7..13b679d 100644 --- a/src/App/Avatar/Lorelei.php +++ b/src/App/Avatar/Lorelei.php @@ -94,22 +94,34 @@ final class Lorelei { $avatar = self::normalize($row); $query = ['seed' => $avatar['avatar_preset']]; - $map = [ + $requiredMap = [ 'avatar_lorelei_eyes_variant' => 'eyesVariant', 'avatar_lorelei_eyebrows_variant' => 'eyebrowsVariant', 'avatar_lorelei_mouth_variant' => 'mouthVariant', - 'avatar_lorelei_glasses_variant' => 'glassesVariant', - 'avatar_lorelei_hair_variant' => 'hairVariant', - 'avatar_lorelei_beard_variant' => 'beardVariant', - 'avatar_lorelei_earrings_variant' => 'earringsVariant', + ]; + $optionalMap = [ + 'avatar_lorelei_glasses_variant' => ['variant' => 'glassesVariant', 'probability' => 'glassesProbability'], + 'avatar_lorelei_hair_variant' => ['variant' => 'hairVariant', 'probability' => 'hairProbability'], + 'avatar_lorelei_beard_variant' => ['variant' => 'beardVariant', 'probability' => 'beardProbability'], + 'avatar_lorelei_earrings_variant' => ['variant' => 'earringsVariant', 'probability' => 'earringsProbability'], ]; - foreach ($map as $key => $param) { + foreach ($requiredMap as $key => $param) { if ($avatar[$key] !== '') { $query[$param] = $avatar[$key]; } } + foreach ($optionalMap as $key => $params) { + if ($avatar[$key] === '') { + $query[$params['probability']] = '0'; + continue; + } + + $query[$params['variant']] = $avatar[$key]; + $query[$params['probability']] = '100'; + } + return $query; }