Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal
* Update __init__.py
* Update Rules.py
* New EotW logic
* Update __init__.py
* Update __init__.py
* Update Items.py
* Update Rules.py
* Rename Location to be more meaningful, logic fixes
* Removed Aerith locations
* Change to allow randomized keyblade stats
* Fixed incorrect option description.  Fixed victory locations for alternative win condition settings
* Commit
* Lots of changes
* Fixes
* Fixes
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Fixes
* Update Rules.py
* Update Rules.py
* Update Options.py
* Old Book is not required
* Added Jungle Slider
* Add Cid Check
* Add Wonderland Book Check
* Add OC Green Trinity
* Add Inferno Band Event
* Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks
* Update Locations.py
* Fix Final Ansem Goal
* Update __init__.py
* Update __init__.py
* Add options to exclude super bosses and 100 acre wood
* Fix puppies trp, remove cid check
* Fix 100 Acre Wood Option
* Material to Empty Bottle
* Fixed rules, location names, etc
* Fix super bosses
* Add item + location groups, level sanity
* Fix location and item group names
* Add Bad Starting Weapons Option
* Logic Error for 100 Acre Wood
* Update Rules.py
* Update __init__.py
* Fixes related to randomized keyblade stats and super bosses
* Credits and Fixes
* Logic fixes, location name group changes
* Update Options.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update .gitignore
* Update CODEOWNERS
* Update docs/CODEOWNERS
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed Atlantica item group name
* Update CODEOWNERS
* Update Client.py
* Update Items.py
* Update __init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed report group name
* Fixes for PR
* Update Options.py
* Push changes for making the Final Rest Door appear, few option fixes
* Update Rules.py
* Website formatting, 0 min for reports, option description typo
* Create KH1Client.py
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Options.py
* Update Options.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Add Donald and Goofy Death Link
* Add fight logic for optional bosses
* Update __init__.py
* Update Options.py
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Client.py
* Update kh1_en.md
* Update __init__.py
* Cleaning up for PR
* Update Client.py
* Added event locations for vanilla items
* Add proper location groups and auto hint synth shop items when entering
* so many changes
* Update Rules.py
* fixed oathkeeper and crabclaw logic
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* fixing text
* Update kh1_en.md
* Addition of new key items
* Update Regions.py
* Push for start item from pool test
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Document update
* Update Rules.py
* Added starting world range and final rest goal option
* Update kh1_en.md
* Update en_Kingdom Hearts.md
* Update __init__.py
* Update __init__.py
* Clean up options descriptions
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Client.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix grammar in document
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Removed return type
* Update __init__.py
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update __init__.py
* Fix missing i replacement, rework set rules to use "self" instead of a million arguments
* Update KH1Client.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Reformat rules, fix bug with exp mult, add to readme
* Clean up regions, fix client
* Fix item send prompt
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/test/test_goal.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Fix so many suggestions
* removed junk in missable locations option
* Update __init__.py
* Change credits order
* Update en_Kingdom Hearts.md
* Standardize punctuation
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* Update Regions.py
* Removed "disclude" options in generation fillers
* Update Rules.py
* Update __init__.py
* Fix cemetery typo
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add option groups and option presets
* Update worlds/kh1/__init__.py
That's a good idea!
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Presets.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* fixed HB rule and formatting on a line in Items.py
* Fix logic bug with Geppetto's House postcard
* Update Rules.py
* Update Options.py
* Update __init__.py
* Update __init__.py
* Huge under-the-hood update for PR
* More updates for PR
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update __init__.py
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
											
										 
										
											2024-08-18 17:39:37 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								from __future__ import annotations
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import os
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import json
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import sys
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import asyncio
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import shutil
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import logging
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import re
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import time
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								from calendar import timegm
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import ModuleUpdate
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								ModuleUpdate.update()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import Utils
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								death_link = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								item_num = 1
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								logger = logging.getLogger("Client")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								if __name__ == "__main__":
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Utils.init_logging("KH1Client", exception_logger="Client")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								from NetUtils import NetworkItem, ClientStatus
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								from CommonClient import gui_enabled, logger, get_base_parser, ClientCommandProcessor, \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    CommonContext, server_loop
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								def check_stdin() -> None:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    if Utils.is_windows and sys.stdin:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        print("WARNING: Console input is not routed reliably on Windows, use the GUI instead.")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class KH1ClientCommandProcessor(ClientCommandProcessor):
							 | 
						
					
						
							
								
									
										
										
										
											2024-09-19 15:32:47 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    def __init__(self, ctx):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        super().__init__(ctx)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    
							 | 
						
					
						
							
								
									
										
											 
										 
										
											
												Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal
