1602 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			1602 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			Python
		
	
	
	
| from ..utils.parameters import infinity
 | |
| import copy
 | |
| 
 | |
| class Location:
 | |
|     graph_slots = (
 | |
|         'distance', 'accessPoint', 'difficulty', 'path',
 | |
|         'pathDifficulty', 'locDifficulty' )
 | |
|     
 | |
|     rando_slots = (
 | |
|         'restricted', )
 | |
| 
 | |
|     solver_slots = (
 | |
|         'itemName', 'comeBack', 'areaWeight' )
 | |
| 
 | |
|     __slots__ = graph_slots + rando_slots + solver_slots
 | |
| 
 | |
|     def __init__(
 | |
|             self, distance=None, accessPoint=None,
 | |
|             difficulty=None, path=None, pathDifficulty=None,
 | |
|             locDifficulty=None, restricted=None, itemName=None,
 | |
|             itemType=None, comeBack=None, areaWeight=None):
 | |
|         self.distance = distance
 | |
|         self.accessPoint = accessPoint
 | |
|         self.difficulty = difficulty
 | |
|         self.path = path
 | |
|         self.pathDifficulty = pathDifficulty
 | |
|         self.locDifficulty = locDifficulty
 | |
|         self.restricted = restricted
 | |
|         self.itemName = itemName
 | |
|         self.itemType = itemType
 | |
|         self.comeBack = comeBack
 | |
|         self.areaWeight = areaWeight
 | |
| 
 | |
|     def isMajor(self):
 | |
|         return self._isMajor
 | |
| 
 | |
|     def isChozo(self):
 | |
|         return self._isChozo
 | |
| 
 | |
|     def isMinor(self):
 | |
|         return self._isMinor
 | |
| 
 | |
|     def isBoss(self):
 | |
|         return self._isBoss
 | |
| 
 | |
|     def isScavenger(self):
 | |
|         return self._isScavenger
 | |
| 
 | |
|     def isClass(self, _class):
 | |
|         return _class in self.Class
 | |
| 
 | |
|     def setClass(self, _class):
 | |
|         self.Class = _class
 | |
|         self._isChozo = 'Chozo' in _class
 | |
|         self._isMajor = 'Major' in _class
 | |
|         self._isMinor = 'Minor' in _class
 | |
|         self._isBoss = 'Boss' in _class
 | |
|         self._isScavenger = 'Scavenger' in _class
 | |
| 
 | |
|     def evalPostAvailable(self, smbm):
 | |
|         if self.difficulty.bool == True and self.PostAvailable is not None:
 | |
|             addAndRemoveItem = smbm.isCountItem(self.itemName) or not smbm.haveItem(self.itemName)
 | |
|             if addAndRemoveItem:
 | |
|                 smbm.addItem(self.itemName)
 | |
|             postAvailable = self.PostAvailable(smbm)
 | |
|             if addAndRemoveItem:
 | |
|                 smbm.removeItem(self.itemName)
 | |
| 
 | |
|             self.difficulty = self.difficulty & postAvailable
 | |
|             if self.locDifficulty is not None:
 | |
|                 self.locDifficulty = self.locDifficulty & postAvailable
 | |
| 
 | |
|     def evalComeBack(self, smbm, areaGraph, ap):
 | |
|         if self.difficulty.bool == True:
 | |
|             # check if we can come back to given ap from the location
 | |
|             self.comeBack = areaGraph.canAccess(smbm, self.accessPoint, ap, infinity, self.itemName)
 | |
| 
 | |
|     def json(self):
 | |
|         # to return after plando rando
 | |
|         ret = {'Name': self.Name, 'accessPoint': self.accessPoint}
 | |
|         if self.difficulty is not None:
 | |
|             ret['difficulty'] = self.difficulty.json()
 | |
|         return ret
 | |
| 
 | |
|     def __repr__(self):
 | |
|         return "Location({}: {})".format(self.Name,
 | |
|             '. '.join(
 | |
|                 (repr(getattr(self, slot)) for slot in Location.__slots__ if getattr(self, slot) is not None)))
 | |
| 
 | |
|     def __copy__(self):
 | |
|         d = self.difficulty
 | |
|         difficulty = copy.copy(d) if d is not None else None
 | |
|         ret = type(self)(
 | |
|             self.distance, self.accessPoint, difficulty, self.path,
 | |
|             self.pathDifficulty, self.locDifficulty, self.restricted,
 | |
|             self.itemName, self.itemType, self.comeBack,
 | |
|             self.areaWeight)
 | |
|         ret.AccessFrom = self.AccessFrom
 | |
|         ret.Available = self.Available
 | |
|         ret.PostAvailable = self.PostAvailable
 | |
|         ret.setClass(self.Class)
 | |
| 
 | |
|         return ret
 | |
| 
 | |
|     def __eq__(self, other):
 | |
|         return self.Name == other.Name
 | |
| 
 | |
| def define_location(
 | |
|         Area, GraphArea, SolveArea, Name, Class, CanHidden, Address, Id,
 | |
|         Visibility, Room, VanillaItemType=None, BossItemType=None, AccessFrom=None, Available=None, PostAvailable=None, HUD=None):
 | |
|     name = Name.replace(' ', '').replace(',', '') + 'Location'
 | |
