-
Notifications
You must be signed in to change notification settings - Fork 773
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
New Game: Zillion #1081
New Game: Zillion #1081
Conversation
and some debug statements for asserts, documentation on running scripts for manual testing type correction in CommonContext
…resses in slot data
fix item locations getting out of sync in progression balancing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only examined the two docs files @black-sliver pointed me to; I have lots of little suggestions. Looks very thorough and clear!
Co-authored-by: SoldierofOrder <[email protected]>
There is a bug in Python in Windows python/cpython#91227 that makes it so if I look for RetroArch before it's ready, it breaks the asyncio udp transport system. As a workaround, we don't look for RetroArch until the user asks for it with /sms
instead of all the multiworld locations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I read everything besides the wheel and the client. I have to say that i don't fully understand how the logic resolution works, so i would be happy if you could leave a comment about that in the code :)
Besides the stuff below, i really think the comments should get cleaned up a little (# print(...)
should not be in the final iteration of the code).
Care to do the client @Berserker66 ?
worlds/zillion/__init__.py
Outdated
rom_dir_name = os.path.dirname(get_base_rom_path()) | ||
self.zz_system.make_patcher(rom_dir_name) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If possible, everything output-related should be run in generate_output since that runs multi-threaded. If you want to throw early exceptions, that's what assert_generate is for.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This "patcher" has some other stuff besides patching. Probably less-than-optimal organization in my package.
This is just initializing the instance to be available for those other things.
and some unit tests
and add memory read timeout
Opa-Opa is a proper noun
worlds/zillion/__init__.py
Outdated
def modify_multidata(self, multidata: Dict[str, Any]) -> None: | ||
"""For deeper modification of server multidata.""" | ||
# not modifying multidata, just want to call this at the end of the generation process | ||
clear_cache() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this breaks the simulated playthrough
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it? Wouldn't it just repopulate the cache?
Is there someplace I can put this to run it after all logic stuff is done?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
attached logic cache to multiworld
* Option RangeWithSpecialMax * amendment to typing in web options * compare string with number * lots of work on zillion * fix zillion fill logic * fix a few more issues in zillion fill logic * can make zillion patch and use it * put multi items in zillion rom * work on ZillionClient * logging and auth in client * work on sending and receiving items * implement item_handling flag * fix locations ids to NuktiServer package * use rewrite of zri * cache logic rule data for performance * use new id maps * fix some problems with the big recent merge * ZillionClient: use new context manager for Memory class * fix ItemClassification for Zillion items and some debug statements for asserts, documentation on running scripts for manual testing type correction in CommonContext * fix some issues in client, start on docs, put rescue and item ram addresses in slot data * use new location name system fix item locations getting out of sync in progression balancing * zillion client can read slot name from game * zillion: new item names * remove extra unneeded import * newer options (room gen and starting cards) * update comment in zillion patch * zillion non static regions * change some logging, update some comments * allow ZillionClient to exit in certain situations * todo note to fix options doc strings * don't force auto forfeit * rework validation of floppy requirement and item counts and fix race condition in generate_output * reorganize Zillion component structure with System class * documentation updates for Zillion * attempt inno_setup.iss * remove todo comment for something done * update comment * rework item count zillion options and some small cleanups * fix location check count * data package version 1 * Zillion can pass unit tests without rom * fix freeze if closing ZillionClient while it's waiting for server login * specify commit hash for zilliandomizer package * some changes to options validation * Zillion doors saved on multiworld server * add missing function in inno_setup and name of vanilla continues in options * rework zillion sync task and context * Apply documentation suggestions from SoldierofOrder Co-authored-by: SoldierofOrder <[email protected]> * update zillion package * workaround for asyncio udp bug There is a bug in Python in Windows python/cpython#91227 that makes it so if I look for RetroArch before it's ready, it breaks the asyncio udp transport system. As a workaround, we don't look for RetroArch until the user asks for it with /sms * a few of the smaller suggestions from review * logic only looks at my locations instead of all the multiworld locations * some adjustments from pull request discussion and some unit tests * patch webhost changes from pull request discussion * zillion logic tests * better vblr test * test interaction of character rescue items with logic * move unit tests to new worlds folder * comment improvements * fix minor logic issue and add memory read timeout * capitalization in option display names Opa-Opa is a proper noun * redirect zz stdout to debug * fix option validation bug making unbeatable seeds * remove line that does nothing * attach logic cache to world Co-authored-by: SoldierofOrder <[email protected]> Co-authored-by: Doug Hoskisson <[email protected]>
What is this fixing or adding?
add Zillion to supported games
How was this tested?
unit tests
A bunch of self-async multiworlds with Super Metroid.
1 4-player sync with {Zillion (Linux), Zillion (Windows), Super Metroid, Risk of Rain 2}
not tested:
innosetup, Windows install (I only have Linux)