From 6ce22c17dfedab9937afac20adc1bace08620e60 Mon Sep 17 00:00:00 2001 From: kjbranch Date: Thu, 2 Apr 2026 21:54:39 -0600 Subject: [PATCH 1/3] Norfair East shinesparks: split speed and general cleanup --- region/norfair/east/Bat Cave.json | 14 ++- region/norfair/east/Bubble Mountain.json | 69 +++++++++---- region/norfair/east/Cathedral.json | 1 - region/norfair/east/Double Chamber.json | 97 ++++++++++++------- region/norfair/east/Frog Savestation.json | 4 +- region/norfair/east/Green Bubbles Tunnel.json | 1 - region/norfair/east/Kronic Boost Room.json | 4 +- region/norfair/east/Lava Farm Tunnel.json | 2 +- region/norfair/east/Lava Grapple Tunnel.json | 6 +- .../norfair/east/Lower Norfair Elevator.json | 8 +- region/norfair/east/Magdollite Tunnel.json | 4 - .../east/Norfair Reserve Tank Room.json | 6 +- region/norfair/east/Nutella Refill.json | 8 +- region/norfair/east/Purple Shaft.json | 6 +- region/norfair/east/Rising Tide.json | 8 +- region/norfair/east/Single Chamber.json | 21 ++-- region/norfair/east/Speed Booster Hall.json | 1 - .../east/Upper Norfair Farming Room.json | 4 +- 18 files changed, 159 insertions(+), 105 deletions(-) diff --git a/region/norfair/east/Bat Cave.json b/region/norfair/east/Bat Cave.json index 92178f26a..82961ce89 100644 --- a/region/norfair/east/Bat Cave.json +++ b/region/norfair/east/Bat Cave.json @@ -296,9 +296,8 @@ }, "requires": [ "canShinechargeMovementComplex", - "canMidairShinespark", - {"heatFrames": 300}, - {"shinespark": {"frames": 14, "excessFrames": 3}} + {"shinespark": {"frames": 14, "excessFrames": 3}}, + {"heatFrames": 300} ], "flashSuitChecked": true, "blueSuitChecked": true, @@ -314,9 +313,8 @@ "requires": [ {"shineChargeFrames": 80}, "canShinechargeMovementComplex", - "canMidairShinespark", - {"heatFrames": 270}, - {"shinespark": {"frames": 13, "excessFrames": 3}} + {"shinespark": {"frames": 13, "excessFrames": 3}}, + {"heatFrames": 270} ], "flashSuitChecked": true, "blueSuitChecked": true, @@ -482,7 +480,7 @@ "requires": [ "canShinechargeMovementTricky", {"heatFrames": 165}, - {"shinespark": {"frames": 15}} + {"shinespark": {"frames": 15, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -506,7 +504,7 @@ {"shineChargeFrames": 115}, "canShinechargeMovementTricky", {"heatFrames": 165}, - {"shinespark": {"frames": 15}} + {"shinespark": {"frames": 15, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} diff --git a/region/norfair/east/Bubble Mountain.json b/region/norfair/east/Bubble Mountain.json index f943b4a53..013bba50c 100644 --- a/region/norfair/east/Bubble Mountain.json +++ b/region/norfair/east/Bubble Mountain.json @@ -1027,6 +1027,7 @@ } }, "requires": [ + "canHorizontalShinespark", {"shinespark": {"frames": 27, "excessFrames": 2}} ], "flashSuitChecked": true, @@ -1041,6 +1042,7 @@ }, "requires": [ {"shineChargeFrames": 50}, + "canHorizontalShinespark", {"shinespark": {"frames": 27, "excessFrames": 2}} ], "flashSuitChecked": true, @@ -1054,10 +1056,9 @@ "comeInShinecharged": {} }, "requires": [ - {"shineChargeFrames": 22}, - "canShinechargeMovement", + {"shineChargeFrames": 25}, "canMidairShinespark", - {"shinespark": {"frames": 19}} + {"shinespark": {"frames": 20, "excessFrames": 4}} ], "flashSuitChecked": true, "blueSuitChecked": true @@ -1098,7 +1099,7 @@ "HiJump", "SpaceJump", "canShinechargeMovementComplex", - {"shinespark": {"frames": 20, "excessFrames": 0}} + {"shinespark": {"frames": 10, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -1821,7 +1822,13 @@ } }, "requires": [ - {"shinespark": {"frames": 22, "excessFrames": 2}} + {"or": [ + {"shinespark": {"frames": 22, "excessFrames": 2}}, + {"and": [ + "canMidairShinespark", + {"shinespark": {"frames": 14, "excessFrames": 3}} + ]} + ]} ], "flashSuitChecked": true, "blueSuitChecked": true @@ -1875,7 +1882,16 @@ "comeInShinecharged": {} }, "requires": [ - {"shineChargeFrames": 125}, + {"or": [ + {"and": [ + "canSpeedyJump", + {"shineChargeFrames": 125} + ]}, + {"and": [ + {"shineChargeFrames": 160}, + {"enemyDamage": {"enemy": "Waver", "type": "contact", "hits": 1}} + ]} + ]}, "HiJump", "canWalljump", "canShinechargeMovementTricky", @@ -2437,7 +2453,7 @@ }, "requires": [ "canShinechargeMovementComplex", - {"shinespark": {"frames": 26}} + {"shinespark": {"frames": 26, "excessFrames": 3}} ], "flashSuitChecked": true, "blueSuitChecked": true, @@ -2453,7 +2469,7 @@ "requires": [ {"shineChargeFrames": 100}, "canShinechargeMovementComplex", - {"shinespark": {"frames": 26}} + {"shinespark": {"frames": 26, "excessFrames": 3}} ], "flashSuitChecked": true, "blueSuitChecked": true, @@ -3043,7 +3059,7 @@ "requires": [ {"shineChargeFrames": 40}, "canShinechargeMovement", - {"shinespark": {"frames": 9}} + {"shinespark": {"frames": 9, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -3159,7 +3175,6 @@ }, "requires": [ {"shineChargeFrames": 115}, - "canMidairShinespark", "canShinechargeMovementComplex", {"shinespark": {"frames": 30, "excessFrames": 6}} ], @@ -3177,7 +3192,6 @@ } }, "requires": [ - "canMidairShinespark", "canShinechargeMovementComplex", {"shinespark": {"frames": 30, "excessFrames": 6}} ], @@ -3553,9 +3567,8 @@ }, "requires": [ {"shineChargeFrames": 120}, - "canMidairShinespark", "canShinechargeMovementComplex", - {"shinespark": {"frames": 15}} + {"shinespark": {"frames": 15, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -3575,11 +3588,30 @@ "comeInShinecharged": {} }, "requires": [ - {"shineChargeFrames": 80}, "HiJump", - "canMidairShinespark", "canShinechargeMovementComplex", - {"shinespark": {"frames": 11}} + {"or": [ + {"and": [ + "canWalljump", + "canSpeedyJump", + {"shineChargeFrames": 80}, + {"shinespark": {"frames": 11, "excessFrames": 0}} + ]}, + {"and": [ + "canWalljump", + {"shineChargeFrames": 95}, + {"shinespark": {"frames": 10, "excessFrames": 0}} + ]}, + {"and": [ + "canSpeedyJump", + {"shineChargeFrames": 95}, + {"shinespark": {"frames": 15, "excessFrames": 0}} + ]}, + {"and": [ + {"shineChargeFrames": 110}, + {"shinespark": {"frames": 17, "excessFrames": 0}} + ]} + ]} ], "exitCondition": { "leaveWithSpark": {} @@ -3745,7 +3777,6 @@ "requires": [ {"shineChargeFrames": 100}, "canShinechargeMovementComplex", - "canMidairShinespark", "canCarefulJump", {"shinespark": {"frames": 30, "excessFrames": 6}} ], @@ -3768,7 +3799,6 @@ }, "requires": [ "canShinechargeMovementComplex", - "canMidairShinespark", "canCarefulJump", {"shinespark": {"frames": 30, "excessFrames": 6}} ], @@ -3791,7 +3821,6 @@ }, "requires": [ "canShinechargeMovementComplex", - "canMidairShinespark", "canTrickyJump", "canHeroShot", {"shinespark": {"frames": 25}}, @@ -4235,7 +4264,7 @@ }, "requires": [ {"shineChargeFrames": 105}, - {"shinespark": {"frames": 5}} + {"shinespark": {"frames": 5, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} diff --git a/region/norfair/east/Cathedral.json b/region/norfair/east/Cathedral.json index 184361a81..c8fe61ba5 100644 --- a/region/norfair/east/Cathedral.json +++ b/region/norfair/east/Cathedral.json @@ -459,7 +459,6 @@ }, "requires": [ "canShinechargeMovementTricky", - "canHorizontalShinespark", {"heatFrames": 225}, {"shinespark": {"frames": 53, "excessFrames": 0}}, {"heatFrames": 105} diff --git a/region/norfair/east/Double Chamber.json b/region/norfair/east/Double Chamber.json index a2c10bc13..0b1bab3b4 100644 --- a/region/norfair/east/Double Chamber.json +++ b/region/norfair/east/Double Chamber.json @@ -1440,8 +1440,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 1, "excessFrames": 1}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, "h_heatedGModeOpenDifferentDoor" @@ -1776,8 +1781,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 17, "excessFrames": 4}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, "h_heatedGModeOpenDifferentDoor" @@ -2388,8 +2398,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 17, "excessFrames": 4}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, {"heatFrames": 0} @@ -2442,8 +2457,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 17, "excessFrames": 4}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, {"heatFrames": 25} @@ -2939,9 +2959,9 @@ { "id": 44, "link": [3, 3], - "name": "Shinespark through Wave Beam Door (Top Path)", + "name": "Leave with Shinespark (Top Path)", "requires": [ - {"notable": "Shinespark through Wave Beam Door"}, + "canShinechargeMovementComplex", "HiJump", {"or": [ "SpaceJump", @@ -2969,7 +2989,7 @@ "openEnd": 0 }}, {"heatFrames": 780}, - {"shinespark": {"frames": 57}} + {"shinespark": {"frames": 57, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -2988,9 +3008,9 @@ { "id": 45, "link": [3, 3], - "name": "Shinespark through Wave Beam Door (Through Crumbles)", + "name": "Leave with Shinespark (Through Crumbles)", "requires": [ - {"notable": "Shinespark through Wave Beam Door"}, + "canShinechargeMovementComplex", "HiJump", "Morph", {"or": [ @@ -3011,7 +3031,7 @@ "openEnd": 0 }}, {"heatFrames": 780}, - {"shinespark": {"frames": 57}} + {"shinespark": {"frames": 57, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -3021,7 +3041,8 @@ "note": [ "Charge a spark along the bottom of the room and use it to spark through the right side door.", "Requires opening the door and shutter first." - ] + ], + "devNote": "FIXME: This would be a lot cleaner with an obstacle for the door, also the 'Through Crumbles' is misleading." }, { "id": 152, @@ -3588,7 +3609,6 @@ "requires": [ "h_spikeXModeShinecharge", "canTrickyJump", - "canMidairShinespark", {"heatFrames": 400}, {"shinespark": {"frames": 12, "excessFrames": 4}} ], @@ -4522,7 +4542,6 @@ "h_spikeXModeShinecharge", "canTrickyJump", "canUseIFrames", - "canMidairShinespark", {"heatFrames": 480}, {"shinespark": {"frames": 11, "excessFrames": 4}} ], @@ -4754,8 +4773,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 17, "excessFrames": 4}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, "h_heatedGModeOpenDifferentDoor" @@ -4790,8 +4814,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 1, "excessFrames": 1}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, "Plasma", @@ -4867,8 +4896,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 17, "excessFrames": 4}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, "h_heatedGModeOpenDifferentDoor" @@ -4899,8 +4933,13 @@ "gentleDownTiles": 3, "openEnd": 0 }}, - "canMidairShinespark", - {"shinespark": {"frames": 1, "excessFrames": 1}} + {"or": [ + {"shinespark": {"frames": 18, "excessFrames": 8}}, + {"and": [ + "canSpeedyJump", + {"shinespark": {"frames": 16, "excessFrames": 10}} + ]} + ]} ]} ]}, "Plasma", @@ -4955,14 +4994,6 @@ "It is possible to freeze or kill the Fune with a Super or Power Bomb to make things easier." ] }, - { - "id": 2, - "name": "Shinespark through Wave Beam Door", - "note": [ - "Charge a spark along the bottom of the room and use it to spark through the right side door.", - "Requires opening the door and shutter first." - ] - }, { "id": 3, "name": "Hijumpless Spike Tricky Dash Jump", diff --git a/region/norfair/east/Frog Savestation.json b/region/norfair/east/Frog Savestation.json index 41711ff25..596341dae 100644 --- a/region/norfair/east/Frog Savestation.json +++ b/region/norfair/east/Frog Savestation.json @@ -147,7 +147,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}} + {"shinespark": {"frames": 21, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": { @@ -295,7 +295,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}} + {"shinespark": {"frames": 21, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": { diff --git a/region/norfair/east/Green Bubbles Tunnel.json b/region/norfair/east/Green Bubbles Tunnel.json index 04e751ebb..8442440b0 100644 --- a/region/norfair/east/Green Bubbles Tunnel.json +++ b/region/norfair/east/Green Bubbles Tunnel.json @@ -178,7 +178,6 @@ }, "requires": [ "canShinechargeMovementTricky", - "canMidairShinespark", "canMockball", {"or": [ {"enemyKill": { diff --git a/region/norfair/east/Kronic Boost Room.json b/region/norfair/east/Kronic Boost Room.json index 97cb520d4..40cf9ceb1 100644 --- a/region/norfair/east/Kronic Boost Room.json +++ b/region/norfair/east/Kronic Boost Room.json @@ -270,7 +270,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}}, + {"shinespark": {"frames": 21, "excessFrames": 0}}, {"heatFrames": 60} ], "exitCondition": { @@ -1144,7 +1144,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}}, + {"shinespark": {"frames": 21, "excessFrames": 0}}, {"heatFrames": 60} ], "exitCondition": { diff --git a/region/norfair/east/Lava Farm Tunnel.json b/region/norfair/east/Lava Farm Tunnel.json index c1479c9e7..4dc745759 100644 --- a/region/norfair/east/Lava Farm Tunnel.json +++ b/region/norfair/east/Lava Farm Tunnel.json @@ -622,7 +622,7 @@ }, "requires": [ {"shineChargeFrames": 40}, - {"shinespark": {"frames": 8}}, + {"shinespark": {"frames": 8, "excessFrames": 0}}, {"heatFrames": 50} ], "exitCondition": { diff --git a/region/norfair/east/Lava Grapple Tunnel.json b/region/norfair/east/Lava Grapple Tunnel.json index 1a5faf2b6..9bbe0b2c9 100644 --- a/region/norfair/east/Lava Grapple Tunnel.json +++ b/region/norfair/east/Lava Grapple Tunnel.json @@ -698,8 +698,7 @@ {"heatFrames": 210} ]}, {"and": [ - "canShinechargeMovement", - "canMidairShinespark", + "canHorizontalMidairShinespark", {"shinespark": {"frames": 67, "excessFrames": 4}}, {"heatFrames": 300} ]} @@ -1511,8 +1510,7 @@ {"heatFrames": 210} ]}, {"and": [ - "canShinechargeMovement", - "canMidairShinespark", + "canHorizontalMidairShinespark", {"shinespark": {"frames": 67, "excessFrames": 4}}, {"heatFrames": 300} ]} diff --git a/region/norfair/east/Lower Norfair Elevator.json b/region/norfair/east/Lower Norfair Elevator.json index 4c71aa1bc..2deaaeadf 100644 --- a/region/norfair/east/Lower Norfair Elevator.json +++ b/region/norfair/east/Lower Norfair Elevator.json @@ -257,7 +257,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}}, + {"shinespark": {"frames": 21, "excessFrames": 0}}, {"heatFrames": 55} ], "exitCondition": { @@ -691,7 +691,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}}, + {"shinespark": {"frames": 21, "excessFrames": 0}}, {"heatFrames": 55} ], "exitCondition": { @@ -1112,7 +1112,7 @@ "requires": [ {"shineChargeFrames": 20}, "h_LowerNorfairElevatorUpwardFrames", - {"shinespark": {"frames": 6}}, + {"shinespark": {"frames": 6, "excessFrames": 0}}, {"heatFrames": 50} ], "exitCondition": { @@ -1190,7 +1190,7 @@ "requires": [ {"shineChargeFrames": 20}, "h_LowerNorfairElevatorUpwardFrames", - {"shinespark": {"frames": 6}}, + {"shinespark": {"frames": 6, "excessFrames": 0}}, {"heatFrames": 50} ], "exitCondition": { diff --git a/region/norfair/east/Magdollite Tunnel.json b/region/norfair/east/Magdollite Tunnel.json index 584e19d82..93b2a0ae9 100644 --- a/region/norfair/east/Magdollite Tunnel.json +++ b/region/norfair/east/Magdollite Tunnel.json @@ -242,7 +242,6 @@ }, "requires": [ "canShinechargeMovementComplex", - "canMidairShinespark", {"shinespark": {"frames": 57, "excessFrames": 4}}, {"heatFrames": 210} ], @@ -262,7 +261,6 @@ "requires": [ {"shineChargeFrames": 16}, "canShinechargeMovementComplex", - "canMidairShinespark", {"shinespark": {"frames": 57, "excessFrames": 4}}, {"heatFrames": 210} ], @@ -525,7 +523,6 @@ }, "requires": [ "canShinechargeMovementComplex", - "canMidairShinespark", {"shinespark": {"frames": 57, "excessFrames": 4}}, {"heatFrames": 210} ], @@ -545,7 +542,6 @@ "requires": [ {"shineChargeFrames": 16}, "canShinechargeMovementComplex", - "canMidairShinespark", {"shinespark": {"frames": 57, "excessFrames": 4}}, {"heatFrames": 210} ], diff --git a/region/norfair/east/Norfair Reserve Tank Room.json b/region/norfair/east/Norfair Reserve Tank Room.json index 3d3eb1457..c0513b8c7 100644 --- a/region/norfair/east/Norfair Reserve Tank Room.json +++ b/region/norfair/east/Norfair Reserve Tank Room.json @@ -407,7 +407,7 @@ }, "requires": [ "canDownGrab", - {"shinespark": {"frames": 39}}, + {"shinespark": {"frames": 39, "excessFrames": 0}}, {"heatFrames": 142} ], "flashSuitChecked": true, @@ -422,7 +422,7 @@ }, "requires": [ {"shineChargeFrames": 13}, - "canMidairShinespark", + "canHorizontalMidairShinespark", {"shinespark": {"frames": 38, "excessFrames": 1}}, {"heatFrames": 160} ], @@ -440,7 +440,7 @@ } }, "requires": [ - "canMidairShinespark", + "canHorizontalMidairShinespark", {"shinespark": {"frames": 37, "excessFrames": 1}}, {"heatFrames": 160} ], diff --git a/region/norfair/east/Nutella Refill.json b/region/norfair/east/Nutella Refill.json index 757641c3f..dc0862227 100644 --- a/region/norfair/east/Nutella Refill.json +++ b/region/norfair/east/Nutella Refill.json @@ -126,7 +126,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}} + {"shinespark": {"frames": 21, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": { @@ -150,7 +150,7 @@ "requires": [ {"shineChargeFrames": 50}, "canShinechargeMovement", - {"shinespark": {"frames": 11}} + {"shinespark": {"frames": 11, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": { @@ -299,7 +299,7 @@ }, "requires": [ {"shineChargeFrames": 10}, - {"shinespark": {"frames": 21}} + {"shinespark": {"frames": 21, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": { @@ -323,7 +323,7 @@ "requires": [ {"shineChargeFrames": 50}, "canShinechargeMovement", - {"shinespark": {"frames": 11}} + {"shinespark": {"frames": 11, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": { diff --git a/region/norfair/east/Purple Shaft.json b/region/norfair/east/Purple Shaft.json index 18679e51e..503c541dd 100644 --- a/region/norfair/east/Purple Shaft.json +++ b/region/norfair/east/Purple Shaft.json @@ -237,7 +237,7 @@ {"shineChargeFrames": 100}, "canShinechargeMovementComplex", {"heatFrames": 120}, - {"shinespark": {"frames": 5}} + {"shinespark": {"frames": 5, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -532,7 +532,7 @@ "requires": [ "canShinechargeMovementComplex", {"heatFrames": 175}, - {"shinespark": {"frames": 8}} + {"shinespark": {"frames": 8, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -824,7 +824,7 @@ }, "requires": [ {"shineChargeFrames": 85}, - {"shinespark": {"frames": 8}}, + {"shinespark": {"frames": 8, "excessFrames": 0}}, {"heatFrames": 120} ], "exitCondition": { diff --git a/region/norfair/east/Rising Tide.json b/region/norfair/east/Rising Tide.json index f04e50182..ff4044833 100644 --- a/region/norfair/east/Rising Tide.json +++ b/region/norfair/east/Rising Tide.json @@ -466,7 +466,7 @@ } }, "requires": [ - "canMidairShinespark", + "canHorizontalMidairShinespark", {"heatFrames": 210}, {"shinespark": {"frames": 90, "excessFrames": 5}} ], @@ -486,7 +486,7 @@ }, "requires": [ {"shineChargeFrames": 13}, - "canMidairShinespark", + "canHorizontalMidairShinespark", {"heatFrames": 205}, {"shinespark": {"frames": 92, "excessFrames": 5}} ], @@ -656,7 +656,7 @@ } }, "requires": [ - "canMidairShinespark", + "canHorizontalMidairShinespark", {"heatFrames": 210}, {"shinespark": {"frames": 90, "excessFrames": 3}} ], @@ -676,7 +676,7 @@ }, "requires": [ {"shineChargeFrames": 13}, - "canMidairShinespark", + "canHorizontalMidairShinespark", {"heatFrames": 205}, {"shinespark": {"frames": 92, "excessFrames": 3}} ], diff --git a/region/norfair/east/Single Chamber.json b/region/norfair/east/Single Chamber.json index ce6db1d67..488cb9016 100644 --- a/region/norfair/east/Single Chamber.json +++ b/region/norfair/east/Single Chamber.json @@ -1002,7 +1002,7 @@ "HiJump", "canWalljump" ]}, - {"shinespark": {"frames": 5}}, + {"shinespark": {"frames": 5, "excessFrames": 0}}, {"heatFrames": 230} ], "exitCondition": { @@ -1514,7 +1514,7 @@ }, "requires": [ "canShinechargeMovementComplex", - {"shinespark": {"frames": 5}}, + {"shinespark": {"frames": 5, "excessFrames": 0}}, {"heatFrames": 220} ], "exitCondition": { @@ -1539,7 +1539,7 @@ "requires": [ {"shineChargeFrames": 145}, "canShinechargeMovementComplex", - {"shinespark": {"frames": 18}}, + {"shinespark": {"frames": 18, "excessFrames": 0}}, {"heatFrames": 190} ], "exitCondition": { @@ -1833,11 +1833,17 @@ "comeInShinecharged": {} }, "requires": [ - {"shineChargeFrames": 140}, + {"or": [ + {"shineChargeFrames": 150}, + {"and": [ + "canSpeedyJump", + {"shineChargeFrames": 140} + ]} + ]}, "HiJump", "canTrickyJump", "canShinechargeMovementComplex", - {"shinespark": {"frames": 9}}, + {"shinespark": {"frames": 9, "excessFrames": 0}}, {"heatFrames": 170} ], "exitCondition": { @@ -2109,13 +2115,12 @@ "requires": [ "HiJump", "canTrickyJump", - "canShinechargeMovementComplex", - "canDodgeWhileShooting", + "canShinechargeMovementTricky", {"or": [ {"ammo": {"type": "Missile", "count": 1}}, "Plasma" ]}, - {"shinespark": {"frames": 14}}, + {"shinespark": {"frames": 14, "excessFrames": 0}}, {"heatFrames": 190} ], "exitCondition": { diff --git a/region/norfair/east/Speed Booster Hall.json b/region/norfair/east/Speed Booster Hall.json index b492e475c..5e3adf0e1 100644 --- a/region/norfair/east/Speed Booster Hall.json +++ b/region/norfair/east/Speed Booster Hall.json @@ -900,7 +900,6 @@ "requires": [ {"obstaclesCleared": ["A"]}, "canShinechargeMovementComplex", - "canHorizontalShinespark", "h_shinechargeMaxRunway", {"heatFrames": 335}, {"shinespark": {"frames": 221}} diff --git a/region/norfair/east/Upper Norfair Farming Room.json b/region/norfair/east/Upper Norfair Farming Room.json index dd255d6f1..580334073 100644 --- a/region/norfair/east/Upper Norfair Farming Room.json +++ b/region/norfair/east/Upper Norfair Farming Room.json @@ -298,7 +298,7 @@ {"shineChargeFrames": 80}, "canShinechargeMovementComplex", {"heatFrames": 100}, - {"shinespark": {"frames": 16, "excessFrames": 0}} + {"shinespark": {"frames": 19, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} @@ -662,7 +662,7 @@ {"shineChargeFrames": 80}, "canShinechargeMovementComplex", {"heatFrames": 100}, - {"shinespark": {"frames": 16, "excessFrames": 0}} + {"shinespark": {"frames": 19, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} From ea265f15e4636801fe8808012fbfcc9ec112c3e1 Mon Sep 17 00:00:00 2001 From: kjbranch <61815121+kjbranch@users.noreply.github.com> Date: Sat, 4 Apr 2026 15:36:03 -0600 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Michael McKenzie --- region/norfair/east/Bubble Mountain.json | 3 ++- region/norfair/east/Speed Booster Hall.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/region/norfair/east/Bubble Mountain.json b/region/norfair/east/Bubble Mountain.json index 013bba50c..858352876 100644 --- a/region/norfair/east/Bubble Mountain.json +++ b/region/norfair/east/Bubble Mountain.json @@ -1891,7 +1891,8 @@ {"shineChargeFrames": 160}, {"enemyDamage": {"enemy": "Waver", "type": "contact", "hits": 1}} ]} - ]}, + ]}, + "canHeroShot", "HiJump", "canWalljump", "canShinechargeMovementTricky", diff --git a/region/norfair/east/Speed Booster Hall.json b/region/norfair/east/Speed Booster Hall.json index 5e3adf0e1..befa99c7a 100644 --- a/region/norfair/east/Speed Booster Hall.json +++ b/region/norfair/east/Speed Booster Hall.json @@ -899,7 +899,7 @@ "name": "Return Shinespark", "requires": [ {"obstaclesCleared": ["A"]}, - "canShinechargeMovementComplex", + "canShinechargeMovementTricky", "h_shinechargeMaxRunway", {"heatFrames": 335}, {"shinespark": {"frames": 221}} From ee5c8befdc838769db9d6d6e75d027a2cd3366ab Mon Sep 17 00:00:00 2001 From: kjbranch Date: Sat, 4 Apr 2026 15:41:29 -0600 Subject: [PATCH 3/3] feedback add some cac spikes or luck --- region/norfair/east/Bubble Mountain.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/region/norfair/east/Bubble Mountain.json b/region/norfair/east/Bubble Mountain.json index 858352876..a424108c4 100644 --- a/region/norfair/east/Bubble Mountain.json +++ b/region/norfair/east/Bubble Mountain.json @@ -1891,12 +1891,16 @@ {"shineChargeFrames": 160}, {"enemyDamage": {"enemy": "Waver", "type": "contact", "hits": 1}} ]} - ]}, - "canHeroShot", + ]}, + "canHeroShot", "HiJump", "canWalljump", "canShinechargeMovementTricky", - {"shinespark": {"frames": 27, "excessFrames": 0}} + {"shinespark": {"frames": 27, "excessFrames": 0}}, + {"or": [ + "canBeLucky", + {"enemyDamage": {"enemy": "Cacatac", "type": "spike", "hits": 1}} + ]} ], "exitCondition": { "leaveWithSpark": {} @@ -3779,6 +3783,10 @@ {"shineChargeFrames": 100}, "canShinechargeMovementComplex", "canCarefulJump", + {"or": [ + "canBeLucky", + {"enemyDamage": {"enemy": "Cacatac", "type": "spike", "hits": 1}} + ]}, {"shinespark": {"frames": 30, "excessFrames": 6}} ], "flashSuitChecked": true, @@ -3801,6 +3809,10 @@ "requires": [ "canShinechargeMovementComplex", "canCarefulJump", + {"or": [ + "canBeLucky", + {"enemyDamage": {"enemy": "Cacatac", "type": "spike", "hits": 1}} + ]}, {"shinespark": {"frames": 30, "excessFrames": 6}} ], "flashSuitChecked": true,