|     subclass = type(name, (Location,), {
 | |
|         'Area': Area,
 | |
|         'GraphArea': GraphArea,
 | |
|         'SolveArea': SolveArea,
 | |
|         'Name': Name,
 | |
|         'Class': Class,
 | |
|         'CanHidden': CanHidden,
 | |
|         'Address': Address,
 | |
|         'Id': Id,
 | |
|         'Visibility': Visibility,
 | |
|         'Room': Room,
 | |
|         'VanillaItemType': VanillaItemType,
 | |
|         'BossItemType': BossItemType,
 | |
|         'HUD': HUD,
 | |
|         'AccessFrom': AccessFrom,
 | |
|         'Available': Available,
 | |
|         'PostAvailable': PostAvailable,
 | |
|         '_isMajor': 'Major' in Class,
 | |
|         '_isChozo': 'Chozo' in Class,
 | |
|         '_isMinor': 'Minor' in Class,
 | |
|         '_isBoss': 'Boss' in Class,
 | |
|         '_isScavenger': 'Scavenger' in Class
 | |
|     })
 | |
|     return subclass()
 | |
| 
 | |
| # all the items locations with the prerequisites to access them
 | |
| locationsDict = {
 | |
| ###### MAJORS
 | |
|     "Energy Tank, Gauntlet":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Gauntlet",
 | |
|     Name="Energy Tank, Gauntlet",
 | |
|     Class=["Major", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78264,
 | |
|     Id=0x5,
 | |
|     Visibility="Visible",
 | |
|     Room='Gauntlet Energy Tank Room',
 | |
| ),
 | |
|     "Bomb":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Bombs",
 | |
|     Name="Bomb",
 | |
|     Address=0x78404,
 | |
|     Id=0x7,
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Visibility="Chozo",
 | |
|     Room='Bomb Torizo Room',
 | |
|     VanillaItemType='Bomb',
 | |
|     HUD=1,
 | |
| ),
 | |
|     "Energy Tank, Terminator":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Terminator",
 | |
|     Name="Energy Tank, Terminator",
 | |
|     Class=["Major"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78432,
 | |
|     Id=0x8,
 | |
|     Visibility="Visible",
 | |
|     Room='Terminator Room',
 | |
| ),
 | |
|     "Reserve Tank, Brinstar":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar Reserve",
 | |
|     Name="Reserve Tank, Brinstar",
 | |
|     Class=["Major", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7852C,
 | |
|     Id=0x11,
 | |
|     Visibility="Chozo",
 | |
|     Room='Brinstar Reserve Tank Room',
 | |
| ),
 | |
|     "Charge Beam":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Charge Beam",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78614,
 | |
|     Id=0x17,
 | |
|     Visibility="Chozo",
 | |
|     Room='Big Pink',
 | |
|     VanillaItemType='Charge',
 | |
|     HUD=2,
 | |
| ),
 | |
|     "Morphing Ball":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Morphing Ball",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x786DE,
 | |
|     Id=0x1a,
 | |
|     Visibility="Visible",
 | |
|     Room='Morph Ball Room',
 | |
|     VanillaItemType='Morph',
 | |
|     HUD=0,
 | |
| ),
 | |
|     "Energy Tank, Brinstar Ceiling":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Energy Tank, Brinstar Ceiling",
 | |
|     Class=["Major"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7879E,
 | |
|     Id=0x1d,
 | |
|     Visibility="Hidden",
 | |
|     Room='Blue Brinstar Energy Tank Room',
 | |
| ),
 | |
|     "Energy Tank, Etecoons":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar",
 | |
|     Name="Energy Tank, Etecoons",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x787C2,
 | |
|     Id=0x1e,
 | |
|     Visibility="Visible",
 | |
|     Room='Etecoon Energy Tank Room',
 | |
| ),
 | |
|     "Energy Tank, Waterway":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Energy Tank, Waterway",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x787FA,
 | |
|     Id=0x21,
 | |
|     Visibility="Visible",
 | |
|     Room='Waterway Energy Tank Room',
 | |
| ),
 | |
|     "Energy Tank, Brinstar Gate":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Energy Tank, Brinstar Gate",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78824,
 | |
|     Id=0x23,
 | |
|     Visibility="Visible",
 | |
|     Room='Hopper Energy Tank Room',
 | |
| ),
 | |
|     "X-Ray Scope":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="RedBrinstar",
 | |
|     SolveArea="Red Brinstar",
 | |
|     Name="X-Ray Scope",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78876,
 | |
|     Id=0x26,
 | |
|     Visibility="Chozo",
 | |
|     Room='X-Ray Scope Room',
 | |
|     VanillaItemType='XRayScope',
 | |
|     HUD=10,
 | |
| ),
 | |
|     "Spazer":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="RedBrinstar",
 | |
|     SolveArea="Red Brinstar",
 | |
|     Name="Spazer",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7896E,
 | |
|     Id=0x2a,
 | |
|     Visibility="Chozo",
 | |
|     Room='Spazer Room',
 | |
|     VanillaItemType='Spazer',
 | |
|     HUD=3,
 | |
| ),
 | |
|     "Energy Tank, Kraid":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Kraid",
 | |