* Update __init__.py
* Update Rules.py
* New EotW logic
* Update __init__.py
* Update __init__.py
* Update Items.py
* Update Rules.py
* Rename Location to be more meaningful, logic fixes
* Removed Aerith locations
* Change to allow randomized keyblade stats
* Fixed incorrect option description.  Fixed victory locations for alternative win condition settings
* Commit
* Lots of changes
* Fixes
* Fixes
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Fixes
* Update Rules.py
* Update Rules.py
* Update Options.py
* Old Book is not required
* Added Jungle Slider
* Add Cid Check
* Add Wonderland Book Check
* Add OC Green Trinity
* Add Inferno Band Event
* Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks
* Update Locations.py
* Fix Final Ansem Goal
* Update __init__.py
* Update __init__.py
* Add options to exclude super bosses and 100 acre wood
* Fix puppies trp, remove cid check
* Fix 100 Acre Wood Option
* Material to Empty Bottle
* Fixed rules, location names, etc
* Fix super bosses
* Add item + location groups, level sanity
* Fix location and item group names
* Add Bad Starting Weapons Option
* Logic Error for 100 Acre Wood
* Update Rules.py
* Update __init__.py
* Fixes related to randomized keyblade stats and super bosses
* Credits and Fixes
* Logic fixes, location name group changes
* Update Options.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update .gitignore
* Update CODEOWNERS
* Update docs/CODEOWNERS
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed Atlantica item group name
* Update CODEOWNERS
* Update Client.py
* Update Items.py
* Update __init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed report group name
* Fixes for PR
* Update Options.py
* Push changes for making the Final Rest Door appear, few option fixes
* Update Rules.py
* Website formatting, 0 min for reports, option description typo
* Create KH1Client.py
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Options.py
* Update Options.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Add Donald and Goofy Death Link
* Add fight logic for optional bosses
* Update __init__.py
* Update Options.py
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Client.py
* Update kh1_en.md
* Update __init__.py
* Cleaning up for PR
* Update Client.py
* Added event locations for vanilla items
* Add proper location groups and auto hint synth shop items when entering
* so many changes
* Update Rules.py
* fixed oathkeeper and crabclaw logic
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* fixing text
* Update kh1_en.md
* Addition of new key items
* Update Regions.py
* Push for start item from pool test
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Document update
* Update Rules.py
* Added starting world range and final rest goal option
* Update kh1_en.md
* Update en_Kingdom Hearts.md
* Update __init__.py
* Update __init__.py
* Clean up options descriptions
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Client.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix grammar in document
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Removed return type
* Update __init__.py
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update __init__.py
* Fix missing i replacement, rework set rules to use "self" instead of a million arguments
* Update KH1Client.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Reformat rules, fix bug with exp mult, add to readme
* Clean up regions, fix client
* Fix item send prompt
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/test/test_goal.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Fix so many suggestions
* removed junk in missable locations option
* Update __init__.py
* Change credits order
* Update en_Kingdom Hearts.md
* Standardize punctuation
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* Update Regions.py
* Removed "disclude" options in generation fillers
* Update Rules.py
* Update __init__.py
* Fix cemetery typo
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add option groups and option presets
* Update worlds/kh1/__init__.py
That's a good idea!
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Presets.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* fixed HB rule and formatting on a line in Items.py
* Fix logic bug with Geppetto's House postcard
* Update Rules.py
* Update Options.py
* Update __init__.py
* Update __init__.py
* Huge under-the-hood update for PR
* More updates for PR
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update __init__.py
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
											
										 
										
											2024-08-18 17:39:37 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def _cmd_deathlink(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        """Toggles Deathlink"""
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        global death_link
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if death_link:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            death_link = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output(f"Death Link turned off")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            death_link = True
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output(f"Death Link turned on")
							 | 
						
					
						
							
								
									
										
										
										
											2024-09-19 15:32:47 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def _cmd_goal(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        """Prints goal setting"""
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if "goal" in self.ctx.slot_data.keys():
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output(str(self.ctx.slot_data["goal"]))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output("Unknown")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def _cmd_eotw_unlock(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        """Prints End of the World Unlock setting"""
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if "required_reports_door" in self.ctx.slot_data.keys():
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if self.ctx.slot_data["required_reports_door"] > 13:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                self.output("Item")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                self.output(str(self.ctx.slot_data["required_reports_eotw"]) + " reports")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output("Unknown")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def _cmd_door_unlock(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        """Prints Final Rest Door Unlock setting"""
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if "door" in self.ctx.slot_data.keys():
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if self.ctx.slot_data["door"] == "reports":
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                self.output(str(self.ctx.slot_data["required_reports_door"]) + " reports")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                self.output(str(self.ctx.slot_data["door"]))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output("Unknown")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def _cmd_advanced_logic(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        """Prints advanced logic setting"""
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if "advanced_logic" in self.ctx.slot_data.keys():
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output(str(self.ctx.slot_data["advanced_logic"]))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.output("Unknown")
							 | 
						
					
						
							
								
									
										
											 
										 
										
											
												Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal
* Update __init__.py
* Update Rules.py
* New EotW logic
* Update __init__.py
* Update __init__.py
* Update Items.py
* Update Rules.py
* Rename Location to be more meaningful, logic fixes
* Removed Aerith locations
* Change to allow randomized keyblade stats
* Fixed incorrect option description.  Fixed victory locations for alternative win condition settings
* Commit
* Lots of changes
* Fixes
* Fixes
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Fixes
* Update Rules.py
* Update Rules.py
* Update Options.py
* Old Book is not required
* Added Jungle Slider
* Add Cid Check
* Add Wonderland Book Check
* Add OC Green Trinity
* Add Inferno Band Event
* Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks
* Update Locations.py
* Fix Final Ansem Goal
* Update __init__.py
* Update __init__.py
* Add options to exclude super bosses and 100 acre wood
* Fix puppies trp, remove cid check
* Fix 100 Acre Wood Option
* Material to Empty Bottle
* Fixed rules, location names, etc
* Fix super bosses
* Add item + location groups, level sanity
* Fix location and item group names
* Add Bad Starting Weapons Option
* Logic Error for 100 Acre Wood
* Update Rules.py
* Update __init__.py
* Fixes related to randomized keyblade stats and super bosses
* Credits and Fixes
* Logic fixes, location name group changes
* Update Options.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update .gitignore
* Update CODEOWNERS
* Update docs/CODEOWNERS
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed Atlantica item group name
* Update CODEOWNERS
* Update Client.py
* Update Items.py
* Update __init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed report group name
* Fixes for PR
* Update Options.py
* Push changes for making the Final Rest Door appear, few option fixes
* Update Rules.py
* Website formatting, 0 min for reports, option description typo
* Create KH1Client.py
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Options.py
* Update Options.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Add Donald and Goofy Death Link
* Add fight logic for optional bosses
* Update __init__.py
* Update Options.py
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Client.py
* Update kh1_en.md
* Update __init__.py
* Cleaning up for PR
* Update Client.py
* Added event locations for vanilla items
* Add proper location groups and auto hint synth shop items when entering
* so many changes
* Update Rules.py
* fixed oathkeeper and crabclaw logic
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* fixing text
* Update kh1_en.md
* Addition of new key items
* Update Regions.py
* Push for start item from pool test
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Document update
* Update Rules.py
* Added starting world range and final rest goal option
* Update kh1_en.md
* Update en_Kingdom Hearts.md
* Update __init__.py
* Update __init__.py
* Clean up options descriptions
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Client.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix grammar in document
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Removed return type
* Update __init__.py
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update __init__.py
* Fix missing i replacement, rework set rules to use "self" instead of a million arguments
* Update KH1Client.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Reformat rules, fix bug with exp mult, add to readme
* Clean up regions, fix client
* Fix item send prompt
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/test/test_goal.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Fix so many suggestions
* removed junk in missable locations option
* Update __init__.py
* Change credits order
* Update en_Kingdom Hearts.md
* Standardize punctuation
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* Update Regions.py
* Removed "disclude" options in generation fillers
* Update Rules.py
* Update __init__.py
* Fix cemetery typo
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add option groups and option presets
* Update worlds/kh1/__init__.py
That's a good idea!
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Presets.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* fixed HB rule and formatting on a line in Items.py
* Fix logic bug with Geppetto's House postcard
* Update Rules.py
* Update Options.py
* Update __init__.py
* Update __init__.py
* Huge under-the-hood update for PR
* More updates for PR
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update __init__.py
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
											
										 
										
											2024-08-18 17:39:37 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class KH1Context(CommonContext):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    command_processor: int = KH1ClientCommandProcessor
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    game = "Kingdom Hearts"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    items_handling = 0b111  # full remote
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def __init__(self, server_address, password):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        super(KH1Context, self).__init__(server_address, password)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.send_index: int = 0
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.syncing = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.awaiting_bridge = False
							 | 
						
					
						
							
								
									
										
										
										
											2024-09-19 15:32:47 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        self.hinted_synth_location_ids = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.slot_data = {}
							 | 
						
					
						
							
								
									
										
											 
										 
										
											
												Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal
* Update __init__.py
* Update Rules.py
* New EotW logic
* Update __init__.py
* Update __init__.py
* Update Items.py
* Update Rules.py
* Rename Location to be more meaningful, logic fixes
* Removed Aerith locations
* Change to allow randomized keyblade stats
* Fixed incorrect option description.  Fixed victory locations for alternative win condition settings
* Commit
* Lots of changes
* Fixes
* Fixes
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Fixes
* Update Rules.py
* Update Rules.py
* Update Options.py
* Old Book is not required
* Added Jungle Slider
* Add Cid Check
* Add Wonderland Book Check
* Add OC Green Trinity
* Add Inferno Band Event
* Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks
* Update Locations.py
* Fix Final Ansem Goal
* Update __init__.py
* Update __init__.py
* Add options to exclude super bosses and 100 acre wood
* Fix puppies trp, remove cid check
* Fix 100 Acre Wood Option
* Material to Empty Bottle
* Fixed rules, location names, etc
* Fix super bosses
* Add item + location groups, level sanity
* Fix location and item group names
* Add Bad Starting Weapons Option
* Logic Error for 100 Acre Wood
* Update Rules.py
* Update __init__.py
* Fixes related to randomized keyblade stats and super bosses
* Credits and Fixes
* Logic fixes, location name group changes
* Update Options.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update .gitignore
* Update CODEOWNERS
* Update docs/CODEOWNERS
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed Atlantica item group name
* Update CODEOWNERS
* Update Client.py
* Update Items.py
* Update __init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed report group name
* Fixes for PR
* Update Options.py
* Push changes for making the Final Rest Door appear, few option fixes
* Update Rules.py
* Website formatting, 0 min for reports, option description typo
* Create KH1Client.py
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Options.py
* Update Options.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Add Donald and Goofy Death Link
* Add fight logic for optional bosses
* Update __init__.py
* Update Options.py
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Client.py
* Update kh1_en.md
* Update __init__.py
* Cleaning up for PR
* Update Client.py
* Added event locations for vanilla items
* Add proper location groups and auto hint synth shop items when entering
* so many changes
* Update Rules.py
* fixed oathkeeper and crabclaw logic
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* fixing text
* Update kh1_en.md
* Addition of new key items
* Update Regions.py
* Push for start item from pool test
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Document update
* Update Rules.py
* Added starting world range and final rest goal option
* Update kh1_en.md
* Update en_Kingdom Hearts.md
* Update __init__.py
* Update __init__.py
* Clean up options descriptions
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Client.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix grammar in document
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Removed return type
* Update __init__.py
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update __init__.py
* Fix missing i replacement, rework set rules to use "self" instead of a million arguments
* Update KH1Client.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Reformat rules, fix bug with exp mult, add to readme
* Clean up regions, fix client
* Fix item send prompt
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/test/test_goal.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Fix so many suggestions
* removed junk in missable locations option
* Update __init__.py
* Change credits order
* Update en_Kingdom Hearts.md
* Standardize punctuation
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* Update Regions.py
* Removed "disclude" options in generation fillers
* Update Rules.py
* Update __init__.py
* Fix cemetery typo
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add option groups and option presets
* Update worlds/kh1/__init__.py
That's a good idea!
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Presets.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* fixed HB rule and formatting on a line in Items.py
* Fix logic bug with Geppetto's House postcard
* Update Rules.py
* Update Options.py
* Update __init__.py
* Update __init__.py
* Huge under-the-hood update for PR
* More updates for PR
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update __init__.py
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
											
										 
										
											2024-08-18 17:39:37 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        # self.game_communication_path: files go in this path to pass data between us and the actual game
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if "localappdata" in os.environ:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.game_communication_path = os.path.expandvars(r"%localappdata%/KH1FM")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            self.game_communication_path = os.path.expandvars(r"$HOME/KH1FM")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if not os.path.exists(self.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            os.makedirs(self.game_communication_path)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        for root, dirs, files in os.walk(self.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            for file in files:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("obtain") <= -1:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    os.remove(root+"/"+file)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    async def server_auth(self, password_requested: bool = False):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if password_requested and not self.password:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            await super(KH1Context, self).server_auth(password_requested)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await self.get_username()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await self.send_connect()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    async def connection_closed(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await super(KH1Context, self).connection_closed()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        for root, dirs, files in os.walk(self.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            for file in files:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("obtain") <= -1:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    os.remove(root + "/" + file)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        global item_num
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        item_num = 1
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    @property
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def endpoints(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if self.server:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            return [self.server]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            return []
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    async def shutdown(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await super(KH1Context, self).shutdown()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        for root, dirs, files in os.walk(self.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            for file in files:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("obtain") <= -1:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    os.remove(root+"/"+file)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        global item_num
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        item_num = 1
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def on_package(self, cmd: str, args: dict):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if cmd in {"Connected"}:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if not os.path.exists(self.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                os.makedirs(self.game_communication_path)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            for ss in self.checked_locations:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                filename = f"send{ss}"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                with open(os.path.join(self.game_communication_path, filename), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            #Handle Slot Data
							 | 
						
					
						
							
								
									
										
										
										
											2024-09-19 15:32:47 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								            self.slot_data = args['slot_data']
							 | 
						
					
						
							
								
									
										
											 
										 
										
											
												Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal
* Update __init__.py
* Update Rules.py
* New EotW logic
* Update __init__.py
* Update __init__.py
* Update Items.py
* Update Rules.py
* Rename Location to be more meaningful, logic fixes
* Removed Aerith locations
* Change to allow randomized keyblade stats
* Fixed incorrect option description.  Fixed victory locations for alternative win condition settings
* Commit
* Lots of changes
* Fixes
* Fixes
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Fixes
* Update Rules.py
* Update Rules.py
* Update Options.py
* Old Book is not required
* Added Jungle Slider
* Add Cid Check
* Add Wonderland Book Check
* Add OC Green Trinity
* Add Inferno Band Event
* Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks
* Update Locations.py
* Fix Final Ansem Goal
* Update __init__.py
* Update __init__.py
* Add options to exclude super bosses and 100 acre wood
* Fix puppies trp, remove cid check
* Fix 100 Acre Wood Option
* Material to Empty Bottle
* Fixed rules, location names, etc
* Fix super bosses
* Add item + location groups, level sanity
* Fix location and item group names
* Add Bad Starting Weapons Option
* Logic Error for 100 Acre Wood
* Update Rules.py
* Update __init__.py
* Fixes related to randomized keyblade stats and super bosses
* Credits and Fixes
* Logic fixes, location name group changes
* Update Options.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update .gitignore
* Update CODEOWNERS
* Update docs/CODEOWNERS
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed Atlantica item group name
* Update CODEOWNERS
* Update Client.py
* Update Items.py
* Update __init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed report group name
* Fixes for PR
* Update Options.py
* Push changes for making the Final Rest Door appear, few option fixes
* Update Rules.py
* Website formatting, 0 min for reports, option description typo
* Create KH1Client.py
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Options.py
* Update Options.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Add Donald and Goofy Death Link
* Add fight logic for optional bosses
* Update __init__.py
* Update Options.py
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Client.py
* Update kh1_en.md
* Update __init__.py
* Cleaning up for PR
* Update Client.py
* Added event locations for vanilla items
* Add proper location groups and auto hint synth shop items when entering
* so many changes
* Update Rules.py
* fixed oathkeeper and crabclaw logic
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* fixing text
* Update kh1_en.md
* Addition of new key items
* Update Regions.py
* Push for start item from pool test
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Document update
* Update Rules.py
* Added starting world range and final rest goal option
* Update kh1_en.md
* Update en_Kingdom Hearts.md
* Update __init__.py
* Update __init__.py
* Clean up options descriptions
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Client.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix grammar in document
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Removed return type
* Update __init__.py
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update __init__.py
* Fix missing i replacement, rework set rules to use "self" instead of a million arguments
* Update KH1Client.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Reformat rules, fix bug with exp mult, add to readme
* Clean up regions, fix client
* Fix item send prompt
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/test/test_goal.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Fix so many suggestions
* removed junk in missable locations option
* Update __init__.py
* Change credits order
* Update en_Kingdom Hearts.md
* Standardize punctuation
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* Update Regions.py
* Removed "disclude" options in generation fillers
* Update Rules.py
* Update __init__.py
* Fix cemetery typo
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add option groups and option presets
* Update worlds/kh1/__init__.py
That's a good idea!
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Presets.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* fixed HB rule and formatting on a line in Items.py
* Fix logic bug with Geppetto's House postcard
* Update Rules.py
* Update Options.py
* Update __init__.py
* Update __init__.py
* Huge under-the-hood update for PR
* More updates for PR
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update __init__.py
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
											
										 
										
											2024-08-18 17:39:37 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            for key in list(args['slot_data'].keys()):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                with open(os.path.join(self.game_communication_path, key + ".cfg"), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    f.write(str(args['slot_data'][key]))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ###Support Legacy Games
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if "Required Reports" in list(args['slot_data'].keys()) and "required_reports_eotw" not in list(args['slot_data'].keys()):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                reports_required = args['slot_data']["Required Reports"]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                with open(os.path.join(self.game_communication_path, "required_reports.cfg"), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    f.write(str(reports_required))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ###End Support Legacy Games
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            #End Handle Slot Data
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if cmd in {"ReceivedItems"}:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            start_index = args["index"]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if start_index != len(self.items_received):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                global item_num
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                for item in args['items']:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    found = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    item_filename = f"AP_{str(item_num)}.item"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    for filename in os.listdir(self.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        if filename == item_filename:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            found = True
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    if not found:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        with open(os.path.join(self.game_communication_path, item_filename), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            f.write(str(NetworkItem(*item).item) + "\n" + str(NetworkItem(*item).location) + "\n" + str(NetworkItem(*item).player))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            item_num = item_num + 1
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if cmd in {"RoomUpdate"}:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if "checked_locations" in args:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                for ss in self.checked_locations:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    filename = f"send{ss}"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    with open(os.path.join(self.game_communication_path, filename), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if cmd in {"PrintJSON"} and "type" in args:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if args["type"] == "ItemSend":
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                item = args["item"]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                networkItem = NetworkItem(*item)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                recieverID = args["receiving"]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                senderID = networkItem.player
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                locationID = networkItem.location
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if recieverID != self.slot and senderID == self.slot:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    itemName = self.item_names.lookup_in_slot(networkItem.item, recieverID)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    itemCategory = networkItem.flags
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    recieverName = self.player_names[recieverID]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    filename = "sent"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    with open(os.path.join(self.game_communication_path, filename), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        f.write(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          re.sub('[^A-Za-z0-9 ]+', '',str(itemName))[:15] + "\n"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        + re.sub('[^A-Za-z0-9 ]+', '',str(recieverName))[:6] + "\n"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        + str(itemCategory) + "\n"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        + str(locationID))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def on_deathlink(self, data: dict[str, object]):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.last_death_link = max(data["time"], self.last_death_link)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        text = data.get("cause", "")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if text:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            logger.info(f"DeathLink: {text}")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        else:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            logger.info(f"DeathLink: Received from {data['source']}")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        with open(os.path.join(self.game_communication_path, 'dlreceive'), 'w') as f:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            f.write(str(int(data["time"])))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            f.close()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    def run_gui(self):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        """Import kivy UI system and start running it as self.ui_task."""
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        from kvui import GameManager
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        class KH1Manager(GameManager):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            logging_pairs = [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                ("Client", "Archipelago")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            base_title = "Archipelago KH1 Client"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.ui = KH1Manager(self)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								async def game_watcher(ctx: KH1Context):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    from .Locations import lookup_id_to_name
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    while not ctx.exit_event.is_set():
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        global death_link
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if death_link and "DeathLink" not in ctx.tags:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            await ctx.update_death_link(death_link)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if not death_link and "DeathLink" in ctx.tags:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            await ctx.update_death_link(death_link)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if ctx.syncing == True:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            sync_msg = [{'cmd': 'Sync'}]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            if ctx.locations_checked:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                sync_msg.append({"cmd": "LocationChecks", "locations": list(ctx.locations_checked)})
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            await ctx.send_msgs(sync_msg)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ctx.syncing = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        sending = []
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        victory = False
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        for root, dirs, files in os.walk(ctx.game_communication_path):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            for file in files:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("send") > -1:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    st = file.split("send", -1)[1]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    if st != "nil":
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        sending = sending+[(int(st))]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("victory") > -1:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    victory = True
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("dlsend") > -1 and "DeathLink" in ctx.tags:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    st = file.split("dlsend", -1)[1]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    if st != "nil":
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        if timegm(time.strptime(st, '%Y%m%d%H%M%S')) > ctx.last_death_link and int(time.time()) % int(timegm(time.strptime(st, '%Y%m%d%H%M%S'))) < 10:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            await ctx.send_death(death_text = "Sora was defeated!")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                if file.find("insynthshop") > -1:
							 | 
						
					
						
							
								
									
										
										
										
											2024-09-19 15:32:47 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                    if not ctx.hinted_synth_location_ids:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        await ctx.send_msgs([{
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            "cmd": "LocationScouts",
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            "locations": [2656401,2656402,2656403,2656404,2656405,2656406],
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                            "create_as_hint": 2
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        }])
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        ctx.hinted_synth_location_ids = True
							 | 
						
					
						
							
								
									
										
											 
										 
										
											
												Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal
* Update __init__.py
* Update Rules.py
* New EotW logic
* Update __init__.py
* Update __init__.py
* Update Items.py
* Update Rules.py
* Rename Location to be more meaningful, logic fixes
* Removed Aerith locations
* Change to allow randomized keyblade stats
* Fixed incorrect option description.  Fixed victory locations for alternative win condition settings
* Commit
* Lots of changes
* Fixes
* Fixes
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Fixes
* Update Rules.py
* Update Rules.py
* Update Options.py
* Old Book is not required
* Added Jungle Slider
* Add Cid Check
* Add Wonderland Book Check
* Add OC Green Trinity
* Add Inferno Band Event
* Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks
* Update Locations.py
* Fix Final Ansem Goal
* Update __init__.py
* Update __init__.py
* Add options to exclude super bosses and 100 acre wood
* Fix puppies trp, remove cid check
* Fix 100 Acre Wood Option
* Material to Empty Bottle
* Fixed rules, location names, etc
* Fix super bosses
* Add item + location groups, level sanity
* Fix location and item group names
* Add Bad Starting Weapons Option
* Logic Error for 100 Acre Wood
* Update Rules.py
* Update __init__.py
* Fixes related to randomized keyblade stats and super bosses
* Credits and Fixes
* Logic fixes, location name group changes
* Update Options.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update .gitignore
* Update CODEOWNERS
* Update docs/CODEOWNERS
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed Atlantica item group name
* Update CODEOWNERS
* Update Client.py
* Update Items.py
* Update __init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fixed report group name
* Fixes for PR
* Update Options.py
* Push changes for making the Final Rest Door appear, few option fixes
* Update Rules.py
* Website formatting, 0 min for reports, option description typo
* Create KH1Client.py
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Options.py
* Update Options.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Add Donald and Goofy Death Link
* Add fight logic for optional bosses
* Update __init__.py
* Update Options.py
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update Client.py
* Update kh1_en.md
* Update __init__.py
* Cleaning up for PR
* Update Client.py
* Added event locations for vanilla items
* Add proper location groups and auto hint synth shop items when entering
* so many changes
* Update Rules.py
* fixed oathkeeper and crabclaw logic
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update Rules.py
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* fixing text
* Update kh1_en.md
* Addition of new key items
* Update Regions.py
* Push for start item from pool test
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Document update
* Update Rules.py
* Added starting world range and final rest goal option
* Update kh1_en.md
* Update en_Kingdom Hearts.md
* Update __init__.py
* Update __init__.py
* Clean up options descriptions
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/Client.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix grammar in document
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Removed return type
* Update __init__.py
* Update __init__.py
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Update __init__.py
* Fix missing i replacement, rework set rules to use "self" instead of a million arguments
* Update KH1Client.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Reformat rules, fix bug with exp mult, add to readme
* Clean up regions, fix client
* Fix item send prompt
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/en_Kingdom Hearts.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/docs/kh1_en.md
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/test/test_goal.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Locations.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Items.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Regions.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/__init__.py
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
* Fix so many suggestions
* removed junk in missable locations option
* Update __init__.py
* Change credits order
* Update en_Kingdom Hearts.md
* Standardize punctuation
* Update en_Kingdom Hearts.md
* Update en_Kingdom Hearts.md
* Update Regions.py
* Removed "disclude" options in generation fillers
* Update Rules.py
* Update __init__.py
* Fix cemetery typo
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Add option groups and option presets
* Update worlds/kh1/__init__.py
That's a good idea!
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Options.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Presets.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* fixed HB rule and formatting on a line in Items.py
* Fix logic bug with Geppetto's House postcard
* Update Rules.py
* Update Options.py
* Update __init__.py
* Update __init__.py
* Huge under-the-hood update for PR
* More updates for PR
* Update worlds/kh1/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update worlds/kh1/Rules.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Update __init__.py
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
											
										 
										
											2024-08-18 17:39:37 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ctx.locations_checked = sending
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        message = [{"cmd": 'LocationChecks', "locations": sending}]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await ctx.send_msgs(message)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if not ctx.finished_game and victory:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            await ctx.send_msgs([{"cmd": "StatusUpdate", "status": ClientStatus.CLIENT_GOAL}])
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ctx.finished_game = True
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await asyncio.sleep(0.1)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								def launch():
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    async def main(args):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ctx = KH1Context(args.connect, args.password)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ctx.server_task = asyncio.create_task(server_loop(ctx), name="server loop")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        if gui_enabled:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ctx.run_gui()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ctx.run_cli()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        progression_watcher = asyncio.create_task(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            game_watcher(ctx), name="KH1ProgressionWatcher")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await ctx.exit_event.wait()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ctx.server_address = None
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await progression_watcher
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        await ctx.shutdown()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    import colorama
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    parser = get_base_parser(description="KH1 Client, for text interfacing.")
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    args, rest = parser.parse_known_args()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    colorama.init()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    asyncio.run(main(args))
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    colorama.deinit()
							 |