]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/helpers/tracker.js
better dungeon cleared check
[alttp.git] / resources / js / helpers / tracker.js
index 4a907ffb47586655de4e1c79f5271020a81b545c..92508d46f1bc9434b97e641c8132a4fd94f0a095 100644 (file)
@@ -948,7 +948,7 @@ export const UNDERWORLD_LOCATIONS = [
        {
                id: 'hype-cave-bottom',
                room: 0x11E,
-               chest: 4,
+               chest: 3,
        },
        {
                id: 'hype-cave-npc',
@@ -1140,12 +1140,12 @@ export const UNDERWORLD_LOCATIONS = [
        {
                id: 'paradox-lower-far-right',
                room: 0xEF,
-               chest: 4,
+               chest: 3,
        },
        {
                id: 'paradox-lower-mid',
                room: 0xEF,
-               chest: 5,
+               chest: 4,
        },
        {
                id: 'paradox-upper-left',
@@ -1543,12 +1543,12 @@ export const UNDERWORLD_LOCATIONS = [
        {
                id: 'waterfall-fairy-left',
                room: 0x114,
-               chest: 4,
+               chest: 0,
        },
        {
                id: 'waterfall-fairy-right',
                room: 0x114,
-               chest: 5,
+               chest: 1,
        },
 ];
 
@@ -1607,6 +1607,15 @@ export const hasDungeonPrize = (state, dungeon) => !!state[`${dungeon.id}-prize-
 
 export const getDungeonPrize = (state, dungeon) => state[`${dungeon.id}-prize`] || null;
 
+export const isDungeonCleared = (state, dungeon) => {
+       const cleared = state[`${dungeon.id}-checks`] || 0;
+       const total = dungeon.items;
+       const hasItems = cleared >= total;
+       const hasBoss = !dungeon.boss || hasDungeonBoss(state, dungeon);
+       const hasPrize = !dungeon.porize || hasDungeonPrize(state, dungeon);
+       return hasItems && hasBoss && hasPrize;
+};
+
 export const makeEmptyState = () => {
        const state = {};
        BOOLEAN_STATES.forEach(p => {