 2a8784ef72
			
		
	
	2a8784ef72
	
	
	
		
			
			Adds Archipelago support for Zork Grand Inquisitor, the 1997 point-and-click PC adventure game. The client (based on `CommonClient`), on top of its regular Archipelago duties, fully handles the randomization of the game and the monitoring / modification of the game state. No game modding needed at all; the player is ready to play an Archipelago seed if they can play the vanilla game through ScummVM. The "reverse engineering" (there's likely a better term for this...) of the game is my own original work and I included an MIT license at the root of my world directory. A PopTracker pack was also created to help people learn the game: https://github.com/SerpentAI/ZorkGrandInquisitorAPTracker
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from dataclasses import dataclass
 | |
| 
 | |
| from Options import Choice, DefaultOnToggle, PerGameCommonOptions, Toggle
 | |
| 
 | |
| 
 | |
| class Goal(Choice):
 | |
|     """
 | |
|     Determines the victory condition
 | |
| 
 | |
|     Three Artifacts: Retrieve the three artifacts of magic and place them in the walking castle
 | |
|     """
 | |
|     display_name: str = "Goal"
 | |
| 
 | |
|     default: int = 0
 | |
|     option_three_artifacts: int = 0
 | |
| 
 | |
| 
 | |
| class QuickPortFoozle(DefaultOnToggle):
 | |
|     """If true, the items needed to go down the well will be found in early locations for a smoother early game"""
 | |
| 
 | |
|     display_name: str = "Quick Port Foozle"
 | |
| 
 | |
| 
 | |
| class StartWithHotspotItems(DefaultOnToggle):
 | |
|     """
 | |
|     If true, the player will be given all the hotspot items at the start of the game, effectively removing the need
 | |
|     to enable the important hotspots in the game before interacting with them. Recommended for beginners
 | |
| 
 | |
|     Note: The spots these hotspot items would have occupied in the item pool will instead be filled with junk items.
 | |
|     Expect a higher volume of filler items if you enable this option
 | |
|     """
 | |
| 
 | |
|     display_name: str = "Start with Hotspot Items"
 | |
| 
 | |
| 
 | |
| class Deathsanity(Toggle):
 | |
|     """If true, adds 16 player death locations to the world"""
 | |
| 
 | |
|     display_name: str = "Deathsanity"
 | |
| 
 | |
| 
 | |
| class GrantMissableLocationChecks(Toggle):
 | |
|     """
 | |
|     If true, performing an irreversible action will grant the locations checks that would have become unobtainable as a
 | |
|     result of that action when you meet the item requirements
 | |
| 
 | |
|     Otherwise, the player is expected to potentially have to use the save system to reach those location checks. If you
 | |
|     don't like the idea of rarely having to reload an earlier save to get a location check, make sure this option is
 | |
|     enabled
 | |
|     """
 | |
| 
 | |
|     display_name: str = "Grant Missable Checks"
 | |
| 
 | |
| 
 | |
| @dataclass
 | |
| class ZorkGrandInquisitorOptions(PerGameCommonOptions):
 | |
|     goal: Goal
 | |
|     quick_port_foozle: QuickPortFoozle
 | |
|     start_with_hotspot_items: StartWithHotspotItems
 | |
|     deathsanity: Deathsanity
 | |
|     grant_missable_location_checks: GrantMissableLocationChecks
 |