From 91fa7f156b2cf5482b79243a32dad3b2d6853df9 Mon Sep 17 00:00:00 2001 From: jamesbrq Date: Sat, 20 Apr 2024 16:19:09 -0400 Subject: [PATCH] Location name fixes + pants color fixes --- worlds/mlss/Locations.py | 96 +++++++++++++++--------------- worlds/mlss/Names/LocationName.py | 86 +++++++++++++------------- worlds/mlss/Rom.py | 8 +-- worlds/mlss/data/basepatch.bsdiff | Bin 16020 -> 16084 bytes 4 files changed, 95 insertions(+), 95 deletions(-) diff --git a/worlds/mlss/Locations.py b/worlds/mlss/Locations.py index 87c0731fc250..d70d0c1b0b5a 100644 --- a/worlds/mlss/Locations.py +++ b/worlds/mlss/Locations.py @@ -273,10 +273,10 @@ class MLSSLocation(Location): LocationData("Sewers Prison Room Coin Block", 0x39e01e, 0), LocationData("Gwarhar Lagoon First Underwater Area Room 2 Coin Block", 0x39e455, 0), LocationData("Teehee Valley Past Ultra Hammer Rocks Coin Block", 0x39e588, 0), - LocationData("S.S Chuckola Storage Room Coin Block 1", 0x39e618, 0), - LocationData("S.S Chuckola Storage Room Coin Block 2", 0x39e620, 0), - LocationData("Jokes End Second Floor West Room Coin Block", 0x39e771, 0), - LocationData("Jokes End North of Bridge Room Coin Block", 0x39e836, 0), + LocationData("S.S. Chuckola Storage Room Coin Block 1", 0x39e618, 0), + LocationData("S.S. Chuckola Storage Room Coin Block 2", 0x39e620, 0), + LocationData("Joke's End Second Floor West Room Coin Block", 0x39e771, 0), + LocationData("Joke's End North of Bridge Room Coin Block", 0x39e836, 0), LocationData("Outside Woohoo Hooniversity Coin Block 1", 0x39e9ad, 0), LocationData("Outside Woohoo Hooniversity Coin Block 2", 0x39e9bd, 0), LocationData("Outside Woohoo Hooniversity Coin Block 3", 0x39e9c5, 0), @@ -313,7 +313,7 @@ class MLSSLocation(Location): LocationData("Chateau Popple Fight Room Block 1", 0x39dd38, 0), LocationData("Chateau Popple Fight Room Block 2", 0x39dd48, 0), LocationData("Chateau Popple Fight Room Digspot", 0x39dd50, 0), - LocationData("Chateau Barrel Room Digspot ", 0x39dd5d, 0), + LocationData("Chateau Barrel Room Digspot", 0x39dd5d, 0), LocationData("Chateau Goblet Room Digspot", 0x39dd6d, 0), LocationData("Chucklehuck Woods Cave Room 1 Block 1", 0x39dd82, 0), LocationData("Chucklehuck Woods Cave Room 1 Block 2", 0x39dd8a, 0), @@ -549,8 +549,8 @@ class MLSSLocation(Location): LocationData("Ocean South Whirlpool Digspot 5", 0x39e0fa, 0), LocationData("Ocean South Whirlpool Digspot 6", 0x39e102, 0), LocationData("Ocean South Whirlpool Room 2 Digspot", 0x39e10f, 0), - LocationData("Jokes End Pipe Digspot", 0x39e6c2, 0), - LocationData("Jokes End Staircase Digspot", 0x39e6cf, 0), + LocationData("Joke's End Pipe Digspot", 0x39e6c2, 0), + LocationData("Joke's End Staircase Digspot", 0x39e6cf, 0), LocationData("Surf Minigame", 0x2753ea, 1), LocationData("North Ocean Whirlpool Mole", 0x277956, 1), LocationData("Beanbean Outskirts Surf Beach Digspot 1", 0x39dcfb, 0), @@ -627,9 +627,9 @@ class MLSSLocation(Location): LocationData("Teehee Valley Past Ultra Hammers Digspot 3", 0x39e5a8, 0), LocationData("Teehee Valley Solo Luigi Maze Room 1 Block", 0x39e5e0, 0), LocationData("Teehee Valley Before Trunkle Digspot", 0x39e5f0, 0), - LocationData("S.S Chuckola Storage Room Block 1", 0x39e610, 0), - LocationData("S.S Chuckola Storage Room Block 2", 0x39e628, 0), - LocationData("S.S Chuckola Membership Card", 0x260637, 1) + LocationData("S.S. Chuckola Storage Room Block 1", 0x39e610, 0), + LocationData("S.S. Chuckola Storage Room Block 2", 0x39e628, 0), + LocationData("S.S. Chuckola Membership Card", 0x260637, 1) ] fungitown: typing.List[LocationData] = [ @@ -703,47 +703,47 @@ class MLSSLocation(Location): ] jokesEntrance: typing.List[LocationData] = [ - LocationData("Jokes End West of First Boiler Room Block 1", 0x39e6e5, 0), - LocationData("Jokes End West of First Boiler Room Block 2", 0x39e6ed, 0), - LocationData("Jokes End First Boiler Room Digspot 1", 0x39e6fa, 0), - LocationData("Jokes End First Boiler Room Digspot 2", 0x39e702, 0), - LocationData("Jokes End Second Floor West Room Block 1", 0x39e761, 0), - LocationData("Jokes End Second Floor West Room Block 2", 0x39e769, 0), - LocationData("Jokes End Second Floor West Room Block 3", 0x39e779, 0), - LocationData("Jokes End Second Floor West Room Block 4", 0x39e781, 0), - LocationData("Jokes End Mole Reward 1", 0x27788e, 1), - LocationData("Jokes End Mole Reward 2", 0x2778d2, 1) + LocationData("Joke's End West of First Boiler Room Block 1", 0x39e6e5, 0), + LocationData("Joke's End West of First Boiler Room Block 2", 0x39e6ed, 0), + LocationData("Joke's End First Boiler Room Digspot 1", 0x39e6fa, 0), + LocationData("Joke's End First Boiler Room Digspot 2", 0x39e702, 0), + LocationData("Joke's End Second Floor West Room Block 1", 0x39e761, 0), + LocationData("Joke's End Second Floor West Room Block 2", 0x39e769, 0), + LocationData("Joke's End Second Floor West Room Block 3", 0x39e779, 0), + LocationData("Joke's End Second Floor West Room Block 4", 0x39e781, 0), + LocationData("Joke's End Mole Reward 1", 0x27788e, 1), + LocationData("Joke's End Mole Reward 2", 0x2778d2, 1) ] jokesMain: typing.List[LocationData] = [ - LocationData("Jokes End Furnace Room 1 Block 1", 0x39e70f, 0), - LocationData("Jokes End Furnace Room 1 Block 2", 0x39e717, 0), - LocationData("Jokes End Furnace Room 1 Block 3", 0x39e71f, 0), - LocationData("Jokes End Northeast of Boiler Room 1 Block", 0x39e732, 0), - LocationData("Jokes End Northeast of Boiler Room 3 Digspot", 0x39e73f, 0), - LocationData("Jokes End Northeast of Boiler Room 2 Block", 0x39e74c, 0), - LocationData("Jokes End Northeast of Boiler Room 2 Digspot", 0x39e754, 0), - LocationData("Jokes End Second Floor East Room Digspot", 0x39e794, 0), - LocationData("Jokes End Final Split up Room Digspot", 0x39e7a7, 0), - LocationData("Jokes End South of Bridge Room Block", 0x39e7b4, 0), - LocationData("Jokes End Solo Luigi Room 1 Block", 0x39e7c4, 0), - LocationData("Jokes End Solo Luigi Room 1 Digspot", 0x39e7cc, 0), - LocationData("Jokes End Solo Mario Final Room Block 1", 0x39e7d9, 0), - LocationData("Jokes End Solo Mario Final Room Block 2", 0x39e7e1, 0), - LocationData("Jokes End Solo Mario Final Room Block 3", 0x39e7e9, 0), - LocationData("Jokes End Solo Luigi Room 2 Digspot", 0x39e7fc, 0), - LocationData("Jokes End Solo Mario Room 1 Digspot", 0x39e809, 0), - LocationData("Jokes End Solo Mario Room 2 Block 1", 0x39e819, 0), - LocationData("Jokes End Solo Mario Room 2 Block 2", 0x39e821, 0), - LocationData("Jokes End Solo Mario Room 2 Block 3", 0x39e829, 0), - LocationData("Jokes End Second Boiler Room Digspot 1", 0x39e84f, 0), - LocationData("Jokes End Second Boiler Room Digspot 2", 0x39e857, 0), - LocationData("Jokes End North of Second Boiler Room Block 1", 0x39e864, 0), - LocationData("Jokes End North of Second Boiler Room Block 2", 0x39e86c, 0), - LocationData("Jokes End Before Jojora Room Block 1", 0x39e927, 0), - LocationData("Jokes End Before Jojora Room Block 2", 0x39e92f, 0), - LocationData("Jokes End Before Jojora Room Digspot", 0x39e937, 0), - LocationData("Jokes End Jojora Room Digspot", 0x39e944, 0) + LocationData("Joke's End Furnace Room 1 Block 1", 0x39e70f, 0), + LocationData("Joke's End Furnace Room 1 Block 2", 0x39e717, 0), + LocationData("Joke's End Furnace Room 1 Block 3", 0x39e71f, 0), + LocationData("Joke's End Northeast of Boiler Room 1 Block", 0x39e732, 0), + LocationData("Joke's End Northeast of Boiler Room 3 Digspot", 0x39e73f, 0), + LocationData("Joke's End Northeast of Boiler Room 2 Block", 0x39e74c, 0), + LocationData("Joke's End Northeast of Boiler Room 2 Digspot", 0x39e754, 0), + LocationData("Joke's End Second Floor East Room Digspot", 0x39e794, 0), + LocationData("Joke's End Final Split up Room Digspot", 0x39e7a7, 0), + LocationData("Joke's End South of Bridge Room Block", 0x39e7b4, 0), + LocationData("Joke's End Solo Luigi Room 1 Block", 0x39e7c4, 0), + LocationData("Joke's End Solo Luigi Room 1 Digspot", 0x39e7cc, 0), + LocationData("Joke's End Solo Mario Final Room Block 1", 0x39e7d9, 0), + LocationData("Joke's End Solo Mario Final Room Block 2", 0x39e7e1, 0), + LocationData("Joke's End Solo Mario Final Room Block 3", 0x39e7e9, 0), + LocationData("Joke's End Solo Luigi Room 2 Digspot", 0x39e7fc, 0), + LocationData("Joke's End Solo Mario Room 1 Digspot", 0x39e809, 0), + LocationData("Joke's End Solo Mario Room 2 Block 1", 0x39e819, 0), + LocationData("Joke's End Solo Mario Room 2 Block 2", 0x39e821, 0), + LocationData("Joke's End Solo Mario Room 2 Block 3", 0x39e829, 0), + LocationData("Joke's End Second Boiler Room Digspot 1", 0x39e84f, 0), + LocationData("Joke's End Second Boiler Room Digspot 2", 0x39e857, 0), + LocationData("Joke's End North of Second Boiler Room Block 1", 0x39e864, 0), + LocationData("Joke's End North of Second Boiler Room Block 2", 0x39e86c, 0), + LocationData("Joke's End Before Jojora Room Block 1", 0x39e927, 0), + LocationData("Joke's End Before Jojora Room Block 2", 0x39e92f, 0), + LocationData("Joke's End Before Jojora Room Digspot", 0x39e937, 0), + LocationData("Joke's End Jojora Room Digspot", 0x39e944, 0) ] postJokes: typing.List[LocationData] = [ diff --git a/worlds/mlss/Names/LocationName.py b/worlds/mlss/Names/LocationName.py index c50d86d6265c..b68c86fcf5bb 100644 --- a/worlds/mlss/Names/LocationName.py +++ b/worlds/mlss/Names/LocationName.py @@ -301,54 +301,54 @@ class LocationName(): TeeheeValleySoloLuigiMazeRoom1Block = "Teehee Valley Solo Luigi Maze Room 1 Block" TeeheeValleyBeforeTrunkleDigspot = "Teehee Valley Before Trunkle Digspot" TeeheeValleyTrunkleRoomDigspot = "Teehee Valley Trunkle Room Digspot" - SSChuckolaStorageRoomBlock1 = "S.S Chuckola Storage Room Block 1" - SSChuckolaStorageRoomBlock2 = "S.S Chuckola Storage Room Block 2" + SSChuckolaStorageRoomBlock1 = "S.S. Chuckola Storage Room Block 1" + SSChuckolaStorageRoomBlock2 = "S.S. Chuckola Storage Room Block 2" LittleFungitownEmbassyRoomBlock = "Little Fungitown Embassy Room Block" LittleFungitownEntranceRoomBlock = "Little Fungitown Entrance Room Block" - JokesEndPipeDigspot = "Jokes End Pipe Digspot" - JokesEndStaircaseDigspot = "Jokes End Staircase Digspot" - JokesEndWestOfFirstBoilerRoomBlock1 = "Jokes End West Of First Boiler Room Block 1" - JokesEndWestOfFirstBoilerRoomBlock2 = "Jokes End West Of First Boiler Room Block 2" - JokesEndFirstBoilerRoomDigspot1 = "Jokes End First Boiler Room Digspot 1" - JokesEndFirstBoilerRoomDigspot2 = "Jokes End First Boiler Room Digspot 2" - JokesEndFurnaceRoom1Block1 = "Jokes End Furnace Room 1 Block 1" - JokesEndFurnaceRoom1Block2 = "Jokes End Furnace Room 1 Block 2" - JokesEndFurnaceRoom1Block3 = "Jokes End Furnace Room 1 Block 3" - JokesEndNortheastOfBoilerRoom1Block = "Jokes End Northeast Of Boiler Room 1 Block" - JokesEndNortheastOfBoilerRoom3Digspot = "Jokes End Northeast Of Boiler Room 3 Digspot" - JokesEndNortheastOfBoilerRoom2Block1 = "Jokes End Northeast Of Boiler Room 2 Block" - JokesEndNortheastOfBoilerRoom2Block2 = "Jokes End Northeast Of Boiler Room 2 Digspot" - JokesEndSecondFloorWestRoomBlock1 = "Jokes End Second Floor West Room Block 1" - JokesEndSecondFloorWestRoomBlock2 = "Jokes End Second Floor West Room Block 2" - JokesEndSecondFloorWestRoomBlock3 = "Jokes End Second Floor West Room Block 3" - JokesEndSecondFloorWestRoomBlock4 = "Jokes End Second Floor West Room Block 4" - JokesEndSecondFloorEastRoomDigspot = "Jokes End Second Floor East Room Digspot" - JokesEndFinalSplitUpRoomDigspot = "Jokes End Final Split Up Room Digspot" - JokesEndSouthOfBridgeRoomBlock = "Jokes End South Of Bridge Room Block" - JokesEndSoloLuigiRoom1Block = "Jokes End Solo Luigi Room 1 Block" - JokesEndSoloLuigiRoom1Digspot = "Jokes End Solo Luigi Room 1 Digspot" - JokesEndSoloMarioFinalRoomBlock1 = "Jokes End Solo Mario Final Room Block 1" - JokesEndSoloMarioFinalRoomBlock2 = "Jokes End Solo Mario Final Room Block 2" - JokesEndSoloMarioFinalRoomBlock3 = "Jokes End Solo Mario Final Room Block 3" - JokesEndSoloLuigiRoom2Digspot = "Jokes End Solo Luigi Room 2 Digspot" - JokesEndSoloMarioRoom1Digspot = "Jokes End Solo Mario Room 1 Digspot" - JokesEndSoloMarioRoom2Block1 = "Jokes End Solo Mario Room 2 Block 1" - JokesEndSoloMarioRoom2Block2 = "Jokes End Solo Mario Room 2 Block 2" - JokesEndSoloMarioRoom2Block3 = "Jokes End Solo Mario Room 2 Block 3" - JokesEndSecondBoilerRoomDigspot1 = "Jokes End Second Boiler Room Digspot 1" - JokesEndSecondBoilerRoomDigspot2 = "Jokes End Second Boiler Room Digspot 2" - JokesEndNorthOfSecondBoilerRoomBlock1 = "Jokes End North Of Second Boiler Room Block 1" - JokesEndNorthOfSecondBoilerRoomBlock2 = "Jokes End North Of Second Boiler Room Block 2" + JokesEndPipeDigspot = "Joke's End Pipe Digspot" + JokesEndStaircaseDigspot = "Joke's End Staircase Digspot" + JokesEndWestOfFirstBoilerRoomBlock1 = "Joke's End West Of First Boiler Room Block 1" + JokesEndWestOfFirstBoilerRoomBlock2 = "Joke's End West Of First Boiler Room Block 2" + JokesEndFirstBoilerRoomDigspot1 = "Joke's End First Boiler Room Digspot 1" + JokesEndFirstBoilerRoomDigspot2 = "Joke's End First Boiler Room Digspot 2" + JokesEndFurnaceRoom1Block1 = "Joke's End Furnace Room 1 Block 1" + JokesEndFurnaceRoom1Block2 = "Joke's End Furnace Room 1 Block 2" + JokesEndFurnaceRoom1Block3 = "Joke's End Furnace Room 1 Block 3" + JokesEndNortheastOfBoilerRoom1Block = "Joke's End Northeast Of Boiler Room 1 Block" + JokesEndNortheastOfBoilerRoom3Digspot = "Joke's End Northeast Of Boiler Room 3 Digspot" + JokesEndNortheastOfBoilerRoom2Block1 = "Joke's End Northeast Of Boiler Room 2 Block" + JokesEndNortheastOfBoilerRoom2Block2 = "Joke's End Northeast Of Boiler Room 2 Digspot" + JokesEndSecondFloorWestRoomBlock1 = "Joke's End Second Floor West Room Block 1" + JokesEndSecondFloorWestRoomBlock2 = "Joke's End Second Floor West Room Block 2" + JokesEndSecondFloorWestRoomBlock3 = "Joke's End Second Floor West Room Block 3" + JokesEndSecondFloorWestRoomBlock4 = "Joke's End Second Floor West Room Block 4" + JokesEndSecondFloorEastRoomDigspot = "Joke's End Second Floor East Room Digspot" + JokesEndFinalSplitUpRoomDigspot = "Joke's End Final Split Up Room Digspot" + JokesEndSouthOfBridgeRoomBlock = "Joke's End South Of Bridge Room Block" + JokesEndSoloLuigiRoom1Block = "Joke's End Solo Luigi Room 1 Block" + JokesEndSoloLuigiRoom1Digspot = "Joke's End Solo Luigi Room 1 Digspot" + JokesEndSoloMarioFinalRoomBlock1 = "Joke's End Solo Mario Final Room Block 1" + JokesEndSoloMarioFinalRoomBlock2 = "Joke's End Solo Mario Final Room Block 2" + JokesEndSoloMarioFinalRoomBlock3 = "Joke's End Solo Mario Final Room Block 3" + JokesEndSoloLuigiRoom2Digspot = "Joke's End Solo Luigi Room 2 Digspot" + JokesEndSoloMarioRoom1Digspot = "Joke's End Solo Mario Room 1 Digspot" + JokesEndSoloMarioRoom2Block1 = "Joke's End Solo Mario Room 2 Block 1" + JokesEndSoloMarioRoom2Block2 = "Joke's End Solo Mario Room 2 Block 2" + JokesEndSoloMarioRoom2Block3 = "Joke's End Solo Mario Room 2 Block 3" + JokesEndSecondBoilerRoomDigspot1 = "Joke's End Second Boiler Room Digspot 1" + JokesEndSecondBoilerRoomDigspot2 = "Joke's End Second Boiler Room Digspot 2" + JokesEndNorthOfSecondBoilerRoomBlock1 = "Joke's End North Of Second Boiler Room Block 1" + JokesEndNorthOfSecondBoilerRoomBlock2 = "Joke's End North Of Second Boiler Room Block 2" WinkleAreaColloseumDigspot = "Winkle Area Colloseum Digspot" HoohooMountainFountainRoom2Block = "Hoohoo Mountain Fountain Room 2 Block" HoohooMountainFountainRoom2Digspot = "Hoohoo Mountain Fountain Room 2 Digspot" HoohooMountainPastHoohoorosConnectorRoomDigspot1 = "Hoohoo Mountain Past Hoohooros Connector Room Digspot 1" HoohooMountainPastHoohoorosConnectorRoomBlock = "Hoohoo Mountain Past Hoohooros Connector Room Block" HoohooMountainPastHoohoorosConnectorRoomDigspot2 = "Hoohoo Mountain Past Hoohooros Connector Room Digspot 2" - JokesEndBeforeJojoraRoomBlock1 = "Jokes End Before Jojora Room Block 1" - JokesEndBeforeJojoraRoomBlock2 = "Jokes End Before Jojora Room Block 2" - JokesEndBeforeJojoraRoomDigspot = "Jokes End Before Jojora Room Digspot" - JokesEndJojoraRoomDigspot = "Jokes End Jojora Room Digspot" + JokesEndBeforeJojoraRoomBlock1 = "Joke's End Before Jojora Room Block 1" + JokesEndBeforeJojoraRoomBlock2 = "Joke's End Before Jojora Room Block 2" + JokesEndBeforeJojoraRoomDigspot = "Joke's End Before Jojora Room Digspot" + JokesEndJojoraRoomDigspot = "Joke's End Jojora Room Digspot" BeanbeanOutskirtsBeforeHarhallDigspot1 = "Beanbean Outskirts Before Harhall Digspot 1" BeanbeanOutskirtsBeforeHarhallDigspot2 = "Beanbean Outskirts Before Harhall Digspot 2" BeanbeanOutskirtsBroochGuardsRoomDigspot1 = "Beanbean Outskirts Brooch Guards Room Digspot 1" @@ -372,8 +372,8 @@ class LocationName(): BeanbeanOutskirtsSoloLuigiCaveMole = "Beanbean Outskirts Solo Luigi Cave Mole" BeanbeanOutskirtsFarmRoomMoleReward1 = "Beanbean Outskirts Farm Room Mole Reward 1" BeanbeanOutskirtsFarmRoomMoleReward2 = "Beanbean Outskirts Farm Room Mole Reward 2" - JokesEndMoleReward1 = "Jokes End Mole Reward 1" - JokesEndMoleReward2 = "Jokes End Mole Reward 2" + JokesEndMoleReward1 = "Joke's End Mole Reward 1" + JokesEndMoleReward2 = "Joke's End Mole Reward 2" NorthOceanWhirlpoolMole = "North Ocean Whirlpool Mole" BeanbeanOutskirtsNESoloMarioMole1 = "Beanbean Outskirts NE Solo Mario Mole 1" HoohooVillageHammers = "Hoohoo Village Hammers" @@ -384,7 +384,7 @@ class LocationName(): ChucklehuckWoodsRedChuckolaFruit = "Chucklehuck Woods Red Chuckola Fruit" ChucklehuckWoodsWhiteChuckolaFruit = "Chucklehuck Woods White Chuckola Fruit" ChucklehuckWoodsPurpleChuckolaFruit = "Chucklehuck Woods Purple Chuckola Fruit" - SSChuckolaMembershipCard = "S.S Chuckola Membership Card" + SSChuckolaMembershipCard = "S.S. Chuckola Membership Card" WinkleAreaWinkleCard = "Winkle Area Winkle Card" BeanbeanCastlePeachsExtraDress = "Beanbean Castle Peach's Extra Dress" BeanbeanCastleFakeBeastar = "Beanbean Castle Fake Beanstar" diff --git a/worlds/mlss/Rom.py b/worlds/mlss/Rom.py index 739570abcb45..39f8ea66666d 100644 --- a/worlds/mlss/Rom.py +++ b/worlds/mlss/Rom.py @@ -431,8 +431,8 @@ def write_tokens(world: "MLSSWorld", patch: MLSSProcedurePatch) -> None: swap_colors(world, patch, colors[world.options.mario_color], 0) swap_colors(world, patch, colors[world.options.luigi_color], 1) - swap_pants(world, patch, colors[world.options.mario_pants], 0) - swap_pants(world, patch, colors[world.options.luigi_pants], 1) + swap_pants(world, patch, cpants[world.options.mario_pants], 0) + swap_pants(world, patch, cpants[world.options.luigi_pants], 1) patch.write_file("token_data.bin", patch.get_token_binary()) @@ -468,7 +468,7 @@ def swap_pants(world: "MLSSWorld", patch: MLSSProcedurePatch, color: str, bro: i return if bro == 1 and (colors[luigi_color] == "TrueChaos" or colors[luigi_color] == "Silhouette"): return - if color == "Vanilla" or color == "Silhouette": + if color == "Vanilla": return temp = pkgutil.get_data(__name__, "colors/pants/" + color + ".txt") temp_io = io.BytesIO(temp) @@ -476,7 +476,7 @@ def swap_pants(world: "MLSSWorld", patch: MLSSProcedurePatch, color: str, bro: i for lines in temp_io.readlines(): arr = lines.decode('utf-8').strip().split(',') - if color != "Chaos" and color != "TrueChaos": + if color != "Chaos": color_arr.append(Color(int(arr[0], 16), int(arr[1], 16), int(arr[2], 16), int(arr[3], 16))) else: color_arr.append( diff --git a/worlds/mlss/data/basepatch.bsdiff b/worlds/mlss/data/basepatch.bsdiff index 0bced2b5061dc3170525ab523669d67c2ba5dfb4..1b8bdedd6b1e048c8f6bbef4be87eadacdf2ef3d 100644 GIT binary patch literal 16084 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 literal 16020 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