Add SMZ3 support (#270)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from worlds.smz3.TotalSMZ3.Region import Z3Region
|
||||
from worlds.smz3.TotalSMZ3.Config import Config
|
||||
from worlds.smz3.TotalSMZ3.Location import Location, LocationType
|
||||
from worlds.smz3.TotalSMZ3.Item import Progression
|
||||
|
||||
class East(Z3Region):
|
||||
Name = "Light World Death Mountain East"
|
||||
Area = "Death Mountain"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
self.Locations = [
|
||||
Location(self, 256+4, 0x308141, LocationType.Regular, "Floating Island",
|
||||
lambda items: items.Mirror and items.MoonPearl and items.CanLiftHeavy()),
|
||||
Location(self, 256+5, 0x1E9BF, LocationType.Regular, "Spiral Cave"),
|
||||
Location(self, 256+6, 0x1EB39, LocationType.Regular, "Paradox Cave Upper - Left"),
|
||||
Location(self, 256+7, 0x1EB3C, LocationType.Regular, "Paradox Cave Upper - Right"),
|
||||
Location(self, 256+8, 0x1EB2A, LocationType.Regular, "Paradox Cave Lower - Far Left"),
|
||||
Location(self, 256+9, 0x1EB2D, LocationType.Regular, "Paradox Cave Lower - Left"),
|
||||
Location(self, 256+10, 0x1EB36, LocationType.Regular, "Paradox Cave Lower - Middle"),
|
||||
Location(self, 256+11, 0x1EB30, LocationType.Regular, "Paradox Cave Lower - Right"),
|
||||
Location(self, 256+12, 0x1EB33, LocationType.Regular, "Paradox Cave Lower - Far Right"),
|
||||
Location(self, 256+13, 0x1E9C5, LocationType.Regular, "Mimic Cave",
|
||||
lambda items: items.Mirror and items.KeyTR >= 2 and self.world.CanEnter("Turtle Rock", items))
|
||||
]
|
||||
|
||||
def CanEnter(self, items: Progression):
|
||||
return self.world.CanEnter("Light World Death Mountain West", items) and (
|
||||
items.Hammer and items.Mirror or
|
||||
items.Hookshot)
|
||||
@@ -0,0 +1,23 @@
|
||||
from worlds.smz3.TotalSMZ3.Region import Z3Region
|
||||
from worlds.smz3.TotalSMZ3.Config import Config
|
||||
from worlds.smz3.TotalSMZ3.Location import Location, LocationType
|
||||
from worlds.smz3.TotalSMZ3.Item import Progression
|
||||
|
||||
class West(Z3Region):
|
||||
Name = "Light World Death Mountain West"
|
||||
Area = "Death Mountain"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
self.Locations = [
|
||||
Location(self, 256+0, 0x308016, LocationType.Ether, "Ether Tablet",
|
||||
lambda items: items.Book and items.MasterSword and (items.Mirror or items.Hammer and items.Hookshot)),
|
||||
Location(self, 256+1, 0x308140, LocationType.Regular, "Spectacle Rock",
|
||||
lambda items: items.Mirror),
|
||||
Location(self, 256+2, 0x308002, LocationType.Regular, "Spectacle Rock Cave"),
|
||||
Location(self, 256+3, 0x1EE9FA, LocationType.Regular, "Old Man",
|
||||
lambda items: items.Lamp)
|
||||
]
|
||||
|
||||
def CanEnter(self, items: Progression):
|
||||
return items.Flute or items.CanLiftLight() and items.Lamp or items.CanAccessDeathMountainPortal()
|
||||
28
worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthEast.py
Normal file
28
worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthEast.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType
|
||||
from worlds.smz3.TotalSMZ3.Config import Config
|
||||
from worlds.smz3.TotalSMZ3.Location import Location, LocationType
|
||||
|
||||
class NorthEast(Z3Region):
|
||||
Name = "Light World North East"
|
||||
Area = "Light World"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
sphereOne = -10
|
||||
self.Locations = [
|
||||
Location(self, 256+36, 0x1DE1C3, LocationType.Regular, "King Zora",
|
||||
lambda items: items.CanLiftLight() or items.Flippers),
|
||||
Location(self, 256+37, 0x308149, LocationType.Regular, "Zora's Ledge",
|
||||
lambda items: items.Flippers),
|
||||
Location(self, 256+254, 0x1E9B0, LocationType.Regular, "Waterfall Fairy - Left",
|
||||
lambda items: items.Flippers),
|
||||
Location(self, 256+39, 0x1E9D1, LocationType.Regular, "Waterfall Fairy - Right",
|
||||
lambda items: items.Flippers),
|
||||
Location(self, 256+40, 0x308014, LocationType.Regular, "Potion Shop",
|
||||
lambda items: items.Mushroom),
|
||||
Location(self, 256+41, 0x1EA82, LocationType.Regular, "Sahasrahla's Hut - Left").Weighted(sphereOne),
|
||||
Location(self, 256+42, 0x1EA85, LocationType.Regular, "Sahasrahla's Hut - Middle").Weighted(sphereOne),
|
||||
Location(self, 256+43, 0x1EA88, LocationType.Regular, "Sahasrahla's Hut - Right").Weighted(sphereOne),
|
||||
Location(self, 256+44, 0x5F1FC, LocationType.Regular, "Sahasrahla",
|
||||
lambda items: self.world.CanAquire(items, RewardType.PendantGreen))
|
||||
]
|
||||
44
worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthWest.py
Normal file
44
worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthWest.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType
|
||||
from worlds.smz3.TotalSMZ3.Config import Config
|
||||
from worlds.smz3.TotalSMZ3.Location import Location, LocationType
|
||||
|
||||
class NorthWest(Z3Region):
|
||||
Name = "Light World North West"
|
||||
Area = "Light World"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
sphereOne = -14
|
||||
self.Locations = [
|
||||
Location(self, 256+14, 0x589B0, LocationType.Pedestal, "Master Sword Pedestal",
|
||||
lambda items: self.world.CanAquireAll(items, RewardType.PendantGreen, RewardType.PendantNonGreen)),
|
||||
Location(self, 256+15, 0x308013, LocationType.Regular, "Mushroom").Weighted(sphereOne),
|
||||
Location(self, 256+16, 0x308000, LocationType.Regular, "Lost Woods Hideout").Weighted(sphereOne),
|
||||
Location(self, 256+17, 0x308001, LocationType.Regular, "Lumberjack Tree",
|
||||
lambda items: self.world.CanAquire(items, RewardType.Agahnim) and items.Boots),
|
||||
Location(self, 256+18, 0x1EB3F, LocationType.Regular, "Pegasus Rocks",
|
||||
lambda items: items.Boots),
|
||||
Location(self, 256+19, 0x308004, LocationType.Regular, "Graveyard Ledge",
|
||||
lambda items: items.Mirror and items.MoonPearl and self.world.CanEnter("Dark World North West", items)),
|
||||
Location(self, 256+20, 0x1E97A, LocationType.Regular, "King's Tomb",
|
||||
lambda items: items.Boots and (
|
||||
items.CanLiftHeavy() or
|
||||
items.Mirror and items.MoonPearl and self.world.CanEnter("Dark World North West", items))),
|
||||
Location(self, 256+21, 0x1EA8E, LocationType.Regular, "Kakariko Well - Top").Weighted(sphereOne),
|
||||
Location(self, 256+22, 0x1EA91, LocationType.Regular, "Kakariko Well - Left").Weighted(sphereOne),
|
||||
Location(self, 256+23, 0x1EA94, LocationType.Regular, "Kakariko Well - Middle").Weighted(sphereOne),
|
||||
Location(self, 256+24, 0x1EA97, LocationType.Regular, "Kakariko Well - Right").Weighted(sphereOne),
|
||||
Location(self, 256+25, 0x1EA9A, LocationType.Regular, "Kakariko Well - Bottom").Weighted(sphereOne),
|
||||
Location(self, 256+26, 0x1EB0F, LocationType.Regular, "Blind's Hideout - Top").Weighted(sphereOne),
|
||||
Location(self, 256+27, 0x1EB18, LocationType.Regular, "Blind's Hideout - Far Left").Weighted(sphereOne),
|
||||
Location(self, 256+28, 0x1EB12, LocationType.Regular, "Blind's Hideout - Left").Weighted(sphereOne),
|
||||
Location(self, 256+29, 0x1EB15, LocationType.Regular, "Blind's Hideout - Right").Weighted(sphereOne),
|
||||
Location(self, 256+30, 0x1EB1B, LocationType.Regular, "Blind's Hideout - Far Right").Weighted(sphereOne),
|
||||
Location(self, 256+31, 0x5EB18, LocationType.Regular, "Bottle Merchant").Weighted(sphereOne),
|
||||
Location(self, 256+250, 0x1E9E9, LocationType.Regular, "Chicken House").Weighted(sphereOne),
|
||||
Location(self, 256+33, 0x6B9CF, LocationType.Regular, "Sick Kid",
|
||||
lambda items: items.Bottle),
|
||||
Location(self, 256+34, 0x1E9CE, LocationType.Regular, "Kakariko Tavern").Weighted(sphereOne),
|
||||
Location(self, 256+35, 0x308015, LocationType.Regular, "Magic Bat",
|
||||
lambda items: items.Powder and (items.Hammer or items.MoonPearl and items.Mirror and items.CanLiftHeavy()))
|
||||
]
|
||||
45
worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/South.py
Normal file
45
worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/South.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from worlds.smz3.TotalSMZ3.Region import Z3Region
|
||||
from worlds.smz3.TotalSMZ3.Config import Config
|
||||
from worlds.smz3.TotalSMZ3.Location import Location, LocationType
|
||||
|
||||
class South(Z3Region):
|
||||
Name = "Light World South"
|
||||
Area = "Light World"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
sphereOne = -10
|
||||
self.Locations = [
|
||||
Location(self, 256+45, 0x308142, LocationType.Regular, "Maze Race").Weighted(sphereOne),
|
||||
Location(self, 256+240, 0x308012, LocationType.Regular, "Library",
|
||||
lambda items: items.Boots),
|
||||
Location(self, 256+241, 0x30814A, LocationType.Regular, "Flute Spot",
|
||||
lambda items: items.Shovel),
|
||||
Location(self, 256+242, 0x308003, LocationType.Regular, "South of Grove",
|
||||
lambda items: items.Mirror and self.world.CanEnter("Dark World South", items)),
|
||||
Location(self, 256+243, 0x1E9BC, LocationType.Regular, "Link's House").Weighted(sphereOne),
|
||||
Location(self, 256+244, 0x1E9F2, LocationType.Regular, "Aginah's Cave").Weighted(sphereOne),
|
||||
Location(self, 256+51, 0x1EB42, LocationType.Regular, "Mini Moldorm Cave - Far Left").Weighted(sphereOne),
|
||||
Location(self, 256+52, 0x1EB45, LocationType.Regular, "Mini Moldorm Cave - Left").Weighted(sphereOne),
|
||||
Location(self, 256+53, 0x308010, LocationType.Regular, "Mini Moldorm Cave - NPC").Weighted(sphereOne),
|
||||
Location(self, 256+54, 0x1EB48, LocationType.Regular, "Mini Moldorm Cave - Right").Weighted(sphereOne),
|
||||
Location(self, 256+251, 0x1EB4B, LocationType.Regular, "Mini Moldorm Cave - Far Right").Weighted(sphereOne),
|
||||
Location(self, 256+252, 0x308143, LocationType.Regular, "Desert Ledge",
|
||||
lambda items: self.world.CanEnter("Desert Palace", items)),
|
||||
Location(self, 256+253, 0x308005, LocationType.Regular, "Checkerboard Cave",
|
||||
lambda items: items.Mirror and (
|
||||
items.Flute and items.CanLiftHeavy() or
|
||||
items.CanAccessMiseryMirePortal(Config)
|
||||
) and items.CanLiftLight()),
|
||||
Location(self, 256+58, 0x308017, LocationType.Bombos, "Bombos Tablet",
|
||||
lambda items: items.Book and items.MasterSword and items.Mirror and self.world.CanEnter("Dark World South", items)),
|
||||
Location(self, 256+59, 0x1E98C, LocationType.Regular, "Floodgate Chest").Weighted(sphereOne),
|
||||
Location(self, 256+60, 0x308145, LocationType.Regular, "Sunken Treasure").Weighted(sphereOne),
|
||||
Location(self, 256+61, 0x308144, LocationType.Regular, "Lake Hylia Island",
|
||||
lambda items: items.Flippers and items.MoonPearl and items.Mirror and (
|
||||
self.world.CanEnter("Dark World South", items) or
|
||||
self.world.CanEnter("Dark World North East", items))),
|
||||
Location(self, 256+62, 0x6BE7D, LocationType.Regular, "Hobo",
|
||||
lambda items: items.Flippers),
|
||||
Location(self, 256+63, 0x1EB4E, LocationType.Regular, "Ice Rod Cave").Weighted(sphereOne)
|
||||
]
|
||||
Reference in New Issue
Block a user