|     SolveArea="Kraid",
 | |
|     Name="Energy Tank, Kraid",
 | |
|     Class=["Major"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7899C,
 | |
|     Id=0x2b,
 | |
|     Visibility="Hidden",
 | |
|     Room='Warehouse Energy Tank Room',
 | |
| ),
 | |
|     "Kraid":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Kraid",
 | |
|     SolveArea="Kraid Boss",
 | |
|     Name="Kraid",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B055,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room='Kraid Room',
 | |
|     BossItemType="Kraid"
 | |
| ),
 | |
|     "Varia Suit":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Kraid",
 | |
|     SolveArea="Kraid Boss",
 | |
|     Name="Varia Suit",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78ACA,
 | |
|     Id=0x30,
 | |
|     Visibility="Chozo",
 | |
|     Room='Varia Suit Room',
 | |
|     VanillaItemType='Varia',
 | |
|     HUD=4,
 | |
| ),
 | |
|     "Ice Beam":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Ice",
 | |
|     Name="Ice Beam",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78B24,
 | |
|     Id=0x32,
 | |
|     Visibility="Chozo",
 | |
|     Room='Ice Beam Room',
 | |
|     VanillaItemType='Ice',
 | |
|     HUD=6,
 | |
| ),
 | |
|     "Energy Tank, Crocomire":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Crocomire",
 | |
|     SolveArea="Crocomire",
 | |
|     Name="Energy Tank, Crocomire",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78BA4,
 | |
|     Id=0x34,
 | |
|     Visibility="Visible",
 | |
|     Room="Crocomire's Room",
 | |
| ),
 | |
|     "Hi-Jump Boots":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Entrance",
 | |
|     Name="Hi-Jump Boots",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78BAC,
 | |
|     Id=0x35,
 | |
|     Visibility="Chozo",
 | |
|     Room='Hi Jump Boots Room',
 | |
|     VanillaItemType='HiJump',
 | |
|     HUD=5,
 | |
| ),
 | |
|     "Grapple Beam":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Crocomire",
 | |
|     SolveArea="Crocomire",
 | |
|     Name="Grapple Beam",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78C36,
 | |
|     Id=0x3c,
 | |
|     Visibility="Chozo",
 | |
|     Room='Grapple Beam Room',
 | |
|     VanillaItemType='Grapple',
 | |
|     HUD=9,
 | |
| ),
 | |
|     "Reserve Tank, Norfair":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Reserve",
 | |
|     Name="Reserve Tank, Norfair",
 | |
|     Class=["Major"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78C3E,
 | |
|     Id=0x3d,
 | |
|     Visibility="Chozo",
 | |
|     Room='Norfair Reserve Tank Room',
 | |
| ),
 | |
|     "Speed Booster":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Speed",
 | |
|     Name="Speed Booster",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78C82,
 | |
|     Id=0x42,
 | |
|     Visibility="Chozo",
 | |
|     Room='Speed Booster Room',
 | |
|     VanillaItemType='SpeedBooster',
 | |
|     HUD=7,
 | |
| ),
 | |
|     "Wave Beam":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Wave",
 | |
|     Name="Wave Beam",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78CCA,
 | |
|     Id=0x44,
 | |
|     Visibility="Chozo",
 | |
|     Room='Wave Beam Room',
 | |
|     VanillaItemType='Wave',
 | |
|     HUD=8,
 | |
| ),
 | |
|     "Ridley":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Ridley Boss",
 | |
|     Name="Ridley",
 | |
|     Class=["Boss", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B056,
 | |
|     Id=0xaa,
 | |
|     Visibility="Hidden",
 | |
|     Room="Ridley's Room",
 | |
|     VanillaItemType="Ridley",
 | |
|     BossItemType="Ridley",
 | |
|     HUD=16
 | |
| ),
 | |
|     "Energy Tank, Ridley":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Ridley Boss",
 | |
|     Name="Energy Tank, Ridley",
 | |
|     Class=["Major", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x79108,
 | |
|     Id=0x4e,
 | |
|     Visibility="Hidden",
 | |
|     Room='Ridley Tank Room',
 | |
| ),
 | |
|     "Screw Attack":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair Screw Attack",
 | |
|     Name="Screw Attack",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x79110,
 | |
|     Id=0x4f,
 | |
|     Visibility="Chozo",
 | |
|     Room='Screw Attack Room',
 | |
|     VanillaItemType='ScrewAttack',
 | |
|     HUD=15,
 | |
| ),
 | |
|     "Energy Tank, Firefleas":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair After Amphitheater",
 | |
|     Name="Energy Tank, Firefleas",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x79184,
 | |
|     Id=0x50,
 | |
|     Visibility="Visible",
 | |
|     Room='Lower Norfair Fireflea Room',
 | |
| ),
 | |
|     "Reserve Tank, Wrecked Ship":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Gravity",
 | |
|     Name="Reserve Tank, Wrecked Ship",
 | |
|     Class=["Major"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C2E9,
 | |
|     Id=0x81,
 | |
|     Visibility="Chozo",
 | |
|     Room='Bowling Alley',
 | |
| ),
 | |
|     "Energy Tank, Wrecked Ship":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Back",
 | |
|     Name="Energy Tank, Wrecked Ship",
 | |
