diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 0ad7c61..3cb7308 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -17,6 +17,7 @@ class DatabaseSeeder extends Seeder { $this->call([ + LevelSeeder::class, BordeauxHuntsSeeder::class, ]); } diff --git a/database/seeders/LevelSeeder.php b/database/seeders/LevelSeeder.php new file mode 100644 index 0000000..04b9d2b --- /dev/null +++ b/database/seeders/LevelSeeder.php @@ -0,0 +1,70 @@ +toRoman($rankInTier); + + // XP non linéaire + $xpThreshold = $baseXp + ($level * $level * $scalingFactor); + + Level::updateOrCreate( + ['level_position' => $level], + [ + 'xpThreshold' => $xpThreshold, + 'label' => "{$tierName} {$romanRank}", + ] + ); + } + } + + private function toRoman(int $number): string + { + $map = [ + 'X' => 10, + 'IX' => 9, + 'V' => 5, + 'IV' => 4, + 'I' => 1, + ]; + + $result = ''; + foreach ($map as $roman => $value) { + while ($number >= $value) { + $result .= $roman; + $number -= $value; + } + } + + return $result; + } +}