diff options
author | Roman / Linnea Gräf <roman.graef@gmail.com> | 2023-01-13 13:29:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-13 13:29:39 +0100 |
commit | e603cf230af0cef44481633888ec13d2097b6310 (patch) | |
tree | 9e373e1140e4678fad1fc7624243dc455efe86dc | |
parent | 4b3aad7142c04071961e8b4a87cb1b4759da38b7 (diff) | |
download | NotEnoughUpdates-e603cf230af0cef44481633888ec13d2097b6310.tar.gz NotEnoughUpdates-e603cf230af0cef44481633888ec13d2097b6310.tar.bz2 NotEnoughUpdates-e603cf230af0cef44481633888ec13d2097b6310.zip |
PetLeveling: Allow for defining custom level offsets for pets (#534)
-rw-r--r-- | src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt | 5 | ||||
-rw-r--r-- | src/test/kotlin/io/github/moulberry/notenoughupdates/util/PetLevelingTest.kt | 18 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt index 56f84d54..200aa3fa 100644 --- a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt +++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt @@ -100,7 +100,7 @@ object PetLeveling { val petConstants = this.petConstants ?: Constants.PETS ?: return stubExpLadder var levels = petConstants["pet_levels"]?.asJsonArray?.map { it.asLong }?.toMutableList() ?: return stubExpLadder val customLeveling = petConstants["custom_pet_leveling"]?.asJsonObject?.get(petIdWithoutRarity) - val offset = petConstants["pet_rarity_offset"]?.asJsonObject?.get(rarity.name)?.asInt ?: return stubExpLadder + var rarityOffsets = petConstants["pet_rarity_offset"]?.asJsonObject var maxLevel = 100 if (customLeveling is JsonObject) { val customLevels by lazy { customLeveling["pet_levels"]?.asJsonArray?.map { it.asLong } } @@ -109,7 +109,10 @@ object PetLeveling { 2 -> levels = customLevels?.toMutableList() ?: return stubExpLadder } maxLevel = customLeveling["max_level"]?.asInt ?: maxLevel + rarityOffsets = customLeveling["rarity_offset"]?.asJsonObject ?: rarityOffsets } + val offset = rarityOffsets?.get(rarity.name)?.asInt ?: return stubExpLadder + return ExpLadder(levels.drop(offset).take(maxLevel - 1)) } diff --git a/src/test/kotlin/io/github/moulberry/notenoughupdates/util/PetLevelingTest.kt b/src/test/kotlin/io/github/moulberry/notenoughupdates/util/PetLevelingTest.kt index d91ca09d..870b7e59 100644 --- a/src/test/kotlin/io/github/moulberry/notenoughupdates/util/PetLevelingTest.kt +++ b/src/test/kotlin/io/github/moulberry/notenoughupdates/util/PetLevelingTest.kt @@ -265,6 +265,16 @@ internal class PetLevelingTest { 1886700 ], "max_level": 200 + }, + "BINGO": { + "rarity_offset": { + "COMMON": 0, + "UNCOMMON": 0, + "RARE": 0, + "EPIC": 0, + "LEGENDARY": 0, + "MYTHIC": 0 + } } }, "pet_types": { @@ -357,6 +367,14 @@ internal class PetLevelingTest { } @Test + fun testBingoPetsLevelLikeCommon() { + val levelingC = PetLeveling.getPetLevelingForPet0("BINGO", PetInfoOverlay.Rarity.COMMON) + val levelingE = PetLeveling.getPetLevelingForPet0("BINGO", PetInfoOverlay.Rarity.EPIC) + Assertions.assertEquals(levelingC.getPetLevel(67790664.0), levelingE.getPetLevel(67790664.0)) + } + + + @Test fun testPetLevelGrandmaWolf() { val leveling = PetLeveling.getPetLevelingForPet0("GRANDMA_WOLF", PetInfoOverlay.Rarity.LEGENDARY) val level = leveling.getPetLevel(22_500_000.0) |