|     Class=["Major", "Chozo"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C337,
 | |
|     Id=0x84,
 | |
|     Visibility="Visible",
 | |
|     Room='Wrecked Ship Energy Tank Room',
 | |
| ),
 | |
|     "Phantoon":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="Phantoon Boss",
 | |
|     Name="Phantoon",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B057,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room="Phantoon's Room",
 | |
|     BossItemType="Phantoon"
 | |
| ),
 | |
|     "Right Super, Wrecked Ship":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Main",
 | |
|     Name="Right Super, Wrecked Ship",
 | |
|     Class=["Major", "Chozo"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C365,
 | |
|     Id=0x86,
 | |
|     Visibility="Visible",
 | |
|     Room='Wrecked Ship East Super Room',
 | |
| ),
 | |
|     "Gravity Suit":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Gravity",
 | |
|     Name="Gravity Suit",
 | |
|     Class=["Major", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C36D,
 | |
|     Id=0x87,
 | |
|     Visibility="Chozo",
 | |
|     Room='Gravity Suit Room',
 | |
|     VanillaItemType='Gravity',
 | |
|     HUD=11,
 | |
| ),
 | |
|     "Energy Tank, Mama turtle":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Green",
 | |
|     Name="Energy Tank, Mama turtle",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C47D,
 | |
|     Id=0x8a,
 | |
|     Visibility="Visible",
 | |
|     Room='Mama Turtle Room',
 | |
| ),
 | |
|     "Plasma Beam":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Forgotten Highway",
 | |
|     Name="Plasma Beam",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C559,
 | |
|     Id=0x8f,
 | |
|     Visibility="Chozo",
 | |
|     Room='Plasma Room',
 | |
|     VanillaItemType='Plasma',
 | |
|     HUD=14,
 | |
| ),
 | |
|     "Reserve Tank, Maridia":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Left Sandpit",
 | |
|     Name="Reserve Tank, Maridia",
 | |
|     Class=["Major"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C5E3,
 | |
|     Id=0x91,
 | |
|     Visibility="Chozo",
 | |
|     Room='West Sand Hole',
 | |
| ),
 | |
|     "Spring Ball":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Sandpits",
 | |
|     Name="Spring Ball",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C6E5,
 | |
|     Id=0x96,
 | |
|     Visibility="Chozo",
 | |
|     Room='Spring Ball Room',
 | |
|     VanillaItemType='SpringBall',
 | |
|     HUD=13,
 | |
| ),
 | |
|     "Energy Tank, Botwoon":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Pink Top",
 | |
|     Name="Energy Tank, Botwoon",
 | |
|     Class=["Major"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C755,
 | |
|     Id=0x98,
 | |
|     Visibility="Visible",
 | |
|     Room='Botwoon Energy Tank Room',
 | |
| ),
 | |
|     "Draygon":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Draygon Boss",
 | |
|     Name="Draygon",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B058,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room="Draygon's Room",
 | |
|     BossItemType="Draygon"
 | |
| ),
 | |
|     "Space Jump":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Draygon Boss",
 | |
|     Name="Space Jump",
 | |
|     Class=["Major", "Chozo", "Scavenger"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C7A7,
 | |
|     Id=0x9a,
 | |
|     Visibility="Chozo",
 | |
|     Room='Space Jump Room',
 | |
|     VanillaItemType='SpaceJump',
 | |
|     HUD=12,
 | |
| ),
 | |
|     "Mother Brain":
 | |
| define_location(
 | |
|     Area="Tourian",
 | |
|     GraphArea="Tourian",
 | |
|     SolveArea="Tourian",
 | |
|     Name="Mother Brain",
 | |
|     Class=["Boss"],
 | |
|     Address=0xB055B059,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     CanHidden=False,
 | |
|     Room='Mother Brain Room',
 | |
|     BossItemType="MotherBrain"
 | |
| ),
 | |
|     "Spore Spawn":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Spore Spawn",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B055,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room='Spore Spawn Room',
 | |
|     BossItemType="SporeSpawn"
 | |
| ),
 | |
|     "Botwoon":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Pink Top",
 | |
|     Name="Botwoon",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B055,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room="Botwoon's Room",
 | |
|     BossItemType="Botwoon"
 | |
| ),
 | |
|     "Crocomire":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Crocomire",
 | |
|     SolveArea="Crocomire",
 | |
|     Name="Crocomire",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B055,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room="Crocomire's Room",
 | |
|     BossItemType="Crocomire"
 | |
| ),
 | |
|     "Golden Torizo":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair Screw Attack",
 | |
|     Name="Golden Torizo",
 | |
|     Class=["Boss"],
 | |
|     CanHidden=False,
 | |
|     Address=0xB055B055,
 | |
|     Id=None,
 | |
|     Visibility="Hidden",
 | |
|     Room="Golden Torizo's Room",
 | |
|     BossItemType="GoldenTorizo"
 | |
| ),
 | |
| ###### MINORS
 | |
|     "Power Bomb (Crateria surface)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Landing Site",
 | |
|     Name="Power Bomb (Crateria surface)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x781CC,
 | |
|     Id=0x0,
 | |
|     Visibility="Visible",
 | |
|     Room='Crateria Power Bomb Room',
 | |
