aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>2024-07-06 23:55:15 +1000
committerGitHub <noreply@github.com>2024-07-06 15:55:15 +0200
commite6589dc1d0950536a46c2cfbc7058aa0c387e7b4 (patch)
tree364e8a45fd62899db1779bf655b601f5b6402138
parentb42ce02c4ac30814597f66b9b1758a768da082a6 (diff)
downloadnotenoughupdates-e6589dc1d0950536a46c2cfbc7058aa0c387e7b4.tar.gz
notenoughupdates-e6589dc1d0950536a46c2cfbc7058aa0c387e7b4.tar.bz2
notenoughupdates-e6589dc1d0950536a46c2cfbc7058aa0c387e7b4.zip
Fix Tier boosted pets in /pv (#1211)
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java24
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java10
2 files changed, 33 insertions, 1 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java
index d9bfb80d..ca785623 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java
@@ -109,12 +109,30 @@ public class PetsPage extends GuiProfileViewerPage {
String tierNum1 = GuiProfileViewer.RARITY_TO_NUM.get(tier1);
if (tierNum1 == null) return 1;
int tierNum1I = Integer.parseInt(tierNum1);
+ if ("PET_ITEM_TIER_BOOST".equals(Utils.getElementAsString(pet1.get("heldItem"), null))) {
+ PetInfoOverlay.Pet parsedPet = new PetInfoOverlay.Pet();
+ PetInfoOverlay.Rarity tier = PetInfoOverlay.Rarity.valueOf(pet1.get("tier").getAsString());
+ parsedPet.petType = pet1.get("type").getAsString();
+ parsedPet.rarity = tier;
+ if (Utils.canPetBeTierBoosted(parsedPet, tier.nextRarity())) {
+ tierNum1I += 1;
+ }
+ }
float exp1 = pet1.get("exp").getAsFloat();
String tier2 = pet2.get("tier").getAsString();
String tierNum2 = GuiProfileViewer.RARITY_TO_NUM.get(tier2);
if (tierNum2 == null) return -1;
int tierNum2I = Integer.parseInt(tierNum2);
+ if ("PET_ITEM_TIER_BOOST".equals(Utils.getElementAsString(pet2.get("heldItem"), null))) {
+ PetInfoOverlay.Pet parsedPet = new PetInfoOverlay.Pet();
+ PetInfoOverlay.Rarity tier = PetInfoOverlay.Rarity.valueOf(pet2.get("tier").getAsString());
+ parsedPet.petType = pet2.get("type").getAsString();
+ parsedPet.rarity = tier;
+ if (Utils.canPetBeTierBoosted(parsedPet, tier.nextRarity())) {
+ tierNum2I += 1;
+ }
+ }
float exp2 = pet2.get("exp").getAsFloat();
if (tierNum1I != tierNum2I) {
@@ -127,12 +145,16 @@ public class PetsPage extends GuiProfileViewerPage {
PetInfoOverlay.Pet parsedPet = new PetInfoOverlay.Pet();
parsedPet.petType = pet.get("type").getAsString();
parsedPet.rarity = PetInfoOverlay.Rarity.valueOf(pet.get("tier").getAsString());
+ parsedPet.petItem = Utils.getElementAsString(pet.get("heldItem"), null);
+ if ("PET_ITEM_TIER_BOOST".equals(parsedPet.petItem)) {
+ PetInfoOverlay.Rarity nextRarity = parsedPet.rarity.nextRarity();
+ if (Utils.canPetBeTierBoosted(parsedPet, nextRarity)) parsedPet.rarity = nextRarity;
+ }
parsedPet.petLevel = PetLeveling.getPetLevelingForPet(
parsedPet.petType,
parsedPet.rarity
).getPetLevel(pet.get("exp").getAsFloat());
parsedPet.petXpType = "unknown";
- parsedPet.petItem = Utils.getElementAsString(pet.get("heldItem"), null);
parsedPet.skin = Utils.getElementAsString(pet.get("skin"), null);
parsedPet.candyUsed = pet.get("candyUsed").getAsInt();
sortedPetsStack.add(ItemUtils.createPetItemstackFromPetInfo(parsedPet));
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
index 832b75d0..041bf104 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -28,6 +28,7 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.TooltipTextScrolling;
+import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay;
import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking;
import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer;
import lombok.var;
@@ -2423,4 +2424,13 @@ public class Utils {
}
return renderText;
}
+
+ public static boolean canPetBeTierBoosted(PetInfoOverlay.Pet pet, PetInfoOverlay.Rarity rarityToBeBoostedTo) {
+ if (rarityToBeBoostedTo == null) return false;
+ ItemStack itemStack = NotEnoughUpdates.INSTANCE.manager
+ .createItemResolutionQuery()
+ .withKnownInternalName(pet.petType + ";" + rarityToBeBoostedTo.petId)
+ .resolveToItemStack(false);
+ return itemStack != null;
+ }
}