Skip to content

Improvements#1

Open
stochaztic wants to merge 119 commits intoabyssonym:masterfrom
stochaztic:improvements
Open

Improvements#1
stochaztic wants to merge 119 commits intoabyssonym:masterfrom
stochaztic:improvements

Conversation

@stochaztic
Copy link

A small variety of improvements I've been making for my friend running this, figured I'd contribute them back.

  • Fixed the hotel glitch. Did so by adding exceptions for the hotel teleports and manually changing their destinations to not switch rooms. Also prevented the "post-sleep" flag that stops you from sleeping again, even if you leave and re-enter. A side effect of this is some hotels will not have music return after sleep, but this is only temporary.
  • Shuffled in-battle enemy palettes. The results actually were far more visually interesting than I would've assumed at first thought! Due to the shuffler and the number of palettes, a significant number of enemies keep their palettes, so you might not see this for a couple of enemies.
  • Enable phones in Winters locations.
  • Remove Belch from potential sanctuary bosses; he is (not strictly but essentially) unbeatable if you have not found Fly Honey.
  • Windows compatibility with one of the text file processing sections.

Binary file not updated.

@abyssonym
Copy link
Owner

This is actually really helpful. Thanks.

@stochaztic
Copy link
Author

The battle background randomization (new flag) keeps the same source images but swaps out palettes, palette shifts, translations and distortions. So the Desert Moles will still have the No. 3, Giygas will still be Giygas, but they will all be visually changed. As a side effect the gas station static and the naming screen background are also changed. Initial testing showed results ranging from decent to excellent.

@stochaztic
Copy link
Author

Question for you @abyssonym : Is there a way in your framework to have a flag, but have it not be part of the 'default' flags? I have randomization of NPC sprites (done matching collision size to ensure no bugs are caused) complete, but I suspect many people will not like the slightly-ugly aesthetic it gives when a phone is a lying-down dog and such. Definitely gives more of a vibe of the old Reshuffler.

Alternatively it could be fine as is since people can always control the flags they want. I'm also going to work on implementing different PC sprites similar to the old Reshuffler, but those two are the last big changes I currently had on my to-do list.

@abyssonym
Copy link
Owner

Generally for things like that I implement it as one of the "secret codes". It would be possible to create a reverse flag for it with a dummy object and checking against get_flags() but a secret code would be more consistent with my other projects and people seem to like those well enough.

If you didn't know, any object that doesn't have a flag assigned will execute regardless, so in the method implementations you can manually check get_activated_codes() or get_flags(). cleanup() is also always executed, even if the appropriate flag is not set.

randomizer.py Outdated
0xfd, # Carrot key
]
early_chests = sorted(cls.unassigned_chests, key=lambda c: c.cave_rank)
early_chests = early_chests[:len(early_chests)/3]
Copy link
Owner

Choose a reason for hiding this comment

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

I don't mind if you want to weight these items toward the early parts of the cave, but I'd recommend against removing them from the latter parts altogether. In my view, finding a key that gives you a potential reason to backtrack to an earlier map to use it is a many times more interesting gameplay mechanic than reaching a locked door with the key already in your possession.

I'd recommend that they have the potential to appear anywhere in the dungeon, with diminishing likelihood the deeper into the dungeon you go.

Copy link
Author

Choose a reason for hiding this comment

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

I see your point, but having watch a few playthroughs, the value of taking a skip decreases rapidly the deeper you get. After all, at halfway through, there’s a 50/50 shot the skip would take you backwards, and they do take a not-insigificant amount of time to investigate to find out where you are and if you’re going forwards or backwards—you basically have to go until you find a shiny spot or a previously found location.

At 75% in I think most people going for speed wouldn’t even take a skip if one showed up free right in front of them, let alone backtrack for one. I do see your point that they may be too frontloaded as is though. Will prolly adjust this next version, maybe to first 50 or 60 percent of locations? Thoughts?

Copy link
Owner

Choose a reason for hiding this comment

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

I figure there's value in simply being able to shortcut back to a previous area. If you're lucky and you've been paying attention, the shortcut might take you near an area with a shop or inn or phone, and that's useful even on the last few maps. Edge cases like that have value because they are rare; I wouldn't want to restrict the number of possible layouts of the dungeon and make it predictable to cater to speedrunners. Generally my design philosophy for randomizers is to make them such that anything is possible, but I agree that probabilities should be weighted heavily in favor of a balanced playthrough.

I'm planning to activate the custom randomness settings for this randomizer. If you like, we could link this feature to that, which would allow the user to roughly decide how unpredictable they want these items to be.

Copy link
Author

Choose a reason for hiding this comment

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

Ok, that sounds reasonable for the next version--I've seen that setting in your framework but just ignored it since I wasn't sure how it worked, so this could certainly be one of the things that ties into that. Speaking of, were you still thinking about adding me as a contributor to this repo so I'd be continuing the work here rather than in a fork? Either way's fine by me, just wondering.

Copy link
Owner

Choose a reason for hiding this comment

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

Yeah, that's still on the agenda. Sorry it's taken so long, I've been busy with IRL stuff.

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.

3 participants