| ),
 | |
|     "Missile (outside Wrecked Ship bottom)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Bottom",
 | |
|     Name="Missile (outside Wrecked Ship bottom)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x781E8,
 | |
|     Id=0x1,
 | |
|     Visibility="Visible",
 | |
|     Room='West Ocean',
 | |
| ),
 | |
|     "Missile (outside Wrecked Ship top)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Top",
 | |
|     Name="Missile (outside Wrecked Ship top)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x781EE,
 | |
|     Id=0x2,
 | |
|     Visibility="Hidden",
 | |
|     Room='West Ocean',
 | |
| ),
 | |
|     "Missile (outside Wrecked Ship middle)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Top",
 | |
|     Name="Missile (outside Wrecked Ship middle)",
 | |
|     CanHidden=True,
 | |
|     Class=["Minor"],
 | |
|     Address=0x781F4,
 | |
|     Id=0x3,
 | |
|     Visibility="Visible",
 | |
|     Room='West Ocean',
 | |
| ),
 | |
|     "Missile (Crateria moat)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Landing Site",
 | |
|     Name="Missile (Crateria moat)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78248,
 | |
|     Id=0x4,
 | |
|     Visibility="Visible",
 | |
|     Room='The Moat',
 | |
| ),
 | |
|     "Missile (Crateria bottom)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Landing Site",
 | |
|     Name="Missile (Crateria bottom)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x783EE,
 | |
|     Id=0x6,
 | |
|     Visibility="Visible",
 | |
|     Room='Pit Room',
 | |
| ),
 | |
|     "Missile (Crateria gauntlet right)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Gauntlet",
 | |
|     Name="Missile (Crateria gauntlet right)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78464,
 | |
|     Id=0x9,
 | |
|     Visibility="Visible",
 | |
|     Room='Green Pirates Shaft',
 | |
| ),
 | |
|     "Missile (Crateria gauntlet left)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Gauntlet",
 | |
|     Name="Missile (Crateria gauntlet left)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7846A,
 | |
|     Id=0xa,
 | |
|     Visibility="Visible",
 | |
|     Room='Green Pirates Shaft',
 | |
| ),
 | |
|     "Super Missile (Crateria)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Landing Site",
 | |
|     Name="Super Missile (Crateria)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78478,
 | |
|     Id=0xb,
 | |
|     Visibility="Visible",
 | |
|     Room='Crateria Super Room',
 | |
| ),
 | |
|     "Missile (Crateria middle)":
 | |
| define_location(
 | |
|     Area="Crateria",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Crateria Landing Site",
 | |
|     Name="Missile (Crateria middle)",
 | |
|     Class=["Minor", "Chozo"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78486,
 | |
|     Id=0xc,
 | |
|     Visibility="Visible",
 | |
|     Room='The Final Missile',
 | |
| ),
 | |
|     "Power Bomb (green Brinstar bottom)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar",
 | |
|     Name="Power Bomb (green Brinstar bottom)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x784AC,
 | |
|     Id=0xd,
 | |
|     Visibility="Chozo",
 | |
|     Room='Green Brinstar Main Shaft',
 | |
| ),
 | |
|     "Super Missile (pink Brinstar)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Super Missile (pink Brinstar)",
 | |
|     Class=["Minor", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x784E4,
 | |
|     Id=0xe,
 | |
|     Visibility="Chozo",
 | |
|     Room='Spore Spawn Super Room',
 | |
| ),
 | |
|     "Missile (green Brinstar below super missile)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar",
 | |
|     Name="Missile (green Brinstar below super missile)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78518,
 | |
|     Id=0xf,
 | |
|     Visibility="Visible",
 | |
|     Room='Early Supers Room',
 | |
| ),
 | |
|     "Super Missile (green Brinstar top)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar Reserve",
 | |
|     Name="Super Missile (green Brinstar top)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7851E,
 | |
|     Id=0x10,
 | |
|     Visibility="Visible",
 | |
|     Room='Early Supers Room',
 | |
| ),
 | |
|     "Missile (green Brinstar behind missile)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar Reserve",
 | |
|     Name="Missile (green Brinstar behind missile)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78532,
 | |
|     Id=0x12,
 | |
|     Visibility="Hidden",
 | |
|     Room='Brinstar Reserve Tank Room',
 | |
| ),
 | |
|     "Missile (green Brinstar behind reserve tank)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar Reserve",
 | |
|     Name="Missile (green Brinstar behind reserve tank)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78538,
 | |
|     Id=0x13,
 | |
|     Visibility="Visible",
 | |
|     Room='Brinstar Reserve Tank Room',
 | |
| ),
 | |
|     "Missile (pink Brinstar top)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Missile (pink Brinstar top)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78608,
 | |
|     Id=0x15,
 | |
|     Visibility="Visible",
 | |
|     Room='Big Pink',
 | |
| ),
 | |
|     "Missile (pink Brinstar bottom)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Missile (pink Brinstar bottom)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7860E,
 | |
|     Id=0x16,
 | |
|     Visibility="Visible",
 | |
|     Room='Big Pink',
 | |
| ),
 | |
|     "Power Bomb (pink Brinstar)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Pink Brinstar",
 | |
|     Name="Power Bomb (pink Brinstar)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7865C,
 | |
