diff --git a/Rom.py b/Rom.py index 7f1e5f07..b504da9d 100644 --- a/Rom.py +++ b/Rom.py @@ -85,7 +85,7 @@ from Utils import int16_as_bytes, int32_as_bytes, local_path, snes_to_pc from Versions import DRVersion, GKVersion, ORVersion JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '40c072b56aef71fb7754c1153b877594' +RANDOMIZERBASEHASH = '2eff237fff0085c5fdd80542e07778f2' class JsonRom(object): diff --git a/data/base2current.bps b/data/base2current.bps index a56c6d8f..720a0548 100644 Binary files a/data/base2current.bps and b/data/base2current.bps differ diff --git a/source/enemizer/enemy_deny.yaml b/source/enemizer/enemy_deny.yaml index 56aca46d..6d4d2ac1 100644 --- a/source/enemizer/enemy_deny.yaml +++ b/source/enemizer/enemy_deny.yaml @@ -84,7 +84,10 @@ UwGeneralDeny: - [ 0x0039, 4, [ "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "RollerHorizontalRight", "FirebarCW", "FirebarCCW" ] ] #"Skull Woods - Play Pen - Spike Trap 1" - [0x0039, 5, ["RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "Bumper", "AntiFairyCircle"]] #"Skull Woods - Play Pen - Hardhat Beetle" - [ 0x0039, 6, [ "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "RollerHorizontalRight", "FirebarCW", "FirebarCCW" ] ] #"Skull Woods - Play Pen - Spike Trap 2" - - [0x003a, 1, ["RollerVerticalUp", "RollerVerticalDown"]] + - [ 0x003a, 0, ["RollerVerticalUp", "RollerVerticalDown"]] + - [ 0x003a, 1, ["RollerVerticalUp", "RollerVerticalDown"]] + - [ 0x003a, 3, ["RollerHorizontalLeft", "RollerHorizontalRight"]] + - [ 0x003a, 4, ["RollerHorizontalLeft", "RollerHorizontalRight"]] - [ 0x003b, 1, [ "Bumper", "AntiFairyCircle" ]] - [ 0x003b, 4, ["RollerVerticalUp", "RollerVerticalDown"]] - [ 0x003c, 0, ["BigSpike"]] @@ -339,11 +342,11 @@ UwGeneralDeny: - [ 0x00c2, 5, [ "Wizzrobe", "Statue" ] ] # Wizzrobes can't spawn on pots - [ 0x00c5, 6, [ "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "RollerHorizontalRight", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Turtle Rock - Catwalk - Mini Helmasaur" - [ 0x00c5, 7, [ "Statue" ] ] #"Turtle Rock - Catwalk - Laser Eye (Left) 4" - - [0x00c6, 2, ["Bumper", "AntiFairyCircle"]] - - [0x00c6, 3, ["Bumper", "AntiFairyCircle"]] - - [0x00c6, 4, ["Bumper", "AntiFairyCircle"]] - - [0x00c6, 5, ["Bumper", "AntiFairyCircle"]] - - [0x00c6, 6, ["Bumper", "AntiFairyCircle"]] + - [ 0x00c6, 2, ["Bumper", "AntiFairyCircle", "BigSpike" ]] + - [ 0x00c6, 3, ["Bumper", "AntiFairyCircle", "BigSpike" ]] + - [ 0x00c6, 4, ["Bumper", "AntiFairyCircle", "BigSpike" ]] + - [ 0x00c6, 5, ["Bumper", "AntiFairyCircle", "BigSpike" ]] + - [ 0x00c6, 6, ["Bumper", "AntiFairyCircle", "BigSpike" ]] - [ 0x00cb, 0, [ "Wizzrobe", "Statue" ] ] # Wizzrobes can't spawn on pots - [ 0x00cb, 3, [ "RollerVerticalUp", "RollerVerticalDown", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Thieves' Town - Grand Room NW - Zol 1" - [ 0x00cb, 5, [ "RollerVerticalUp", "RollerVerticalDown", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Thieves' Town - Grand Room NW - Zol 2" diff --git a/source/rom/DataTables.py b/source/rom/DataTables.py index 8523cf77..ace6a6ce 100644 --- a/source/rom/DataTables.py +++ b/source/rom/DataTables.py @@ -58,17 +58,17 @@ class DataTables: self.bush_sprite_table = {} # enemizer conditions - self.uw_enemy_denials = {} - self.ow_enemy_denials = {} - self.uw_enemy_drop_denials = {} + self.uw_enemy_denials = defaultdict(set) + self.ow_enemy_denials = defaultdict(set) + self.uw_enemy_drop_denials = defaultdict(set) self.sheet_choices = [] denial_data = load_cached_yaml(['source', 'enemizer', 'enemy_deny.yaml']) for denial in denial_data['UwGeneralDeny']: - self.uw_enemy_denials[denial[0], denial[1]] = {sprite_translation[x] for x in denial[2]} + self.uw_enemy_denials[denial[0], denial[1]] |= {sprite_translation[x] for x in denial[2]} for denial in denial_data['OwGeneralDeny']: - self.ow_enemy_denials[denial[0], denial[1]] = {sprite_translation[x] for x in denial[2]} + self.ow_enemy_denials[denial[0], denial[1]] |= {sprite_translation[x] for x in denial[2]} for denial in denial_data['UwEnemyDrop']: - self.uw_enemy_drop_denials[denial[0], denial[1]] = {sprite_translation[x] for x in denial[2]} + self.uw_enemy_drop_denials[denial[0], denial[1]] |= {sprite_translation[x] for x in denial[2]} weights = load_cached_yaml(['source', 'enemizer', 'enemy_weight.yaml']) self.uw_weights = {sprite_translation[k]: v for k, v in weights['UW'].items()} self.ow_weights = {sprite_translation[k]: v for k, v in weights['OW'].items()}