Noita: implement new game (#1676)
* Noita: implement new game (#1676) --------- Co-authored-by: DaftBrit <87314354+DaftBrit@users.noreply.github.com> Co-authored-by: l.kelsall@b4rn.org.uk <l.kelsall@b4rn.org.uk> Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com> Co-authored-by: Scipio Wright <scipiowright@gmail.com> Co-authored-by: Scipio Wright <lightdemonjoe4@gmail.com> Co-authored-by: Zach Parks <zach@alliware.com>
This commit is contained in:
		
							
								
								
									
										42
									
								
								worlds/noita/Events.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								worlds/noita/Events.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| from typing import Dict | ||||
|  | ||||
| from BaseClasses import Item, ItemClassification, Location, MultiWorld, Region | ||||
| from . import Items, Locations | ||||
|  | ||||
|  | ||||
| def create_event(player: int, name: str) -> Item: | ||||
|     return Items.NoitaItem(name, ItemClassification.progression, None, player) | ||||
|  | ||||
|  | ||||
| def create_location(player: int, name: str, region: Region) -> Location: | ||||
|     return Locations.NoitaLocation(player, name, None, region) | ||||
|  | ||||
|  | ||||
| def create_locked_location_event(multiworld: MultiWorld, player: int, region_name: str, item: str) -> Location: | ||||
|     region = multiworld.get_region(region_name, player) | ||||
|  | ||||
|     new_location = create_location(player, item, region) | ||||
|     new_location.place_locked_item(create_event(player, item)) | ||||
|  | ||||
|     region.locations.append(new_location) | ||||
|     return new_location | ||||
|  | ||||
|  | ||||
| def create_all_events(multiworld: MultiWorld, player: int) -> None: | ||||
|     for region, event in event_locks.items(): | ||||
|         create_locked_location_event(multiworld, player, region, event) | ||||
|  | ||||
|     multiworld.completion_condition[player] = lambda state: state.has("Victory", player) | ||||
|  | ||||
|  | ||||
| # Maps region names to event names | ||||
| event_locks: Dict[str, str] = { | ||||
|     "The Work": "Victory", | ||||
|     "Mines": "Portal to Holy Mountain 1", | ||||
|     "Coal Pits": "Portal to Holy Mountain 2", | ||||
|     "Snowy Depths": "Portal to Holy Mountain 3", | ||||
|     "Hiisi Base": "Portal to Holy Mountain 4", | ||||
|     "Underground Jungle": "Portal to Holy Mountain 5", | ||||
|     "The Vault": "Portal to Holy Mountain 6", | ||||
|     "Temple of the Art": "Portal to Holy Mountain 7", | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Adam Heinermann
					Adam Heinermann