Beemizer stuff

This commit is contained in:
aerinon
2021-06-02 11:15:22 -06:00
parent 46ccfedcdc
commit 63d49c5775
9 changed files with 39 additions and 9 deletions

1
CLI.py
View File

@@ -74,7 +74,6 @@ def parse_cli(argv, no_defaults=False):
parser.add_argument('--customitemarray', default={}, help=argparse.SUPPRESS)
# 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('--securerandom', default=defval(settings["securerandom"]), action='store_true')
parser.add_argument('--teams', default=defval(1), type=lambda value: max(int(value), 1))

View File

@@ -306,6 +306,10 @@ def generate_itempool(world, player):
pool.append(slot['item'])
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
@@ -337,11 +341,11 @@ def generate_itempool(world, player):
for hp in adv_heart_pieces:
hp.advancement = True
beeweights = {0: {None: 100},
1: {None: 75, 'trap': 25},
2: {None: 40, 'trap': 40, 'bee': 20},
3: {'trap': 50, 'bee': 50},
4: {'trap': 100}}
beeweights = {'0': {None: 100},
'1': {None: 75, 'trap': 25},
'2': {None: 40, 'trap': 40, 'bee': 20},
'3': {'trap': 50, 'bee': 50},
'4': {'trap': 100}}
def beemizer(item):
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]

View File

@@ -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 Utils import output_path, parse_player_names
__version__ = '0.4.0.5-u'
__version__ = '0.4.0.6-u'
class EnemizerError(RuntimeError):

View File

@@ -209,7 +209,7 @@ def roll_settings(weights):
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', {})
startitems = []

View File

@@ -1,5 +1,9 @@
# 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
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.
* 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
* Insanity - less restrictions on exiting (all modes)
* Fix for simple bosses shuffle

View File

@@ -159,6 +159,11 @@
"7", "6", "5", "4", "3", "2", "1", "0", "random"
]
},
"beemizer": {
"choices": [
"4", "3", "2", "1", "0"
]
},
"openpyramid": {
"action": "store_true",
"type": "bool"

View File

@@ -234,6 +234,13 @@
"randomizer.item.weapons.swordless": "Swordless",
"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.normal": "Normal",
"randomizer.item.itempool.hard": "Hard",

View File

@@ -58,6 +58,12 @@
"swordless",
"vanilla"
]
},
"beemizer": {
"type": "selectbox",
"options": [
"0", "1", "2", "3", "4"
]
}
},
"rightItemFrame": {

View File

@@ -69,7 +69,8 @@ SETTINGSTOPROCESS = {
"timer": "timer",
"progressives": "progressive",
"accessibility": "accessibility",
"sortingalgo": "algorithm"
"sortingalgo": "algorithm",
"beemizer": "beemizer"
},
"entrance": {
"openpyramid": "openpyramid",