Hopefully final 0.6.1 changes
-Add no logic mode. -Fix swordless requirement for Mothula to be less strict. -New version number and logic hash. -Significantly updated readme.
This commit is contained in:
parent
91a1f6dd5a
commit
7c9c3db74d
|
@ -20,12 +20,14 @@ class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter):
|
|||
def start():
|
||||
parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
|
||||
parser.add_argument('--create_spoiler', help='Output a Spoiler File', action='store_true')
|
||||
parser.add_argument('--logic', default='noglitches', const='noglitches', nargs='?', choices=['noglitches', 'minorglitches'],
|
||||
parser.add_argument('--logic', default='noglitches', const='noglitches', nargs='?', choices=['noglitches', 'minorglitches', 'nologic'],
|
||||
help='''\
|
||||
Select Enforcement of Item Requirements. (default: %(default)s)
|
||||
No Glitches:
|
||||
Minor Glitches: May require Fake Flippers, Bunny Revival
|
||||
and Dark Room Navigation.
|
||||
No Logic: Distribute items without regard for
|
||||
item requirements.
|
||||
''')
|
||||
parser.add_argument('--mode', default='open', const='open', nargs='?', choices=['standard', 'open', 'swordless'],
|
||||
help='''\
|
||||
|
|
2
Gui.py
2
Gui.py
|
@ -149,7 +149,7 @@ def guiMain(args=None):
|
|||
logicFrame = Frame(drowDownFrame)
|
||||
logicVar = StringVar()
|
||||
logicVar.set('noglitches')
|
||||
logicOptionMenu = OptionMenu(logicFrame, logicVar, 'noglitches', 'minorglitches')
|
||||
logicOptionMenu = OptionMenu(logicFrame, logicVar, 'noglitches', 'minorglitches', 'nologic')
|
||||
logicOptionMenu.pack(side=RIGHT)
|
||||
logicLabel = Label(logicFrame, text='Game logic')
|
||||
logicLabel.pack(side=LEFT)
|
||||
|
|
34
Main.py
34
Main.py
|
@ -16,24 +16,24 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute
|
|||
from ItemList import generate_itempool, difficulties
|
||||
from Utils import output_path
|
||||
|
||||
__version__ = '0.6.0'
|
||||
__version__ = '0.6.1'
|
||||
|
||||
logic_hash = [26, 76, 4, 144, 72, 105, 234, 233, 12, 184, 95, 94, 100, 13, 15, 174,
|
||||
186, 135, 130, 189, 246, 254, 123, 245, 85, 241, 101, 129, 70, 255, 55, 248,
|
||||
43, 146, 23, 179, 243, 208, 230, 176, 9, 88, 239, 226, 222, 203, 244, 183,
|
||||
205, 74, 44, 5, 122, 220, 206, 47, 221, 125, 138, 155, 98, 79, 238, 119,
|
||||
30, 24, 159, 39, 253, 27, 33, 218, 62, 82, 200, 28, 141, 191, 93, 22,
|
||||
192, 54, 227, 108, 48, 78, 242, 166, 60, 250, 75, 145, 49, 212, 41, 25,
|
||||
127, 89, 178, 157, 19, 158, 177, 231, 207, 66, 172, 17, 133, 61, 109, 86,
|
||||
57, 143, 142, 219, 148, 209, 181, 87, 163, 40, 81, 114, 240, 103, 31, 175,
|
||||
237, 185, 18, 173, 168, 45, 216, 106, 161, 16, 151, 139, 104, 134, 110, 21,
|
||||
32, 131, 118, 182, 215, 67, 3, 73, 171, 71, 150, 147, 223, 247, 42, 132,
|
||||
107, 149, 232, 153, 10, 201, 156, 225, 116, 194, 187, 204, 46, 165, 124, 92,
|
||||
7, 0, 251, 126, 162, 80, 90, 154, 252, 197, 188, 52, 137, 117, 198, 63,
|
||||
167, 38, 136, 96, 58, 11, 1, 115, 229, 224, 37, 112, 170, 59, 68, 196,
|
||||
36, 64, 91, 213, 14, 180, 190, 164, 8, 56, 214, 77, 202, 193, 97, 84,
|
||||
152, 83, 236, 211, 20, 217, 2, 228, 140, 69, 121, 111, 113, 128, 210, 51,
|
||||
53, 6, 235, 34, 102, 29, 120, 35, 50, 65, 160, 249, 99, 169, 199, 195]
|
||||
logic_hash = [215, 244, 99, 97, 253, 98, 31, 150, 207, 70, 50, 78, 59, 73, 221, 191,
|
||||
21, 34, 200, 116, 77, 234, 89, 27, 228, 96, 16, 249, 56, 148, 3, 176,
|
||||
17, 227, 24, 20, 238, 67, 37, 219, 62, 223, 60, 123, 246, 92, 164, 177,
|
||||
211, 15, 245, 23, 75, 33, 190, 124, 144, 100, 87, 57, 86, 108, 80, 181,
|
||||
6, 28, 2, 71, 182, 155, 222, 229, 90, 91, 32, 126, 25, 226, 133, 41,
|
||||
132, 122, 10, 30, 53, 239, 112, 49, 104, 76, 209, 247, 139, 13, 173, 113,
|
||||
159, 69, 145, 161, 11, 102, 149, 143, 129, 178, 45, 217, 196, 232, 208, 119,
|
||||
94, 19, 35, 65, 170, 103, 55, 109, 5, 43, 118, 194, 180, 12, 206, 241,
|
||||
8, 105, 210, 231, 179, 83, 137, 18, 212, 236, 225, 66, 63, 142, 138, 131,
|
||||
192, 160, 1, 198, 153, 128, 106, 165, 39, 248, 167, 22, 74, 163, 140, 157,
|
||||
214, 84, 154, 127, 195, 172, 136, 168, 68, 134, 152, 95, 111, 235, 26, 42,
|
||||
135, 186, 250, 7, 72, 58, 4, 9, 193, 101, 52, 44, 187, 183, 171, 184,
|
||||
197, 130, 47, 189, 81, 203, 51, 110, 146, 175, 213, 88, 79, 93, 64, 107,
|
||||
121, 237, 0, 46, 120, 141, 199, 158, 174, 114, 205, 201, 151, 185, 242, 29,
|
||||
162, 117, 85, 54, 14, 202, 216, 169, 230, 252, 188, 251, 36, 233, 147, 82,
|
||||
115, 61, 255, 38, 220, 218, 40, 224, 48, 125, 204, 156, 240, 254, 166, 243]
|
||||
|
||||
|
||||
def main(args, seed=None):
|
||||
|
|
32
README.md
32
README.md
|
@ -54,6 +54,10 @@ The game can be completed without knowing how to perform glitches of any kind.
|
|||
|
||||
May require Fake Flippers, Bunny Revival.
|
||||
|
||||
### No Logic
|
||||
|
||||
Items are placed without regard for progression or the seed being possible. Major glitches are likely required.
|
||||
|
||||
## Game Goal
|
||||
|
||||
### Ganon
|
||||
|
@ -259,7 +263,7 @@ generate spoilers for statistical analysis.
|
|||
|
||||
## Enable L/R button quickswapping
|
||||
|
||||
Use to enable quick item swap with L/R buttons
|
||||
Use to enable quick item swap with L/R buttons. Press L and R together to switch the state of items like the Mushroom/Powder pair.
|
||||
|
||||
## Keysanity
|
||||
|
||||
|
@ -269,6 +273,16 @@ is traditionally a guaranteed Small Key still is. These items will be distribute
|
|||
the rest of the itempool will respect the algorithm setting. Music for dungeons is randomized so it cannot be used as a tell
|
||||
for which dungeons contain pendants and crystals; finding a Map for a dungeon will allow the overworld map to display its prize.
|
||||
|
||||
## Retro
|
||||
|
||||
This setting turns all Small Keys into universal Small Keys that can be used in any dungeon and are distributed across the world.
|
||||
The Bow now consumed rupees to shoot; the cost is 10 rupees per Wood Arrow and 50 per Silver Arrow. Shooting Wood Arrows requires
|
||||
the purchase of an arrow item from shops, and to account for this and the dynamic use of keys, both Wood Arrows and Small Keys will
|
||||
be added to several shops around the world. Four "take any" caves are added that allow the player to choose between an extra Heart
|
||||
Container and a Bottle being filled with Blue Potion, and one of the four swords from the item pool is placed into a special cave as
|
||||
well. The five caves that are removed for these will be randomly selected single entrance caves that did not contain any items or any shops.
|
||||
In further concert with the Bow changes, all arrows under pots, in chests, and elsewhere in the seed will be replaced with rupees.
|
||||
|
||||
## Place Dungeon Items
|
||||
|
||||
If not set, Compasses and Maps are removed from the dungeon item pools and replaced by empty chests that may end up anywhere in the world.
|
||||
|
@ -311,7 +325,7 @@ Show the help message and exit.
|
|||
Output a Spoiler File (default: False)
|
||||
|
||||
```
|
||||
--logic [{noglitches,minorglitches}]
|
||||
--logic [{noglitches,minorglitches,nologic}]
|
||||
```
|
||||
|
||||
Select the game logic (default: noglitches)
|
||||
|
@ -353,7 +367,7 @@ Select the setting for progressive equipment. (default: on)
|
|||
Select item distribution algorithm. (default: balanced)
|
||||
|
||||
```
|
||||
--shuffle [{default,simple,restricted,full,madness,insanity,dungeonsfull,dungeonssimple}]
|
||||
--shuffle [{default,simple,restricted,full,crossed,insanity,restricted_legacy,full_legacy,madness_legacy,insanity_legacy,dungeonsfull,dungeonssimple}]
|
||||
```
|
||||
|
||||
Select entrance shuffle algorithm. (default: full)
|
||||
|
@ -407,6 +421,12 @@ Disables game music, resulting in the game sound being just the SFX. (default: F
|
|||
|
||||
Enable Keysanity (default: False)
|
||||
|
||||
```
|
||||
--retro
|
||||
```
|
||||
|
||||
Enable Retro mode (default: False)
|
||||
|
||||
```
|
||||
--nodungeonitems
|
||||
```
|
||||
|
@ -420,6 +440,12 @@ This may lead to different amount of itempool items being placed in a dungeon th
|
|||
|
||||
Select frequency of beeps when on low health. (default: normal)
|
||||
|
||||
```
|
||||
--heartcolor [{red,blue,green,yellow}]
|
||||
```
|
||||
|
||||
Select the color of Link\'s heart meter. (default: red)
|
||||
|
||||
```
|
||||
--sprite SPRITE
|
||||
```
|
||||
|
|
11
Rules.py
11
Rules.py
|
@ -3,6 +3,15 @@ import logging
|
|||
|
||||
|
||||
def set_rules(world):
|
||||
|
||||
if world.logic == 'nologic':
|
||||
logging.getLogger('').info('WARNING! Seeds generated under this logic often require major glitches and may be impossible!')
|
||||
world.get_region('Links House').can_reach = lambda state: True
|
||||
world.get_region('Sanctuary').can_reach = lambda state: True
|
||||
old_rule = world.get_region('Old Man House').can_reach
|
||||
world.get_region('Old Man House').can_reach = lambda state: state.can_reach('Old Man', 'Location') or old_rule(state)
|
||||
return
|
||||
|
||||
global_rules(world)
|
||||
|
||||
if world.mode == 'open':
|
||||
|
@ -469,7 +478,7 @@ def swordless_rules(world):
|
|||
set_rule(world.get_location('Bombos Tablet'), lambda state: state.has('Book of Mudora') and state.has('Hammer') and state.has_Mirror())
|
||||
set_rule(world.get_entrance('Misery Mire'), lambda state: state.has_Pearl() and state.has_misery_mire_medallion()) # sword not required to use medallion for opening in swordless (!)
|
||||
set_rule(world.get_entrance('Turtle Rock'), lambda state: state.has_Pearl() and state.has_turtle_rock_medallion() and state.can_reach('Turtle Rock (Top)', 'Region')) # sword not required to use medallion for opening in swordless (!)
|
||||
set_rule(world.get_entrance('Skull Woods Torch Room'), lambda state: state.has_key('Small Key (Skull Woods)', 3) and state.has('Fire Rod')) # no curtain
|
||||
set_rule(world.get_entrance('Skull Woods Torch Room'), lambda state: state.has_key('Small Key (Skull Woods)', 3) and state.has('Fire Rod') and (state.has('Hammer') or state.can_extend_magic(10))) # no curtain
|
||||
set_rule(world.get_entrance('Ice Palace Entrance Room'), lambda state: state.has('Fire Rod') or state.has('Bombos')) #in swordless mode bombos pads are present in the relevant parts of ice palace
|
||||
set_rule(world.get_location('Agahnim 2'), lambda state: state.has('Hammer') or state.has('Bug Catching Net'))
|
||||
set_rule(world.get_location('Ganon'), lambda state: state.has('Hammer') and state.has_fire_source() and state.has('Silver Arrows') and state.can_shoot_arrows() and state.has('Crystal 1') and state.has('Crystal 2')
|
||||
|
|
Loading…
Reference in New Issue