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