diff --git a/Data/GalaxyDatabase.cs b/Data/GalaxyDatabase.cs index eccd36e..d4f1ed6 100644 --- a/Data/GalaxyDatabase.cs +++ b/Data/GalaxyDatabase.cs @@ -3,267 +3,323 @@ namespace NMSE.Data; /// All 256 NMS galaxies with their type classification. public static class GalaxyDatabase { - /// Array of all 256 galaxies with their name, type classification, and 1-based number. - public static readonly (string Name, string Type, int Number)[] Galaxies = - { - ("Euclid", "Normal", 1), - ("Hilbert Dimension", "Normal", 2), - ("Calypso", "Harsh", 3), - ("Hesperius Dimension", "Normal", 4), - ("Hyades", "Normal", 5), - ("Ickjamatew", "Normal", 6), - ("Budullangr", "Empty", 7), - ("Kikolgallr", "Normal", 8), - ("Eltiensleen", "Normal", 9), - ("Eissentam", "Lush", 10), - ("Elkupalos", "Normal", 11), - ("Aptarkaba", "Empty", 12), - ("Ontiniangp", "Normal", 13), - ("Odiwagiri", "Normal", 14), - ("Ogtialabi", "Harsh", 15), - ("Muhacksonto", "Normal", 16), - ("Hitonskyer", "Normal", 17), - ("Rerasmutul", "Normal", 18), - ("Isdoraijung", "Lush", 19), - ("Doctinawyra", "Normal", 20), - ("Loychazinq", "Normal", 21), - ("Zukasizawa", "Normal", 22), - ("Ekwathore", "Harsh", 23), - ("Yeberhahne", "Normal", 24), - ("Twerbetek", "Normal", 25), - ("Sivarates", "Normal", 26), - ("Eajerandal", "Empty", 27), - ("Aldukesci", "Normal", 28), - ("Wotyarogii", "Normal", 29), - ("Sudzerbal", "Lush", 30), - ("Maupenzhay", "Normal", 31), - ("Sugueziume", "Empty", 32), - ("Brogoweldian", "Normal", 33), - ("Ehbogdenbu", "Normal", 34), - ("Ijsenufryos", "Harsh", 35), - ("Nipikulha", "Normal", 36), - ("Autsurabin", "Normal", 37), - ("Lusontrygiamh", "Normal", 38), - ("Rewmanawa", "Lush", 39), - ("Ethiophodhe", "Normal", 40), - ("Urastrykle", "Normal", 41), - ("Xobeurindj", "Normal", 42), - ("Oniijialdu", "Harsh", 43), - ("Wucetosucc", "Normal", 44), - ("Ebyeloof", "Normal", 45), - ("Odyavanta", "Normal", 46), - ("Milekistri", "Empty", 47), - ("Waferganh", "Normal", 48), - ("Agnusopwit", "Normal", 49), - ("Teyaypilny", "Lush", 50), - ("Zalienkosm", "Normal", 51), - ("Ladgudiraf", "Empty", 52), - ("Mushonponte", "Normal", 53), - ("Amsentisz", "Normal", 54), - ("Fladiselm", "Harsh", 55), - ("Laanawemb", "Normal", 56), - ("Ilkerloor", "Normal", 57), - ("Davanossi", "Normal", 58), - ("Ploehrliou", "Lush", 59), - ("Corpinyaya", "Normal", 60), - ("Leckandmeram", "Normal", 61), - ("Quulngais", "Normal", 62), - ("Nokokipsechl", "Harsh", 63), - ("Rinblodesa", "Normal", 64), - ("Loydporpen", "Normal", 65), - ("Ibtrevskip", "Normal", 66), - ("Elkowaldb", "Empty", 67), - ("Heholhofsko", "Normal", 68), - ("Yebrilowisod", "Normal", 69), - ("Husalvangewi", "Lush", 70), - ("Ovnauesed", "Normal", 71), - ("Bahibusey", "Empty", 72), - ("Nuybeliaure", "Normal", 73), - ("Doshawchuc", "Normal", 74), - ("Ruckinarkh", "Harsh", 75), - ("Thorettac", "Normal", 76), - ("Nuponoparau", "Normal", 77), - ("Moglaschil", "Normal", 78), - ("Uiweupose", "Lush", 79), - ("Nasmilete", "Normal", 80), - ("Ekdaluskin", "Normal", 81), - ("Hakapanasy", "Normal", 82), - ("Dimonimba", "Harsh", 83), - ("Cajaccari", "Normal", 84), - ("Olonerovo", "Normal", 85), - ("Umlanswick", "Normal", 86), - ("Henayliszm", "Empty", 87), - ("Utzenmate", "Normal", 88), - ("Umirpaiya", "Normal", 89), - ("Paholiang", "Lush", 90), - ("Iaereznika", "Normal", 91), - ("Yudukagath", "Empty", 92), - ("Boealalosnj", "Normal", 93), - ("Yaevarcko", "Normal", 94), - ("Coellosipp", "Harsh", 95), - ("Wayndohalou", "Normal", 96), - ("Smoduraykl", "Normal", 97), - ("Apmaneessu", "Normal", 98), - ("Hicanpaav", "Lush", 99), - ("Akvasanta", "Normal", 100), - ("Tuychelisaor", "Normal", 101), - ("Rivskimbe", "Normal", 102), - ("Daksanquix", "Harsh", 103), - ("Kissonlin", "Normal", 104), - ("Aediabiel", "Normal", 105), - ("Ulosaginyik", "Normal", 106), - ("Roclaytonycar", "Empty", 107), - ("Kichiaroa", "Normal", 108), - ("Irceauffey", "Normal", 109), - ("Nudquathsenfe", "Lush", 110), - ("Getaizakaal", "Normal", 111), - ("Hansolmien", "Empty", 112), - ("Bloytisagra", "Normal", 113), - ("Ladsenlay", "Normal", 114), - ("Luyugoslasr", "Harsh", 115), - ("Ubredhatk", "Normal", 116), - ("Cidoniana", "Normal", 117), - ("Jasinessa", "Normal", 118), - ("Torweierf", "Lush", 119), - ("Saffneckm", "Normal", 120), - ("Thnistner", "Normal", 121), - ("Dotusingg", "Normal", 122), - ("Luleukous", "Harsh", 123), - ("Jelmandan", "Normal", 124), - ("Otimanaso", "Normal", 125), - ("Enjaxusanto", "Normal", 126), - ("Sezviktorew", "Empty", 127), - ("Zikehpm", "Normal", 128), - ("Bephembah", "Normal", 129), - ("Broomerrai", "Lush", 130), - ("Meximicka", "Normal", 131), - ("Venessika", "Empty", 132), - ("Gaiteseling", "Normal", 133), - ("Zosakasiro", "Normal", 134), - ("Drajayanes", "Harsh", 135), - ("Ooibekuar", "Normal", 136), - ("Urckiansi", "Normal", 137), - ("Dozivadido", "Normal", 138), - ("Emiekereks", "Lush", 139), - ("Meykinunukur", "Normal", 140), - ("Kimycuristh", "Normal", 141), - ("Roansfien", "Normal", 142), - ("Isgarmeso", "Harsh", 143), - ("Daitibeli", "Normal", 144), - ("Gucuttarik", "Normal", 145), - ("Enlaythie", "Normal", 146), - ("Drewweste", "Empty", 147), - ("Akbulkabi", "Normal", 148), - ("Homskiw", "Normal", 149), - ("Zavainlani", "Lush", 150), - ("Jewijkmas", "Normal", 151), - ("Itlhotagra", "Empty", 152), - ("Podalicess", "Normal", 153), - ("Hiviusauer", "Normal", 154), - ("Halsebenk", "Harsh", 155), - ("Puikitoac", "Normal", 156), - ("Gaybakuaria", "Normal", 157), - ("Grbodubhe", "Normal", 158), - ("Rycempler", "Lush", 159), - ("Indjalala", "Normal", 160), - ("Fontenikk", "Normal", 161), - ("Pasycihelwhee", "Normal", 162), - ("Ikbaksmit", "Harsh", 163), - ("Telicianses", "Normal", 164), - ("Oyleyzhan", "Normal", 165), - ("Uagerosat", "Normal", 166), - ("Impoxectin", "Empty", 167), - ("Twoodmand", "Normal", 168), - ("Hilfsesorbs", "Normal", 169), - ("Ezdaranit", "Lush", 170), - ("Wiensanshe", "Normal", 171), - ("Ewheelonc", "Empty", 172), - ("Litzmantufa", "Normal", 173), - ("Emarmatosi", "Normal", 174), - ("Mufimbomacvi", "Harsh", 175), - ("Wongquarum", "Normal", 176), - ("Hapirajua", "Normal", 177), - ("Igbinduina", "Normal", 178), - ("Wepaitvas", "Lush", 179), - ("Sthatigudi", "Normal", 180), - ("Yekathsebehn", "Normal", 181), - ("Ebedeagurst", "Normal", 182), - ("Nolisonia", "Harsh", 183), - ("Ulexovitab", "Normal", 184), - ("Iodhinxois", "Normal", 185), - ("Irroswitzs", "Normal", 186), - ("Bifredait", "Empty", 187), - ("Beiraghedwe", "Normal", 188), - ("Yeonatlak", "Normal", 189), - ("Cugnatachh", "Lush", 190), - ("Nozoryenki", "Normal", 191), - ("Ebralduri", "Empty", 192), - ("Evcickcandj", "Normal", 193), - ("Ziybosswin", "Normal", 194), - ("Heperclait", "Harsh", 195), - ("Sugiuniam", "Normal", 196), - ("Aaseertush", "Normal", 197), - ("Uglyestemaa", "Normal", 198), - ("Horeroedsh", "Lush", 199), - ("Drundemiso", "Normal", 200), - ("Ityanianat", "Normal", 201), - ("Purneyrine", "Normal", 202), - ("Dokiessmat", "Harsh", 203), - ("Nupiacheh", "Normal", 204), - ("Dihewsonj", "Normal", 205), - ("Rudrailhik", "Normal", 206), - ("Tweretnort", "Empty", 207), - ("Snatreetze", "Normal", 208), - ("Iwunddaracos", "Normal", 209), - ("Digarlewena", "Lush", 210), - ("Erquagsta", "Normal", 211), - ("Logovoloin", "Empty", 212), - ("Boyaghosganh", "Normal", 213), - ("Kuolungau", "Normal", 214), - ("Pehneldept", "Harsh", 215), - ("Yevettiiqidcon", "Normal", 216), - ("Sahliacabru", "Normal", 217), - ("Noggalterpor", "Normal", 218), - ("Chmageaki", "Lush", 219), - ("Veticueca", "Normal", 220), - ("Vittesbursul", "Normal", 221), - ("Nootanore", "Normal", 222), - ("Innebdjerah", "Harsh", 223), - ("Kisvarcini", "Normal", 224), - ("Cuzcogipper", "Normal", 225), - ("Pamanhermonsu", "Normal", 226), - ("Brotoghek", "Empty", 227), - ("Mibittara", "Normal", 228), - ("Huruahili", "Normal", 229), - ("Raldwicarn", "Lush", 230), - ("Ezdartlic", "Normal", 231), - ("Badesclema", "Empty", 232), - ("Isenkeyan", "Normal", 233), - ("Iadoitesu", "Normal", 234), - ("Yagrovoisi", "Harsh", 235), - ("Ewcomechio", "Normal", 236), - ("Inunnunnoda", "Normal", 237), - ("Dischiutun", "Normal", 238), - ("Yuwarugha", "Lush", 239), - ("Ialmendra", "Normal", 240), - ("Reponudrle", "Normal", 241), - ("Rinjanagrbo", "Normal", 242), - ("Zeziceloh", "Harsh", 243), - ("Oeileutasc", "Normal", 244), - ("Zicniijinis", "Normal", 245), - ("Dugnowarilda", "Normal", 246), - ("Neuxoisan", "Empty", 247), - ("Ilmenhorn", "Normal", 248), - ("Rukwatsuku", "Normal", 249), - ("Nepitzaspru", "Lush", 250), - ("Chcehoemig", "Normal", 251), - ("Haffneyrin", "Empty", 252), - ("Uliciawai", "Normal", 253), - ("Tuhgrespod", "Normal", 254), - ("Iousongola", "Harsh", 255), - ("Odyalutai", "Normal", 256), - ("Yilsrussimil", "Normal", 257), - }; + /// + /// Array of all 256 galaxies with their 1-based number, hex value, name, + /// type classification, type descriptiong and core colour. + /// + public static readonly (int Number, string Hex, string Name, string Type, string Description, string Core)[] Galaxies = + [ + (1,"00","Euclid","Normal","","White"), + (2,"01","Hilbert Dimension","Normal","Imperfect","Deep Pink"), + (3,"02","Calypso","Harsh","Raging","Medium Orchid"), + (4,"03","Hesperius Dimension","Normal","","Violet"), + (5,"04","Hyades","Normal","","Light Blue"), + (6,"05","Ickjamatew","Normal","","Turquoise"), + (7,"06","Budullangr","Empty","Ancestral","Green"), + (8,"07","Kikolgallr","Normal","","Lime Green"), + (9,"08","Eltiensleen","Normal","","Yellow"), + (10,"09","Eissentam","Lush","Halcyon","Orange"), + (11,"0A","Elkupalos","Normal","Imperfect","Indigo"), + (12,"0B","Aptarkaba","Empty","Ancestral","Sky Blue"), + (13,"0C","Ontiniangp","Normal","","Cyan"), + (14,"0D","Odiwagiri","Normal","","Dark Green"), + (15,"0E","Ogtialabi","Harsh","","Pale Green"), + (16,"0F","Muhacksonto","Normal","","Pale Yellow"), + (17,"10","Hitonskyer","Normal","","Pale Orange"), + (18,"11","Rerasmutul","Normal","","Pale Red"), + (19,"12","Isdoraijung","Lush","","Fuchsia"), + (20,"13","Doctinawyra","Normal","","Purple"), + (21,"14","Loychazinq","Normal","","Dark Green"), + (22,"15","Zukasizawa","Normal","","Light Green"), + (23,"16","Ekwathore","Harsh","","Pale Yellow"), + (24,"17","Yeberhahne","Normal","","Pale Orange"), + (25,"18","Twerbetek","Normal","","Red"), + (26,"19","Sivarates","Normal","","Magenta"), + (27,"1A","Eajerandal","Empty","","Purple"), + (28,"1B","Aldukesci","Normal","","Violet"), + (29,"1C","Wotyarogii","Normal","","Royal Blue"), + (30,"1D","Sudzerbal","Lush","","Turquoise"), + (31,"1E","Maupenzhay","Normal","","Light Orange"), + (32,"1F","Sugueziume","Empty","","Pale Red"), + (33,"20","Brogoweldian","Normal","","Light Fuchsia"), + (34,"21","Ehbogdenbu","Normal","","Light Burgundy"), + (35,"22","Ijsenufryos","Harsh","","Indigo"), + (36,"23","Nipikulha","Normal","","Light Blue"), + (37,"24","Autsurabin","Normal","","Turquoise"), + (38,"25","Lusontrygiamh","Normal","","Sea Green"), + (39,"26","Rewmanawa","Lush","","Lime Green"), + (40,"27","Ethiophodhe","Normal","","Yellow"), + (41,"28","Urastrykle","Normal","","Burgundy"), + (42,"29","Xobeurindj","Normal","","Indigo"), + (43,"2A","Oniijialdu","Harsh","","Light Blue"), + (44,"2B","Wucetosucc","Normal","","Turquoise"), + (45,"2C","Ebyeloof","Normal","","Light Green"), + (46,"2D","Odyavanta","Normal","","Lime Green"), + (47,"2E","Milekistri","Empty","","Yellow"), + (48,"2F","Waferganh","Normal","","Light Orange"), + (49,"30","Agnusopwit","Normal","","Red"), + (50,"31","Teyaypilny","Lush","","Magenta"), + (51,"32","Zalienkosm","Normal","","Electric Blue"), + (52,"33","Ladgudiraf","Empty","","Light Green"), + (53,"34","Mushonponte","Normal","","Light Green"), + (54,"35","Amsentisz","Normal","","Canary Yellow"), + (55,"36","Fladiselm","Harsh","","Manhattan Orange"), + (56,"37","Laanawemb","Normal","Improved","Pink"), + (57,"38","Ilkerloor","Normal","","Magenta"), + (58,"39","Davanossi","Normal","","Medium Orchid"), + (59,"3A","Ploehrliou","Lush","Tranquil","Medium Slate Blue"), + (60,"3B","Corpinyaya","Normal","","Maya Blue"), + (61,"3C","Leckandmeram","Normal","","Canary Yellow"), + (62,"3D","Quulngais","Normal","","Mandys Pink"), + (63,"3E","Nokokipsechl","Harsh","Burning","Red"), + (64,"3F","Rinblodesa","Normal","","Magenta"), + (65,"40","Loydporpen","Normal","","Medium Orchid"), + (66,"41","Ibtrevskip","Normal","","Medium Slate Blue"), + (67,"42","Elkowaldb","Empty","Ancestral","Maya Blue"), + (68,"43","Heholhofsko","Normal","","Turquoise Blue"), + (69,"44","Yebrilowisod","Normal","","Aquamarine"), + (70,"45","Husalvangewi","Lush","","Light Green"), + (71,"46","Ovna'uesed","Normal","","Orchid"), + (72,"47","Bahibusey","Empty","","Medium Orchid"), + (73,"48","Nuybeliaure","Normal","","Medium Slate Blue"), + (74,"49","Doshawchuc","Normal","","Cornflower Blue"), + (75,"4A","Ruckinarkh","Harsh","","Turquoise Blue"), + (76,"4B","Thorettac","Normal","","Aquamarine"), + (77,"4C","Nuponoparau","Normal","","Light Green"), + (78,"4D","Moglaschil","Normal","","Canary Yellow"), + (79,"4E","Uiweupose","Lush","","Manhattan Orange"), + (80,"4F","Nasmilete","Normal","","Pink"), + (81,"50","Ekdaluskin","Normal","","Cornflower Blue"), + (82,"51","Hakapanasy","Normal","","Electric Blue"), + (83,"52","Dimonimba","Harsh","","Aquamarine"), + (84,"53","Cajaccari","Normal","","Mint Green"), + (85,"54","Olonerovo","Normal","","Yellow"), + (86,"55","Umlanswick","Normal","","Orange"), + (87,"56","Henayliszm","Empty","","Pink"), + (88,"57","Utzenmate","Normal","","Magenta"), + (89,"58","Umirpaiya","Normal","","Medium Orchid"), + (90,"59","Paholiang","Lush","","Medium Slate Blue"), + (91,"5A","Iaereznika","Normal","","Mint Green"), + (92,"5B","Yudukagath","Empty","","Yellow"), + (93,"5C","Boealalosnj","Normal","","Manhattan Orange"), + (94,"5D","Yaevarcko","Normal","","Salmon"), + (95,"5E","Coellosipp","Harsh","","Neon Pink"), + (96,"5F","Wayndohalou","Normal","","Medium Orchid"), + (97,"60","Smoduraykl","Normal","","Medium Slate Blue"), + (98,"61","Apmaneessu","Normal","","Maya Blue"), + (99,"62","Hicanpaav","Lush","","Electric Blue"), + (100,"63","Akvasanta","Normal","","Aquamarine"), + (101,"64","Tuychelisaor","Normal","","Light Coral"), + (102,"65","Rivskimbe","Normal","","Magenta"), + (103,"66","Daksanquix","Harsh","","Medium Orchid"), + (104,"67","Kissonlin","Normal","","Light Slate Blue"), + (105,"68","Aediabiel","Normal","","Maya Blue"), + (106,"69","Ulosaginyik","Normal","","Electric Blue"), + (107,"6A","Roclaytonycar","Empty","","Aquamarine"), + (108,"6B","Kichiaroa","Normal","","Mint Green"), + (109,"6C","Irceauffey","Normal","","Canary Yellow"), + (110,"6D","Nudquathsenfe","Lush","","Manhattan Orange"), + (111,"6E","Getaizakaal","Normal","","Medium Slate Blue"), + (112,"6F","Hansolmien","Empty","","Cornflower Blue"), + (113,"70","Bloytisagra","Normal","","Turquoise Blue"), + (114,"71","Ladsenlay","Normal","","Light Green"), + (115,"72","Luyugoslasr","Harsh","","Mint Green"), + (116,"73","Ubredhatk","Normal","","Canary Yellow"), + (117,"74","Cidoniana","Normal","","Manhattan Orange"), + (118,"75","Jasinessa","Normal","","Light Coral"), + (119,"76","Torweierf","Lush","","Magenta"), + (120,"77","Saffneckm","Normal","","Dark Orchid"), + (121,"78","Thnistner","Normal","","Aquamarine"), + (122,"79","Dotusingg","Normal","","Pale Green"), + (123,"7A","Luleukous","Harsh","","Canary Yellow"), + (124,"7B","Jelmandan","Normal","","Peach Orange"), + (125,"7C","Otimanaso","Normal","","Pink"), + (126,"7D","Enjaxusanto","Normal","","Fuchsia Pink"), + (127,"7E","Sezviktorew","Empty","","Blue Violet"), + (128,"7F","Zikehpm","Normal","","Medium Slate Blue"), + (129,"80","Bephembah","Normal","","Maya Blue"), + (130,"81","Broomerrai","Lush","","Electric Blue"), + (131,"82","Meximicka","Normal","","Manhattan Orange"), + (132,"83","Venessika","Empty","","Light Red"), + (133,"84","Gaiteseling","Normal","","Magenta"), + (134,"85","Zosakasiro","Normal","","Medium Orchid"), + (135,"86","Drajayanes","Harsh","","Medium Slate Blue"), + (136,"87","Ooibekuar","Normal","","Maya Blue"), + (137,"88","Urckiansi","Normal","","Electric Blue"), + (138,"89","Dozivadido","Normal","","Aquamarine"), + (139,"8A","Emiekereks","Lush","","Pale Green"), + (140,"8B","Meykinunukur","Normal","","Canary Yellow"), + (141,"8C","Kimycuristh","Normal","","Medium Orchid"), + (142,"8D","Roansfien","Normal","","Medium Slate Blue"), + (143,"8E","Isgarmeso","Harsh","","Maya Blue"), + (144,"8F","Daitibeli","Normal","","Electric Blue"), + (145,"90","Gucuttarik","Normal","","Aquamarine"), + (146,"91","Enlaythie","Normal","","Pale Green"), + (147,"92","Drewweste","Empty","","Canary Yellow"), + (148,"93","Akbulkabi","Normal","","Manhattan Orange"), + (149,"94","Homskiw","Normal","","Pink"), + (150,"95","Zavainlani","Lush","","Magenta"), + (151,"96","Jewijkmas","Normal","","Electric Blue"), + (152,"97","Itlhotagra","Empty","","Aquamarine"), + (153,"98","Podalicess","Normal","Improved","Pale Green"), + (154,"99","Hiviusauer","Normal","","Canary Yellow"), + (155,"9A","Halsebenk","Harsh","Raging","Manhattan Orange"), + (156,"9B","Puikitoac","Normal","","Pink"), + (157,"9C","Gaybakuaria","Normal","","Magenta"), + (158,"9D","Grbodubhe","Normal","","Medium Orchid"), + (159,"9E","Rycempler","Lush","Halcyon","Medium Slate Blue"), + (160,"9F","Indjalala","Normal","","Purple"), + (161,"A0","Fontenikk","Normal","","Canary Yellow"), + (162,"A1","Pasycihelwhee","Normal","","Manhattan Orange"), + (163,"A2","Ikbaksmit","Harsh","","Pink"), + (164,"A3","Telicianses","Normal","","Neon Pink"), + (165,"A4","Oyleyzhan","Normal","","Magenta"), + (166,"A5","Uagerosat","Normal","","Medium Slate Blue"), + (167,"A6","Impoxectin","Empty","Frozen","Cornflower Blue"), + (168,"A7","Twoodmand","Normal","","Electric Blue"), + (169,"A8","Hilfsesorbs","Normal","","Aquamarine"), + (170,"A9","Ezdaranit","Lush","","Pale Green"), + (171,"AA","Wiensanshe","Normal","","Pink"), + (172,"AB","Ewheelonc","Empty","","Medium Orchid"), + (173,"AC","Litzmantufa","Normal","","Medium Slate Blue"), + (174,"AD","Emarmatosi","Normal","","Maya Blue"), + (175,"AE","Mufimbomacvi","Harsh","","Electric Blue"), + (176,"AF","Wongquarum","Normal","","Aquamarine"), + (177,"B0","Hapirajua","Normal","","Pale Green"), + (178,"B1","Igbinduina","Normal","","Canary Yellow"), + (179,"B2","Wepaitvas","Lush","","Manhattan Orange"), + (180,"B3","Sthatigudi","Normal","","Pink"), + (181,"B4","Yekathsebehn","Normal","","Maya Blue"), + (182,"B5","Ebedeagurst","Normal","","Electric Blue"), + (183,"B6","Nolisonia","Harsh","","Pale Green"), + (184,"B7","Ulexovitab","Normal","","Mint Green"), + (185,"B8","Iodhinxois","Normal","","Canary Yellow"), + (186,"B9","Irroswitzs","Normal","","Manhattan Orange"), + (187,"BA","Bifredait","Empty","","Pink"), + (188,"BB","Beiraghedwe","Normal","","Magenta"), + (189,"BC","Yeonatlak","Normal","","Medium Orchid"), + (190,"BD","Cugnatachh","Lush","","Medium Slate Blue"), + (191,"BE","Nozoryenki","Normal","","Mint Green"), + (192,"BF","Ebralduri","Empty","","Canary Yellow"), + (193,"C0","Evcickcandj","Normal","","Manhattan Orange"), + (194,"C1","Ziybosswin","Normal","","Pink"), + (195,"C2","Heperclait","Harsh","","Magenta"), + (196,"C3","Sugiuniam","Normal","","Medium Orchid"), + (197,"C4","Aaseertush","Normal","","Medium Slate Blue"), + (198,"C5","Uglyestemaa","Normal","","Maya Blue"), + (199,"C6","Horeroedsh","Lush","","Electric Blue"), + (200,"C7","Drundemiso","Normal","","Pale Green"), + (201,"C8","Ityanianat","Normal","","Pink"), + (202,"C9","Purneyrine","Normal","","Magenta"), + (203,"CA","Dokiessmat","Harsh","","Medium Orchid"), + (204,"CB","Nupiacheh","Normal","","Medium Slate Blue"), + (205,"CC","Dihewsonj","Normal","","Maya Blue"), + (206,"CD","Rudrailhik","Normal","","Electric Blue"), + (207,"CE","Tweretnort","Empty","","Pale Green"), + (208,"CF","Snatreetze","Normal","","Mint Green"), + (209,"D0","Iwundaracos","Normal","","Canary Yellow"), + (210,"D1","Digarlewena","Lush","","Manhattan Orange"), + (211,"D2","Erquagsta","Normal","","Medium Slate Blue"), + (212,"D3","Logovoloin","Empty","","Maya Blue"), + (213,"D4","Boyaghosganh","Normal","","Electric Blue"), + (214,"D5","Kuolungau","Normal","","Pale Green"), + (215,"D6","Pehneldept","Harsh","","Mint Green"), + (216,"D7","Yevettiiqidcon","Normal","","Canary Yellow"), + (217,"D8","Sahliacabru","Normal","","Manhattan Orange"), + (218,"D9","Noggalterpor","Normal","","Pink"), + (219,"DA","Chmageaki","Lush","","Magenta"), + (220,"DB","Veticueca","Normal","","Medium Orchid"), + (221,"DC","Vittesbursul","Normal","","Aquamarine"), + (222,"DD","Nootanore","Normal","","Mint Green"), + (223,"DE","Innebdjerah","Harsh","","Canary Yellow"), + (224,"DF","Kisvarcini","Normal","","Manhattan Orange"), + (225,"E0","Cuzcogipper","Normal","","Pink"), + (226,"E1","Pamanhermonsu","Normal","","Magenta"), + (227,"E2","Brotoghek","Empty","","Medium Orchid"), + (228,"E3","Mibittara","Normal","","Medium Slate Blue"), + (229,"E4","Huruahili","Normal","","Maya Blue"), + (230,"E5","Raldwicarn","Lush","","Electric Blue"), + (231,"E6","Ezdartlic","Normal","","Manhattan Orange"), + (232,"E7","Badesclema","Empty","","Pink"), + (233,"E8","Isenkeyan","Normal","","Magenta"), + (234,"E9","Iadoitesu","Normal","","Medium Orchid"), + (235,"EA","Yagrovoisi","Harsh","","Medium Slate Blue"), + (236,"EB","Ewcomechio","Normal","","Maya Blue"), + (237,"EC","Inunnunnoda","Normal","","Electric Blue"), + (238,"ED","Dischiutun","Normal","","Aquamarine"), + (239,"EE","Yuwarugha","Lush","","Mint Green"), + (240,"EF","Ialmendra","Normal","","Canary Yellow"), + (241,"F0","Reponudrle","Normal","","Medium Orchid"), + (242,"F1","Rinjanagrbo","Normal","","Medium Slate Blue"), + (243,"F2","Zeziceloh","Harsh","","Maya Blue"), + (244,"F3","Oeileutasc","Normal","","Electric Blue"), + (245,"F4","Zicniijinis","Normal","","Aquamarine"), + (246,"F5","Dugnowarilda","Normal","","Mint Green"), + (247,"F6","Neuxoisan","Empty","","Canary Yellow"), + (248,"F7","Ilmenhorn","Normal","","Manhattan Orange"), + (249,"F8","Rukwatsuku","Normal","","Pink"), + (250,"F9","Nepitzaspru","Lush","","Magenta"), + (251,"FA","Chcehoemig","Normal","","Electric Blue"), + (252,"FB","Haffneyrin","Empty","","Aquamarine"), + (253,"FC","Uliciawai","Normal","","Mint Green"), + (254,"FD","Tuhgrespod","Normal","","Canary Yellow"), + (255,"FE","Iousongola","Harsh","","Manhattan Orange"), + (256,"FF","Odyalutai","Normal","","Magenta"), + ]; + + /// All 49 listed colours for the galactic cores. + public static readonly (string ColorName, string HexColor)[] CoreColors = + [ + ("White","#ffffff"), + ("Deep Pink","#ff1493"), + ("Medium Orchid","#ba55d3"), + ("Violet","#7f00ff"), + ("Light Blue","#add8e6"), + ("Turquoise","#30d5c8"), + ("Green","#15b01a"), + ("Lime Green","#89fe05"), + ("Yellow","#ffff14"), + ("Orange","#f97306"), + ("Indigo","#380282"), + ("Sky Blue","#75bbfd"), + ("Cyan","#00ffff"), + ("Dark Green","#006400"), + ("Pale Green","#c7fdb5"), + ("Pale Yellow","#ffff84"), + ("Pale Orange","#ffa756"), + ("Pale Red","#d9544d"), + ("Fuchsia","#ed0dd9"), + ("Purple","#7e1e9c"), + ("Light Green","#76ff7b"), + ("Red","#e50000"), + ("Magenta","#c20078"), + ("Royal Blue","#0504aa"), + ("Light Orange","#fdaa48"), + ("Light Fuchsia","#f700c6"), + ("Light Burgundy","#a8415b"), + ("Sea Green","#53fca1"), + ("Burgundy","#610023"), + ("Canary Yellow","#ffef00"), + ("Manhattan Orange","#e8a95c"), + ("Pink","#ff81c0"), + ("Medium Slate Blue","#7b68ee"), + ("Maya Blue","#73c2fb"), + ("Electric Blue","#0652ff"), + ("Turquoise Blue","#06c2ac"), + ("Aquamarine","#04d8b2"), + ("Orchid","#c875c4"), + ("Cornflower Blue","#6495ed"), + ("Mint Green","#8fff9f"), + ("Salmon","#ff796c"), + ("Neon Pink","#fe019a"), + ("Dark Orchid","#9932cc"), + ("Peach Orange","#ffb28a"), + ("Fuchsia Pink","#ff5bf8"), + ("Blue Violet","#5d06e9"), + ("Light Red","#ff474c"), + ("Light Coral","#f08080"), + ("Light Slate Blue","#8470ff"), + ]; /// Get raw galaxy name by 0-based reality index. public static string GetGalaxyName(int realityIndex) @@ -281,6 +337,14 @@ public static string GetGalaxyType(int realityIndex) return UiStrings.Get("common.galaxy_type_default"); } + /// Get galaxy core colour by 0-based reality index. + public static string GetGalaxyCore(int realityIndex) + { + if (realityIndex >= 0 && realityIndex < Galaxies.Length) + return Galaxies[realityIndex].Core; + return "Unknown"; + } + /// Get full display name by 0-based reality index, e.g. "Euclid (1)". public static string GetGalaxyDisplayName(int realityIndex) { @@ -291,13 +355,26 @@ public static string GetGalaxyDisplayName(int realityIndex) /// /// UI display colour for each galaxy type. - /// Lush=green, Harsh=red, Empty=cyan, Normal=blue. + /// Empty=blue, Lush=green, Harsh=red, Normal=cyan. /// public static System.Drawing.Color GetGalaxyTypeColor(string galaxyType) => galaxyType switch { + "Empty" => System.Drawing.Color.FromArgb(0x55, 0x88, 0xCC), // Blue "Lush" => System.Drawing.Color.FromArgb(0x55, 0xCC, 0x55), // Green "Harsh" => System.Drawing.Color.FromArgb(0xCC, 0x55, 0x55), // Red - "Empty" => System.Drawing.Color.FromArgb(0x55, 0xCC, 0xCC), // Cyan - _ => System.Drawing.Color.FromArgb(0x55, 0x88, 0xCC), // Blue (Normal) + _ => System.Drawing.Color.FromArgb(0x55, 0xCC, 0xCC), // Cyan }; -} + + /// + /// UI display colour for each galaxy based on named core colour. + /// + public static string GetGalaxyCoreColor(int realityIndex) + { + string colorName = GetGalaxyCore(realityIndex); + if (!string.IsNullOrEmpty(colorName) && colorName != "Unknown") + { + return CoreColors.FirstOrDefault(c => c.ColorName == colorName).HexColor; + } + else return "#000000"; + } +} \ No newline at end of file diff --git a/NMSE.Tests/DataLayerTests.cs b/NMSE.Tests/DataLayerTests.cs index 5ef2117..c707dd9 100644 --- a/NMSE.Tests/DataLayerTests.cs +++ b/NMSE.Tests/DataLayerTests.cs @@ -192,9 +192,9 @@ public void CompanionDatabase_Entries_HaveValidIds() // --- GalaxyDatabase ---------------------------------------------- [Fact] - public void GalaxyDatabase_Has257Galaxies() + public void GalaxyDatabase_Has256Galaxies() { - Assert.Equal(257, GalaxyDatabase.Galaxies.Length); + Assert.Equal(256, GalaxyDatabase.Galaxies.Length); } [Theory] @@ -202,7 +202,6 @@ public void GalaxyDatabase_Has257Galaxies() [InlineData(1, "Hilbert Dimension")] [InlineData(9, "Eissentam")] [InlineData(255, "Odyalutai")] - [InlineData(256, "Yilsrussimil")] public void GalaxyDatabase_GetGalaxyName_ReturnsCorrectName(int index, string expected) { Assert.Equal(expected, GalaxyDatabase.GetGalaxyName(index)); @@ -234,11 +233,45 @@ public void GalaxyDatabase_GetGalaxyType_OutOfRange_ReturnsNormal() Assert.Equal("Normal", GalaxyDatabase.GetGalaxyType(257)); } + [Fact] + public void GalaxyDatabase_GetGalaxyCore_OutOfRange_ReturnsUnknown() + { + Assert.Equal("Unknown", GalaxyDatabase.GetGalaxyCore(-1)); + Assert.Equal("Unknown", GalaxyDatabase.GetGalaxyCore(257)); + } + + [Fact] + public void GalaxyDatabase_GetGalaxyCoreColor_OutOfRange_Returns000000() + { + Assert.Equal("#000000", GalaxyDatabase.GetGalaxyCoreColor(-1)); + Assert.Equal("#000000", GalaxyDatabase.GetGalaxyCoreColor(257)); + } + + [Theory] + [InlineData(0, "White")] + [InlineData(1, "Deep Pink")] + [InlineData(9, "Orange")] + [InlineData(255, "Magenta")] + public void GalaxyDatabase_GetGalaxyCore_ReturnsCorrectColorName(int index, string expected) + { + Assert.Equal(expected, GalaxyDatabase.GetGalaxyCore(index)); + } + + /// Should this be case insenstive? + [Theory] + [InlineData(0, "#ffffff")] + [InlineData(1, "#ff1493")] + [InlineData(9, "#f97306")] + [InlineData(255, "#c20078")] + public void GalaxyDatabase_GetGalaxyCoreColor_ReturnsCorrectColorHex(int index, string expected) + { + Assert.Equal(expected, GalaxyDatabase.GetGalaxyCoreColor(index)); + } + [Theory] [InlineData(0, "Euclid (1)")] [InlineData(9, "Eissentam (10)")] [InlineData(255, "Odyalutai (256)")] - [InlineData(256, "Yilsrussimil (257)")] public void GalaxyDatabase_GetGalaxyDisplayName_ReturnsNameWithNumber(int index, string expected) { Assert.Equal(expected, GalaxyDatabase.GetGalaxyDisplayName(index)); diff --git a/NMSE.Tests/LogicTests.cs b/NMSE.Tests/LogicTests.cs index 60e3460..19e8ba9 100644 --- a/NMSE.Tests/LogicTests.cs +++ b/NMSE.Tests/LogicTests.cs @@ -3677,7 +3677,7 @@ public void GalaxyDatabase_GetGalaxyName_ReturnsExpectedNames() [Fact] public void GalaxyDatabase_GetGalaxyName_HandlesOutOfRange() { - // All 257 galaxies are now in the database; out of range returns Unknown + // All 256 galaxies are now in the database; out of range returns Unknown Assert.Equal("Drundemiso", GalaxyDatabase.GetGalaxyName(199)); Assert.Equal("Unknown", GalaxyDatabase.GetGalaxyName(257)); Assert.Equal("Unknown", GalaxyDatabase.GetGalaxyName(-1)); @@ -3742,9 +3742,9 @@ public void SettlementLogic_Stats_HaveCorrectStructure() } [Fact] - public void GalaxyDatabase_Has257Galaxies() + public void GalaxyDatabase_Has256Galaxies() { - Assert.Equal(257, GalaxyDatabase.Galaxies.Length); + Assert.Equal(256, GalaxyDatabase.Galaxies.Length); } [Fact] diff --git a/NMSE.csproj b/NMSE.csproj index 6470bd4..afc4c5b 100644 --- a/NMSE.csproj +++ b/NMSE.csproj @@ -108,6 +108,7 @@ +