fix: remove wallmasters from consideration from rooms with spiral staircases
This commit is contained in:
@@ -144,6 +144,7 @@ These are now independent of retro mode and have three options: None, Random, an
|
|||||||
* 1.4.1.12u
|
* 1.4.1.12u
|
||||||
* New Entrance Shuffle Algorithm no longer experimental
|
* New Entrance Shuffle Algorithm no longer experimental
|
||||||
* Back of Tavern Shuffle now on by default
|
* Back of Tavern Shuffle now on by default
|
||||||
|
* Enemizer: Wallmasters banned from tiles where spiral staircases are. (Softlock issue)
|
||||||
* Fixed a small bug with traversal algorithm
|
* Fixed a small bug with traversal algorithm
|
||||||
* 1.4.1.11u
|
* 1.4.1.11u
|
||||||
* New Feature: Several spoiler levels added: None, Settings-only, Semi, Full, Debug
|
* New Feature: Several spoiler levels added: None, Settings-only, Semi, Full, Debug
|
||||||
|
|||||||
@@ -118,48 +118,48 @@ LenientTrapsForTesting = {0x16, 0x26, 0x3f, 0x40, 0x42, 0x46, 0x49, 0x4e, 0x57,
|
|||||||
0x65, 0x6a, 0x74, 0x76, 0x7d, 0x98,
|
0x65, 0x6a, 0x74, 0x76, 0x7d, 0x98,
|
||||||
0x9e, 0xaf, 0xba, 0xc6, 0xcb, 0xce, 0xd2, 0xd5,
|
0x9e, 0xaf, 0xba, 0xc6, 0xcb, 0xce, 0xd2, 0xd5,
|
||||||
0xd8, 0xdf, 0xe4, 0xe7, 0xee, 0xfd, 0x10c}
|
0xd8, 0xdf, 0xe4, 0xe7, 0xee, 0xfd, 0x10c}
|
||||||
# this will have to be dynamic if cave rooms are allowed in dungeons
|
|
||||||
WallmasterValidRooms = {
|
# wallmasters must not be on tiles near spiral staircases. Unknown if other stairs have issues
|
||||||
HC_NorthCorridor, HC_SwitchRoom, HoulihanRoom, TR_CrystalRollerRoom,
|
WallmasterInvalidRooms = {
|
||||||
PalaceofDarkness0x09, PoD_StalfosTrapRoom, PoD_TurtleRoom, GT_EntranceRoom, Ice_EntranceRoom,
|
HC_NorthCorridor, HC_SwitchRoom, TR_CrystalRollerRoom,
|
||||||
GanonEvacuationRoute, HC_BombableStockRoom, Sanctuary, TR_Hokku_BokkuKeyRoom2, TR_BigKeyRoom, TurtleRock0x15,
|
PalaceofDarkness0x09, PoD_StalfosTrapRoom, GT_EntranceRoom, Ice_EntranceRoom,
|
||||||
Swamp_SwimmingTreadmill, Hera_MoldormFallRoom, PoD_DarkMaze, PoD_BigChestRoom, PoD_Mimics_MovingWallRoom,
|
HC_BombableStockRoom, TurtleRock0x15,
|
||||||
GT_IceArmos, GT_FinalHallway, Ice_BombFloor_BariRoom, Ice_Pengator_BigKeyRoom, Tower_Agahnim, HC_KeyRatRoom,
|
Swamp_SwimmingTreadmill, Hera_MoldormFallRoom, PoD_BigChestRoom,
|
||||||
HC_SewerTextTriggerRoom, TR_WestExittoBalcony, TR_DoubleHokku_Bokku_BigchestRoom, Swamp_StatueRoom, Hera_BigChest,
|
GT_IceArmos, GT_FinalHallway, Ice_BombFloor_BariRoom,
|
||||||
Swamp_EntranceRoom, Skull_Mothula, PoD_BigHubRoom, PoD_MapChest_FairyRoom, Ice_CompassRoom, Hera_HardhatBeetlesRoom,
|
Swamp_StatueRoom, Hera_BigChest,
|
||||||
HC_SewerKeyChestRoom, Desert_Lanmolas, Swamp_PushBlockPuzzle_Pre_BigKeyRoom, Swamp_BigKey_BSRoom,
|
Swamp_EntranceRoom, Hera_HardhatBeetlesRoom,
|
||||||
Swamp_BigChestRoom, Swamp_MapChest_WaterFillRoom, Swamp_KeyPotRoom, Skull_GibdoKey_MothulaHoleRoom,
|
Swamp_PushBlockPuzzle_Pre_BigKeyRoom,
|
||||||
PoD_BombableFloorRoom, PoD_SpikeBlock_ConveyorRoom, GT_TorchRoom2, Ice_StalfosKnights_ConveyorHellway,
|
Swamp_KeyPotRoom,
|
||||||
Ice_MapChestRoom, Tower_FinalBridgeRoom, HC_FirstDarkRoom, HC_6RopesRoom, Desert_TorchPuzzle_MovingWallRoom,
|
PoD_BombableFloorRoom,
|
||||||
TT_BigChestRoom, TT_JailCellsRoom, Swamp_CompassChestRoom, Skull_GibdoTorchPuzzleRoom, PoD_EntranceRoom,
|
Ice_MapChestRoom, Tower_FinalBridgeRoom, HC_FirstDarkRoom, HC_6RopesRoom,
|
||||||
PoD_Warps_SouthMimicsRoom, GT_Mini_HelmasaurConveyorRoom, GT_MoldormRoom, Ice_Bomb_JumpRoom,
|
TT_JailCellsRoom, PoD_EntranceRoom,
|
||||||
IcePalaceCloneRoom_FairyRoom, HC_WestCorridor, HC_ThroneRoom, HC_EastCorridor, Desert_Popos2_BeamosHellwayRoom,
|
GT_Mini_HelmasaurConveyorRoom, GT_MoldormRoom, Ice_Bomb_JumpRoom,
|
||||||
Swamp_UpstairsPitsRoom, CastleSecretEntrance_UncleDeathRoom, Skull_KeyPot_TrapRoom, Skull_BigKeyRoom,
|
Desert_Popos2_BeamosHellwayRoom,
|
||||||
Skull_BigChestRoom, Skull_FinalSectionEntranceRoom, PoD_HelmasaurKing, GT_SpikePitRoom, GT_Ganon_BallZ,
|
GT_Ganon_BallZ,
|
||||||
GT_Gauntlet1_2_3, Ice_LonelyFirebar, Ice_HiddenChest_SpikeFloorRoom, HC_WestEntranceRoom, HC_MainEntranceRoom,
|
GT_Gauntlet1_2_3, Ice_HiddenChest_SpikeFloorRoom,
|
||||||
HC_EastEntranceRoom, Desert_FinalSectionEntranceRoom, TT_WestAtticRoom, TT_EastAtticRoom,
|
Desert_FinalSectionEntranceRoom, TT_WestAtticRoom,
|
||||||
Swamp_HiddenChest_HiddenDoorRoom, Skull_CompassChestRoom, Skull_KeyChest_TrapRoom, PoD_RupeeRoom, GT_MimicsRooms,
|
Swamp_HiddenChest_HiddenDoorRoom, PoD_RupeeRoom, GT_MimicsRooms,
|
||||||
GT_LanmolasRoom, GT_Gauntlet4_5, Ice_PengatorsRoom, HC_SmallCorridortoJailCells, HC_BoomerangChestRoom,
|
GT_LanmolasRoom, Ice_PengatorsRoom, HC_SmallCorridortoJailCells, HC_BoomerangChestRoom,
|
||||||
HC_MapChestRoom, Desert_BigChestRoom, Desert_MapChestRoom, Desert_BigKeyChestRoom, Swamp_WaterDrainRoom,
|
HC_MapChestRoom, Swamp_WaterDrainRoom,
|
||||||
Hera_EntranceRoom, GanonsTower, GT_EastSideCollapsingBridge_ExplodingWallRoom, GT_Winder_WarpMazeRoom,
|
Hera_EntranceRoom,
|
||||||
Ice_HiddenChest_BombableFloorRoom, Ice_BigSpikeTrapsRoom, HC_JailCellRoom, HC_NextToChasmRoom, HC_BasementChasmRoom,
|
Ice_BigSpikeTrapsRoom, HC_JailCellRoom,
|
||||||
Desert_WestEntranceRoom, Desert_MainEntranceRoom, Desert_EastEntranceRoom, Hera_TileRoom, Eastern_FairyRoom,
|
Hera_TileRoom,
|
||||||
GT_BlockPuzzle_SpikeSkip_MapChestRoom, GT_EastandWestDownstairs_BigChestRoom, GT_Tile_TorchPuzzleRoom,
|
GT_EastandWestDownstairs_BigChestRoom,
|
||||||
IcePalace0x8E, Mire_Vitreous, Mire_FinalSwitchRoom, Mire_DarkBombWall_SwitchesRoom,
|
IcePalace0x8E, Mire_FinalSwitchRoom,
|
||||||
Mire_DarkCaneFloorSwitchPuzzleRoom, GT_FinalCollapsingBridgeRoom, GT_Torches1Room, Mire_TorchPuzzle_MovingWallRoom,
|
Mire_DarkCaneFloorSwitchPuzzleRoom, Mire_TorchPuzzle_MovingWallRoom,
|
||||||
Mire_EntranceRoom, Eastern_EyegoreKeyRoom, GT_ManySpikes_WarpMazeRoom, GT_InvisibleFloorMazeRoom,
|
Mire_EntranceRoom, Eastern_EyegoreKeyRoom,
|
||||||
GT_CompassChest_InvisibleFloorRoom, Ice_BigChestRoom, IcePalace0x9F, Mire_Pre_VitreousRoom, Mire_FishRoom,
|
Ice_BigChestRoom, Mire_Pre_VitreousRoom,
|
||||||
Mire_BridgeKeyChestRoom, MiseryMire0xA3, TR_Trinexx, GT_WizzrobesRooms, GT_MoldormFallRoom, Hera_FairyRoom,
|
Mire_BridgeKeyChestRoom, GT_WizzrobesRooms, GT_MoldormFallRoom,
|
||||||
Eastern_StalfosSpawnRoom, Eastern_BigChestRoom, Eastern_MapChestRoom, TT_MovingSpikes_KeyPotRoom, TT_BlindTheThief,
|
TT_MovingSpikes_KeyPotRoom,
|
||||||
IcePalace0xAE, Ice_IceBridgeRoom, Tower_CircleofPots, Mire_HourglassRoom, Mire_SlugRoom, Mire_SpikeKeyChestRoom,
|
IcePalace0xAE, Tower_CircleofPots,
|
||||||
TR_Pre_TrinexxRoom, TR_DarkMaze, TR_ChainChompsRoom, TR_MapChest_KeyChest_RollerRoom, Eastern_BigKeyRoom,
|
TR_DarkMaze, TR_ChainChompsRoom,
|
||||||
Eastern_LobbyCannonballsRoom, Eastern_DarkAntifairy_KeyPotRoom, TT_Hellway, TT_ConveyorToilet, Ice_BlockPuzzleRoom,
|
TT_ConveyorToilet, Ice_BlockPuzzleRoom,
|
||||||
IcePalaceCloneRoom_SwitchRoom, Tower_DarkBridgeRoom, Mire_CompassChest_TileRoom, Mire_BigHubRoom, Mire_BigChestRoom,
|
Tower_DarkBridgeRoom,
|
||||||
TR_FinalCrystalSwitchPuzzleRoom, TR_LaserBridge, TurtleRock0xC6, TR_TorchPuzzle,
|
UnknownRoom,
|
||||||
Eastern_EntranceRoom, UnknownRoom, TT_NorthWestEntranceRoom, TT_NorthEastEntranceRoom, Ice_HoletoKholdstareRoom,
|
Tower_DarkMaze, Mire_ConveyorSlug_BigKeyRoom, Mire_Mire02_WizzrobesRoom,
|
||||||
Tower_DarkMaze, Mire_ConveyorSlug_BigKeyRoom, Mire_Mire02_WizzrobesRoom, TR_LaserKeyRoom, TR_EntranceRoom,
|
EasternPalace,
|
||||||
Eastern_PreArmosKnightsRoom, Eastern_CanonballRoom, EasternPalace, TT_Main_SouthWestEntranceRoom,
|
Tower_EntranceRoom, Cave_BackwardsDeathMountainTopFloor, Cave0xE8, Cave_SpectacleRockHP, Cave0xEB, Cave0xED,
|
||||||
TT_SouthEastEntranceRoom, Tower_EntranceRoom
|
Cave_CrystalSwitch_5ChestsRoom, Cave0xF8, Cave0xFA, Cave0xFB, Cave0xFD, Cave0xFF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ def init_sprite_requirements():
|
|||||||
SpriteRequirement(EnemySprite.Terrorpin).sub_group(2, 0x2a).exclude({0x10c}), # probably fine in mimic now
|
SpriteRequirement(EnemySprite.Terrorpin).sub_group(2, 0x2a).exclude({0x10c}), # probably fine in mimic now
|
||||||
SpriteRequirement(EnemySprite.Blob).sub_group(1, 0x20),
|
SpriteRequirement(EnemySprite.Blob).sub_group(1, 0x20),
|
||||||
SpriteRequirement(EnemySprite.Wallmaster).immune().ow_skip().sub_group(2, 0x23)
|
SpriteRequirement(EnemySprite.Wallmaster).immune().ow_skip().sub_group(2, 0x23)
|
||||||
.allow(WallmasterValidRooms),
|
.exclude(WallmasterInvalidRooms),
|
||||||
SpriteRequirement(EnemySprite.StalfosKnight).sub_group(1, 0x20).exclude({0x10c}),
|
SpriteRequirement(EnemySprite.StalfosKnight).sub_group(1, 0x20).exclude({0x10c}),
|
||||||
SpriteRequirement(EnemySprite.HelmasaurKing).exalt().sub_group(2, 0x3a).sub_group(3, 0x3e),
|
SpriteRequirement(EnemySprite.HelmasaurKing).exalt().sub_group(2, 0x3a).sub_group(3, 0x3e),
|
||||||
SpriteRequirement(EnemySprite.Bumper).immune().aquaphobia().sub_group(3, [0x52, 0x53]),
|
SpriteRequirement(EnemySprite.Bumper).immune().aquaphobia().sub_group(3, [0x52, 0x53]),
|
||||||
|
|||||||
Reference in New Issue
Block a user