Beemizer stuff
This commit is contained in:
1
CLI.py
1
CLI.py
@@ -74,7 +74,6 @@ def parse_cli(argv, no_defaults=False):
|
|||||||
parser.add_argument('--customitemarray', default={}, help=argparse.SUPPRESS)
|
parser.add_argument('--customitemarray', default={}, help=argparse.SUPPRESS)
|
||||||
|
|
||||||
# included for backwards compatibility
|
# included for backwards compatibility
|
||||||
parser.add_argument('--beemizer', default=defval(settings["beemizer"]), type=lambda value: min(max(int(value), 0), 4))
|
|
||||||
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
|
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
|
||||||
parser.add_argument('--securerandom', default=defval(settings["securerandom"]), action='store_true')
|
parser.add_argument('--securerandom', default=defval(settings["securerandom"]), action='store_true')
|
||||||
parser.add_argument('--teams', default=defval(1), type=lambda value: max(int(value), 1))
|
parser.add_argument('--teams', default=defval(1), type=lambda value: max(int(value), 1))
|
||||||
|
|||||||
14
ItemList.py
14
ItemList.py
@@ -306,6 +306,10 @@ def generate_itempool(world, player):
|
|||||||
pool.append(slot['item'])
|
pool.append(slot['item'])
|
||||||
|
|
||||||
items = ItemFactory(pool, player)
|
items = ItemFactory(pool, player)
|
||||||
|
if world.shopsanity[player]:
|
||||||
|
for potion in ['Green Potion', 'Blue Potion', 'Red Potion']:
|
||||||
|
p_item = next(item for item in items if item.name == potion and item.player == player)
|
||||||
|
p_item.priority = True # don't beemize one of each potion
|
||||||
|
|
||||||
world.lamps_needed_for_dark_rooms = lamps_needed_for_dark_rooms
|
world.lamps_needed_for_dark_rooms = lamps_needed_for_dark_rooms
|
||||||
|
|
||||||
@@ -337,11 +341,11 @@ def generate_itempool(world, player):
|
|||||||
for hp in adv_heart_pieces:
|
for hp in adv_heart_pieces:
|
||||||
hp.advancement = True
|
hp.advancement = True
|
||||||
|
|
||||||
beeweights = {0: {None: 100},
|
beeweights = {'0': {None: 100},
|
||||||
1: {None: 75, 'trap': 25},
|
'1': {None: 75, 'trap': 25},
|
||||||
2: {None: 40, 'trap': 40, 'bee': 20},
|
'2': {None: 40, 'trap': 40, 'bee': 20},
|
||||||
3: {'trap': 50, 'bee': 50},
|
'3': {'trap': 50, 'bee': 50},
|
||||||
4: {'trap': 100}}
|
'4': {'trap': 100}}
|
||||||
def beemizer(item):
|
def beemizer(item):
|
||||||
if world.beemizer[item.player] and not item.advancement and not item.priority and not item.type:
|
if world.beemizer[item.player] and not item.advancement and not item.priority and not item.type:
|
||||||
choice = random.choices(list(beeweights[world.beemizer[item.player]].keys()), weights=list(beeweights[world.beemizer[item.player]].values()))[0]
|
choice = random.choices(list(beeweights[world.beemizer[item.player]].keys()), weights=list(beeweights[world.beemizer[item.player]].values()))[0]
|
||||||
|
|||||||
2
Main.py
2
Main.py
@@ -27,7 +27,7 @@ from Fill import sell_potions, sell_keys, balance_multiworld_progression, balanc
|
|||||||
from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops
|
from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops
|
||||||
from Utils import output_path, parse_player_names
|
from Utils import output_path, parse_player_names
|
||||||
|
|
||||||
__version__ = '0.4.0.5-u'
|
__version__ = '0.4.0.6-u'
|
||||||
|
|
||||||
|
|
||||||
class EnemizerError(RuntimeError):
|
class EnemizerError(RuntimeError):
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ def roll_settings(weights):
|
|||||||
|
|
||||||
ret.shufflepots = get_choice('pot_shuffle') == 'on'
|
ret.shufflepots = get_choice('pot_shuffle') == 'on'
|
||||||
|
|
||||||
ret.beemizer = int(get_choice('beemizer')) if 'beemizer' in weights else 0
|
ret.beemizer = get_choice('beemizer') if 'beemizer' in weights else '0'
|
||||||
|
|
||||||
inventoryweights = weights.get('startinventory', {})
|
inventoryweights = weights.get('startinventory', {})
|
||||||
startitems = []
|
startitems = []
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# New Features
|
# New Features
|
||||||
|
|
||||||
|
## Maiden Hint for Theives Town Attic
|
||||||
|
|
||||||
|
In crossed dungeon mode, if you bring the maiden to the boss room when the attic is not bombed (and thus no light in the room), she mentions the dungeon where you can find the cracked floor.
|
||||||
|
|
||||||
## Shuffle Links House
|
## Shuffle Links House
|
||||||
|
|
||||||
Links house can now be shuffled in different ER settings. It will be limited to the Light World (or Dark World in inverted) if Crossed or Insanity shuffle is not one. It it also limited if door shuffle settings allow the Sanctuary to be in the dark world. (This is prevent having no Light World spawn points in Open modes) This setting is ignored by standard mode. THe CLI parameter is --shufflelinks
|
Links house can now be shuffled in different ER settings. It will be limited to the Light World (or Dark World in inverted) if Crossed or Insanity shuffle is not one. It it also limited if door shuffle settings allow the Sanctuary to be in the dark world. (This is prevent having no Light World spawn points in Open modes) This setting is ignored by standard mode. THe CLI parameter is --shufflelinks
|
||||||
@@ -10,6 +14,10 @@ Thanks to qadan, cheuer, & compiling
|
|||||||
|
|
||||||
# Bug Fixes and Notes.
|
# Bug Fixes and Notes.
|
||||||
|
|
||||||
|
* 0.4.0.6
|
||||||
|
* Hints now default to off
|
||||||
|
* The maiden gives you a hint to the attic if you bring her to the unlit boss room
|
||||||
|
* Beemizer support and fix for shopsanity
|
||||||
* 0.4.0.5
|
* 0.4.0.5
|
||||||
* Insanity - less restrictions on exiting (all modes)
|
* Insanity - less restrictions on exiting (all modes)
|
||||||
* Fix for simple bosses shuffle
|
* Fix for simple bosses shuffle
|
||||||
|
|||||||
@@ -159,6 +159,11 @@
|
|||||||
"7", "6", "5", "4", "3", "2", "1", "0", "random"
|
"7", "6", "5", "4", "3", "2", "1", "0", "random"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"beemizer": {
|
||||||
|
"choices": [
|
||||||
|
"4", "3", "2", "1", "0"
|
||||||
|
]
|
||||||
|
},
|
||||||
"openpyramid": {
|
"openpyramid": {
|
||||||
"action": "store_true",
|
"action": "store_true",
|
||||||
"type": "bool"
|
"type": "bool"
|
||||||
|
|||||||
@@ -234,6 +234,13 @@
|
|||||||
"randomizer.item.weapons.swordless": "Swordless",
|
"randomizer.item.weapons.swordless": "Swordless",
|
||||||
"randomizer.item.weapons.vanilla": "Vanilla",
|
"randomizer.item.weapons.vanilla": "Vanilla",
|
||||||
|
|
||||||
|
"randomizer.item.beemizer": "Beemizer",
|
||||||
|
"randomizer.item.beemizer.0": "No Bee Traps",
|
||||||
|
"randomizer.item.beemizer.1": "25% Bee Traps",
|
||||||
|
"randomizer.item.beemizer.2": "40% Traps, 20% Refills",
|
||||||
|
"randomizer.item.beemizer.3": "50% Traps, 50% Refills",
|
||||||
|
"randomizer.item.beemizer.4": "100% Bee Traps",
|
||||||
|
|
||||||
"randomizer.item.itempool": "Item Pool",
|
"randomizer.item.itempool": "Item Pool",
|
||||||
"randomizer.item.itempool.normal": "Normal",
|
"randomizer.item.itempool.normal": "Normal",
|
||||||
"randomizer.item.itempool.hard": "Hard",
|
"randomizer.item.itempool.hard": "Hard",
|
||||||
|
|||||||
@@ -58,6 +58,12 @@
|
|||||||
"swordless",
|
"swordless",
|
||||||
"vanilla"
|
"vanilla"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"beemizer": {
|
||||||
|
"type": "selectbox",
|
||||||
|
"options": [
|
||||||
|
"0", "1", "2", "3", "4"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rightItemFrame": {
|
"rightItemFrame": {
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ SETTINGSTOPROCESS = {
|
|||||||
"timer": "timer",
|
"timer": "timer",
|
||||||
"progressives": "progressive",
|
"progressives": "progressive",
|
||||||
"accessibility": "accessibility",
|
"accessibility": "accessibility",
|
||||||
"sortingalgo": "algorithm"
|
"sortingalgo": "algorithm",
|
||||||
|
"beemizer": "beemizer"
|
||||||
},
|
},
|
||||||
"entrance": {
|
"entrance": {
|
||||||
"openpyramid": "openpyramid",
|
"openpyramid": "openpyramid",
|
||||||
|
|||||||
Reference in New Issue
Block a user