Skip to content

Add Torvus Logic#5

Open
hopesgit wants to merge 37 commits into
UltiNaruto:mainfrom
hopesgit:main
Open

Add Torvus Logic#5
hopesgit wants to merge 37 commits into
UltiNaruto:mainfrom
hopesgit:main

Conversation

@hopesgit
Copy link
Copy Markdown

@hopesgit hopesgit commented Dec 19, 2025

Torvus Logic. I had to fix some issues with my local environment before I could grab the newer version of this upstream, which delayed posting this pretty severely. I fixed all of the imports to use the new style along the way. Hpefully, this is good!

Torvus:
- Transport to Temple Grounds
- Temple Transport Access
- Torvus Lagoon
- Save Station A
- Ruined Alcove
- Path of Roots
- Portal Chamber (Light)
- Great Bridge
- Forgotten Bridge
- Torvus Map Station
- Abandoned Worksite
- Plaza Access

add tricks to Options.py (some have yet to be added for the rooms specified)
- controller_access.py
- grove_access.py
- temple_access.py
- torvus_energy_controller.py
- torvus_temple.py
- transport_to_agon_wastes.py

Added tricks for those rooms
- Underground Transport
- Underground Tunnel
- Torvus Grove
- Meditation Vista

Added tricks logic for:
- all the above
- Torvus Temple

Added tricks to Options.py to support tricks logic for these rooms
- hydrochamber_storage.py
- main_hydrochamber.py
- save_station_b.py
- hydrodynamo_shaft.py
- hydrodynamo_station.py

Added options to Options.py to support tricks in these locations
- gathering_access.py
- training_access.py
- catacombs_access.py

Added options to Options.py to support tricks in these locations
… files

Added Training Chamber, Transit Tunnel West, Transport to Sanctuary Fortress, Gathering Hall, Fortress Transport Access rooms

Adjusted class names of any Torvus rooms that aren't unique to be unique (in order to prevent conflicts later on)
Add Catacombs parts to __init__.py
Add Options relating to Catacombs to Options.py
@hopesgit hopesgit marked this pull request as draft December 19, 2025 22:33
Also update Abandoned Worksite to the new imports format

Signed-off-by: hopesgit <hope.gochnour@gmail.com>
@hopesgit hopesgit marked this pull request as ready for review February 19, 2026 15:46
Comment thread src/logic/metroidprime2/light_world/torvus_bog/abandoned_worksite.py Outdated
Comment thread src/logic/metroidprime2/light_world/temple_grounds/sacred_bridge.py
Comment thread src/logic/metroidprime2/dark_world/sky_temple/sanctum.py
Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
Comment thread src/logic/metroidprime2/light_world/torvus_bog/catacombs.py Outdated
Comment thread src/logic/metroidprime2/light_world/torvus_bog/catacombs.py
Comment thread src/logic/metroidprime2/light_world/torvus_bog/catacombs.py Outdated
…the changes from a couple of rooms outside of Torvus that somehow ended up in here
Comment thread src/logic/__init__.py
Comment thread src/Regions.py
Comment thread src/Locations.py
Comment thread src/__init__.py
@UltiNaruto
Copy link
Copy Markdown
Owner

Also no need to mention TorvusBog_ in the class names since we already know that it is Torvus Bog, It adds reduncancy for no reasons.

- One white door
- Grenchler or Dark Pirate Commando enemies

Logic assumes that the bomb slot in Dark Forgotten Bridge has already been activated.
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't assume that

destination="Torvus Bog - Forgotten Bridge (Bridge)",
rule=lambda state, player: condition_and([
state.has("Torvus Bog - Forgotten Bridge | Spinner Activated", player),
state.has_all(["Space Jump Boots", "Screw Attack"], player)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use can_use_screw_attack

Comment thread src/logic/metroidprime2/light_world/torvus_bog/forgotten_bridge.py
has_trick_enabled(state, player, "Torvus Bog - Forgotten Bridge | Bomb Jump Between Platforms")
]),
condition_and([
has_trick_enabled(state, player, "Torvus Bog - Forgotten Bridge | Air Underwater"),
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverse Air Underwater you meant?

Comment thread src/logic/metroidprime2/light_world/torvus_bog/fortress_transport_access.py Outdated
rule=lambda state, player: condition_or([
state.has('Gravity Boost', player),
state.has('Space Jump Boots', player),
can_use_screw_attack(state, player) # this method requires some finicky movement in NSJ, but you can do it
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if it's NSJ then it's a trick and should be marked with is_nsj too

Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py
# the spiny platforms can no longer be interacted with once the water is drained


class GatheringHall_UpperDoorLedge(MetroidPrime2Region):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

always assume the worst for the player and assume the player will fall in water so remove non tricks connection and keep only player go to underwater connection

),
MetroidPrime2Exit(
destination="Torvus Bog - Gathering Hall (Spider Tracks)",
rule=lambda state, player: condition_and([
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might want to add the roll jump method too

),
MetroidPrime2Exit(
destination="Torvus Bog - Gathering Hall (Upper Door Ledge)",
rule=lambda state, player: True
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replace with state.has("Morph Ball", player)

Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
name="Gathering Hall"
desc="Item Ledge"
exits_ = [
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded connection, you already have cannon ledge under the item ledge

can_use_screw_attack(state, player)
])
),
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded connection, you already have cannon ledge under the item ledge

can_use_screw_attack(state, player)
])
),
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded connection, you already have cannon ledge under the item ledge then this connection

destination="Torvus Bog - Gathering Hall (Cannon Ledge)",
rule=lambda state, player: True
),
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded connection, you already have cannon ledge under the item ledge then this connection

can_use_screw_attack(state, player)
])
),
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not hittable from above, you need to add an event to hit from below since there's a memory relay to keep them flipped

destination="Torvus Bog - Gathering Hall (Bottom)",
rule=lambda state, player: True
),
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded connection, you already have cannon ledge that goes there

destination="Torvus Bog - Gathering Hall (Bottom)",
rule=lambda state, player: True
),
MetroidPrime2Exit(
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded connection, you already have cannon ledge that has a connection for this

Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
)


class GatheringHall_Bottom(MetroidPrime2Region):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bottom would mean inside half-pipe, could you split it into two sub regions?

Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
Comment thread src/logic/metroidprime2/light_world/torvus_bog/gathering_hall.py Outdated
hopesgit added 3 commits May 2, 2026 22:21
…eferences, for rooms abandoned worksite to hydrodynamo station
…eferences, for rooms main hydrochamber to underground tunnel

Also removed some unnecessary room subregions

Fixed some door mistakes and logical omissions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants