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 @@
+