Underworld dropshuffle

This commit is contained in:
aerinon
2022-09-30 15:38:35 -06:00
parent 3c0f6ca0e6
commit b71c7aa2b4
26 changed files with 182 additions and 136 deletions

View File

@@ -9,6 +9,8 @@ from Dungeons import dungeon_table
from RoomData import DoorKind
from OverworldGlitchRules import overworld_glitches_rules
from source.dungeon.EnemyList import kill_rules
def set_rules(world, player):
@@ -35,6 +37,7 @@ def set_rules(world, player):
bomb_rules(world, player)
pot_rules(world, player)
drop_rules(world, player)
if world.logic[player] == 'noglitches':
no_glitches_rules(world, player)
@@ -770,6 +773,17 @@ def pot_rules(world, player):
add_rule(l, lambda state: state.can_hit_crystal(player))
def drop_rules(world, player):
data_tables = world.data_tables[player]
defeat_rules = kill_rules(world, player, data_tables.enemy_stats)
for super_tile, enemy_list in data_tables.uw_enemy_table.room_map.items():
for enemy in enemy_list:
if enemy.location:
# could handle odd health rules here? assume harder variant for now
verbose_rule = defeat_rules[enemy.kind]
enemy.location.verbose_rule = verbose_rule
add_rule(enemy.location, verbose_rule.rule_lambda)
def default_rules(world, player):
# overworld requirements