Skip to content

Add locations to shutting down the generators in Elementals Skyland#23

Open
Jouramie wants to merge 7 commits intoalwaysintreble:archipelagofrom
Jouramie:feature/add-generator-checks
Open

Add locations to shutting down the generators in Elementals Skyland#23
Jouramie wants to merge 7 commits intoalwaysintreble:archipelagofrom
Jouramie:feature/add-generator-checks

Conversation

@Jouramie
Copy link

@Jouramie Jouramie commented Mar 23, 2026

What is this adding

This adds 4 locations in the Elemental Skylands, sent by shutting down the generators. It also adds a Progressive Generator Shutdown item to deactivate each generator one by one. Four of copies of this item should be added to the itempool.

To avoid making the region too linear, the generator doors still open when breaking the lanterns (sending the location), except in the fire island generator room. There, you need all four Progressive Generator Shutdown to unlock the door. So it essentially only gates the Key of Symbiosis location and the right exit behind receiving the items.

The doors in each room also automatically open when receiving enough Progressive Generator Shutdown. This is however only useful on the air island where you can backtrack from the generator shop or the seal checkpoint, if you land a portal rando there.

Receiving a Progressive Generator Shutdown takes into account whether the generators are currently loaded. If they are, it plays the shutdown SFX and trigger the animation. So if you're in that room, you'll see the generator shutting down!

I'll submit the changes to the apworld eventually, just want to make sure that the game design works. It's here if you want to see https://github.com/Jouramie/Archipelago/tree/Messenger/skyland-generators-locations

On the architecture

I essentially had to replace all the code in ElementalSkylandGenerator with hooks to make it do exactly what I wanted and trigger the SFXs and animations at the right moment. I really did not want to add all those override directly in APRandomizerMain, it's already messy enough.

My suggestion to keep this clean is to move hooks in the Hooks namespace and keep the same file name as the code being overridden. I will be much easier to find out if a method already has a hook this way.

Testing

Shutting down a generator send the location

1_720p.mp4

Receving the item actually shutdown the generator

2_720p.mp4

Even when the generator is shutdown, locations are sent

3_720p.mp4

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.

1 participant