|     Id=0x18,
 | |
|     Visibility="Visible",
 | |
|     Room='Pink Brinstar Power Bomb Room',
 | |
| ),
 | |
|     "Missile (green Brinstar pipe)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Brinstar Hills",
 | |
|     Name="Missile (green Brinstar pipe)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78676,
 | |
|     Id=0x19,
 | |
|     Visibility="Visible",
 | |
|     Room='Green Hill Zone',
 | |
| ),
 | |
|     "Power Bomb (blue Brinstar)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Power Bomb (blue Brinstar)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7874C,
 | |
|     Id=0x1b,
 | |
|     Visibility="Visible",
 | |
|     Room='Morph Ball Room',
 | |
| ),
 | |
|     "Missile (blue Brinstar middle)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Missile (blue Brinstar middle)",
 | |
|     Address=0x78798,
 | |
|     Id=0x1c,
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Visibility="Visible",
 | |
|     Room='Blue Brinstar Energy Tank Room',
 | |
| ),
 | |
|     "Super Missile (green Brinstar bottom)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="GreenPinkBrinstar",
 | |
|     SolveArea="Green Brinstar",
 | |
|     Name="Super Missile (green Brinstar bottom)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x787D0,
 | |
|     Id=0x1f,
 | |
|     Visibility="Visible",
 | |
|     Room='Etecoon Super Room',
 | |
| ),
 | |
|     "Missile (blue Brinstar bottom)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Missile (blue Brinstar bottom)",
 | |
|     Class=["Minor", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78802,
 | |
|     Id=0x22,
 | |
|     Visibility="Chozo",
 | |
|     Room='First Missile Room',
 | |
| ),
 | |
|     "Missile (blue Brinstar top)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Missile (blue Brinstar top)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78836,
 | |
|     Id=0x24,
 | |
|     Visibility="Visible",
 | |
|     Room='Billy Mays Room',
 | |
| ),
 | |
|     "Missile (blue Brinstar behind missile)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Crateria",
 | |
|     SolveArea="Blue Brinstar",
 | |
|     Name="Missile (blue Brinstar behind missile)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7883C,
 | |
|     Id=0x25,
 | |
|     Visibility="Hidden",
 | |
|     Room='Billy Mays Room',
 | |
| ),
 | |
|     "Power Bomb (red Brinstar sidehopper room)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="RedBrinstar",
 | |
|     SolveArea="Red Brinstar Top",
 | |
|     Name="Power Bomb (red Brinstar sidehopper room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x788CA,
 | |
|     Id=0x27,
 | |
|     Visibility="Visible",
 | |
|     Room='Beta Power Bomb Room',
 | |
| ),
 | |
|     "Power Bomb (red Brinstar spike room)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="RedBrinstar",
 | |
|     SolveArea="Red Brinstar Top",
 | |
|     Name="Power Bomb (red Brinstar spike room)",
 | |
|     Class=["Minor", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7890E,
 | |
|     Id=0x28,
 | |
|     Visibility="Chozo",
 | |
|     Room='Alpha Power Bomb Room',
 | |
| ),
 | |
|     "Missile (red Brinstar spike room)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="RedBrinstar",
 | |
|     SolveArea="Red Brinstar Top",
 | |
|     Name="Missile (red Brinstar spike room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78914,
 | |
|     Id=0x29,
 | |
|     Visibility="Visible",
 | |
|     Room='Alpha Power Bomb Room',
 | |
| ),
 | |
|     "Missile (Kraid)":
 | |
| define_location(
 | |
|     Area="Brinstar",
 | |
|     GraphArea="Kraid",
 | |
|     SolveArea="Kraid",
 | |
|     Name="Missile (Kraid)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x789EC,
 | |
|     Id=0x2c,
 | |
|     Visibility="Hidden",
 | |
|     Room='Warehouse Keyhunter Room',
 | |
| ),
 | |
|     "Missile (lava room)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Entrance",
 | |
|     Name="Missile (lava room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78AE4,
 | |
|     Id=0x31,
 | |
|     Visibility="Hidden",
 | |
|     Room='Cathedral',
 | |
| ),
 | |
|     "Missile (below Ice Beam)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Ice",
 | |
|     Name="Missile (below Ice Beam)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78B46,
 | |
|     Id=0x33,
 | |
|     Visibility="Hidden",
 | |
|     Room='Crumble Shaft',
 | |
| ),
 | |
|     "Missile (above Crocomire)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Grapple Escape",
 | |
|     Name="Missile (above Crocomire)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78BC0,
 | |
|     Id=0x36,
 | |
|     Visibility="Visible",
 | |
|     Room='Crocomire Escape',
 | |
| ),
 | |
|     "Missile (Hi-Jump Boots)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Entrance",
 | |
|     Name="Missile (Hi-Jump Boots)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78BE6,
 | |
|     Id=0x37,
 | |
|     Visibility="Visible",
 | |
|     Room='Hi Jump Energy Tank Room',
 | |
| ),
 | |
|     "Energy Tank (Hi-Jump Boots)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Norfair Entrance",
 | |
|     Name="Energy Tank (Hi-Jump Boots)",
 | |
|     CanHidden=True,
 | |
|     Class=["Minor"],
 | |
