From 167987eab8207bf8ad379abf2b0410cb99b8136f Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Wed, 15 Jul 2026 00:04:51 -0400 Subject: [PATCH] Update NEU Repo and Tests --- .github/workflows/build.yml | 2 +- .../moulberry/repo/NEURepoParserTest.java | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe601ef..287e5fc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: with: repository: 'NotEnoughUpdates/NotEnoughUpdates-REPO' path: 'NotEnoughUpdates-REPO' # This is consistent with the repo path defined in NEURepoParserTest.java - ref: '080a804a1f7c1fd8e9899f8317a18b33a319d049' + ref: '3ca1a9c42c84063aabb5d4e6820a5039c389cea5' # https://github.com/NotEnoughUpdates/NotEnoughUpdates-REPO/commit/3ca1a9c42c84063aabb5d4e6820a5039c389cea5 - name: Validate gradle wrapper uses: gradle/actions/wrapper-validation@v3 diff --git a/src/test/java/io/github/moulberry/repo/NEURepoParserTest.java b/src/test/java/io/github/moulberry/repo/NEURepoParserTest.java index 29f1cc3..83892a5 100644 --- a/src/test/java/io/github/moulberry/repo/NEURepoParserTest.java +++ b/src/test/java/io/github/moulberry/repo/NEURepoParserTest.java @@ -38,8 +38,8 @@ void testBazaarStocks() { @Test void testPetConstants() { Assertions.assertEquals("MINING", repository.getConstants().getPetLevelingData().getPetExpTypes().get("ROCK")); - Assertions.assertEquals("PetNumbers.Stats(otherNumbers=[0.2, 0.1, 10.0, 0.2], statNumbers={ABILITY_DAMAGE=0.2, INTELLIGENCE=1.0})", repository.getConstants().getPetNumbers().get("SHEEP").get(Rarity.LEGENDARY).interpolatedStatsAtLevel(1).toString()); - Assertions.assertEquals("PetNumbers.Stats(otherNumbers=[74.74747474747474, 0.37373737373737376, 0.18686868686868688], statNumbers={STRENGTH=37.37373737373737, MAGIC_FIND=7.474747474747475, BONUS_ATTACK_SPEED=37.37373737373737})", repository.getConstants().getPetNumbers().get("GOLDEN_DRAGON").get(Rarity.LEGENDARY).interpolatedStatsAtLevel(150).toString()); + Assertions.assertEquals("PetNumbers.Stats(otherNumbers=[0.2, 0.1, 0.2], statNumbers={ABILITY_DAMAGE=0.2, INTELLIGENCE=1.0})", repository.getConstants().getPetNumbers().get("SHEEP").get(Rarity.LEGENDARY).interpolatedStatsAtLevel(1).toString()); + Assertions.assertEquals("PetNumbers.Stats(otherNumbers=[7.5, 0.37373737373737376, 3.7373737373737375, 0.18686868686868688, 187.4747474747475], statNumbers={STRENGTH=37.37373737373737, MAGIC_FIND=7.474747474747475, BONUS_ATTACK_SPEED=37.37373737373737})", repository.getConstants().getPetNumbers().get("GOLDEN_DRAGON").get(Rarity.LEGENDARY).interpolatedStatsAtLevel(150).toString()); Assertions.assertEquals(200, repository.getConstants().getPetLevelingData().getPetLevelingBehaviourOverrides().get("GOLDEN_DRAGON").getMaxLevel()); Assertions.assertEquals(200, repository.getConstants().getPetLevelingData().getPetLevelingBehaviourOverrides().get("JADE_DRAGON").getMaxLevel()); } @@ -62,7 +62,7 @@ void testLevelingConstants() { @Test void testMiscConstants() { - Assertions.assertEquals(300, repository.getConstants().getMisc().getRainbowNames().size()); + Assertions.assertEquals(210, repository.getConstants().getMisc().getRainbowNames().size()); Assertions.assertEquals("Private Island", repository.getConstants().getMisc().getAreaNames().get("dynamic")); Assertions.assertEquals(12, repository.getConstants().getMisc().getMaxMinionLevel().get("BLAZE_GENERATOR")); Assertions.assertEquals("100000", repository.getConstants().getMisc().getSlayerCost().get(4)); @@ -76,11 +76,11 @@ void testConstants() { Assertions.assertEquals("{magic_find=5.0}", repository.getConstants().getBonuses().getPetRewards(115).toString()); Assertions.assertEquals("{damage_increase=2.0999992, crit_chance=30.0}", repository.getConstants().getBonuses().getAccumulativeLevelingRewards("skill_combat", 60).toString()); Assertions.assertEquals("Optional[PERFECT_AMETHYST_GEM]", repository.getConstants().getParents().getParent("FLAWED_AMETHYST_GEM").toString()); - Assertions.assertEquals("[bane_of_arthropods, cleave, critical, cubism, dragon_hunter, ender_slayer, execute, experience, fire_aspect, first_strike, giant_killer, impaling, knockback, lethality, life_steal, looting, luck, mana_steal, PROSECUTE, scavenger, sharpness, smite, syphon, titan_killer, thunderlord, thunderbolt, triple_strike, vampirism, venomous, vicious, ultimate_one_for_all, ultimate_soul_eater, ultimate_chimera, ultimate_combo, ultimate_swarm, ultimate_wise, smoldering, ultimate_inferno, ultimate_fatal_tempo, tabasco, champion, divine_gift]", repository.getConstants().getEnchants().getAvailableEnchants("SWORD").toString()); - Assertions.assertEquals("[bane_of_arthropods, smite, ultimate_one_for_all]", repository.getConstants().getEnchants().getConflictingEnchants("sharpness").toString()); - Assertions.assertEquals("EssenceCosts.EssenceCost(type=Crimson, essenceCosts={1=170, 2=190, 3=215, 4=240, 5=270, 6=300, 7=340, 8=390, 9=440, 10=500}, itemCosts={4=[SKYBLOCK_COIN:10000], 5=[SKYBLOCK_COIN:25000], 6=[SKYBLOCK_COIN:50000], 7=[SKYBLOCK_COIN:100000], 8=[HEAVY_PEARL:3, SKYBLOCK_COIN:250000], 9=[HEAVY_PEARL:4, SKYBLOCK_COIN:500000], 10=[HEAVY_PEARL:5, SKYBLOCK_COIN:1000000]})", repository.getConstants().getEssenceCost().getCosts().get("HOT_CRIMSON_HELMET").toString()); - Assertions.assertEquals("Coordinate(x=138, y=66, z=129)", repository.getConstants().getFairySouls().getSoulLocations().get("hub").get(0).toString()); - Assertions.assertEquals(266, repository.getConstants().getFairySouls().getMaxSouls()); + Assertions.assertEquals("[bane_of_arthropods, cleave, critical, cubism, dragon_hunter, ender_slayer, execute, experience, fire_aspect, first_strike, giant_killer, impaling, knockback, lethality, life_steal, looting, luck, mana_steal, PROSECUTE, scavenger, sharpness, smite, syphon, titan_killer, thunderlord, thunderbolt, triple_strike, vampirism, venomous, vicious, ultimate_one_for_all, ultimate_soul_eater, ultimate_chimera, ultimate_combo, ultimate_swarm, ultimate_wise, smoldering, ultimate_inferno, ultimate_fatal_tempo, tabasco, champion, divine_gift, magmarizer]", repository.getConstants().getEnchants().getAvailableEnchants("SWORD").toString()); + Assertions.assertEquals("[ultimate_one_for_all]", repository.getConstants().getEnchants().getConflictingEnchants("sharpness").toString()); + Assertions.assertEquals("EssenceCosts.EssenceCost(type=Crimson, essenceCosts={1=170, 2=190, 3=215, 4=240, 5=270, 6=300, 7=340, 8=390, 9=440, 10=500}, itemCosts={4=[SKYBLOCK_COIN:10000], 5=[SKYBLOCK_COIN:25000], 6=[SKYBLOCK_COIN:50000], 7=[SKYBLOCK_COIN:100000], 8=[SKYBLOCK_COIN:250000, HEAVY_PEARL:3], 9=[SKYBLOCK_COIN:500000, HEAVY_PEARL:4], 10=[SKYBLOCK_COIN:1000000, HEAVY_PEARL:5]})", repository.getConstants().getEssenceCost().getCosts().get("HOT_CRIMSON_HELMET").toString()); + Assertions.assertEquals("Coordinate(x=-233, y=86, z=84)", repository.getConstants().getFairySouls().getSoulLocations().get("hub").get(0).toString()); + Assertions.assertEquals(273, repository.getConstants().getFairySouls().getMaxSouls()); } @Test @@ -95,7 +95,7 @@ void testRecipes() { Assertions.assertEquals("[NEUIngredient{TITANIUM_DRILL_4:1.000000}, NEUIngredient{SKYBLOCK_COIN:50000000.000000}, NEUIngredient{DIVAN_ALLOY:1.000000}]", ((NEUForgeRecipe) recipes.getRecipes().get("DIVAN_DRILL").stream().filter(NEUForgeRecipe.class::isInstance).findAny().get()).getInputs().toString()); Assertions.assertEquals(864000, ((NEUKatUpgradeRecipe) recipes.getRecipes().get("BAL;4").stream().filter(NEUKatUpgradeRecipe.class::isInstance).findAny().get()).getSeconds()); - Assertions.assertEquals("[x8-15, x10-18, x1-2, x2-3, x6-17, x3-5, x10-20, x16-22, x2-3, x8-15, x8-15, x1-2, x3-4, x0-2, x10-20, x0-2, x10-20, x5-6, x0-6, x10-60, x0-6, x10-60, x30-32, x8-13, x2-3, x20-30, x32-44, x2-4, x2-5, x20-35, x0-2, x1-10, x3-6, x1-2, x2-3, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x1-2, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x1-2, x2-3, x2-3, x1-2, x1-2, x1-2, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x20-30, x4-7, x8-15, x1-3, x1-3, x1-2, x1-2, x2-3, x20-35, x0-2, x5-9, x1-2, x1-2, x1-2, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x1-2, x1-3, x8-15, x8-15, x16-18, x20-35, x0-2, x1, x1-10, x0-2, §a20%, §a10%, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x20-30, x1-3, x6-9, x35-55, x3-5, x4-8, x2-4, x2-3, x20-35, x0-2, x2-3, x2-4, x1-4, x1-2, x8-15, x8-15, 5% per Hit, 5% per Hit, 4.5% per Hit, 0.0126% per Hit, 0.0054% per Hit, x1-2, x2-3, x2-3, x8-15, x8-15, x1-2, x2-4, x2-4, x20-35, x0-2, x8-11, x1-2, x1-2, x1-2, x2, x1-2, x12-15, x2-3, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x1-2, x2-4, x1-2, x2-4, x32-44, x3-5, x1-2, x5-7, x4-5, x20-30, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, x1-2, x1-2, x1-2, x1-2, x2-3, x10-17, 100% + 65% per hit, 100% + 25% per hit, 10% + 10% per hit, x5, x1-2, x1-2, x1-2, x10-22, 20% per hit, x2-3, x15-27, x18-41]", repository.getItems().getItems().values().stream() + Assertions.assertEquals("[.05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, §a20%, §a10%, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, 5% per Hit, 5% per Hit, 4.5% per Hit, 0.0126% per Hit, 0.0054% per Hit, .97%, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, .05% per Summoning Eye, .01% per Summoning Eye, 2% per Summoning Eye, 3% per Summoning Eye, 100% + 65% per hit, 100% + 25% per hit, 10% + 10% per hit, 20% per hit]", repository.getItems().getItems().values().stream() .flatMap(it -> it.getRecipes().stream()) .filter(NEUMobDropRecipe.class::isInstance) .flatMap(it -> ((NEUMobDropRecipe) it).getDrops().stream())