Skip to content

Commit

Permalink
KH2: Fix determinism by using tuples instead of sets (#4548)
Browse files Browse the repository at this point in the history
  • Loading branch information
Exempt-Medic authored Jan 27, 2025
1 parent 41055cd commit 8c5592e
Showing 1 changed file with 88 additions and 88 deletions.
176 changes: 88 additions & 88 deletions worlds/kh2/Regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -1032,99 +1032,99 @@ def connect_regions(self):
multiworld = self.multiworld
player = self.player
# connecting every first visit to the GoA
KH2RegionConnections: typing.Dict[str, typing.Set[str]] = {
"Menu": {RegionName.GoA},
RegionName.GoA: {RegionName.Sp, RegionName.Pr, RegionName.Tt, RegionName.Oc, RegionName.Ht,
KH2RegionConnections: typing.Dict[str, typing.Tuple[str]] = {
"Menu": (RegionName.GoA,),
RegionName.GoA: (RegionName.Sp, RegionName.Pr, RegionName.Tt, RegionName.Oc, RegionName.Ht,
RegionName.LoD,
RegionName.Twtnw, RegionName.Bc, RegionName.Ag, RegionName.Pl, RegionName.Hb,
RegionName.Dc, RegionName.Stt,
RegionName.Ha1, RegionName.Keyblade, RegionName.LevelsVS1,
RegionName.Valor, RegionName.Wisdom, RegionName.Limit, RegionName.Master,
RegionName.Final, RegionName.Summon, RegionName.AtlanticaSongOne},
RegionName.LoD: {RegionName.ShanYu},
RegionName.ShanYu: {RegionName.LoD2},
RegionName.LoD2: {RegionName.AnsemRiku},
RegionName.AnsemRiku: {RegionName.StormRider},
RegionName.StormRider: {RegionName.DataXigbar},
RegionName.Ag: {RegionName.TwinLords},
RegionName.TwinLords: {RegionName.Ag2},
RegionName.Ag2: {RegionName.GenieJafar},
RegionName.GenieJafar: {RegionName.DataLexaeus},
RegionName.Dc: {RegionName.Tr},
RegionName.Tr: {RegionName.OldPete},
RegionName.OldPete: {RegionName.FuturePete},
RegionName.FuturePete: {RegionName.Terra, RegionName.DataMarluxia},
RegionName.Ha1: {RegionName.Ha2},
RegionName.Ha2: {RegionName.Ha3},
RegionName.Ha3: {RegionName.Ha4},
RegionName.Ha4: {RegionName.Ha5},
RegionName.Ha5: {RegionName.Ha6},
RegionName.Pr: {RegionName.Barbosa},
RegionName.Barbosa: {RegionName.Pr2},
RegionName.Pr2: {RegionName.GrimReaper1},
RegionName.GrimReaper1: {RegionName.GrimReaper2},
RegionName.GrimReaper2: {RegionName.DataLuxord},
RegionName.Oc: {RegionName.Cerberus},
RegionName.Cerberus: {RegionName.OlympusPete},
RegionName.OlympusPete: {RegionName.Hydra},
RegionName.Hydra: {RegionName.OcPainAndPanicCup, RegionName.OcCerberusCup, RegionName.Oc2},
RegionName.Oc2: {RegionName.Hades},
RegionName.Hades: {RegionName.Oc2TitanCup, RegionName.Oc2GofCup, RegionName.DataZexion},
RegionName.Oc2GofCup: {RegionName.HadesCups},
RegionName.Bc: {RegionName.Thresholder},
RegionName.Thresholder: {RegionName.Beast},
RegionName.Beast: {RegionName.DarkThorn},
RegionName.DarkThorn: {RegionName.Bc2},
RegionName.Bc2: {RegionName.Xaldin},
RegionName.Xaldin: {RegionName.DataXaldin},
RegionName.Sp: {RegionName.HostileProgram},
RegionName.HostileProgram: {RegionName.Sp2},
RegionName.Sp2: {RegionName.Mcp},
RegionName.Mcp: {RegionName.DataLarxene},
RegionName.Ht: {RegionName.PrisonKeeper},
RegionName.PrisonKeeper: {RegionName.OogieBoogie},
RegionName.OogieBoogie: {RegionName.Ht2},
RegionName.Ht2: {RegionName.Experiment},
RegionName.Experiment: {RegionName.DataVexen},
RegionName.Hb: {RegionName.Hb2},
RegionName.Hb2: {RegionName.CoR, RegionName.HBDemyx},
RegionName.HBDemyx: {RegionName.ThousandHeartless},
RegionName.ThousandHeartless: {RegionName.Mushroom13, RegionName.DataDemyx, RegionName.Sephi},
RegionName.CoR: {RegionName.CorFirstFight},
RegionName.CorFirstFight: {RegionName.CorSecondFight},
RegionName.CorSecondFight: {RegionName.Transport},
RegionName.Pl: {RegionName.Scar},
RegionName.Scar: {RegionName.Pl2},
RegionName.Pl2: {RegionName.GroundShaker},
RegionName.GroundShaker: {RegionName.DataSaix},
RegionName.Stt: {RegionName.TwilightThorn},
RegionName.TwilightThorn: {RegionName.Axel1},
RegionName.Axel1: {RegionName.Axel2},
RegionName.Axel2: {RegionName.DataRoxas},
RegionName.Tt: {RegionName.Tt2},
RegionName.Tt2: {RegionName.Tt3},
RegionName.Tt3: {RegionName.DataAxel},
RegionName.Twtnw: {RegionName.Roxas},
RegionName.Roxas: {RegionName.Xigbar},
RegionName.Xigbar: {RegionName.Luxord},
RegionName.Luxord: {RegionName.Saix},
RegionName.Saix: {RegionName.Twtnw2},
RegionName.Twtnw2: {RegionName.Xemnas},
RegionName.Xemnas: {RegionName.ArmoredXemnas, RegionName.DataXemnas},
RegionName.ArmoredXemnas: {RegionName.ArmoredXemnas2},
RegionName.ArmoredXemnas2: {RegionName.FinalXemnas},
RegionName.LevelsVS1: {RegionName.LevelsVS3},
RegionName.LevelsVS3: {RegionName.LevelsVS6},
RegionName.LevelsVS6: {RegionName.LevelsVS9},
RegionName.LevelsVS9: {RegionName.LevelsVS12},
RegionName.LevelsVS12: {RegionName.LevelsVS15},
RegionName.LevelsVS15: {RegionName.LevelsVS18},
RegionName.LevelsVS18: {RegionName.LevelsVS21},
RegionName.LevelsVS21: {RegionName.LevelsVS24},
RegionName.LevelsVS24: {RegionName.LevelsVS26},
RegionName.AtlanticaSongOne: {RegionName.AtlanticaSongTwo},
RegionName.AtlanticaSongTwo: {RegionName.AtlanticaSongThree},
RegionName.AtlanticaSongThree: {RegionName.AtlanticaSongFour},
RegionName.Final, RegionName.Summon, RegionName.AtlanticaSongOne),
RegionName.LoD: (RegionName.ShanYu,),
RegionName.ShanYu: (RegionName.LoD2,),
RegionName.LoD2: (RegionName.AnsemRiku,),
RegionName.AnsemRiku: (RegionName.StormRider,),
RegionName.StormRider: (RegionName.DataXigbar,),
RegionName.Ag: (RegionName.TwinLords,),
RegionName.TwinLords: (RegionName.Ag2,),
RegionName.Ag2: (RegionName.GenieJafar,),
RegionName.GenieJafar: (RegionName.DataLexaeus,),
RegionName.Dc: (RegionName.Tr,),
RegionName.Tr: (RegionName.OldPete,),
RegionName.OldPete: (RegionName.FuturePete,),
RegionName.FuturePete: (RegionName.Terra, RegionName.DataMarluxia),
RegionName.Ha1: (RegionName.Ha2,),
RegionName.Ha2: (RegionName.Ha3,),
RegionName.Ha3: (RegionName.Ha4,),
RegionName.Ha4: (RegionName.Ha5,),
RegionName.Ha5: (RegionName.Ha6,),
RegionName.Pr: (RegionName.Barbosa,),
RegionName.Barbosa: (RegionName.Pr2,),
RegionName.Pr2: (RegionName.GrimReaper1,),
RegionName.GrimReaper1: (RegionName.GrimReaper2,),
RegionName.GrimReaper2: (RegionName.DataLuxord,),
RegionName.Oc: (RegionName.Cerberus,),
RegionName.Cerberus: (RegionName.OlympusPete,),
RegionName.OlympusPete: (RegionName.Hydra,),
RegionName.Hydra: (RegionName.OcPainAndPanicCup, RegionName.OcCerberusCup, RegionName.Oc2),
RegionName.Oc2: (RegionName.Hades,),
RegionName.Hades: (RegionName.Oc2TitanCup, RegionName.Oc2GofCup, RegionName.DataZexion),
RegionName.Oc2GofCup: (RegionName.HadesCups,),
RegionName.Bc: (RegionName.Thresholder,),
RegionName.Thresholder: (RegionName.Beast,),
RegionName.Beast: (RegionName.DarkThorn,),
RegionName.DarkThorn: (RegionName.Bc2,),
RegionName.Bc2: (RegionName.Xaldin,),
RegionName.Xaldin: (RegionName.DataXaldin,),
RegionName.Sp: (RegionName.HostileProgram,),
RegionName.HostileProgram: (RegionName.Sp2,),
RegionName.Sp2: (RegionName.Mcp,),
RegionName.Mcp: (RegionName.DataLarxene,),
RegionName.Ht: (RegionName.PrisonKeeper,),
RegionName.PrisonKeeper: (RegionName.OogieBoogie,),
RegionName.OogieBoogie: (RegionName.Ht2,),
RegionName.Ht2: (RegionName.Experiment,),
RegionName.Experiment: (RegionName.DataVexen,),
RegionName.Hb: (RegionName.Hb2,),
RegionName.Hb2: (RegionName.CoR, RegionName.HBDemyx),
RegionName.HBDemyx: (RegionName.ThousandHeartless,),
RegionName.ThousandHeartless: (RegionName.Mushroom13, RegionName.DataDemyx, RegionName.Sephi),
RegionName.CoR: (RegionName.CorFirstFight,),
RegionName.CorFirstFight: (RegionName.CorSecondFight,),
RegionName.CorSecondFight: (RegionName.Transport,),
RegionName.Pl: (RegionName.Scar,),
RegionName.Scar: (RegionName.Pl2,),
RegionName.Pl2: (RegionName.GroundShaker,),
RegionName.GroundShaker: (RegionName.DataSaix,),
RegionName.Stt: (RegionName.TwilightThorn,),
RegionName.TwilightThorn: (RegionName.Axel1,),
RegionName.Axel1: (RegionName.Axel2,),
RegionName.Axel2: (RegionName.DataRoxas,),
RegionName.Tt: (RegionName.Tt2,),
RegionName.Tt2: (RegionName.Tt3,),
RegionName.Tt3: (RegionName.DataAxel,),
RegionName.Twtnw: (RegionName.Roxas,),
RegionName.Roxas: (RegionName.Xigbar,),
RegionName.Xigbar: (RegionName.Luxord,),
RegionName.Luxord: (RegionName.Saix,),
RegionName.Saix: (RegionName.Twtnw2,),
RegionName.Twtnw2: (RegionName.Xemnas,),
RegionName.Xemnas: (RegionName.ArmoredXemnas, RegionName.DataXemnas),
RegionName.ArmoredXemnas: (RegionName.ArmoredXemnas2,),
RegionName.ArmoredXemnas2: (RegionName.FinalXemnas,),
RegionName.LevelsVS1: (RegionName.LevelsVS3,),
RegionName.LevelsVS3: (RegionName.LevelsVS6,),
RegionName.LevelsVS6: (RegionName.LevelsVS9,),
RegionName.LevelsVS9: (RegionName.LevelsVS12,),
RegionName.LevelsVS12: (RegionName.LevelsVS15,),
RegionName.LevelsVS15: (RegionName.LevelsVS18,),
RegionName.LevelsVS18: (RegionName.LevelsVS21,),
RegionName.LevelsVS21: (RegionName.LevelsVS24,),
RegionName.LevelsVS24: (RegionName.LevelsVS26,),
RegionName.AtlanticaSongOne: (RegionName.AtlanticaSongTwo,),
RegionName.AtlanticaSongTwo: (RegionName.AtlanticaSongThree,),
RegionName.AtlanticaSongThree: (RegionName.AtlanticaSongFour,),
}

for source, target in KH2RegionConnections.items():
Expand Down

0 comments on commit 8c5592e

Please sign in to comment.