diff --git a/changelog.txt b/changelog.txt index 698e312..1d96fb1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -28,3 +28,10 @@ Initial release - all logic "fixes" are based on https://samus.link/logic and/or - Fixed Wave Beam check - Fixed Lower Norfair checks +1.0.3 +---- + +- Fixed locations that are checkable to show as blue again +- Fixed Spring Ball Access for Noob +- Fix Lower Norfair Access for Noob (space jump for casual requirement) +- Actually fix crocs checks this time. Maybe. Pending feedback. diff --git a/locations/locations.json b/locations/locations.json index eb65c10..702f408 100644 --- a/locations/locations.json +++ b/locations/locations.json @@ -279,7 +279,8 @@ { "name": "Super Missile (Crateria)", "access_rules": [ - "$canPowerBomb,speed,$countTanks:2,$needMinorItems", + "$canPowerBomb,speed,etank:3,$countTanks:2,$needMinorItems", + "{$canPowerBomb}" ], "sections": [ { @@ -1434,6 +1435,7 @@ "$canAccessCrocomire,$canFly,$isCasual,$needMinorItems", "$canAccessCrocomire,grapple,$isCasual,$needMinorItems", "$canAccessCrocomire,hijump,speed,$isCasual,$needMinorItems", + "{$canAccessRedBrinstar}", ], "sections": [ { @@ -1711,7 +1713,9 @@ { "name": "Energy Tank, Ridley", "access_rules": [ - "$canDoWorstRoom" + "$canDoWorstRoom,$isCasual", + "$canDoWorstRoomTournament,$isNotCasual", + "[],$canDoWorstRoomTournament,$isCasual", ], "sections": [ { @@ -1762,7 +1766,9 @@ { "name": "Energy Tank, Firefleas", "access_rules": [ - "$canDoWorstRoom" + "$canDoWorstRoom,$isCasual", + "$canDoWorstRoomTournament,$isNotCasual", + "[],$canDoWorstRoomTournament,$isCasual", ], "sections": [ { @@ -1843,7 +1849,9 @@ { "name": "Missile (Mickey Mouse room)", "access_rules": [ - "$canDoWorstRoom,$needMinorItems" + "$canDoWorstRoom,$isCasual,$needMinorItems", + "$canDoWorstRoomTournament,$isNotCasual,$needMinorItems", + "[],$canDoWorstRoomTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -1867,7 +1875,9 @@ { "name": "Missile (lower Norfair above fire flea room)", "access_rules": [ - "$canDoWorstRoom,$needMinorItems" + "$canDoWorstRoom,$isCasual,$needMinorItems", + "$canDoWorstRoomTournament,$isNotCasual,$needMinorItems", + "[],$canDoWorstRoomTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -1891,7 +1901,9 @@ { "name": "Power Bomb (lower Norfair above fire flea room)", "access_rules": [ - "$canDoWorstRoom,$needMinorItems" + "$canDoWorstRoom,$isCasual,$needMinorItems", + "$canDoWorstRoomTournament,$isNotCasual,$needMinorItems", + "[],$canDoWorstRoomTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -1915,7 +1927,9 @@ { "name": "Power Bomb (Power Bombs of shame)", "access_rules": [ - "$canDoWorstRoom,$needMinorItems" + "$canDoWorstRoom,$isCasual,$needMinorItems", + "$canDoWorstRoomTournament,$isNotCasual,$needMinorItems", + "[],$canDoWorstRoomTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -1939,7 +1953,9 @@ { "name": "Missile (lower Norfair near Wave Beam)", "access_rules": [ - "$canDoWorstRoom,$needMinorItems" + "$canDoWorstRoom,$isCasual,$needMinorItems", + "$canDoWorstRoomTournament,$isNotCasual,$needMinorItems", + "[],$canDoWorstRoomTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -1986,6 +2002,8 @@ "$canAccessWreckedShipReserve,phantoon", "$canAccessWreckedShipReserveTournament,$isNotCasual,phantoon", "[],$canAccessWreckedShipReserveTournament,$isCasual,phantoon", + "{$canAccessWreckedShip,$isCasual,phantoon}", + "{$canAccessWreckedShipTournament,$isNotCasual,phantoon}", ], "sections": [ { @@ -2193,7 +2211,9 @@ { "name": "Maridia", "access_rules": [ - "$canAccessOuterMaridia" + "$canAccessOuterMaridia,$isCasual", + "$canAccessOuterMaridiaTournament,$isNotCasual", + "[],$canAccessOuterMaridiaTournament,$isCasual", ], "children": [ { @@ -2265,9 +2285,9 @@ { "name": "Spring Ball", "access_rules": [ - "$canAccessInnerMaridia,ice", - "$canAccessInnerMaridia,grapple,$canFly", - "$canAccessInnerMaridia,grapple,hijump", + "$canAccessSpringBall,$isCasual", + "$canAccessSpringBallTournament,$isNotCasual", + "[],$canAccessSpringBallTournament,$isCasual", ], "sections": [ { @@ -2370,7 +2390,9 @@ { "name": "Missile (right Maridia sand pit room)", "access_rules": [ - "$canAccessInnerMaridia,$needMinorItems" + "$canAccessInnerMaridia,$isCasual,$needMinorItems", + "$canAccessInnerMaridiaTournament,$isNotCasual,$needMinorItems", + "[],$canAccessInnerMaridiaTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -2431,7 +2453,9 @@ { "name": "Energy Tank, Botwoon", "access_rules": [ - "$canAccessBotwoon" + "$canAccessBotwoon,$isCasual", + "$canAccessBotwoonTournament,$isNotCasual", + "[],$canAccessBotwoonTournament,$isCasual", ], "sections": [ { @@ -2455,7 +2479,9 @@ { "name": "Space Jump", "access_rules": [ - "$canAccessDraygon" + "$canAccessDraygon,$isCasual", + "$canAccessDraygonTournament,$isNotCasual", + "[],$canAccessDraygonTournament,$isCasual", ], "sections": [ { @@ -2534,7 +2560,9 @@ { "name": "Missile (Draygon)", "access_rules": [ - "$canAccessDraygon,$needMinorItems" + "$canAccessDraygon,$isCasual,$needMinorItems", + "$canAccessDraygonTournament,$isNotCasual,$needMinorItems", + "[],$canAccessDraygonTournament,$isCasual,$needMinorItems", ], "sections": [ { @@ -2563,7 +2591,9 @@ "name": "Yellow Maridia", "color": "#907830", "access_rules": [ - "$canAccessInnerMaridia" + "$canAccessInnerMaridia,$isCasual", + "$canAccessInnerMaridiaTournament,$isNotCasual", + "[],$canAccessInnerMaridiaTournament,$isCasual", ], "children": [ { diff --git a/scripts/logic.lua b/scripts/logic.lua index 50934a2..09d09af 100644 --- a/scripts/logic.lua +++ b/scripts/logic.lua @@ -278,51 +278,6 @@ function canAccessKraid() return 0 end -function canDoWorstRoom() - if canAccessLowerNorfair() == 1 and ( - canFly() == 1 or - (hasIce() == 1 and hasCharge() == 1) or - hasHiJump() == 1 or - hasSpringBall() == 1 - ) then - return 1 - end - return 0 -end - -function canAccessOuterMaridia() - if canAccessRedBrinstar() == 1 and canPowerBomb() == 1 and - (hasGravity() == 1 or (hasHiJump() == 1 and (hasIce() == 1 or hasSpringBall() == 1))) - then - return 1 - end - return 0 -end - -function canAccessInnerMaridia() - if canAccessRedBrinstar() == 1 and canPowerBomb() == 1 and hasGravity() == 1 then - return 1 - end - return 0 -end - -function canAccessBotwoon() - if canAccessRedBrinstar() == 1 and canPowerBomb() == 1 and - (hasIce() == 1 or hasSpeedBooster() == 1) and - (hasGravity() == 1 or (canDoSuitlessMaridia() == 1 and hasIce() == 1)) - then - return 1 - end - return 0 -end - -function canAccessDraygon() - if canAccessBotwoon() == 1 and hasGravity() == 1 then - return 1 - end - return 0 -end - -- functions added or modified by Robob27 function needMinorItems() local minorItems = Tracker:ProviderCountForCode("minor") @@ -476,7 +431,7 @@ function canAccessWreckedShipReserveTournament() end function canAccessPlasmaTournament() - if canAccessDraygon() == 1 and + if canAccessDraygonTournament() == 1 and ((hasCharge() == 1 and countTanks() >= 3) or hasScrewAttack() == 1 or hasPlasma() == 1 or hasSpeedBooster() == 1) and (canFly() == 1 or hasHiJump() == 1 or canSpringBallJump() == 1 or hasSpeedBooster() == 1) then @@ -521,7 +476,7 @@ function canAccessWestNorfair() return 0 end -function canAccessCrocomire() +function canAccessCrocomireOld() if canAccessHeatedNorfair() == 1 and (canAccessKraid() == 1 and canPowerBomb() == 1 and hasSpeedBooster() == 1) then @@ -531,7 +486,7 @@ function canAccessCrocomire() return 0 end -function canAccessCrocomireTournament() +function canAccessCrocomireTournamentOld() if (canAccessKraid() == 1 and canPowerBomb() == 1 and hasSpeedBooster() == 1 and countTanks() >= 2) then return 1 end @@ -539,6 +494,39 @@ function canAccessCrocomireTournament() return 0 end +function canAccessCrocomire() + if (canBombWalls() == 1 or hasSpeedBooster() == 1) and (hasSuper() == 1 and hasMorph() == 1) and + hasVaria() == 1 and hasSuper() == 1 and ( + (canPowerBomb() == 1 and hasSpeedBooster() == 1) or + (hasSpeedBooster() == 1 and hasWave() == 1) or + ( + hasMorph() == 1 and (canFly() == 1 or hasHiJump() == 1) and (hasGravity() == 1 and hasWave() == 1) + ) + ) then + return 1 + end + + return 0 +end + +function canAccessCrocomireTournament() + if (canBombWalls() == 1 or hasSpeedBooster() == 1) and (hasSuper() == 1 and hasMorph() == 1) and hasSuper() == 1 and + ((hasSpeedBooster() == 1 and countTanks() >= 2) or canHellRun() == 1) and + ( + (canFly() == 1 or hasHiJump() == 1) or + canSpringBallJump() == 1 or + ( + hasVaria() == 1 and (hasIce() == 1 or hasSpeedBooster() == 1) + ) + ) and + (canBombPassages() == 1 or hasSpeedBooster() == 1 or (hasVaria() == 1 and hasMorph() == 1)) + then + return 1 + end + + return 0 +end + function canAccessHeatedNorfairTournament() if canAccessRedBrinstar() == 1 and canHellRun() == 1 then return 1 @@ -609,3 +597,120 @@ function canAccessGravityTournament() return 0 end + +function canDoWorstRoom() + if canAccessLowerNorfair() == 1 and canPowerBomb() == 1 and hasSpaceJump() == 1 and hasGravity() == 1 then + return 1 + end + + return 0 +end + +function canDoWorstRoomTournament() + if canAccessLowerNorfairTournament() == 1 and hasVaria() == 1 and canPowerBomb() == 1 and + (hasHiJump() == 1 or hasGravity() == 1) and + (canFly() == 1 or hasHiJump() == 1 or canSpringBallJump() == 1 or hasIce() == 1 and hasCharge() == 1) and + (canBombPassages() == 1 or hasScrewAttack() == 1 and hasSpaceJump() == 1) and + (hasMorph() == 1 or countTanks() >= 5) then + return 1 + end + + return 0 +end + +function canAccessSpringBall() + if canAccessInnerMaridia() == 1 and hasSuper() == 1 and hasGrapple() == 1 and canPowerBomb() == 1 and (hasSpaceJump() == 1 or hasHiJump() == 1) then + return 1 + end + + return 0 +end + +function canAccessSpringBallTournament() + if canAccessInnerMaridiaTournament() == 1 and hasSuper() == 1 and canPowerBomb() == 1 and ( + hasGravity() == 1 and (canFly() == 1 or hasHiJump() == 1) or + hasIce() == 1 and hasHiJump() == 1 and canSpringBallJump() == 1 and hasSpaceJump() == 1 + ) then + return 1 + end + + return 0 +end + + +function canAccessOuterMaridia() + if hasGravity() == 1 and canAccessRedBrinstar() == 1 and canPowerBomb() == 1 then + return 1 + end + + return 0 +end + +function canAccessOuterMaridiaTournament() + if canAccessRedBrinstar() == 1 and canPowerBomb() == 1 and + (hasGravity() == 1 or (hasHiJump() == 1 and (hasIce() == 1 or hasSpringBall() == 1))) + then + return 1 + end + + return 0 +end + + +function canAccessInnerMaridia() + if hasGravity() == 1 and canAccessRedBrinstar() == 1 and canPowerBomb() == 1 and (canFly() == 1 or hasSpeedBooster() == 1 or hasGrapple() == 1) then + return 1 + end + + return 0 +end + +function canAccessInnerMaridiaTournament() + if canAccessRedBrinstar() == 1 and canPowerBomb() == 1 and + ( + hasGravity() == 1 or + ( + hasHiJump() == 1 and + ( + hasIce() == 1 or (canSpringBallJump() == 1 and hasGrapple() == 1) + ) + ) + ) + then + return 1 + end + + return 0 +end + +function canAccessBotwoon() + if canAccessInnerMaridia() == 1 and hasSpeedBooster() == 1 then + return 1 + end + + return 0 +end + +function canAccessBotwoonTournament() + if canAccessInnerMaridiaTournament() == 1 and (hasIce() == 1 or (hasSpeedBooster() == 1 and hasGravity() == 1)) then + return 1 + end + + return 0 +end + +function canAccessDraygon() + if (canAccessBotwoon() == 1 and hasGravity() == 1) and (hasSpeedBooster() == 1 and (hasHiJump() == 1 or canFly() == 1)) then + return 1 + end + + return 0 +end + +function canAccessDraygonTournament() + if canAccessBotwoonTournament() == 1 and hasGravity() == 1 then + return 1 + end + + return 0 +end