- if (['ct', 'gt'].includes(dungeon.id) && cleared === total) {
- if (hasDungeonBoss(state, dungeon)) {
- // reset
- setState(s => ({
- ...s,
- [`${dungeon.id}-checks`]: 0,
- [`${dungeon.id}-boss-defeated`]: false,
- }));
- } else {
- setState(toggleBoolean(`${dungeon.id}-boss-defeated`));
+ if (getDungeonRemainingItems(state, definition)) {
+ setState(addDungeonCheck(definition));
+ } else if (
+ !hasDungeonBoss(state, definition) || !hasDungeonPrize(state, definition)
+ ) {
+ if (definition.boss) {
+ setState(setBossDefeated(definition, true));
+ }
+ if (definition.prize) {
+ setState(setPrizeAcquired(definition, true));