Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Softlock during Permanent Polymorph #73

Open
ovengoats opened this issue Aug 26, 2023 · 1 comment
Open

Softlock during Permanent Polymorph #73

ovengoats opened this issue Aug 26, 2023 · 1 comment

Comments

@ovengoats
Copy link

(please excuse me if this isn't formatted properly, i have hardly used github and don't know the etiquette)

While playing Noita Together v0.9.40 on the Noita Aug 20th beta branch, with death penalty set to Respawn, permanent polymorph causes a softlock and severely lags the game.
After repeatedly chaotic polymorphing myself, my noita was in a permanent polymorph state. When I died, the respawn text appeared on screen and fixed the camera, but the player character didn't actually die. I continued to take damage ticks, and I was able to still control my character, and I never respawned in a holy temple. The game also lagged an incredible amount during all of this, making the character very difficult to control. Closing and reopening the game only removed my ability to control the character. My friends were able to complete the game by kicking me from the room.

Linked are replay gifs of me dying in perma poly state, and me moving around in the softlocked state. These were recorded with the in-game function,
https://ovengoats.neocities.org/noita-20230825-231632-13910925-00358830.gif
https://ovengoats.neocities.org/noita-20230825-231706-13910925-00359138.gif

@tehkab
Copy link
Collaborator

tehkab commented Aug 27, 2023

Just did some testing to see some things...

This might be related to "Permanent polymorph is permanent" from the March release build. It seems that trying to restore the player character after permanent polymorph is no longer possible (serialized player data is deleted when perma-polyed). Unfortunately a lot of this is in-engine so options are limited via lua-scripting.

For respawn or death-penalty runs, might just be easiest to prevent perma-poly from ever happening by forcing world state's player_polymorph_random_count to stay below the perma-poly risk threshold (85). For "end run" death penalty, a death while perma-polyed should end the run anyway.

Given that the game is unwinnable when perma-polymorphed (I believe you can't grab the sampo or activate the Work), not much reason to support cases beyond that. It's also a pretty fringe case to begin with 😄

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

No branches or pull requests

2 participants