|     Address=0x78BEC,
 | |
|     Id=0x38,
 | |
|     Visibility="Visible",
 | |
|     Room='Hi Jump Energy Tank Room',
 | |
| ),
 | |
|     "Power Bomb (Crocomire)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Crocomire",
 | |
|     SolveArea="Crocomire",
 | |
|     Name="Power Bomb (Crocomire)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78C04,
 | |
|     Id=0x39,
 | |
|     Visibility="Visible",
 | |
|     Room='Post Crocomire Power Bomb Room',
 | |
| ),
 | |
|     "Missile (below Crocomire)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Crocomire",
 | |
|     SolveArea="Crocomire",
 | |
|     Name="Missile (below Crocomire)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78C14,
 | |
|     Id=0x3a,
 | |
|     Visibility="Visible",
 | |
|     Room='Post Crocomire Missile Room',
 | |
| ),
 | |
|     "Missile (Grapple Beam)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Crocomire",
 | |
|     SolveArea="Crocomire",
 | |
|     Name="Missile (Grapple Beam)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78C2A,
 | |
|     Id=0x3b,
 | |
|     Visibility="Visible",
 | |
|     Room='Post Crocomire Jump Room',
 | |
| ),
 | |
|     "Missile (Norfair Reserve Tank)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Reserve",
 | |
|     Name="Missile (Norfair Reserve Tank)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78C44,
 | |
|     Id=0x3e,
 | |
|     Visibility="Hidden",
 | |
|     Room='Norfair Reserve Tank Room',
 | |
| ),
 | |
|     "Missile (bubble Norfair green door)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Reserve",
 | |
|     Name="Missile (bubble Norfair green door)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78C52,
 | |
|     Id=0x3f,
 | |
|     Visibility="Visible",
 | |
|     Room='Green Bubbles Missile Room',
 | |
| ),
 | |
|     "Missile (bubble Norfair)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Bottom",
 | |
|     Name="Missile (bubble Norfair)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78C66,
 | |
|     Id=0x40,
 | |
|     Visibility="Visible",
 | |
|     Room='Bubble Mountain',
 | |
| ),
 | |
|     "Missile (Speed Booster)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Speed",
 | |
|     Name="Missile (Speed Booster)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78C74,
 | |
|     Id=0x41,
 | |
|     Visibility="Hidden",
 | |
|     Room='Speed Booster Hall',
 | |
| ),
 | |
|     "Missile (Wave Beam)":
 | |
| define_location(
 | |
|     Area="Norfair",
 | |
|     GraphArea="Norfair",
 | |
|     SolveArea="Bubble Norfair Wave",
 | |
|     Name="Missile (Wave Beam)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78CBC,
 | |
|     Id=0x43,
 | |
|     Visibility="Visible",
 | |
|     Room='Double Chamber',
 | |
| ),
 | |
|     "Missile (Gold Torizo)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair Screw Attack",
 | |
|     Name="Missile (Gold Torizo)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78E6E,
 | |
|     Id=0x46,
 | |
|     Visibility="Visible",
 | |
|     Room="Golden Torizo's Room",
 | |
| ),
 | |
|     "Super Missile (Gold Torizo)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair Screw Attack",
 | |
|     Name="Super Missile (Gold Torizo)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78E74,
 | |
|     Id=0x47,
 | |
|     Visibility="Hidden",
 | |
|     Room="Golden Torizo's Room",
 | |
| ),
 | |
|     "Missile (Mickey Mouse room)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair Before Amphitheater",
 | |
|     Name="Missile (Mickey Mouse room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78F30,
 | |
|     Id=0x49,
 | |
|     Visibility="Visible",
 | |
|     Room='Mickey Mouse Room',
 | |
| ),
 | |
|     "Missile (lower Norfair above fire flea room)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair After Amphitheater",
 | |
|     Name="Missile (lower Norfair above fire flea room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x78FCA,
 | |
|     Id=0x4a,
 | |
|     Visibility="Visible",
 | |
|     Room='Lower Norfair Spring Ball Maze Room',
 | |
| ),
 | |
|     "Power Bomb (lower Norfair above fire flea room)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair After Amphitheater",
 | |
|     Name="Power Bomb (lower Norfair above fire flea room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x78FD2,
 | |
|     Id=0x4b,
 | |
|     Visibility="Visible",
 | |
|     Room='Lower Norfair Escape Power Bomb Room',
 | |
| ),
 | |
|     "Power Bomb (Power Bombs of shame)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair After Amphitheater",
 | |
|     Name="Power Bomb (Power Bombs of shame)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x790C0,
 | |
|     Id=0x4c,
 | |
|     Visibility="Visible",
 | |
|     Room='Wasteland',
 | |
| ),
 | |
|     "Missile (lower Norfair near Wave Beam)":
 | |
| define_location(
 | |
|     Area="LowerNorfair",
 | |
|     GraphArea="LowerNorfair",
 | |
|     SolveArea="Lower Norfair After Amphitheater",
 | |
|     Name="Missile (lower Norfair near Wave Beam)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x79100,
 | |
|     Id=0x4d,
 | |
|     Visibility="Visible",
 | |
|     Room="Three Muskateers' Room",
 | |
| ),
 | |
