From 9e84b82fb63ed4362263227c619bd92188c394fb Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Tue, 16 Jun 2026 02:09:30 -0600 Subject: [PATCH 01/14] remove unnecessary enemy stuff --- data/in/master.json | 734 -------------------------------------------- 1 file changed, 734 deletions(-) diff --git a/data/in/master.json b/data/in/master.json index d7245ff..976da8d 100644 --- a/data/in/master.json +++ b/data/in/master.json @@ -21,740 +21,6 @@ "modes": [ "linear", "open" ], "defaultMode": "open", "dungeons": [ "cold-dng", "heat-dng", "shock-dng", "wave-dng", "tree-dng" ], - "enemyData": { - "regularEnemies": { - "hedgehog": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "hedgehog-alt": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "meerkat": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1.5 - }, - "meerkat-alt": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "buffalo": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3.5 - }, - "buffalo-alt": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3.5 - }, - "frobbit": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "gray-frobbit": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "seahorse": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1.5 - }, - "penguin": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2 - }, - "goat": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "snowman": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 5 - }, - "mine-coldbug": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 0.8 - }, - "mine-runbot": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "mine-diggingbot": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 6 - }, - "mine-kamikatze": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "heat.scorpion": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2 - }, - "heat.scorpion-alt": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2 - }, - "heat.sandshark": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2.5 - }, - "heat.sandworm": { - "elements": [ - 1, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 5.5 - }, - "heat.drillertoise": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "heat.volturbine": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "heat.moth": { - "elements": [ - -1, - 0, - 0, - 0 - ], - "mapElements": "pole", - "endurance": 1.5 - }, - "heat.heat-golem": { - "elements": [ - 0, - 1, - 0, - 0 - ], - "mapElements": "waterBubblePanel", - "endurance": 6 - }, - "heat.jellyfish": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "heat.darth-moth": { - "elements": [ - -1, - 0, - 0, - 0 - ], - "mapElements": "pole", - "endurance": 3 - }, - "autumn-fall.buffalo-fall": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1.5 - }, - "autumn-fall.hedgehog-fall": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "autumn-fall.meerkat-fall": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1.5 - }, - "autumn-fall.seahorse-fall": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1.5 - }, - "jungle.shockcat": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1.5 - }, - "jungle.parrot": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2.5 - }, - "jungle.sloth": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 6 - }, - "jungle.fish": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2.5 - }, - "jungle.plant": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2 - }, - "jungle.blob": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "jungle.blob-wave": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "jungle.powerplant": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 4 - }, - "jungle.chicken": { - "elements": [ - 0, - 0, - 0, - 1 - ], - "mapElements": "waveTeleport", - "endurance": 3 - }, - "jungle.octopus": { - "elements": [ - 0, - 0, - 1, - 0 - ], - "mapElements": "magnet", - "endurance": 3 - }, - "jungle.blueray": { - "elements": [ - 0, - 0, - 1, - 0 - ], - "mapElements": "teslaCoil", - "endurance": 4 - }, - "jungle.ghost": { - "elements": [ - 0, - 0, - 0, - 1 - ], - "mapElements": "compressor", - "endurance": 4 - }, - "forest.bug-samurai-heat": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3.5 - }, - "forest.bug-samurai-shock": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3.5 - }, - "forest.panda": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 5.5 - }, - "forest.spider": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "arid.virus-cold": { - "elements": [ - 1, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2 - }, - "arid.virus-heat": { - "elements": [ - 0, - 1, - 0, - 0 - ], - "mapElements": "", - "endurance": 2 - }, - "arid.virus-neutral": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "arid.rhino": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 5 - }, - "arid.shredder-cold": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 4 - }, - "arid.shredder-heat": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 4 - }, - "arid.shredder-shock": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 4 - }, - "arid.shredder-wave": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 4 - }, - "arid.dice-mage": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 5 - }, - "beach.sea-star-cold": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "beach.sea-star-heat": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "beach.sea-star-shock": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "beach.sea-star-wave": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "beach.fish": { - "elements": [ - 0, - 1, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "beach.turtle-man": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2.5 - }, - "beach.worm": { - "elements": [ - 1, - 1, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "final.crystal-cold": { - "elements": [ - 1, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "final.crystal-heat": { - "elements": [ - 0, - 1, - 0, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "final.crystal-shock": { - "elements": [ - 0, - 0, - 0, - 1 - ], - "mapElements": "", - "endurance": 1 - }, - "final.crystal-wave": { - "elements": [ - 0, - 0, - 1, - 0 - ], - "mapElements": "", - "endurance": 1 - }, - "final.colibri": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 2.5 - }, - "final.ele-pillar-cold": { - "elements": [ - 1, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "final.ele-pillar-heat": { - "elements": [ - 0, - 1, - 0, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "final.ele-pillar-shock": { - "elements": [ - 0, - 0, - 0, - 1 - ], - "mapElements": "", - "endurance": 3 - }, - "final.ele-pillar-wave": { - "elements": [ - 0, - 0, - 1, - 0 - ], - "mapElements": "", - "endurance": 3 - }, - "guest.firespirit": { - "elements": [ - 0, - 1, - 0, - 0 - ], - "mapElements": "", - "endurance": 6 - }, - "guest.honeybear": { - "elements": [ - 0, - 0, - 0, - 0 - ], - "mapElements": "", - "endurance": 6 - } - } - }, "mwconstants": { "BASE_ID": 3235824000, "BASE_NORMAL_LOCATION_ID": 3235824100 From 2cf02f7310397b8b3e209cc9978b5838f4df30d8 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Tue, 16 Jun 2026 02:09:42 -0600 Subject: [PATCH 02/14] begin adding enemy data --- data/in/enemies.json | 859 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 859 insertions(+) create mode 100644 data/in/enemies.json diff --git a/data/in/enemies.json b/data/in/enemies.json new file mode 100644 index 0000000..a7aa485 --- /dev/null +++ b/data/in/enemies.json @@ -0,0 +1,859 @@ +{ + "enemies": [ + { + "name": "Hedgehag", + "id": "hedgehog", + "level": 4, + "region": { + "open": "open3" + }, + "boosted": { + "level": 55, + "booster": "Rise Booster" + }, + "area": "autumn-area" + }, + { + "name": "Rockin' Hillkat", + "id": "meerkat", + "level": 5, + "region": { + "open": "open3" + }, + "boosted": { + "level": 55, + "booster": "Rise Booster" + }, + "area": "autumn-area" + }, + { + "name": "Mad Bovine", + "id": "buffalo", + "level": 6, + "region": { + "open": "open3" + }, + "boosted": { + "level": 56, + "booster": "Rise Booster" + }, + "area": "autumn-area" + }, + { + "name": "Old Hedgehag", + "id": "hedgehog-alt", + "level": 9, + "region": { + "open": "open3" + }, + "boosted": { + "level": 57, + "booster": "Rise Booster" + }, + "area": "autumn-area" + }, + { + "name": "Flamin' Hillkat", + "id": "meerkat-alt", + "level": 10, + "region": { + "open": "open3" + }, + "boosted": { + "level": 57, + "booster": "Rise Booster" + }, + "area": "autumn-area" + }, + { + "name": "Red Eyed Bovine", + "id": "buffalo-alt", + "level": 12, + "region": { + "open": "open3" + }, + "boosted": { + "level": 58, + "booster": "Rise Booster" + }, + "area": "autumn-area" + }, + + { + "name": "Young Frobbit", + "id": "gray-frobbit", + "level": 13, + "region": { + "open": "open3" + }, + "boosted": { + "level": 58, + "booster": "Trail Booster" + }, + "area": "bergen-trails" + }, + { + "name": "White Frobbit", + "id": "frobbit", + "level": 15, + "region": { + "open": "open3" + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "bergen-trails" + }, + { + "name": "Seafly", + "id": "seahorse", + "level": 16, + "region": { + "open": "open3" + }, + "boosted": { + "level": 59, + "booster": "Trail Booster" + }, + "area": "bergen-trails" + }, + { + "name": "Pengpeng", + "id": "penguin", + "level": 17, + "region": { + "open": "open3" + }, + "boosted": { + "level": 59, + "booster": "Trail Booster" + }, + "area": "bergen-trails" + }, + { + "name": "Horny Goat", + "id": "goat", + "level": 17, + "region": { + "open": "open3" + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "bergen-trails" + }, + { + "name": "Karotto", + "id": "snowman", + "level": 18, + "region": { + "open": "open3" + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "bergen-trails" + }, + + { + "name": "Fleazer", + "id": "mine-coldbug", + "level": 18, + "firstEncounter": { + "region": { + "open": "open4.2" + } + }, + "grindAccess": { + "region": { + "open": "open4.4" + } + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "cold-dng" + }, + { + "name": "Carritrich", + "id": "mine-runbot", + "level": 18, + "firstEncounter": { + "region": { + "open": "open4.2" + } + }, + "grindAccess": { + "region": { + "open": "open4.4" + } + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "cold-dng" + }, + { + "name": "Kamikatze", + "id": "mine-kamikatze", + "level": 18, + "firstEncounter": { + "region": { + "open": "open4.2" + } + }, + "grindAccess": { + "region": { + "open": "open4.4" + } + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "cold-dng" + }, + { + "name": "Digmo", + "id": "mine-diggingbot", + "level": 19, + "firstEncounter": { + "region": { + "open": "open4.4" + } + }, + "grindAccess": { + "region": { + "open": "open4.6" + } + }, + "boosted": { + "level": 60, + "booster": "Trail Booster" + }, + "area": "cold-dng" + }, + + { + "name": "Pinceron", + "id": "heat.scorpion", + "level": 23, + "region": { + "open": "open5" + }, + "boosted": { + "level": 61, + "booster": "Valley Booster" + }, + "area": "heat-area" + }, + { + "name": "Sharkster", + "id": "heat.sandshark", + "level": 24, + "region": { + "open": "open5" + }, + "boosted": { + "level": 61, + "booster": "Valley Booster" + }, + "area": "heat-area" + }, + { + "name": "Vulturbine", + "id": "heat.volturbine", + "level": 24, + "region": { + "open": "open5" + }, + "boosted": { + "level": 61, + "booster": "Valley Booster" + }, + "area": "heat-area" + }, + { + "name": "Drillertoise", + "id": "heat.drillertoise", + "level": 25, + "region": { + "open": "open5" + }, + "boosted": { + "level": 61, + "booster": "Valley Booster" + }, + "area": "heat-area" + }, + { + "name": "Tim", + "id": "heat.sandworm", + "level": 25, + "region": { + "open": "open5" + }, + "boosted": { + "level": 62, + "booster": "Valley Booster" + }, + "area": "heat-area" + }, + { + "name": "Boss Pincer", + "id": "heat.scorpion-alt", + "level": 26, + "region": { + "open": "open5" + }, + "boosted": { + "level": 62, + "booster": "Valley Booster" + }, + "area": "heat-area" + }, + + { + "name": "Trijelly", + "id": "heat.jellyfish", + "level": 27, + "firstEncounter": { + "region": { + "open": "open7.2" + } + }, + "grindAccess": { + "region": { + "open": "open7.6" + } + }, + "boosted": { + "level": 62, + "booster": "Valley Booster" + }, + "area": "heat-dng" + }, + { + "name": "Pada Moth", + "id": "heat.moth", + "level": 27, + "firstEncounter": { + "region": { + "open": "open7.2" + } + }, + "grindAccess": { + "region": { + "open": "open7.6" + } + }, + "boosted": { + "level": 62, + "booster": "Valley Booster" + }, + "area": "heat-dng" + }, + { + "name": "Darth Moth", + "id": "heat.darth-moth", + "level": 28, + "firstEncounter": { + "region": { + "open": "open7.6" + } + }, + "grindAccess": { + "region": { + "open": "open7.7" + } + }, + "boosted": { + "level": 62, + "booster": "Valley Booster" + }, + "area": "heat-dng" + }, + { + "name": "Magmanizer", + "id": "heat.heat-golem", + "level": 28, + "firstEncounter": { + "region": { + "open": "open7.5" + } + }, + "grindAccess": { + "region": { + "open": "open7.6" + } + }, + "boosted": { + "level": 62, + "booster": "Valley Booster" + }, + "area": "heat-dng" + }, + + { + "name": "Radical Hedgehag", + "id": "autumn-fall.hedgehog-fall", + "level": 32, + "region": { + "open": "open8" + }, + "boosted": { + "level": 62, + "booster": "Fall Booster" + }, + "area": "autumn-fall" + }, + { + "name": "Chillin' Hillkat", + "id": "autumn-fall.meerkat-fall", + "level": 34, + "region": { + "open": "open8" + }, + "boosted": { + "level": 62, + "booster": "Fall Booster" + }, + "area": "autumn-fall" + }, + { + "name": "Fallfly", + "id": "autumn-fall.seahorse-fall", + "level": 35, + "region": { + "open": "open8" + }, + "boosted": { + "level": 62, + "booster": "Fall Booster" + }, + "area": "autumn-fall" + }, + { + "name": "Ivory Bovine", + "id": "autumn-fall.buffalo-fall", + "level": 36, + "region": { + "open": "open8" + }, + "boosted": { + "level": 62, + "booster": "Fall Booster" + }, + "area": "autumn-fall" + }, + + { + "name": "Neutral Virus", + "id": "arid.virus-neutral", + "level": 38, + "region": { + "open": "open16" + }, + "area": "arid" + }, + { + "name": "Heat Virus", + "id": "arid.virus-heat", + "level": 38, + "region": { + "open": "open16" + }, + "area": "arid" + }, + { + "name": "Cold Virus", + "id": "arid.virus-cold", + "level": 38, + "region": { + "open": "open16" + }, + "area": "arid" + }, + + { + "name": "Argeby", + "id": "jungle.plant", + "level": 37, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "jungle" + }, + { + "name": "Gelleric", + "id": "jungle.blob", + "level": 38, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "jungle" + }, + { + "name": "Papagun", + "id": "jungle.parrot", + "level": 38, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "jungle" + }, + { + "name": "Angler", + "id": "jungle.fish", + "level": 39, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "jungle" + }, + { + "name": "Shokat", + "id": "jungle.shockcat", + "level": 40, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "jungle" + }, + { + "name": "Behesloth", + "id": "jungle.sloth", + "level": 42, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "jungle" + }, + + { + "name": "Jelleric", + "id": "jungle.blob-wave", + "level": 42, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "wave-dng" + }, + { + "name": "Ocubepus", + "id": "jungle.octopus", + "level": 42, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "wave-dng" + }, + { + "name": "Blue Ray", + "id": "jungle.blueray", + "level": 44, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 64, + "booster": "Garden Booster" + }, + "area": "wave-dng" + }, + + { + "name": "Rob0ck", + "id": "jungle.chicken", + "level": 42, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 63, + "booster": "Garden Booster" + }, + "area": "shock-dng" + }, + { + "name": "Powerplant", + "id": "jungle.powerplant", + "level": 43, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 64, + "booster": "Garden Booster" + }, + "area": "shock-dng" + }, + { + "name": "Ectovolt", + "id": "jungle.ghost", + "level": 44, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 64, + "booster": "Garden Booster" + }, + "area": "shock-dng" + }, + + { + "name": "Sun Beetle", + "id": "forest.bug-samurai-heat", + "level": 51, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 65, + "booster": "Ridge Booster" + }, + "area": "forest" + }, + { + "name": "Moon Beetle", + "id": "forest.bug-samurai-shock", + "level": 51, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 65, + "booster": "Ridge Booster" + }, + "area": "forest" + }, + { + "name": "Pandza", + "id": "forest.panda", + "level": 51, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 65, + "booster": "Ridge Booster" + }, + "area": "forest" + }, + { + "name": "Aranetarda", + "id": "forest.spider", + "level": 52, + "region": { + "open": "openXX" + }, + "boosted": { + "level": 65, + "booster": "Ridge Booster" + }, + "area": "forest" + }, + + { + "name": "Echinoignis", + "id": "beach.sea-star-heat", + "level": 66, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "Echinonix", + "id": "beach.sea-star-cold", + "level": 66, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "Echinofulgur", + "id": "beach.sea-star-shock", + "level": 66, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "Echinofluctus", + "id": "beach.sea-star-wave", + "level": 66, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "Salteric", + "id": "beach.special.blob-salt", + "level": 67, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "Balooneer", + "id": "beach.fish", + "level": 68, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "K'im", + "id": "beach.worm", + "level": 70, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + { + "name": "Trigenbu", + "id": "beach.turtle-man", + "level": 71, + "region": { + "open": "openXX" + }, + "area": "beach" + }, + + { + "name": "Heat Crystalid", + "id": "final.crystal-heat", + "level": 71, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Cold Crystalid", + "id": "final.crystal-cold", + "level": 71, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Shock Crystalid", + "id": "final.crystal-shock", + "level": 71, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Wave Crystalid", + "id": "final.crystal-wave", + "level": 71, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Hummagnum", + "id": "final.colibri", + "level": 72, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Mizree", + "id": "guest.firespirit", + "level": 73, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Beearbot", + "id": "guest.honeybear", + "level": 73, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Heat Statue", + "id": "final.ele-pillar-heat", + "level": 73, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Cold Statue", + "id": "final.ele-pillar-cold", + "level": 73, + "region": { + "open": "openXX" + }, + "area": "final-dng" + }, + { + "name": "Shock Statue", + "id": "final.ele-pillar-shock", + "level": 73, + "region": { + "open": "openXX" + }, + "area": "final-dng" + } + ] +} From 4b32ec308624afc31b0833925654979e7f62a07c Mon Sep 17 00:00:00 2001 From: Juanba Date: Tue, 16 Jun 2026 07:14:50 -0300 Subject: [PATCH 03/14] add missing enemies --- data/in/enemies.json | 98 ++++++++++++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 35 deletions(-) diff --git a/data/in/enemies.json b/data/in/enemies.json index a7aa485..0dee326 100644 --- a/data/in/enemies.json +++ b/data/in/enemies.json @@ -485,7 +485,7 @@ "id": "jungle.plant", "level": 37, "region": { - "open": "openXX" + "open": "open10" }, "boosted": { "level": 63, @@ -498,7 +498,7 @@ "id": "jungle.blob", "level": 38, "region": { - "open": "openXX" + "open": "open10" }, "boosted": { "level": 63, @@ -511,7 +511,7 @@ "id": "jungle.parrot", "level": 38, "region": { - "open": "openXX" + "open": "open10" }, "boosted": { "level": 63, @@ -524,7 +524,7 @@ "id": "jungle.fish", "level": 39, "region": { - "open": "openXX" + "open": "open10.Grove" }, "boosted": { "level": 63, @@ -536,8 +536,15 @@ "name": "Shokat", "id": "jungle.shockcat", "level": 40, - "region": { - "open": "openXX" + "firstEncounter": { + "region": { + "open": "open10" + } + }, + "grindAccess": { + "region": { + "open": "open10.Mid" + } }, "boosted": { "level": 63, @@ -550,7 +557,7 @@ "id": "jungle.sloth", "level": 42, "region": { - "open": "openXX" + "open": "open10.Infested" }, "boosted": { "level": 63, @@ -563,8 +570,15 @@ "name": "Jelleric", "id": "jungle.blob-wave", "level": 42, - "region": { - "open": "openXX" + "firstEncounter": { + "region": { + "open": "open10.Left" + } + }, + "grindAccess": { + "region": { + "open": "open14.1" + } }, "boosted": { "level": 63, @@ -577,7 +591,7 @@ "id": "jungle.octopus", "level": 42, "region": { - "open": "openXX" + "open": "open14.1" }, "boosted": { "level": 63, @@ -590,7 +604,7 @@ "id": "jungle.blueray", "level": 44, "region": { - "open": "openXX" + "open": "open14.1" }, "boosted": { "level": 64, @@ -604,7 +618,7 @@ "id": "jungle.chicken", "level": 42, "region": { - "open": "openXX" + "open": "open10.Right" }, "boosted": { "level": 63, @@ -616,8 +630,15 @@ "name": "Powerplant", "id": "jungle.powerplant", "level": 43, - "region": { - "open": "openXX" + "firstEncounter": { + "region": { + "open": "open10.Right" + } + }, + "grindAccess": { + "region": { + "open": "open13.1" + } }, "boosted": { "level": 64, @@ -629,8 +650,15 @@ "name": "Ectovolt", "id": "jungle.ghost", "level": 44, - "region": { - "open": "openXX" + "firstEncounter": { + "region": { + "open": "open10.Right" + } + }, + "grindAccess": { + "region": { + "open": "open13.1" + } }, "boosted": { "level": 64, @@ -644,7 +672,7 @@ "id": "forest.bug-samurai-heat", "level": 51, "region": { - "open": "openXX" + "open": "open16" }, "boosted": { "level": 65, @@ -657,7 +685,7 @@ "id": "forest.bug-samurai-shock", "level": 51, "region": { - "open": "openXX" + "open": "open16" }, "boosted": { "level": 65, @@ -670,7 +698,7 @@ "id": "forest.panda", "level": 51, "region": { - "open": "openXX" + "open": "open16" }, "boosted": { "level": 65, @@ -683,7 +711,7 @@ "id": "forest.spider", "level": 52, "region": { - "open": "openXX" + "open": "open16" }, "boosted": { "level": 65, @@ -697,7 +725,7 @@ "id": "beach.sea-star-heat", "level": 66, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -706,7 +734,7 @@ "id": "beach.sea-star-cold", "level": 66, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -715,7 +743,7 @@ "id": "beach.sea-star-shock", "level": 66, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -724,7 +752,7 @@ "id": "beach.sea-star-wave", "level": 66, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -733,7 +761,7 @@ "id": "beach.special.blob-salt", "level": 67, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -742,7 +770,7 @@ "id": "beach.fish", "level": 68, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -751,7 +779,7 @@ "id": "beach.worm", "level": 70, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -760,7 +788,7 @@ "id": "beach.turtle-man", "level": 71, "region": { - "open": "openXX" + "open": "openDLC_Beach" }, "area": "beach" }, @@ -770,7 +798,7 @@ "id": "final.crystal-heat", "level": 71, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, @@ -779,7 +807,7 @@ "id": "final.crystal-cold", "level": 71, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, @@ -788,7 +816,7 @@ "id": "final.crystal-shock", "level": 71, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, @@ -797,7 +825,7 @@ "id": "final.crystal-wave", "level": 71, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, @@ -806,7 +834,7 @@ "id": "final.colibri", "level": 72, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, @@ -815,7 +843,7 @@ "id": "guest.firespirit", "level": 73, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, @@ -824,7 +852,7 @@ "id": "guest.honeybear", "level": 73, "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" }, "area": "final-dng" }, From eb13e294738762dafb23b60c337d459d30da6bbd Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Thu, 25 Jun 2026 00:15:56 -0600 Subject: [PATCH 04/14] reorganize and relabel enemies --- data/in/dlc/enemies.json | 140 +++++++++++++++++++ data/in/dlc/master.json | 3 +- data/in/enemies.json | 290 +++++++++------------------------------ data/in/master.json | 1 + 4 files changed, 206 insertions(+), 228 deletions(-) create mode 100644 data/in/dlc/enemies.json diff --git a/data/in/dlc/enemies.json b/data/in/dlc/enemies.json new file mode 100644 index 0000000..8872af4 --- /dev/null +++ b/data/in/dlc/enemies.json @@ -0,0 +1,140 @@ +{ + "enemies": { + "Echinoignis": { + "name": "Echinoignis", + "id": "beach.sea-star-heat", + "level": 66, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "Echinonix": { + "name": "Echinonix", + "id": "beach.sea-star-cold", + "level": 66, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "Echinofulgur": { + "name": "Echinofulgur", + "id": "beach.sea-star-shock", + "level": 66, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "Echinofluctus": { + "name": "Echinofluctus", + "id": "beach.sea-star-wave", + "level": 66, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "Salteric": { + "name": "Salteric", + "id": "beach.special.blob-salt", + "level": 67, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "Balooneer": { + "name": "Balooneer", + "id": "beach.fish", + "level": 68, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "K'im": { + "name": "K'im", + "id": "beach.worm", + "level": 70, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + "Trigenbu": { + "name": "Trigenbu", + "id": "beach.turtle-man", + "level": 71, + "region": { + "open": "openDLC_Beach" + }, + "area": "beach" + }, + + "Heat Crystalid": { + "name": "Heat Crystalid", + "id": "final.crystal-heat", + "level": 71, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + }, + "Cold Crystalid": { + "name": "Cold Crystalid", + "id": "final.crystal-cold", + "level": 71, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + }, + "Shock Crystalid": { + "name": "Shock Crystalid", + "id": "final.crystal-shock", + "level": 71, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + }, + "Wave Crystalid": { + "name": "Wave Crystalid", + "id": "final.crystal-wave", + "level": 71, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + }, + "Hummagnum": { + "name": "Hummagnum", + "id": "final.colibri", + "level": 72, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + }, + "Mizree": { + "name": "Mizree", + "id": "guest.firespirit", + "level": 73, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + }, + "Beearbot": { + "name": "Beearbot", + "id": "guest.honeybear", + "level": 73, + "region": { + "open": "openDLC_DungeonEntry" + }, + "area": "final-dng" + } + } +} diff --git a/data/in/dlc/master.json b/data/in/dlc/master.json index b403dcf..15341f4 100644 --- a/data/in/dlc/master.json +++ b/data/in/dlc/master.json @@ -7,13 +7,14 @@ "regions.json", "shops.json", "item-pools.json", + "enemies.json", "prog-items/master.json" ], "_comment": "Checks that are found only in DLC areas", "dungeons": [ "final-dng" ], "keyringItems": [ "Ku'lero Key" ], "_global": { - "/botanics|cutscenes|chests|quests|regions|item-pools|shops/": { + "/botanics|cutscenes|chests|quests|regions|item-pools|shops|enemies/": { "*": { "metadata": { "dlc": true diff --git a/data/in/enemies.json b/data/in/enemies.json index 0dee326..760c08e 100644 --- a/data/in/enemies.json +++ b/data/in/enemies.json @@ -1,6 +1,6 @@ { - "enemies": [ - { + "enemies": { + "Hedgehag": { "name": "Hedgehag", "id": "hedgehog", "level": 4, @@ -13,7 +13,7 @@ }, "area": "autumn-area" }, - { + "Rockin' Hillkat": { "name": "Rockin' Hillkat", "id": "meerkat", "level": 5, @@ -26,7 +26,7 @@ }, "area": "autumn-area" }, - { + "Mad Bovine": { "name": "Mad Bovine", "id": "buffalo", "level": 6, @@ -39,7 +39,7 @@ }, "area": "autumn-area" }, - { + "Old Hedgehag": { "name": "Old Hedgehag", "id": "hedgehog-alt", "level": 9, @@ -52,7 +52,7 @@ }, "area": "autumn-area" }, - { + "Flamin' Hillkat": { "name": "Flamin' Hillkat", "id": "meerkat-alt", "level": 10, @@ -65,7 +65,7 @@ }, "area": "autumn-area" }, - { + "Red Eyed Bovine": { "name": "Red Eyed Bovine", "id": "buffalo-alt", "level": 12, @@ -79,7 +79,7 @@ "area": "autumn-area" }, - { + "Young Frobbit": { "name": "Young Frobbit", "id": "gray-frobbit", "level": 13, @@ -92,7 +92,7 @@ }, "area": "bergen-trails" }, - { + "White Frobbit": { "name": "White Frobbit", "id": "frobbit", "level": 15, @@ -105,7 +105,7 @@ }, "area": "bergen-trails" }, - { + "Seafly": { "name": "Seafly", "id": "seahorse", "level": 16, @@ -118,7 +118,7 @@ }, "area": "bergen-trails" }, - { + "Pengpeng": { "name": "Pengpeng", "id": "penguin", "level": 17, @@ -131,7 +131,7 @@ }, "area": "bergen-trails" }, - { + "Horny Goat": { "name": "Horny Goat", "id": "goat", "level": 17, @@ -144,7 +144,7 @@ }, "area": "bergen-trails" }, - { + "Karotto": { "name": "Karotto", "id": "snowman", "level": 18, @@ -158,7 +158,7 @@ "area": "bergen-trails" }, - { + "Fleazer": { "name": "Fleazer", "id": "mine-coldbug", "level": 18, @@ -167,7 +167,7 @@ "open": "open4.2" } }, - "grindAccess": { + "grind": { "region": { "open": "open4.4" } @@ -178,7 +178,7 @@ }, "area": "cold-dng" }, - { + "Carritrich": { "name": "Carritrich", "id": "mine-runbot", "level": 18, @@ -187,7 +187,7 @@ "open": "open4.2" } }, - "grindAccess": { + "grind": { "region": { "open": "open4.4" } @@ -198,7 +198,7 @@ }, "area": "cold-dng" }, - { + "Kamikatze": { "name": "Kamikatze", "id": "mine-kamikatze", "level": 18, @@ -207,7 +207,7 @@ "open": "open4.2" } }, - "grindAccess": { + "grind": { "region": { "open": "open4.4" } @@ -218,7 +218,7 @@ }, "area": "cold-dng" }, - { + "Digmo": { "name": "Digmo", "id": "mine-diggingbot", "level": 19, @@ -227,7 +227,7 @@ "open": "open4.4" } }, - "grindAccess": { + "grind": { "region": { "open": "open4.6" } @@ -239,7 +239,7 @@ "area": "cold-dng" }, - { + "Pinceron": { "name": "Pinceron", "id": "heat.scorpion", "level": 23, @@ -252,7 +252,7 @@ }, "area": "heat-area" }, - { + "Sharkster": { "name": "Sharkster", "id": "heat.sandshark", "level": 24, @@ -265,7 +265,7 @@ }, "area": "heat-area" }, - { + "Vulturbine": { "name": "Vulturbine", "id": "heat.volturbine", "level": 24, @@ -278,7 +278,7 @@ }, "area": "heat-area" }, - { + "Drillertoise": { "name": "Drillertoise", "id": "heat.drillertoise", "level": 25, @@ -291,7 +291,7 @@ }, "area": "heat-area" }, - { + "Tim": { "name": "Tim", "id": "heat.sandworm", "level": 25, @@ -304,7 +304,7 @@ }, "area": "heat-area" }, - { + "Boss Pincer": { "name": "Boss Pincer", "id": "heat.scorpion-alt", "level": 26, @@ -318,7 +318,7 @@ "area": "heat-area" }, - { + "Trijelly": { "name": "Trijelly", "id": "heat.jellyfish", "level": 27, @@ -327,7 +327,7 @@ "open": "open7.2" } }, - "grindAccess": { + "grind": { "region": { "open": "open7.6" } @@ -338,7 +338,7 @@ }, "area": "heat-dng" }, - { + "Pada Moth": { "name": "Pada Moth", "id": "heat.moth", "level": 27, @@ -347,7 +347,7 @@ "open": "open7.2" } }, - "grindAccess": { + "grind": { "region": { "open": "open7.6" } @@ -358,7 +358,7 @@ }, "area": "heat-dng" }, - { + "Darth Moth": { "name": "Darth Moth", "id": "heat.darth-moth", "level": 28, @@ -367,7 +367,7 @@ "open": "open7.6" } }, - "grindAccess": { + "grind": { "region": { "open": "open7.7" } @@ -378,7 +378,7 @@ }, "area": "heat-dng" }, - { + "Magmanizer": { "name": "Magmanizer", "id": "heat.heat-golem", "level": 28, @@ -387,7 +387,7 @@ "open": "open7.5" } }, - "grindAccess": { + "grind": { "region": { "open": "open7.6" } @@ -399,7 +399,7 @@ "area": "heat-dng" }, - { + "Radical Hedgehag": { "name": "Radical Hedgehag", "id": "autumn-fall.hedgehog-fall", "level": 32, @@ -412,7 +412,7 @@ }, "area": "autumn-fall" }, - { + "Chillin' Hillkat": { "name": "Chillin' Hillkat", "id": "autumn-fall.meerkat-fall", "level": 34, @@ -425,7 +425,7 @@ }, "area": "autumn-fall" }, - { + "Fallfly": { "name": "Fallfly", "id": "autumn-fall.seahorse-fall", "level": 35, @@ -438,7 +438,7 @@ }, "area": "autumn-fall" }, - { + "Ivory Bovine": { "name": "Ivory Bovine", "id": "autumn-fall.buffalo-fall", "level": 36, @@ -452,7 +452,7 @@ "area": "autumn-fall" }, - { + "Neutral Virus": { "name": "Neutral Virus", "id": "arid.virus-neutral", "level": 38, @@ -461,7 +461,7 @@ }, "area": "arid" }, - { + "Heat Virus": { "name": "Heat Virus", "id": "arid.virus-heat", "level": 38, @@ -470,7 +470,7 @@ }, "area": "arid" }, - { + "Cold Virus": { "name": "Cold Virus", "id": "arid.virus-cold", "level": 38, @@ -480,7 +480,7 @@ "area": "arid" }, - { + "Argeby": { "name": "Argeby", "id": "jungle.plant", "level": 37, @@ -493,7 +493,7 @@ }, "area": "jungle" }, - { + "Gelleric": { "name": "Gelleric", "id": "jungle.blob", "level": 38, @@ -506,7 +506,7 @@ }, "area": "jungle" }, - { + "Papagun": { "name": "Papagun", "id": "jungle.parrot", "level": 38, @@ -519,7 +519,7 @@ }, "area": "jungle" }, - { + "Angler": { "name": "Angler", "id": "jungle.fish", "level": 39, @@ -532,7 +532,7 @@ }, "area": "jungle" }, - { + "Shokat": { "name": "Shokat", "id": "jungle.shockcat", "level": 40, @@ -541,7 +541,7 @@ "open": "open10" } }, - "grindAccess": { + "grind": { "region": { "open": "open10.Mid" } @@ -552,7 +552,7 @@ }, "area": "jungle" }, - { + "Behesloth": { "name": "Behesloth", "id": "jungle.sloth", "level": 42, @@ -566,7 +566,7 @@ "area": "jungle" }, - { + "Jelleric": { "name": "Jelleric", "id": "jungle.blob-wave", "level": 42, @@ -575,7 +575,7 @@ "open": "open10.Left" } }, - "grindAccess": { + "grind": { "region": { "open": "open14.1" } @@ -586,7 +586,7 @@ }, "area": "wave-dng" }, - { + "Ocubepus": { "name": "Ocubepus", "id": "jungle.octopus", "level": 42, @@ -599,7 +599,7 @@ }, "area": "wave-dng" }, - { + "Blue Ray": { "name": "Blue Ray", "id": "jungle.blueray", "level": 44, @@ -613,7 +613,7 @@ "area": "wave-dng" }, - { + "Rob0ck": { "name": "Rob0ck", "id": "jungle.chicken", "level": 42, @@ -626,7 +626,7 @@ }, "area": "shock-dng" }, - { + "Powerplant": { "name": "Powerplant", "id": "jungle.powerplant", "level": 43, @@ -635,7 +635,7 @@ "open": "open10.Right" } }, - "grindAccess": { + "grind": { "region": { "open": "open13.1" } @@ -646,7 +646,7 @@ }, "area": "shock-dng" }, - { + "Ectovolt": { "name": "Ectovolt", "id": "jungle.ghost", "level": 44, @@ -655,7 +655,7 @@ "open": "open10.Right" } }, - "grindAccess": { + "grind": { "region": { "open": "open13.1" } @@ -667,7 +667,7 @@ "area": "shock-dng" }, - { + "Sun Beetle": { "name": "Sun Beetle", "id": "forest.bug-samurai-heat", "level": 51, @@ -680,7 +680,7 @@ }, "area": "forest" }, - { + "Moon Beetle": { "name": "Moon Beetle", "id": "forest.bug-samurai-shock", "level": 51, @@ -693,7 +693,7 @@ }, "area": "forest" }, - { + "Pandza": { "name": "Pandza", "id": "forest.panda", "level": 51, @@ -706,7 +706,7 @@ }, "area": "forest" }, - { + "Aranetarda": { "name": "Aranetarda", "id": "forest.spider", "level": 52, @@ -718,170 +718,6 @@ "booster": "Ridge Booster" }, "area": "forest" - }, - - { - "name": "Echinoignis", - "id": "beach.sea-star-heat", - "level": 66, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "Echinonix", - "id": "beach.sea-star-cold", - "level": 66, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "Echinofulgur", - "id": "beach.sea-star-shock", - "level": 66, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "Echinofluctus", - "id": "beach.sea-star-wave", - "level": 66, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "Salteric", - "id": "beach.special.blob-salt", - "level": 67, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "Balooneer", - "id": "beach.fish", - "level": 68, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "K'im", - "id": "beach.worm", - "level": 70, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - { - "name": "Trigenbu", - "id": "beach.turtle-man", - "level": 71, - "region": { - "open": "openDLC_Beach" - }, - "area": "beach" - }, - - { - "name": "Heat Crystalid", - "id": "final.crystal-heat", - "level": 71, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Cold Crystalid", - "id": "final.crystal-cold", - "level": 71, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Shock Crystalid", - "id": "final.crystal-shock", - "level": 71, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Wave Crystalid", - "id": "final.crystal-wave", - "level": 71, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Hummagnum", - "id": "final.colibri", - "level": 72, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Mizree", - "id": "guest.firespirit", - "level": 73, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Beearbot", - "id": "guest.honeybear", - "level": 73, - "region": { - "open": "openDLC_DungeonEntry" - }, - "area": "final-dng" - }, - { - "name": "Heat Statue", - "id": "final.ele-pillar-heat", - "level": 73, - "region": { - "open": "openXX" - }, - "area": "final-dng" - }, - { - "name": "Cold Statue", - "id": "final.ele-pillar-cold", - "level": 73, - "region": { - "open": "openXX" - }, - "area": "final-dng" - }, - { - "name": "Shock Statue", - "id": "final.ele-pillar-shock", - "level": 73, - "region": { - "open": "openXX" - }, - "area": "final-dng" } - ] + } } diff --git a/data/in/master.json b/data/in/master.json index 976da8d..53e5b9c 100644 --- a/data/in/master.json +++ b/data/in/master.json @@ -11,6 +11,7 @@ "botanics.json", "prog-items/master.json", "groups/master.json", + "enemies.json", "dlc/master.json", "vars.json", "item-pools/master.json" From 75fff735550ccebf87238a28befa5443a8b159fd Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Tue, 30 Jun 2026 23:30:17 -0600 Subject: [PATCH 05/14] restructure data and add bosses --- data/in/dlc/enemies/bosses.json | 125 ++++++ .../dlc/{enemies.json => enemies/grind.json} | 0 data/in/dlc/enemies/master.json | 6 + data/in/dlc/master.json | 2 +- data/in/enemies/bosses.json | 367 ++++++++++++++++++ data/in/{enemies.json => enemies/grind.json} | 0 data/in/enemies/master.json | 6 + data/in/master.json | 2 +- 8 files changed, 506 insertions(+), 2 deletions(-) create mode 100644 data/in/dlc/enemies/bosses.json rename data/in/dlc/{enemies.json => enemies/grind.json} (100%) create mode 100644 data/in/dlc/enemies/master.json create mode 100644 data/in/enemies/bosses.json rename data/in/{enemies.json => enemies/grind.json} (100%) create mode 100644 data/in/enemies/master.json diff --git a/data/in/dlc/enemies/bosses.json b/data/in/dlc/enemies/bosses.json new file mode 100644 index 0000000..1f3c2cc --- /dev/null +++ b/data/in/dlc/enemies/bosses.json @@ -0,0 +1,125 @@ +{ + "enemies": { + "Illegal Coordinator": { + "name": "Illegal Coordinator", + "id": "autumn-rh.turret_boss-quest_naval", + "level": 63, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-area" + }, + "Tremmy": { + "name": "Tremmy", + "id": "autumn-fall.runbot-tremor", + "level": 67, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "rhombus-sqr" + }, + "Distillizer": { + "name": "Distillizer", + "id": "heat.special.heat-golem-booze", + "level": 67, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-village" + }, + "Toxovolt": { + "name": "Toxovolt", + "id": "jungle.special.ghost-toxic", + "level": 68, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "jungle" + }, + "Papaboss the Younger": { + "name": "Papaboss the Younger", + "id": "jungle.special.parrot-gangster-boss-1", + "level": 69, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "jungle-city" + }, + "Hillcart": { + "name": "Hillcart", + "id": "rhombus.meerkat-delorean", + "level": 72, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "rhombus-sqr" + }, + "The Goatfather": { + "name": "The Goatfather", + "id": "cold.goat-father-2", + "level": 72, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "rhombus-sqr" + }, + "Guardian Statue": { + "name": "Guardian Statue", + "id": "final.guardian", + "level": 74, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "final-dng" + }, + "Gynthar": { + "name": "Gynthar", + "id": "final.gynthar", + "level": 75, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "final-dng" + }, + "Di'orbis": { + "name": "Di'orbis", + "id": "final.god-neutral", + "level": 77, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "final-dng" + }, + "Son of the Beach": { + "name": "Son of the Beach", + "id": "beach.ape-beach", + "level": 79, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "beach" + } + } +} diff --git a/data/in/dlc/enemies.json b/data/in/dlc/enemies/grind.json similarity index 100% rename from data/in/dlc/enemies.json rename to data/in/dlc/enemies/grind.json diff --git a/data/in/dlc/enemies/master.json b/data/in/dlc/enemies/master.json new file mode 100644 index 0000000..42acbd0 --- /dev/null +++ b/data/in/dlc/enemies/master.json @@ -0,0 +1,6 @@ +{ + "_includes": [ + "grind.json", + "bosses.json" + ] +} diff --git a/data/in/dlc/master.json b/data/in/dlc/master.json index 15341f4..0b2c448 100644 --- a/data/in/dlc/master.json +++ b/data/in/dlc/master.json @@ -7,7 +7,7 @@ "regions.json", "shops.json", "item-pools.json", - "enemies.json", + "enemies/master.json", "prog-items/master.json" ], "_comment": "Checks that are found only in DLC areas", diff --git a/data/in/enemies/bosses.json b/data/in/enemies/bosses.json new file mode 100644 index 0000000..fe51def --- /dev/null +++ b/data/in/enemies/bosses.json @@ -0,0 +1,367 @@ +{ + "enemies": { + "meerkat-special-command-1": { + "name": "Hillkat Bandleader", + "id": "meerkat-special-command-1", + "level": 13, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-area" + }, + "minibosses.blue-hedge": { + "name": "Blue Hedgehag", + "id": "minibosses.blue-hedge", + "level": 15, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-area" + }, + "mine-diggingbot-cold": { + "name": "Infected Digmo", + "id": "mine-diggingbot-cold", + "level": 19, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "cold-dng" + }, + "minibosses.penguin-rapper": { + "name": "Peng King Dakara", + "id": "minibosses.penguin-rapper", + "level": 21, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "bergen-trails" + }, + "boss-driller": { + "name": "X01 Driller H.F.S.", + "id": "boss-driller", + "level": 21, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "cold-dng" + }, + "snowman-xmas": { + "name": "Meister Karotto", + "id": "snowman-xmas", + "level": 23, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "bergen" + }, + "heat.sandworm-boss": { + "name": "Ti'im", + "id": "heat.sandworm-boss", + "level": 26, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-area" + }, + "heat.antlion": { + "name": "Pinzo'jrahrrrn", + "id": "heat.antlion", + "level": 28, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-dng" + }, + "minibosses.cursed-sandshark": { + "name": "Cursed Sharkster", + "id": "minibosses.cursed-sandshark", + "level": 30, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-area" + }, + "heat.megamoth": { + "name": "Master Magmoth", + "id": "heat.megamoth", + "level": 30, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-dng" + }, + "heat.special.guard-hostile-mustache": { + "name": "Guard Billston", + "id": "heat.special.guard-hostile-mustache", + "level": 33, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-area" + }, + "boss.designer-1": { + "name": "???", + "id": "boss.designer-1", + "level": 36, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "bergen-trails" + }, + "daft-frobbit": { + "name": "Hologram Frobbit", + "id": "daft-frobbit", + "level": 36, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-fall" + }, + "cold.mine-diggingbot-quest": { + "name": "Smelter Digmo", + "id": "cold.mine-diggingbot-quest", + "level": 36, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "cold-dng" + }, + "autumn-fall.raid-pillar-large": { + "name": "Big Pillar", + "id": "autumn-fall.raid-pillar-large", + "level": 36, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-fall" + }, + "autumn-rh.boss_turret-quest_naval": { + "name": "Super Illegal Mega Turret", + "id": "autumn-rh.boss_turret-quest_naval", + "level": 36, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-area" + }, + "autumn-fall.buffalo-fire-quest": { + "name": "Blazehoof", + "id": "autumn-fall.buffalo-fire-quest", + "level": 37, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "autumn-fall" + }, + "arid.snail": { + "name": "Gastropolis", + "id": "arid.snail", + "level": 38, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "arid-dng-1" + }, + "jungle.shockboss": { + "name": "Plasma Phantom", + "id": "jungle.shockboss", + "level": 44, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "shock-dng" + }, + "jungle.waveboss": { + "name": "Sir Blobus Starnikus", + "id": "jungle.waveboss", + "level": 44, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "wave-dng" + }, + "minibosses.sloth-black": { + "name": "Sephisloth", + "id": "minibosses.sloth-black", + "level": 44, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "jungle" + }, + "minibosses.deep-fish": { + "name": "Tiefsee Angler", + "id": "minibosses.deep-fish", + "level": 46, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "jungle" + }, + "jungle.ape-boss": { + "name": "Son of the East", + "id": "jungle.ape-boss", + "level": 46, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "tree-dng" + }, + "jungle.whale-boss": { + "name": "Ancient Guardian", + "id": "jungle.whale-boss", + "level": 46, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "tree-dng" + }, + "jungle.special.snowman-jungle-boss": { + "name": "Karotto Fruitseeker", + "id": "jungle.special.snowman-jungle-boss", + "level": 47, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "jungle" + }, + "jungle.special.powerplant-quest-1": { + "name": "Buff Bloomy", + "id": "jungle.special.powerplant-quest-1", + "level": 47, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "jungle" + }, + "forest.samurai-boss": { + "name": "Twilight Master", + "id": "forest.samurai-boss", + "level": 51, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "forest" + }, + "heat.special.sandman-1": { + "name": "King Kaktorro", + "id": "heat.special.sandman-1", + "level": 57, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-area" + }, + "guest.glitch-boss": { + "name": "DON'T USE THIS", + "id": "guest.glitch-boss", + "level": 58, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "heat-area" + }, + "boss.designer-2": { + "name": "Designer", + "id": "boss.designer-2", + "level": 60, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "arid" + }, + "arid.element-turret-boss": { + "name": "Final Turret IX", + "id": "arid.element-turret-boss", + "level": 60, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "arid-dng-2" + }, + "boss.elephant": { + "name": "The Creator", + "id": "boss.elephant", + "level": 60, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "arid-dng-2" + }, + "minibosses.panda-boss": { + "name": "Pandza Mk. II", + "id": "minibosses.panda-boss", + "level": 62, + "firstEncounter": { + "region": { + "open": "openXX" + } + }, + "area": "forest" + } + } +} diff --git a/data/in/enemies.json b/data/in/enemies/grind.json similarity index 100% rename from data/in/enemies.json rename to data/in/enemies/grind.json diff --git a/data/in/enemies/master.json b/data/in/enemies/master.json new file mode 100644 index 0000000..42acbd0 --- /dev/null +++ b/data/in/enemies/master.json @@ -0,0 +1,6 @@ +{ + "_includes": [ + "grind.json", + "bosses.json" + ] +} diff --git a/data/in/master.json b/data/in/master.json index 53e5b9c..729d25b 100644 --- a/data/in/master.json +++ b/data/in/master.json @@ -11,7 +11,7 @@ "botanics.json", "prog-items/master.json", "groups/master.json", - "enemies.json", + "enemies/master.json", "dlc/master.json", "vars.json", "item-pools/master.json" From aa391b749ffbc89848169bcd041f3a3989ccfc71 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Fri, 3 Jul 2026 20:50:11 -0600 Subject: [PATCH 06/14] add logic for bosses --- data/in/chests.json | 57 +------ data/in/dlc/enemies/bosses.json | 87 ++++++++-- data/in/enemies/bosses.json | 278 +++++++++++++++----------------- data/in/regions.json | 11 +- 4 files changed, 217 insertions(+), 216 deletions(-) diff --git a/data/in/chests.json b/data/in/chests.json index 6aedee3..2992bbd 100644 --- a/data/in/chests.json +++ b/data/in/chests.json @@ -3540,7 +3540,7 @@ "clearance": "Silver", "region": { "linear": "11", - "open": "open5" + "open": "openCursedTemple" }, "reward": [ [ @@ -3548,23 +3548,6 @@ "Ancient Earth", 4 ] - ], - "condition": [ - [ - "item", - "Heat", - 1 - ], - [ - "item", - "Cold", - 1 - ], - [ - "item", - "Cursed Coin", - 1 - ] ] }, "Maroon: Cursed Temple Lower": { @@ -3576,7 +3559,7 @@ "clearance": "Silver", "region": { "linear": "11", - "open": "open5" + "open": "openCursedTemple" }, "reward": [ [ @@ -3584,23 +3567,6 @@ "Bright Bracer", 1 ] - ], - "condition": [ - [ - "item", - "Heat", - 1 - ], - [ - "item", - "Cold", - 1 - ], - [ - "item", - "Cursed Coin", - 1 - ] ] }, "Maroon: Cursed Temple Treasure Room": { @@ -3612,7 +3578,7 @@ "clearance": "Bronze", "region": { "linear": "11", - "open": "open5" + "open": "openCursedTemple" }, "reward": [ [ @@ -3620,23 +3586,6 @@ "Broken Sword", 1 ] - ], - "condition": [ - [ - "item", - "Heat", - 1 - ], - [ - "item", - "Cold", - 1 - ], - [ - "item", - "Cursed Coin", - 1 - ] ] }, "Maroon: Maroon Cave 1": { diff --git a/data/in/dlc/enemies/bosses.json b/data/in/dlc/enemies/bosses.json index 1f3c2cc..014eea4 100644 --- a/data/in/dlc/enemies/bosses.json +++ b/data/in/dlc/enemies/bosses.json @@ -6,8 +6,14 @@ "level": 63, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "23", + "open": "open2" + }, + "condition": [ + [ "quest", "Wet Work" ], + [ "item", "Wave", 1 ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "autumn-area" }, @@ -17,8 +23,17 @@ "level": 67, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "23", + "open": "open20" + }, + "condition": [ + [ "item", "Tremor Engine", 4 ], + [ "item", "Humming Razor", 1 ], + [ "item", "Shock", 1 ], + [ "region", "open", "open10.Right" ], + [ "region", "open", "open16" ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "rhombus-sqr" }, @@ -28,8 +43,32 @@ "level": 67, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "11", + "open": "open5" + }, + "condition": [ + [ "quest", "Steamy Booze" ], + [ "quest", "Steamy Challenge" ], + [ "item", "Cold" ], + [ "region", "open", "openDLC_Beach" ], + [ "or", + [ "var", "allowBoosterGrinding", "off" ], + [ "and", + [ "var", "allowBoosterGrinding", "on" ], + [ "item", "Everlasting Amber" ], + [ "or", + [ "quest", "New Metal" ], + [ "region", "open", "open16" ], + [ "region", "open", "open10.Infested" ], + [ "and", + [ "region", "open", "open10.Right" ], + [ "region", "open", "open10.Left" ] + ] + ] + ] + ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "heat-village" }, @@ -39,8 +78,15 @@ "level": 68, "firstEncounter": { "region": { - "open": "openXX" - } + "open": "open10" + }, + "condition": [ + [ "quest", "Rooting for Power" ], + [ "region", "open", "openDLC_Beach" ], + [ "item", "Cold", 1 ], + [ "item", "Wave", 1 ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "jungle" }, @@ -72,8 +118,14 @@ "level": 72, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "3", + "open": "open3" + }, + "condition": [ + [ "quest", "In Cawhoofs" ], + [ "region", "open", "open20" ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "rhombus-sqr" }, @@ -83,7 +135,7 @@ "level": 74, "firstEncounter": { "region": { - "open": "openXX" + "open": "openDLC_DungeonEntry" } }, "area": "final-dng" @@ -94,7 +146,7 @@ "level": 75, "firstEncounter": { "region": { - "open": "openXX" + "open": "openDLC_DungeonB2_L" } }, "area": "final-dng" @@ -105,7 +157,7 @@ "level": 77, "firstEncounter": { "region": { - "open": "openXX" + "open": "openDLC_DungeonBoss" } }, "area": "final-dng" @@ -116,8 +168,13 @@ "level": 79, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "23", + "open": "openDLC_Beach" + }, + "condition": [ + [ "region", "open", "open15.1" ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "beach" } diff --git a/data/in/enemies/bosses.json b/data/in/enemies/bosses.json index fe51def..f5f7005 100644 --- a/data/in/enemies/bosses.json +++ b/data/in/enemies/bosses.json @@ -1,364 +1,350 @@ { "enemies": { - "meerkat-special-command-1": { + "Hillkat Bandleader": { "name": "Hillkat Bandleader", "id": "meerkat-special-command-1", "level": 13, "firstEncounter": { "region": { - "open": "openXX" - } + "open": "open3" + }, + "condition": [ + [ "quest", "Digging for Data" ] + ] }, "area": "autumn-area" }, - "minibosses.blue-hedge": { + "Blue Hedgehag": { "name": "Blue Hedgehag", "id": "minibosses.blue-hedge", "level": 15, "firstEncounter": { "region": { - "open": "openXX" + "open": "open3" } }, "area": "autumn-area" }, - "mine-diggingbot-cold": { + "Infected Digmo": { "name": "Infected Digmo", "id": "mine-diggingbot-cold", "level": 19, "firstEncounter": { "region": { - "open": "openXX" + "open": "open4.5" } }, "area": "cold-dng" }, - "minibosses.penguin-rapper": { + "Peng King Dakara": { "name": "Peng King Dakara", "id": "minibosses.penguin-rapper", "level": 21, "firstEncounter": { "region": { - "open": "openXX" - } + "open": "open3" + }, + "condition": [ + [ "item", "Heat" ] + ] }, "area": "bergen-trails" }, - "boss-driller": { + "X01 Driller H.F.S.": { "name": "X01 Driller H.F.S.", "id": "boss-driller", "level": 21, "firstEncounter": { "region": { - "open": "openXX" + "open": "open4.8" } }, "area": "cold-dng" }, - "snowman-xmas": { - "name": "Meister Karotto", - "id": "snowman-xmas", - "level": 23, + "Ti'im": { + "name": "Ti'im", + "id": "heat.sandworm-boss", + "level": 26, "firstEncounter": { "region": { - "open": "openXX" + "open": "open6" } }, - "area": "bergen" + "area": "heat-area" }, - "heat.sandworm-boss": { - "name": "Ti'im", - "id": "heat.sandworm-boss", - "level": 26, + "Cursed Sharkster": { + "name": "Cursed Sharkster", + "id": "minibosses.cursed-sandshark", + "level": 30, "firstEncounter": { "region": { - "open": "openXX" + "open": "openCursedTemple" } }, "area": "heat-area" }, - "heat.antlion": { + "Pinzo'jrahrrrn": { "name": "Pinzo'jrahrrrn", "id": "heat.antlion", "level": 28, "firstEncounter": { "region": { - "open": "openXX" + "open": "open7.1" } }, "area": "heat-dng" }, - "minibosses.cursed-sandshark": { - "name": "Cursed Sharkster", - "id": "minibosses.cursed-sandshark", - "level": 30, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "heat-area" - }, - "heat.megamoth": { + "Master Magmoth": { "name": "Master Magmoth", "id": "heat.megamoth", "level": 30, "firstEncounter": { "region": { - "open": "openXX" + "open": "open7.8" } }, "area": "heat-dng" }, - "heat.special.guard-hostile-mustache": { + "Guard Billston": { "name": "Guard Billston", "id": "heat.special.guard-hostile-mustache", "level": 33, "firstEncounter": { "region": { - "open": "openXX" + "open": "open5", + "condition": [ + [ "quest", "Shady Theft" ], + [ "item", "Red Flame Shade" ], + [ "item", "Heat", 1 ], + [ "item", "Cold", 1 ] + ] } }, "area": "heat-area" }, - "boss.designer-1": { - "name": "???", - "id": "boss.designer-1", - "level": 36, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "bergen-trails" - }, - "daft-frobbit": { + "Hologram Frobbit": { "name": "Hologram Frobbit", "id": "daft-frobbit", "level": 36, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "20", + "open": "open9" + }, + "condition": [ + [ "item", "Heat" ], + [ "item", "Cold" ] + ] }, "area": "autumn-fall" }, - "cold.mine-diggingbot-quest": { + "Smelter Digmo": { "name": "Smelter Digmo", "id": "cold.mine-diggingbot-quest", "level": 36, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "20", + "open": "open9" + }, + "condition": [ + [ "item", "Red Flame Shade", 1 ], + [ "item", "Heat", 1 ], + [ "item", "Cold", 1 ], + [ "region", "open", "open4.5" ], + [ "quest", "Bull Grab" ] + ] }, "area": "cold-dng" }, - "autumn-fall.raid-pillar-large": { - "name": "Big Pillar", - "id": "autumn-fall.raid-pillar-large", - "level": 36, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "autumn-fall" - }, - "autumn-rh.boss_turret-quest_naval": { - "name": "Super Illegal Mega Turret", - "id": "autumn-rh.boss_turret-quest_naval", - "level": 36, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "autumn-area" - }, - "autumn-fall.buffalo-fire-quest": { + "Blazehoof": { "name": "Blazehoof", "id": "autumn-fall.buffalo-fire-quest", "level": 37, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "20", + "open": "open9" + }, + "condition": [ + [ "quest", "Intensive Tree Care" ], + [ "item", "Heat" ], + [ "item", "Cold" ] + ] }, "area": "autumn-fall" }, - "arid.snail": { - "name": "Gastropolis", - "id": "arid.snail", - "level": 38, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "arid-dng-1" - }, - "jungle.shockboss": { + "Plasma Phantom": { "name": "Plasma Phantom", "id": "jungle.shockboss", "level": 44, "firstEncounter": { "region": { - "open": "openXX" + "open": "open13.1" } }, "area": "shock-dng" }, - "jungle.waveboss": { + "Sir Blobus Starnikus": { "name": "Sir Blobus Starnikus", "id": "jungle.waveboss", "level": 44, "firstEncounter": { "region": { - "open": "openXX" + "open": "open14.5" } }, "area": "wave-dng" }, - "minibosses.sloth-black": { - "name": "Sephisloth", - "id": "minibosses.sloth-black", - "level": 44, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "jungle" - }, - "minibosses.deep-fish": { + "Tiefsee Angler": { "name": "Tiefsee Angler", "id": "minibosses.deep-fish", "level": 46, "firstEncounter": { "region": { - "open": "openXX" - } + "open": "open10.Grove" + }, + "condition": [ + [ "item", "Wave", 1 ], + [ "item", "Shock", 1 ] + ] }, "area": "jungle" }, - "jungle.ape-boss": { + "Son of the East": { "name": "Son of the East", "id": "jungle.ape-boss", "level": 46, "firstEncounter": { "region": { - "open": "openXX" + "open": "open15.1" } }, "area": "tree-dng" }, - "jungle.whale-boss": { + "Ancient Guardian": { "name": "Ancient Guardian", "id": "jungle.whale-boss", "level": 46, "firstEncounter": { "region": { - "open": "openXX" + "open": "open15.3" } }, "area": "tree-dng" }, - "jungle.special.snowman-jungle-boss": { + "Karotto Fruitseeker": { "name": "Karotto Fruitseeker", "id": "jungle.special.snowman-jungle-boss", "level": 47, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "23", + "open": "open10" + }, + "condition": [ + [ "item", "Purple Bolt Shade", 1 ], + [ "item", "Azure Drop Shade", 1 ], + [ "item", "Shock", 1 ], + [ "item", "Wave", 1 ], + [ "quest", "Tropical Chill" ] + ] }, "area": "jungle" }, - "jungle.special.powerplant-quest-1": { + "Buff Bloomy": { "name": "Buff Bloomy", "id": "jungle.special.powerplant-quest-1", "level": 47, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "23", + "open": "open10" + }, + "condition": [ + [ "item", "Purple Bolt Shade", 1 ], + [ "item", "Azure Drop Shade", 1 ], + [ "item", "Wave" ], + [ "quest", "Lakeside Escort" ] + ] }, "area": "jungle" }, - "forest.samurai-boss": { + "Twilight Master": { "name": "Twilight Master", "id": "forest.samurai-boss", "level": 51, "firstEncounter": { "region": { - "open": "openXX" + "open": "open17" } }, "area": "forest" }, - "heat.special.sandman-1": { + "King Kaktorro": { "name": "King Kaktorro", "id": "heat.special.sandman-1", "level": 57, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "11", + "open": "open5" + }, + "condition": [ + [ "quest", "Hot Trail" ], + [ "item", "Wave", 1 ], + [ "item", "Meteor Shade", 1 ] + ] }, "area": "heat-area" }, - "guest.glitch-boss": { + "DON'T USE THIS": { "name": "DON'T USE THIS", "id": "guest.glitch-boss", "level": 58, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "31", + "open": "open16" + }, + "condition": [ + [ "item", "Heat", 1 ], + [ "item", "Cold", 1 ], + [ "item", "Wave", 1 ], + [ "item", "Shock", 1 ] + ] }, "area": "heat-area" }, - "boss.designer-2": { + "Designer": { "name": "Designer", "id": "boss.designer-2", "level": 60, "firstEncounter": { "region": { - "open": "openXX" + "open": "open18" } }, "area": "arid" }, - "arid.element-turret-boss": { - "name": "Final Turret IX", - "id": "arid.element-turret-boss", - "level": 60, - "firstEncounter": { - "region": { - "open": "openXX" - } - }, - "area": "arid-dng-2" - }, - "boss.elephant": { + "The Creator": { "name": "The Creator", "id": "boss.elephant", "level": 60, "firstEncounter": { "region": { - "open": "openXX" + "open": "open18" } }, "area": "arid-dng-2" }, - "minibosses.panda-boss": { + "Pandza Mk. II": { "name": "Pandza Mk. II", "id": "minibosses.panda-boss", "level": 62, "firstEncounter": { "region": { - "open": "openXX" + "open": "open20" } }, "area": "forest" diff --git a/data/in/regions.json b/data/in/regions.json index 51ee2f8..b768d9e 100644 --- a/data/in/regions.json +++ b/data/in/regions.json @@ -331,7 +331,7 @@ "condition": [ [ "item", "Blue Ice Shade", 1 ] ] - }, + }, { "from": "open2", "to": "open5", @@ -340,6 +340,15 @@ [ "var", "rhombusHubUnlock" ] ] }, + { + "from": "open5", + "to": "openCursedTemple", + "condition": [ + [ "item", "Heat", 1 ], + [ "item", "Cold", 1 ], + [ "item", "Cursed Coin", 1 ] + ] + }, { "from": "open5", "to": "open6", From 0a9977f4806f9b87e943be3b302777c566b24ceb Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Fri, 3 Jul 2026 21:29:12 -0600 Subject: [PATCH 07/14] fix format for billston --- data/in/enemies/bosses.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data/in/enemies/bosses.json b/data/in/enemies/bosses.json index f5f7005..c546364 100644 --- a/data/in/enemies/bosses.json +++ b/data/in/enemies/bosses.json @@ -111,14 +111,14 @@ "level": 33, "firstEncounter": { "region": { - "open": "open5", - "condition": [ - [ "quest", "Shady Theft" ], - [ "item", "Red Flame Shade" ], - [ "item", "Heat", 1 ], - [ "item", "Cold", 1 ] - ] - } + "open": "open5" + }, + "condition": [ + [ "quest", "Shady Theft" ], + [ "item", "Red Flame Shade" ], + [ "item", "Heat", 1 ], + [ "item", "Cold", 1 ] + ] }, "area": "heat-area" }, From b2ab0211260911d2170ad4e44e17e2a448d3b660 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Fri, 3 Jul 2026 22:08:54 -0600 Subject: [PATCH 08/14] fix Shady Theft -> Shady Thief --- data/in/enemies/bosses.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/in/enemies/bosses.json b/data/in/enemies/bosses.json index c546364..f2c1137 100644 --- a/data/in/enemies/bosses.json +++ b/data/in/enemies/bosses.json @@ -114,7 +114,7 @@ "open": "open5" }, "condition": [ - [ "quest", "Shady Theft" ], + [ "quest", "Shady Thief" ], [ "item", "Red Flame Shade" ], [ "item", "Heat", 1 ], [ "item", "Cold", 1 ] From 21d21880665f5763e74790e77d9c7b0e35e89086 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Fri, 3 Jul 2026 22:20:30 -0600 Subject: [PATCH 09/14] add killsanity locations --- data/out/locations.json | 103 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/data/out/locations.json b/data/out/locations.json index 500a96d..19006d0 100644 --- a/data/out/locations.json +++ b/data/out/locations.json @@ -1009,5 +1009,106 @@ "Botanics: Alpha Keen Sprout": 3235825004, "Botanics: Beta Keen Sprout": 3235825005, "Botanics: Alpha Fossil Stone": 3235825006, - "Botanics: Beta Fossil Stone": 3235825007 + "Botanics: Beta Fossil Stone": 3235825007, + "Killsanity: Hedgehag": 3235825012, + "Killsanity: Rockin' Hillkat": 3235825013, + "Killsanity: Mad Bovine": 3235825014, + "Killsanity: Old Hedgehag": 3235825015, + "Killsanity: Flamin' Hillkat": 3235825016, + "Killsanity: Red Eyed Bovine": 3235825017, + "Killsanity: Young Frobbit": 3235825018, + "Killsanity: White Frobbit": 3235825019, + "Killsanity: Seafly": 3235825020, + "Killsanity: Pengpeng": 3235825021, + "Killsanity: Horny Goat": 3235825022, + "Killsanity: Karotto": 3235825023, + "Killsanity: Fleazer": 3235825024, + "Killsanity: Carritrich": 3235825025, + "Killsanity: Kamikatze": 3235825026, + "Killsanity: Digmo": 3235825027, + "Killsanity: Pinceron": 3235825028, + "Killsanity: Sharkster": 3235825029, + "Killsanity: Vulturbine": 3235825030, + "Killsanity: Drillertoise": 3235825031, + "Killsanity: Tim": 3235825032, + "Killsanity: Boss Pincer": 3235825033, + "Killsanity: Trijelly": 3235825034, + "Killsanity: Pada Moth": 3235825035, + "Killsanity: Darth Moth": 3235825036, + "Killsanity: Magmanizer": 3235825037, + "Killsanity: Radical Hedgehag": 3235825038, + "Killsanity: Chillin' Hillkat": 3235825039, + "Killsanity: Fallfly": 3235825040, + "Killsanity: Ivory Bovine": 3235825041, + "Killsanity: Neutral Virus": 3235825042, + "Killsanity: Heat Virus": 3235825043, + "Killsanity: Cold Virus": 3235825044, + "Killsanity: Argeby": 3235825045, + "Killsanity: Gelleric": 3235825046, + "Killsanity: Papagun": 3235825047, + "Killsanity: Angler": 3235825048, + "Killsanity: Shokat": 3235825049, + "Killsanity: Behesloth": 3235825050, + "Killsanity: Jelleric": 3235825051, + "Killsanity: Ocubepus": 3235825052, + "Killsanity: Blue Ray": 3235825053, + "Killsanity: Rob0ck": 3235825054, + "Killsanity: Powerplant": 3235825055, + "Killsanity: Ectovolt": 3235825056, + "Killsanity: Sun Beetle": 3235825057, + "Killsanity: Moon Beetle": 3235825058, + "Killsanity: Pandza": 3235825059, + "Killsanity: Aranetarda": 3235825060, + "Killsanity: Hillkat Bandleader": 3235825061, + "Killsanity: Blue Hedgehag": 3235825062, + "Killsanity: Infected Digmo": 3235825063, + "Killsanity: Peng King Dakara": 3235825064, + "Killsanity: X01 Driller H.F.S.": 3235825065, + "Killsanity: Ti'im": 3235825066, + "Killsanity: Cursed Sharkster": 3235825067, + "Killsanity: Pinzo'jrahrrrn": 3235825068, + "Killsanity: Master Magmoth": 3235825069, + "Killsanity: Guard Billston": 3235825070, + "Killsanity: Hologram Frobbit": 3235825071, + "Killsanity: Smelter Digmo": 3235825072, + "Killsanity: Blazehoof": 3235825073, + "Killsanity: Plasma Phantom": 3235825074, + "Killsanity: Sir Blobus Starnikus": 3235825075, + "Killsanity: Tiefsee Angler": 3235825076, + "Killsanity: Son of the East": 3235825077, + "Killsanity: Ancient Guardian": 3235825078, + "Killsanity: Karotto Fruitseeker": 3235825079, + "Killsanity: Buff Bloomy": 3235825080, + "Killsanity: Twilight Master": 3235825081, + "Killsanity: King Kaktorro": 3235825082, + "Killsanity: DON'T USE THIS": 3235825083, + "Killsanity: Designer": 3235825084, + "Killsanity: The Creator": 3235825085, + "Killsanity: Pandza Mk. II": 3235825086, + "Killsanity: Echinoignis": 3235825087, + "Killsanity: Echinonix": 3235825088, + "Killsanity: Echinofulgur": 3235825089, + "Killsanity: Echinofluctus": 3235825090, + "Killsanity: Salteric": 3235825091, + "Killsanity: Balooneer": 3235825092, + "Killsanity: K'im": 3235825093, + "Killsanity: Trigenbu": 3235825094, + "Killsanity: Heat Crystalid": 3235825095, + "Killsanity: Cold Crystalid": 3235825096, + "Killsanity: Shock Crystalid": 3235825097, + "Killsanity: Wave Crystalid": 3235825098, + "Killsanity: Hummagnum": 3235825099, + "Killsanity: Mizree": 3235825100, + "Killsanity: Beearbot": 3235825101, + "Killsanity: Illegal Coordinator": 3235825102, + "Killsanity: Tremmy": 3235825103, + "Killsanity: Distillizer": 3235825104, + "Killsanity: Toxovolt": 3235825105, + "Killsanity: Papaboss the Younger": 3235825106, + "Killsanity: Hillcart": 3235825107, + "Killsanity: The Goatfather": 3235825108, + "Killsanity: Guardian Statue": 3235825109, + "Killsanity: Gynthar": 3235825110, + "Killsanity: Di'orbis": 3235825111, + "Killsanity: Son of the Beach": 3235825112 } \ No newline at end of file From b68884208d450e08c2d5d222b144795dd94203fc Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Fri, 3 Jul 2026 22:40:40 -0600 Subject: [PATCH 10/14] add two more dlce regions i forgot :( --- data/in/dlc/enemies/bosses.json | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/data/in/dlc/enemies/bosses.json b/data/in/dlc/enemies/bosses.json index 014eea4..4368c2e 100644 --- a/data/in/dlc/enemies/bosses.json +++ b/data/in/dlc/enemies/bosses.json @@ -96,8 +96,14 @@ "level": 69, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "3", + "open": "open3" + }, + "condition": [ + [ "quest", "In Cawhoofs" ], + [ "region", "open", "open20" ], + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "jungle-city" }, @@ -107,8 +113,12 @@ "level": 72, "firstEncounter": { "region": { - "open": "openXX" - } + "linear": "23", + "open": "open20" + }, + "condition": [ + [ "item", "Azure Archipelago Pass", 1 ] + ] }, "area": "rhombus-sqr" }, From 45a6ea57dff7f3f2ef02040dc9a74411857a55c9 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Sat, 4 Jul 2026 01:47:01 -0600 Subject: [PATCH 11/14] send killsanity checks --- data/out/data.json | 305 +++++++++++++++++++++++++++++++++++++++++ src/item-data.model.ts | 5 + src/patches/enemy.ts | 15 ++ src/patches/index.ts | 2 + 4 files changed, 327 insertions(+) create mode 100644 src/patches/enemy.ts diff --git a/data/out/data.json b/data/out/data.json index 1d8affe..3cd1292 100644 --- a/data/out/data.json +++ b/data/out/data.json @@ -5134,6 +5134,311 @@ } } }, + "enemies": { + "hedgehog": { + "kill": 3235825012 + }, + "meerkat": { + "kill": 3235825013 + }, + "buffalo": { + "kill": 3235825014 + }, + "hedgehog-alt": { + "kill": 3235825015 + }, + "meerkat-alt": { + "kill": 3235825016 + }, + "buffalo-alt": { + "kill": 3235825017 + }, + "gray-frobbit": { + "kill": 3235825018 + }, + "frobbit": { + "kill": 3235825019 + }, + "seahorse": { + "kill": 3235825020 + }, + "penguin": { + "kill": 3235825021 + }, + "goat": { + "kill": 3235825022 + }, + "snowman": { + "kill": 3235825023 + }, + "mine-coldbug": { + "kill": 3235825024 + }, + "mine-runbot": { + "kill": 3235825025 + }, + "mine-kamikatze": { + "kill": 3235825026 + }, + "mine-diggingbot": { + "kill": 3235825027 + }, + "heat.scorpion": { + "kill": 3235825028 + }, + "heat.sandshark": { + "kill": 3235825029 + }, + "heat.volturbine": { + "kill": 3235825030 + }, + "heat.drillertoise": { + "kill": 3235825031 + }, + "heat.sandworm": { + "kill": 3235825032 + }, + "heat.scorpion-alt": { + "kill": 3235825033 + }, + "heat.jellyfish": { + "kill": 3235825034 + }, + "heat.moth": { + "kill": 3235825035 + }, + "heat.darth-moth": { + "kill": 3235825036 + }, + "heat.heat-golem": { + "kill": 3235825037 + }, + "autumn-fall.hedgehog-fall": { + "kill": 3235825038 + }, + "autumn-fall.meerkat-fall": { + "kill": 3235825039 + }, + "autumn-fall.seahorse-fall": { + "kill": 3235825040 + }, + "autumn-fall.buffalo-fall": { + "kill": 3235825041 + }, + "arid.virus-neutral": { + "kill": 3235825042 + }, + "arid.virus-heat": { + "kill": 3235825043 + }, + "arid.virus-cold": { + "kill": 3235825044 + }, + "jungle.plant": { + "kill": 3235825045 + }, + "jungle.blob": { + "kill": 3235825046 + }, + "jungle.parrot": { + "kill": 3235825047 + }, + "jungle.fish": { + "kill": 3235825048 + }, + "jungle.shockcat": { + "kill": 3235825049 + }, + "jungle.sloth": { + "kill": 3235825050 + }, + "jungle.blob-wave": { + "kill": 3235825051 + }, + "jungle.octopus": { + "kill": 3235825052 + }, + "jungle.blueray": { + "kill": 3235825053 + }, + "jungle.chicken": { + "kill": 3235825054 + }, + "jungle.powerplant": { + "kill": 3235825055 + }, + "jungle.ghost": { + "kill": 3235825056 + }, + "forest.bug-samurai-heat": { + "kill": 3235825057 + }, + "forest.bug-samurai-shock": { + "kill": 3235825058 + }, + "forest.panda": { + "kill": 3235825059 + }, + "forest.spider": { + "kill": 3235825060 + }, + "meerkat-special-command-1": { + "kill": 3235825061 + }, + "minibosses.blue-hedge": { + "kill": 3235825062 + }, + "mine-diggingbot-cold": { + "kill": 3235825063 + }, + "minibosses.penguin-rapper": { + "kill": 3235825064 + }, + "boss-driller": { + "kill": 3235825065 + }, + "heat.sandworm-boss": { + "kill": 3235825066 + }, + "minibosses.cursed-sandshark": { + "kill": 3235825067 + }, + "heat.antlion": { + "kill": 3235825068 + }, + "heat.megamoth": { + "kill": 3235825069 + }, + "heat.special.guard-hostile-mustache": { + "kill": 3235825070 + }, + "daft-frobbit": { + "kill": 3235825071 + }, + "cold.mine-diggingbot-quest": { + "kill": 3235825072 + }, + "autumn-fall.buffalo-fire-quest": { + "kill": 3235825073 + }, + "jungle.shockboss": { + "kill": 3235825074 + }, + "jungle.waveboss": { + "kill": 3235825075 + }, + "minibosses.deep-fish": { + "kill": 3235825076 + }, + "jungle.ape-boss": { + "kill": 3235825077 + }, + "jungle.whale-boss": { + "kill": 3235825078 + }, + "jungle.special.snowman-jungle-boss": { + "kill": 3235825079 + }, + "jungle.special.powerplant-quest-1": { + "kill": 3235825080 + }, + "forest.samurai-boss": { + "kill": 3235825081 + }, + "heat.special.sandman-1": { + "kill": 3235825082 + }, + "guest.glitch-boss": { + "kill": 3235825083 + }, + "boss.designer-2": { + "kill": 3235825084 + }, + "boss.elephant": { + "kill": 3235825085 + }, + "minibosses.panda-boss": { + "kill": 3235825086 + }, + "beach.sea-star-heat": { + "kill": 3235825087 + }, + "beach.sea-star-cold": { + "kill": 3235825088 + }, + "beach.sea-star-shock": { + "kill": 3235825089 + }, + "beach.sea-star-wave": { + "kill": 3235825090 + }, + "beach.special.blob-salt": { + "kill": 3235825091 + }, + "beach.fish": { + "kill": 3235825092 + }, + "beach.worm": { + "kill": 3235825093 + }, + "beach.turtle-man": { + "kill": 3235825094 + }, + "final.crystal-heat": { + "kill": 3235825095 + }, + "final.crystal-cold": { + "kill": 3235825096 + }, + "final.crystal-shock": { + "kill": 3235825097 + }, + "final.crystal-wave": { + "kill": 3235825098 + }, + "final.colibri": { + "kill": 3235825099 + }, + "guest.firespirit": { + "kill": 3235825100 + }, + "guest.honeybear": { + "kill": 3235825101 + }, + "autumn-rh.turret_boss-quest_naval": { + "kill": 3235825102 + }, + "autumn-fall.runbot-tremor": { + "kill": 3235825103 + }, + "heat.special.heat-golem-booze": { + "kill": 3235825104 + }, + "jungle.special.ghost-toxic": { + "kill": 3235825105 + }, + "jungle.special.parrot-gangster-boss-1": { + "kill": 3235825106 + }, + "rhombus.meerkat-delorean": { + "kill": 3235825107 + }, + "cold.goat-father-2": { + "kill": 3235825108 + }, + "final.guardian": { + "kill": 3235825109 + }, + "final.gynthar": { + "kill": 3235825110 + }, + "final.god-neutral": { + "kill": 3235825111 + }, + "beach.ape-beach": { + "kill": 3235825112 + } + }, "botanics": { "Autumn-Ground-1": 3235824920, "Autumn-Ground-2": 3235824921, diff --git a/src/item-data.model.ts b/src/item-data.model.ts index f7fd87a..aa3324e 100644 --- a/src/item-data.model.ts +++ b/src/item-data.model.ts @@ -3,6 +3,7 @@ export interface WorldData { quests: RawQuests; shops: RawShops; botanics: Record; + enemies: Record; descriptions: { [itemId: number]: { [locale: string]: string } }; markers: { [area: string]: MarkerInfo[] } } @@ -57,6 +58,10 @@ export type RawShops = { unlocks: RawShopUnlocks; } +export interface RawEnemy { + kill: number; +} + export interface ItemInfo { icon: string; label: string; diff --git a/src/patches/enemy.ts b/src/patches/enemy.ts new file mode 100644 index 0000000..3aa390d --- /dev/null +++ b/src/patches/enemy.ts @@ -0,0 +1,15 @@ +import type MwRandomizer from "../plugin"; + +export function patch(plugin: MwRandomizer) { + sc.Combat.inject({ + notifyCombatantDefeated(combatant, resolveDefeat, notifyArena) { + this.parent(combatant, resolveDefeat, notifyArena); + if (combatant instanceof ig.ENTITY.Enemy) { + let enemy = sc.randoData.enemies[combatant.enemyName]; + if (enemy) { + sc.multiworld.reallyCheckLocation(enemy.kill); + } + } + } + }); +} diff --git a/src/patches/index.ts b/src/patches/index.ts index bd885e9..21f9567 100644 --- a/src/patches/index.ts +++ b/src/patches/index.ts @@ -3,6 +3,7 @@ import type MwRandomizer from "../plugin"; import { patch as patchMwModel } from "./multiworld-model"; import { patch as patchBotanics } from "./botanics"; import { patch as patchChest } from "./chest"; +import { patch as patchEnemies } from "./enemy"; import { patch as patchEntities } from "./entity"; import { patch as patchEvent } from "./event"; import { patch as patchMarquee } from "./marquee"; @@ -22,6 +23,7 @@ export function applyPatches(plugin: MwRandomizer) { patchBotanics(plugin); patchChest(plugin); patchEntities(plugin); + patchEnemies(plugin); patchEvent(plugin); patchMarquee(plugin); patchGui(plugin); From 19a08f21a8fe0e28edddabc81af04a1812902db2 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Sun, 5 Jul 2026 17:27:04 -0600 Subject: [PATCH 12/14] only notify the server once --- src/patches/enemy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/patches/enemy.ts b/src/patches/enemy.ts index 3aa390d..b0a8c10 100644 --- a/src/patches/enemy.ts +++ b/src/patches/enemy.ts @@ -6,7 +6,7 @@ export function patch(plugin: MwRandomizer) { this.parent(combatant, resolveDefeat, notifyArena); if (combatant instanceof ig.ENTITY.Enemy) { let enemy = sc.randoData.enemies[combatant.enemyName]; - if (enemy) { + if (enemy && !sc.multiworld.localCheckedLocations.has(enemy.kill)) { sc.multiworld.reallyCheckLocation(enemy.kill); } } From 5324b78fe527dde21f5fe063d781077e5b36bf63 Mon Sep 17 00:00:00 2001 From: Richard Snider Date: Sun, 23 Aug 2026 02:11:06 -0600 Subject: [PATCH 13/14] add tag for equipment that does not provide levels --- data/in/items.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/in/items.json b/data/in/items.json index 9047e5b..8044ab8 100644 --- a/data/in/items.json +++ b/data/in/items.json @@ -995,6 +995,7 @@ "id": 322 }, "Infinity Spiral Drill": { + "providesLevels": false, "id": 323 }, "Stone of Truth": { @@ -1013,9 +1014,11 @@ "id": 328 }, "Burglar's Rope": { + "providesLevels": false, "id": 329 }, "Excalibro": { + "providesLevels": false, "id": 330 }, "Snack Mix": { @@ -1907,6 +1910,7 @@ "id": 633 }, "Singularity Drill": { + "providesLevels": false, "id": 634 }, "Rift Spore": { @@ -1994,6 +1998,7 @@ "id": 664 }, "Lis'mita Cap": { + "providesLevels": false, "id": 665 }, "Enlightened Halo": { From a770095927c7a23748025dea823ff76881d3c9dc Mon Sep 17 00:00:00 2001 From: RMS Date: Sun, 23 Aug 2026 14:26:00 -0600 Subject: [PATCH 14/14] rename killsanity -> monster fibula --- data/out/locations.json | 202 ++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/data/out/locations.json b/data/out/locations.json index 19006d0..edccdff 100644 --- a/data/out/locations.json +++ b/data/out/locations.json @@ -1010,105 +1010,105 @@ "Botanics: Beta Keen Sprout": 3235825005, "Botanics: Alpha Fossil Stone": 3235825006, "Botanics: Beta Fossil Stone": 3235825007, - "Killsanity: Hedgehag": 3235825012, - "Killsanity: Rockin' Hillkat": 3235825013, - "Killsanity: Mad Bovine": 3235825014, - "Killsanity: Old Hedgehag": 3235825015, - "Killsanity: Flamin' Hillkat": 3235825016, - "Killsanity: Red Eyed Bovine": 3235825017, - "Killsanity: Young Frobbit": 3235825018, - "Killsanity: White Frobbit": 3235825019, - "Killsanity: Seafly": 3235825020, - "Killsanity: Pengpeng": 3235825021, - "Killsanity: Horny Goat": 3235825022, - "Killsanity: Karotto": 3235825023, - "Killsanity: Fleazer": 3235825024, - "Killsanity: Carritrich": 3235825025, - "Killsanity: Kamikatze": 3235825026, - "Killsanity: Digmo": 3235825027, - "Killsanity: Pinceron": 3235825028, - "Killsanity: Sharkster": 3235825029, - "Killsanity: Vulturbine": 3235825030, - "Killsanity: Drillertoise": 3235825031, - "Killsanity: Tim": 3235825032, - "Killsanity: Boss Pincer": 3235825033, - "Killsanity: Trijelly": 3235825034, - "Killsanity: Pada Moth": 3235825035, - "Killsanity: Darth Moth": 3235825036, - "Killsanity: Magmanizer": 3235825037, - "Killsanity: Radical Hedgehag": 3235825038, - "Killsanity: Chillin' Hillkat": 3235825039, - "Killsanity: Fallfly": 3235825040, - "Killsanity: Ivory Bovine": 3235825041, - "Killsanity: Neutral Virus": 3235825042, - "Killsanity: Heat Virus": 3235825043, - "Killsanity: Cold Virus": 3235825044, - "Killsanity: Argeby": 3235825045, - "Killsanity: Gelleric": 3235825046, - "Killsanity: Papagun": 3235825047, - "Killsanity: Angler": 3235825048, - "Killsanity: Shokat": 3235825049, - "Killsanity: Behesloth": 3235825050, - "Killsanity: Jelleric": 3235825051, - "Killsanity: Ocubepus": 3235825052, - "Killsanity: Blue Ray": 3235825053, - "Killsanity: Rob0ck": 3235825054, - "Killsanity: Powerplant": 3235825055, - "Killsanity: Ectovolt": 3235825056, - "Killsanity: Sun Beetle": 3235825057, - "Killsanity: Moon Beetle": 3235825058, - "Killsanity: Pandza": 3235825059, - "Killsanity: Aranetarda": 3235825060, - "Killsanity: Hillkat Bandleader": 3235825061, - "Killsanity: Blue Hedgehag": 3235825062, - "Killsanity: Infected Digmo": 3235825063, - "Killsanity: Peng King Dakara": 3235825064, - "Killsanity: X01 Driller H.F.S.": 3235825065, - "Killsanity: Ti'im": 3235825066, - "Killsanity: Cursed Sharkster": 3235825067, - "Killsanity: Pinzo'jrahrrrn": 3235825068, - "Killsanity: Master Magmoth": 3235825069, - "Killsanity: Guard Billston": 3235825070, - "Killsanity: Hologram Frobbit": 3235825071, - "Killsanity: Smelter Digmo": 3235825072, - "Killsanity: Blazehoof": 3235825073, - "Killsanity: Plasma Phantom": 3235825074, - "Killsanity: Sir Blobus Starnikus": 3235825075, - "Killsanity: Tiefsee Angler": 3235825076, - "Killsanity: Son of the East": 3235825077, - "Killsanity: Ancient Guardian": 3235825078, - "Killsanity: Karotto Fruitseeker": 3235825079, - "Killsanity: Buff Bloomy": 3235825080, - "Killsanity: Twilight Master": 3235825081, - "Killsanity: King Kaktorro": 3235825082, - "Killsanity: DON'T USE THIS": 3235825083, - "Killsanity: Designer": 3235825084, - "Killsanity: The Creator": 3235825085, - "Killsanity: Pandza Mk. II": 3235825086, - "Killsanity: Echinoignis": 3235825087, - "Killsanity: Echinonix": 3235825088, - "Killsanity: Echinofulgur": 3235825089, - "Killsanity: Echinofluctus": 3235825090, - "Killsanity: Salteric": 3235825091, - "Killsanity: Balooneer": 3235825092, - "Killsanity: K'im": 3235825093, - "Killsanity: Trigenbu": 3235825094, - "Killsanity: Heat Crystalid": 3235825095, - "Killsanity: Cold Crystalid": 3235825096, - "Killsanity: Shock Crystalid": 3235825097, - "Killsanity: Wave Crystalid": 3235825098, - "Killsanity: Hummagnum": 3235825099, - "Killsanity: Mizree": 3235825100, - "Killsanity: Beearbot": 3235825101, - "Killsanity: Illegal Coordinator": 3235825102, - "Killsanity: Tremmy": 3235825103, - "Killsanity: Distillizer": 3235825104, - "Killsanity: Toxovolt": 3235825105, - "Killsanity: Papaboss the Younger": 3235825106, - "Killsanity: Hillcart": 3235825107, - "Killsanity: The Goatfather": 3235825108, - "Killsanity: Guardian Statue": 3235825109, - "Killsanity: Gynthar": 3235825110, - "Killsanity: Di'orbis": 3235825111, - "Killsanity: Son of the Beach": 3235825112 + "Monster Fibula: Hedgehag": 3235825012, + "Monster Fibula: Rockin' Hillkat": 3235825013, + "Monster Fibula: Mad Bovine": 3235825014, + "Monster Fibula: Old Hedgehag": 3235825015, + "Monster Fibula: Flamin' Hillkat": 3235825016, + "Monster Fibula: Red Eyed Bovine": 3235825017, + "Monster Fibula: Young Frobbit": 3235825018, + "Monster Fibula: White Frobbit": 3235825019, + "Monster Fibula: Seafly": 3235825020, + "Monster Fibula: Pengpeng": 3235825021, + "Monster Fibula: Horny Goat": 3235825022, + "Monster Fibula: Karotto": 3235825023, + "Monster Fibula: Fleazer": 3235825024, + "Monster Fibula: Carritrich": 3235825025, + "Monster Fibula: Kamikatze": 3235825026, + "Monster Fibula: Digmo": 3235825027, + "Monster Fibula: Pinceron": 3235825028, + "Monster Fibula: Sharkster": 3235825029, + "Monster Fibula: Vulturbine": 3235825030, + "Monster Fibula: Drillertoise": 3235825031, + "Monster Fibula: Tim": 3235825032, + "Monster Fibula: Boss Pincer": 3235825033, + "Monster Fibula: Trijelly": 3235825034, + "Monster Fibula: Pada Moth": 3235825035, + "Monster Fibula: Darth Moth": 3235825036, + "Monster Fibula: Magmanizer": 3235825037, + "Monster Fibula: Radical Hedgehag": 3235825038, + "Monster Fibula: Chillin' Hillkat": 3235825039, + "Monster Fibula: Fallfly": 3235825040, + "Monster Fibula: Ivory Bovine": 3235825041, + "Monster Fibula: Neutral Virus": 3235825042, + "Monster Fibula: Heat Virus": 3235825043, + "Monster Fibula: Cold Virus": 3235825044, + "Monster Fibula: Argeby": 3235825045, + "Monster Fibula: Gelleric": 3235825046, + "Monster Fibula: Papagun": 3235825047, + "Monster Fibula: Angler": 3235825048, + "Monster Fibula: Shokat": 3235825049, + "Monster Fibula: Behesloth": 3235825050, + "Monster Fibula: Jelleric": 3235825051, + "Monster Fibula: Ocubepus": 3235825052, + "Monster Fibula: Blue Ray": 3235825053, + "Monster Fibula: Rob0ck": 3235825054, + "Monster Fibula: Powerplant": 3235825055, + "Monster Fibula: Ectovolt": 3235825056, + "Monster Fibula: Sun Beetle": 3235825057, + "Monster Fibula: Moon Beetle": 3235825058, + "Monster Fibula: Pandza": 3235825059, + "Monster Fibula: Aranetarda": 3235825060, + "Monster Fibula: Hillkat Bandleader": 3235825061, + "Monster Fibula: Blue Hedgehag": 3235825062, + "Monster Fibula: Infected Digmo": 3235825063, + "Monster Fibula: Peng King Dakara": 3235825064, + "Monster Fibula: X01 Driller H.F.S.": 3235825065, + "Monster Fibula: Ti'im": 3235825066, + "Monster Fibula: Cursed Sharkster": 3235825067, + "Monster Fibula: Pinzo'jrahrrrn": 3235825068, + "Monster Fibula: Master Magmoth": 3235825069, + "Monster Fibula: Guard Billston": 3235825070, + "Monster Fibula: Hologram Frobbit": 3235825071, + "Monster Fibula: Smelter Digmo": 3235825072, + "Monster Fibula: Blazehoof": 3235825073, + "Monster Fibula: Plasma Phantom": 3235825074, + "Monster Fibula: Sir Blobus Starnikus": 3235825075, + "Monster Fibula: Tiefsee Angler": 3235825076, + "Monster Fibula: Son of the East": 3235825077, + "Monster Fibula: Ancient Guardian": 3235825078, + "Monster Fibula: Karotto Fruitseeker": 3235825079, + "Monster Fibula: Buff Bloomy": 3235825080, + "Monster Fibula: Twilight Master": 3235825081, + "Monster Fibula: King Kaktorro": 3235825082, + "Monster Fibula: DON'T USE THIS": 3235825083, + "Monster Fibula: Designer": 3235825084, + "Monster Fibula: The Creator": 3235825085, + "Monster Fibula: Pandza Mk. II": 3235825086, + "Monster Fibula: Echinoignis": 3235825087, + "Monster Fibula: Echinonix": 3235825088, + "Monster Fibula: Echinofulgur": 3235825089, + "Monster Fibula: Echinofluctus": 3235825090, + "Monster Fibula: Salteric": 3235825091, + "Monster Fibula: Balooneer": 3235825092, + "Monster Fibula: K'im": 3235825093, + "Monster Fibula: Trigenbu": 3235825094, + "Monster Fibula: Heat Crystalid": 3235825095, + "Monster Fibula: Cold Crystalid": 3235825096, + "Monster Fibula: Shock Crystalid": 3235825097, + "Monster Fibula: Wave Crystalid": 3235825098, + "Monster Fibula: Hummagnum": 3235825099, + "Monster Fibula: Mizree": 3235825100, + "Monster Fibula: Beearbot": 3235825101, + "Monster Fibula: Illegal Coordinator": 3235825102, + "Monster Fibula: Tremmy": 3235825103, + "Monster Fibula: Distillizer": 3235825104, + "Monster Fibula: Toxovolt": 3235825105, + "Monster Fibula: Papaboss the Younger": 3235825106, + "Monster Fibula: Hillcart": 3235825107, + "Monster Fibula: The Goatfather": 3235825108, + "Monster Fibula: Guardian Statue": 3235825109, + "Monster Fibula: Gynthar": 3235825110, + "Monster Fibula: Di'orbis": 3235825111, + "Monster Fibula: Son of the Beach": 3235825112 } \ No newline at end of file