KH2: Fix determinism by using tuples instead of sets (#4548)
This commit is contained in:
parent
41055cd963
commit
8c5592e406
|
@ -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():
|
||||
|
|
Loading…
Reference in New Issue