|     "Missile (Wrecked Ship middle)":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Main",
 | |
|     Name="Missile (Wrecked Ship middle)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C265,
 | |
|     Id=0x80,
 | |
|     Visibility="Visible",
 | |
|     Room='Wrecked Ship Main Shaft',
 | |
| ),
 | |
|     "Missile (Gravity Suit)":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Gravity",
 | |
|     Name="Missile (Gravity Suit)",
 | |
|     Class=["Minor", "Chozo"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C2EF,
 | |
|     Id=0x82,
 | |
|     Visibility="Visible",
 | |
|     Room='Bowling Alley',
 | |
| ),
 | |
|     "Missile (Wrecked Ship top)":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Top",
 | |
|     Name="Missile (Wrecked Ship top)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C319,
 | |
|     Id=0x83,
 | |
|     Visibility="Visible",
 | |
|     Room='Wrecked Ship East Missile Room',
 | |
| ),
 | |
|     "Super Missile (Wrecked Ship left)":
 | |
| define_location(
 | |
|     Area="WreckedShip",
 | |
|     GraphArea="WreckedShip",
 | |
|     SolveArea="WreckedShip Main",
 | |
|     Name="Super Missile (Wrecked Ship left)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C357,
 | |
|     Id=0x85,
 | |
|     Visibility="Visible",
 | |
|     Room='Wrecked Ship West Super Room',
 | |
| ),
 | |
|     "Missile (green Maridia shinespark)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Green",
 | |
|     Name="Missile (green Maridia shinespark)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C437,
 | |
|     Id=0x88,
 | |
|     Visibility="Visible",
 | |
|     Room='Main Street',
 | |
| ),
 | |
|     "Super Missile (green Maridia)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Green",
 | |
|     Name="Super Missile (green Maridia)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C43D,
 | |
|     Id=0x89,
 | |
|     Visibility="Visible",
 | |
|     Room='Main Street',
 | |
| ),
 | |
|     "Missile (green Maridia tatori)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Green",
 | |
|     Name="Missile (green Maridia tatori)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C483,
 | |
|     Id=0x8b,
 | |
|     Visibility="Hidden",
 | |
|     Room='Mama Turtle Room',
 | |
| ),
 | |
|     "Super Missile (yellow Maridia)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Pink Bottom",
 | |
|     Name="Super Missile (yellow Maridia)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C4AF,
 | |
|     Id=0x8c,
 | |
|     Visibility="Visible",
 | |
|     Room='Watering Hole',
 | |
| ),
 | |
|     "Missile (yellow Maridia super missile)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Pink Bottom",
 | |
|     Name="Missile (yellow Maridia super missile)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C4B5,
 | |
|     Id=0x8d,
 | |
|     Visibility="Visible",
 | |
|     Room='Watering Hole',
 | |
| ),
 | |
|     "Missile (yellow Maridia false wall)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="WestMaridia",
 | |
|     SolveArea="Maridia Pink Bottom",
 | |
|     Name="Missile (yellow Maridia false wall)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C533,
 | |
|     Id=0x8e,
 | |
|     Visibility="Visible",
 | |
|     Room='Pseudo Plasma Spark Room',
 | |
| ),
 | |
|     "Missile (left Maridia sand pit room)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Left Sandpit",
 | |
|     Name="Missile (left Maridia sand pit room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C5DD,
 | |
|     Id=0x90,
 | |
|     Visibility="Visible",
 | |
|     Room='West Sand Hole',
 | |
| ),
 | |
|     "Missile (right Maridia sand pit room)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Right Sandpit",
 | |
|     Name="Missile (right Maridia sand pit room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C5EB,
 | |
|     Id=0x92,
 | |
|     Visibility="Visible",
 | |
|     Room='East Sand Hole',
 | |
| ),
 | |
|     "Power Bomb (right Maridia sand pit room)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Right Sandpit",
 | |
|     Name="Power Bomb (right Maridia sand pit room)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C5F1,
 | |
|     Id=0x93,
 | |
|     Visibility="Visible",
 | |
|     Room='East Sand Hole',
 | |
| ),
 | |
|     "Missile (pink Maridia)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Pink Bottom",
 | |
|     Name="Missile (pink Maridia)",
 | |
|     Address=0x7C603,
 | |
|     Id=0x94,
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Visibility="Visible",
 | |
|     Room='Aqueduct',
 | |
| ),
 | |
|     "Super Missile (pink Maridia)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Pink Bottom",
 | |
|     Name="Super Missile (pink Maridia)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=True,
 | |
|     Address=0x7C609,
 | |
|     Id=0x95,
 | |
|     Visibility="Visible",
 | |
|     Room='Aqueduct',
 | |
| ),
 | |
|     "Missile (Draygon)":
 | |
| define_location(
 | |
|     Area="Maridia",
 | |
|     GraphArea="EastMaridia",
 | |
|     SolveArea="Maridia Pink Top",
 | |
|     Name="Missile (Draygon)",
 | |
|     Class=["Minor"],
 | |
|     CanHidden=False,
 | |
|     Address=0x7C74D,
 | |
|     Id=0x97,
 | |
|     Visibility="Hidden",
 | |
|     Room='The Precious Room',
 | |
| )
 | |
| }
 |