diff --git a/Autoload/Global.gd b/Autoload/Global.gd index b4144ad..edcd0ee 100644 --- a/Autoload/Global.gd +++ b/Autoload/Global.gd @@ -22,35 +22,37 @@ var Owniverse: Dictionary = { var Locales: Dictionary = {} var Locale = "en" -var Entities: Dictionary = {} +var OwniverseEntities: Dictionary = {} +var OwniverseItems: Dictionary = {} var Templates: Dictionary = {} -func get_localized_item_description(entity_id: String, item: String) -> String: - if Locales[Locale].has(entity_id): - return Locales[Locale][entity_id][item] +func get_localized_item_description(item_id: String, item: String) -> String: + if Locales[Locale].has(item_id): + return Locales[Locale][item_id][item] return "" -func get_description(item_id: String, values: Array = []) -> String: +func get_description(item_id: String, items: Array = []) -> String: if !Templates[Locale].has(item_id): return "" - #print(Templates[Locale]) var description: String = Templates[Locale][item_id]["text"] var value = 0 - for item in values: + for item in items: description.replace("value"+str(value), str(item)) return description func _ready() -> void: - Entities = _read_from_csv("res://Autoload/entities.csv") + OwniverseEntities = _read_from_csv("res://Autoload/owniverse_entitites.csv") + OwniverseItems = _read_from_csv("res://Autoload/owniverse_items.csv") Locales["en"] = _read_from_csv("res://Autoload/locale.en.csv") Locales["ru"] = _read_from_csv("res://Autoload/locale.ru.csv") Templates["en"] = _read_from_csv("res://Autoload/templates.en.csv") + func _read_from_csv(file_path: String) -> Dictionary: if not FileAccess.file_exists(file_path): diff --git a/Autoload/OwniverseItems.csv b/Autoload/OwniverseItems.csv deleted file mode 100644 index fffc242..0000000 --- a/Autoload/OwniverseItems.csv +++ /dev/null @@ -1,132 +0,0 @@ -Пространство|S|Resource|||||||||||||1|S|||||||| -Водород|H|Resource|||||||||||||1|H|||||||| -Гелий|He|Resource|||||||||||||||||||||| -Металлы|Met|Resource|||||||||||||||||||||| -Бурый карлик|BD|Planet|||||||||||BD:1||||||||||| -Горячий бурый карлик|HBD|Star phase 1|BD|0.1|5.00E+09|H:0.1|||S:0.5|||CBD:1|||||||||1||| -Красный карлик|RD|Star phase 1||1|4.00E+10|H:1||1|S:40|||TWD:1&H:0.13&He:0.05&Met:0.01|H:1|Star||DwStar|1x0.01|1x0.21|2x0.08|3x0.4|1||| -Оранжевый карлик|OD|Star phase 1||8|1.80E+10|H:8||1|S:36|||SRG:1|RD:1|Star||DwStar|1x0.03|2x0.34|3x0.13|3x0.4|1||| -Жёлтый карлик|YD|Star phase 1||10|9.00E+09|H:10||1|S:27|||NRG:1|OD:1|Star||DwStar|2x0.1|3x0.55|4x0.21|3x0.4|1||| -Бело-жёлтый карлик|WYD|Star phase 1||16|1.80E+09|H:16||1|S:18|||MRG:1|YD:1|Star||DwStar|3x0.3|5x0.89|5x0.34|3x0.4|1||| -Жёлтый гигант|YG|Star phase 1||50|4.50E+08|H:50||1|S:9|||LRG:1|H:15|Star||GiStar|||||2||| -Голубой гигант|BG|Star phase 1||100|9.00E+07|H:100||1|S:9|||HRG:1|H:30&YG:1|Star||GiStar|||||2||| -Сверхгигант|SG|Star phase 1||300|9.00E+06|H:300||1|S:9|||RSG:1|H:100&BG:1|Star||GiStar|||||2||| -Гипергигант|HG|Star phase 1||1000|9.00E+05|H:1000||1|S:9|||RHG:1|H:300&SG:1|Star||GiStar|||||2||| -Красный гигант|RG|Star phase 2|||||||||||RG:1||||||||||| -Малый красный гигант|SRG|Star phase 2|RG|8|2.00E+09||||S:80|||SWD:1&H:2.32&He:0.64&Met:0.08&S:12.4||Star|||||||1||| -Обычный Красный гигант|NRG|Star phase 2|RG|10|1.00E+09||||S:120.|||NWD:1&H:3.2&He:1.3&Met:0.2&S:14.3||Star|||||||1||| -Средний красный гигант|MRG|Star phase 2|RG|16|2.00E+08||||S:200|||LWD:1&H:4.96&He:3.36&Met:0.48&S:20.2||Star|||||||1||| -Большой красный гигант|LRG|Star phase 2|RG|50|5.00E+07||||S:300|||DSN^SGRB%.1||Star|||||||2||| -Огромный красный гигант|HRG|Star phase 2|RG|100|1.00E+07||||S:400.|||SN^GRB%1||Star|||||||2||| -Красный сверхгигант|RSG|Star phase 2|RG|300|1.00E+06||||S:500|||BSN^LGRB%3||Star|||||||2||| -Красный гипергигант|RHG|Star phase 2|RG|1000|1.00E+05||||S:600|||HN^HGRB%10||Star|||||||2||| -Тусклая сверхновая|DSN|Star phase 3|||1||||S:59.1|||SNS:1&H:6.5&He:13.5&Met:11&blast:2||||SNGRBB|||||2||| -Сверхновая|SN|Star phase 3|||1||||S:99.1|||LNS:1&H:8&He:50&Met:11&blast:9||||SNGRBB|||||2||| -Яркая сверхновая|BSN|Star phase 3|||1||||S:309.1|||MGT:1&H:15&He:186&Met:15&blast:305||||SNGRBB|||||2||| -Гиперновая|HN|Star phase 3|||1||||S:939.1|||BH40:1&H:30&He:560&Met:30&blast:9990||||SNGRBB|||||2||| -Малый гамма-всплеск|SGRB|Star phase 3|||1||||S:149.1|||BH25:1&H:0.5&He:10&Met:4&blast:31||||SNGRBB|||||2||| -Гамма-всплеск|GRB|Star phase 3|||1||||S:239.1|||BH30:1&H:19&He:12&Met:5&blast:136||||SNGRBB|||||2||| -Большой гамма-всплеск|LGRB|Star phase 3|||1||||S:669.1|||BH40:1&H:68&He:18&Met:9&blast:3446||||SNGRBB|||||2||| -Гипер гамма-всплеск|HGRB|Star phase 3|||1||||S:1939.1|||BH60:1&H:0&He:40&Met:10&blast:97342||||SNGRBB|||||2||| -Холодный бурый карлик|CBD|Star phase 4|BD|0.1|||||||||||||||||||| -Белый карлик|WD|Star phase 4|||||||||||WD:1||||||||||| -Крошечный белый карлик|TWD|Star phase 4|WD|0.8||||||||||Star||Degen|||||||| -Малый белый карлик|SWD|Star phase 4|WD|4.8||||||||||Star||Degen|||||||| -Обычный белый карлик|NWD|Star phase 4|WD|5||||||||||Star||Degen|||||||| -Большой белый карлик|LWD|Star phase 4|WD|6.4||||||||||Star||Degen|||||||| -Нейтронная звезда|NS|Star phase 4|||||||||||NS:1||||||||||| -Малая нейтронная звезда|SNS|Star phase 4|NS|15||||||||||Star||Degen|||||||| -Большая нейтронная звезда|LNS|Star phase 4|NS|18||||||||||Star||Degen|||||||| -Магнетар|MGT|Star phase 4||21|||||||||MGT:1|Star||Degen|||||||| -Чёрная дыра|BH|Star phase 4|||||||||||BH:1||||||||||| -Чёрная дыра 25|BH25|Star phase 4|BH|25||||||||||BH||BH|||||||| -Чёрная дыра 30|BH30|Star phase 4|BH|30||||||||||BH||BH|||||||| -Чёрная дыра 40|BH40|Star phase 4|BH|40||||||||||BH||BH|||||||| -Чёрная дыра 60|BH60|Star phase 4|BH|60||||||||||BH||BH|||||||| -СМЧД|SMBH|Star phase 4|||||||||||BH:1|||SMBH|||||||| -Туманность|N|Cloud||1|1.00E+07|H:1||10|H:10|||H:1&S:10|S:1|CL||CL|||||||| -Глобула|G|Cloud||11|3.00E+07|H:10&N:1||10|H:150|||H:11&S:20|N:1|CL||CL|||||||| -Звёздная колыбель|STN|Cloud||211|3.00E+07|H:200&G:1||300|H:3000|0.50||H:211&S:320|G:1|CL||CL|||||||| -Молекулярное облако|MC|Cloud||2011|3.00E+08|H:2000&G:1||4000|H:90000.|||H:2011&S:4020|G:1&S:1300|CL||CL|||||||| -Активная звёздная колыбель|ASTN|Cloud||202011|1.00E+08|H:200000&MC:1||200000|H:2000000|0.65||H:202011&S:204020|MC:1&S:60000|CL||CL|||||||| -Рассеянное звёздное скопление|SCD|Cluster|||1.00E+07||Star:1000||||||Star:300|SC||SC||||||0.10|4|C2.3 -Малое звёздное скопление|SCS|Cluster|||1.00E+09||Star:10000&BH:10||||||SCD:1&Star:2000|SC||SC||||||0.20|3.6|C2.4 -Среднее звёздное скопление|SCM|Cluster|||3.00E+09||Star:100000&BH:100||||||SCS:1&Star:20000|SC||SC||||||0.30|3.4|C2.5 -Большое звёздное скопление|SCL|Cluster|||1.00E+10||Star:1000000&BH:1000||||||SCM:1&Star:200000|SC||SC||||||0.50|3.2|C2.6 -Гигантское звёздное скопление|SCG|Cluster|||3.00E+10||Star:10000000&BH:10000||||||SCL:1&Star:2000000|SC||SC||||||0.80|3|C2.7 -Карликовая эллиптическая галактика|GED|GalaxyElliptical|||1.20E+10|SMBH:10000|Star:1000000000&BH:1000000&SC:100||||||SMBH:1&SC:1|GAL||GALE||||||1.00|1.9|C2.9 -Малая эллиптическая галактика|GES|GalaxyElliptical|||1.30E+10|SMBH:100000|Star:10000000000&BH:10000000&SC:1000||||||GED:1&Star:2000000000|GAL||GALE||||||1.50|1.8|C3.0 -Средняя эллиптическая галактика|GEM|GalaxyElliptical|||1.50E+10|SMBH:1000000|Star:100000000000&BH:100000000&SC:10000||||||GES:1&Star:20000000000|GAL||GALE||||||2.00|1.7|C3.1 -Большая эллиптическая галактика|GEL|GalaxyElliptical|||1.70E+10|SMBH:10000000|Star:1000000000000&BH:1000000000&SC:100000||||||GEM:1&Star:200000000000|GAL||GALE||||||3.00|1.6|C3.2 -Гигантская эллиптическая галактика|GEG|GalaxyElliptical|||2.00E+10|SMBH:100000000|Star:10000000000000&BH:10000000000&SC:1000000||||||GEL:1&Star:2000000000000|GAL||GALE||||||4.50|1.5|C3.3 -Карликовая спиральная галактика|GSD|GalaxySpiral|||2.00E+09|STN:10000&ASTN:10|GED:1|-5240200|H:2400000000|0.80||H:4112110|GED:1|GAL||GALS|||||||2.5|C2.9 -Малая спиральная галактика|GSS|GalaxySpiral|||3.00E+09|STN:100000&ASTN:100|GES:1|-52402000|H:36000000000|0.80||H:41121100|GES:1|GAL||GALS|||||||2.3|C3.0 -Средняя спиральная галактика|GSM|GalaxySpiral|||4.00E+09|STN:1000000&ASTN:1000|GEM:1|-524020000|H:480000000000|0.80||H:411211000|GEM:1|GAL||GALS|||||||2.2|C3.1 -Большая спиральная галактика|GSL|GalaxySpiral|||6.00E+09|STN:10000000&ASTN:10000|GEL:1|-5240200000|H:7200000000000|0.80||H:4112110000|GEL:1|GAL||GALS|||||||2.1|C3.2 -Гигантская спиральная галактика|GSG|GalaxySpiral|||9.00E+09|STN:100000000&ASTN:100000|GEG:1|-52402000000|H:108000000000000|0.80||H:41121100000|GEG:1|GAL||GALS|||||||2|C3.3 -Группа галактик|LGG|Structures|||1.00E+10||GAL:50||||||GAL:20|LS||LS|||||||1.5|C3.4 -Сверхскопление|LSC|Structures|||2.00E+10||LGG:200||||||LGG:1&GAL:100|LS||LS|||||||1.4|C3.6 -Галактическая нить|LGF|Structures|||3.00E+10||LSC:100||||5||LSC:1&LGG:400|LS||LS|||||||1.3|C3.8 -Великая стена|LGW|Structures|||6.00E+10||LGF:1000||||1.00E+04||LGF:1&LSC:200|LS||LS|||||||1.2|C4.1 -Вселенский пузырь|LUB|Structures|||1.00E+11||LGW:1000||||1.00E+09||LGW:1&LGF:2000|LS||LS|||||||1.1|C4.4 -Газовый гигант|GG|Planet|||||||||||GG:1|Planet||BPlanet|||||||| -Астероиды|AB|Planet|||||||||||AB:1|Planet||BPlanet|||||||| -Каменистая|RP|Planet|||||||||||RP:1|Planet||BPlanet|||||||| -Обитаемая|HP|Planet|||||||||||HP:1|Planet||LPlanet|||||||| -Живая|LP|Planet|||||||||||LP:1|Planet||LPlanet|||||||| -Эон 1: Архей|EON1|Planet|LP||||||||||EON1:1|Planet||LPlanet|||||||| -Эон 2: Протерозой|EON2|Planet|LP||||||||||EON2:1|Planet||LPlanet|||||||| -Эон 3: Палеозой|EON3|Planet|LP||||||||||EON3:1|Planet||LPlanet|||||||| -Эон 4: Мезозой|EON4|Planet|LP||||||||||EON4:1|Planet||LPlanet|||||||| -Эон 5: Кайнозой|EON5|Planet|LP||||||||||EON5:1|Planet||LPlanet|||||||| -Цивилизация типа 0|C0|Civilization|||||||||||C0:1|Planet||LPlanet|||||||| -Цивилизация 0.0|C0.0|Civilization|C0||||||||||C0.0:1|Planet||LPlanet|||||||| -Цивилизация 0.1|C0.1|Civilization|C0||||||||||C0.1:1|Planet||LPlanet|||||||| -Цивилизация 0.2|C0.2|Civilization|C0||||||||||C0.2:1|Planet||LPlanet|||||||| -Цивилизация 0.3|C0.3|Civilization|C0||||||||||C0.3:1|Planet||LPlanet|||||||| -Цивилизация 0.4|C0.4|Civilization|C0||||||||||C0.4:1|Planet||LPlanet|||||||| -Цивилизация 0.5|C0.5|Civilization|C0||||||||||C0.5:1|Planet||LPlanet|||||||| -Цивилизация 0.6|C0.6|Civilization|C0||||||||||C0.6:1|Planet||LPlanet|||||||| -Цивилизация 0.7|C0.7|Civilization|C0||||||||||C0.7:1|Planet||LPlanet|||||||| -Цивилизация 0.8|C0.8|Civilization|C0||||||||||C0.8:1|Planet||LPlanet|||||||| -Цивилизация 0.9|C0.9|Civilization|C0||||||||||C0.9:1|Planet||LPlanet|||||||| -Цивилизация типа 1|C1|Civilization|||||||||||C1:1|Planet||LPlanet|||||||| -Цивилизация 1.0|C1.0|Civilization|C1||||||||||C1.0:1|Planet||LPlanet|||||||| -Цивилизация 1.1|C1.1|Civilization|C1||||||||||C1.1:1|Planet||LPlanet|||||||| -Цивилизация 1.2|C1.2|Civilization|C1||||||||||C1.2:1|Planet||LPlanet|||||||| -Цивилизация 1.3|C1.3|Civilization|C1||||||||||C1.3:1|Planet||LPlanet|||||||| -Цивилизация 1.4|C1.4|Civilization|C1||||||||||C1.4:1|Planet||LPlanet|||||||| -Цивилизация 1.5|C1.5|Civilization|C1||||||||||C1.5:1|Planet||LPlanet|||||||| -Цивилизация 1.6|C1.6|Civilization|C1||||||||||C1.6:1|Planet||LPlanet|||||||| -Цивилизация 1.7|C1.7|Civilization|C1||||||||||C1.7:1|Planet||LPlanet|||||||| -Цивилизация 1.8|C1.8|Civilization|C1||||||||||C1.8:1|Planet||LPlanet|||||||| -Цивилизация 1.9|C1.9|Civilization|C1||||||||||C1.9:1|Planet||LPlanet|||||||| -Цивилизация типа 2|C2|Civilization|||||||||||C2:1||||||||||| -Цивилизация 2.0|C2.0|Civilization|C2||||||||||C2.0:1||||||||||| -Цивилизация 2.1|C2.1|Civilization|C2||||||||||C2.1:1||||||||||| -Цивилизация 2.2|C2.2|Civilization|C2||||||||||C2.2:1||||||||||| -Цивилизация 2.3|C2.3|Civilization|C2||||||||||C2.3:1||||||||||| -Цивилизация 2.4|C2.4|Civilization|C2||||||||||C2.4:1||||||||||| -Цивилизация 2.5|C2.5|Civilization|C2||||||||||C2.5:1||||||||||| -Цивилизация 2.6|C2.6|Civilization|C2||||||||||C2.6:1||||||||||| -Цивилизация 2.7|C2.7|Civilization|C2||||||||||C2.7:1||||||||||| -Цивилизация 2.8|C2.8|Civilization|C2||||||||||C2.8:1||||||||||| -Цивилизация 2.9|C2.9|Civilization|C2||||||||||C2.9:1||||||||||| -Цивилизация типа 3|C3|Civilization|||||||||||C3:1||||||||||| -Цивилизация 3.0|C3.0|Civilization|C3||||||||||C3.0:1||||||||||| -Цивилизация 3.1|C3.1|Civilization|C3||||||||||C3.1:1||||||||||| -Цивилизация 3.2|C3.2|Civilization|C3||||||||||C3.2:1||||||||||| -Цивилизация 3.3|C3.3|Civilization|C3||||||||||C3.3:1||||||||||| -Цивилизация 3.4|C3.4|Civilization|C3||||||||||C3.4:1||||||||||| -Цивилизация 3.5|C3.5|Civilization|C3||||||||||C3.5:1||||||||||| -Цивилизация 3.6|C3.6|Civilization|C3||||||||||C3.6:1||||||||||| -Цивилизация 3.7|C3.7|Civilization|C3||||||||||C3.7:1||||||||||| -Цивилизация 3.8|C3.8|Civilization|C3||||||||||C3.8:1||||||||||| -Цивилизация 3.9|C3.9|Civilization|C3||||||||||C3.9:1||||||||||| -Цивилизация типа 4|C4|Civilization|||||||||||C4:1||||||||||| -Цивилизация 4.0|C4.0|Civilization|C4||||||||||C4.0:1||||||||||| -Цивилизация 4.1|C4.1|Civilization|C4||||||||||C4.1:1||||||||||| -Цивилизация 4.2|C4.2|Civilization|C4||||||||||C4.2:1||||||||||| -Цивилизация 4.3|C4.3|Civilization|C4||||||||||C4.3:1||||||||||| -Цивилизация 4.4|C4.4|Civilization|C4||||||||||C4.4:1||||||||||| -Трансцендентная цивилизация|Ct|Civilization|||||||||||||||||||||| diff --git a/Autoload/owniverse_entitites.csv b/Autoload/owniverse_entitites.csv new file mode 100644 index 0000000..a3a0a9f --- /dev/null +++ b/Autoload/owniverse_entitites.csv @@ -0,0 +1,153 @@ +id|is_visible|unlock|cost|bind|mass|space|lifespan|auto|gamma|blast|life_product|voids|output|destroy_level|degradation|planets|count_as|group_as|event_group|space_bonus|civ_bonus|claim +S|1|start|||||||||||||||||S||| +H|1|start|||||||||||||||||H||| +He|1|He:1|||||||||||||||||||| +Met|1|Met:1|||||||||||||||||||| +BD|1|BD:1|||||||||||||||||||| +HBD|0||H:0.1||0.1||5000000000||||S:0.5||CBD:1|1|mass:0.1&H:0&HE:0MET:0||BD||||| +RD|1|H:1|H:1||1|1|40000000000||||S:40||TWD:1&H:0.13&He:0.05&Met:0.01|1|mass:0.8&H:0.13&HE:0.05MET:0.01|HP:1:0.01&RP:1:0.21&GG:2:0.08&AB:3:0.4||Star|DwStar||| +OD|1|RD:1|H:8||8|1|18000000000||||S:36||SRG:1|1||HP:1:0.03&RP:2:0.34&GG:3:0.13&AB:3:0.4||Star|DwStar||| +YD|1|OD:1|H:10||10|1|9000000000||||S:27||NRG:1|1||HP:2:0.1&RP:3:0.55&GG:4:0.21&AB:3:0.4||Star|DwStar||| +WYD|1|YD:1|H:16||16|1|1800000000||||S:18||MRG:1|1||HP:3:0.3&RP:5:0.89&GG:5:0.34&AB:3:0.4||Star|DwStar||| +WS|1|H:15|H:50||50|1|450000000||||S:9||LRG:1|2||||Star|GiStar||| +BG|1|H:30&WS:1|H:100||100|1|90000000||||S:9||HRG:1|2||||Star|GiStar||| +SG|1|H:100&BG:1|H:300||300|1|9000000||||S:9||RSG:1|2||||Star|GiStar||| +HG|1|H:300&SG:1|H:1000||1000|1|900000||||S:9||RHG:1|2||||Star|GiStar||| +RG|1|RG:1|||||||||||||||||||| +SRG|0||||8||2000000000||||S:80||SWD:1&H:2.32&He:0.64&Met:0.08&S:12.4|1|mass:4.8&H:2.32&HE:0.64MET:0.08||RG|Star|||| +NRG|0||||10||1000000000||||S:120.||NWD:1&H:3.2&He:1.3&Met:0.2&S:14.3|1|mass:5&H:3.2&HE:1.3MET:0.2||RG|Star|||| +MRG|0||||16||200000000||||S:200||LWD:1&H:4.96&He:3.36&Met:0.48&S:20.2|1|mass:6.4&H:4.96&HE:3.36MET:0.48||RG|Star|||| +LRG|0||||50||50000000||||S:300||DSN^SGRB%0.1|2|||RG|Star|||| +HRG|0||||100||10000000||||S:400.||SN^GRB%1|2|||RG|Star|||| +RSG|0||||300||1000000||||S:500||BSN^LGRB%3|2|||RG|Star|||| +RHG|0||||1000||100000||||S:600||HN^HGRB%10|2|||RG|Star|||| +DSN|0||||||1|||2|S:59.1||SNS:1&H:6.5&He:13.5&Met:11&blast:2|2|mass:15&H:6.5&HE:13.5MET:11||||SNGRBB||| +SN|0||||||1|||9|S:99.1||LNS:1&H:8&He:50&Met:11&blast:9|2|mass:18&H:8&HE:50MET:11||||SNGRBB||| +BSN|0||||||1||.|305|S:309.1||MGT:1&H:15&He:186&Met:15&blast:305|2|mass:21&H:15&HE:186MET:15||||SNGRBB||| +HN|0||||||1|||9990|S:939.1||BH40:1&H:30&He:560&Met:30&blast:9990|2|mass:40&H:30&HE:560MET:30||||SNGRBB||| +SGRB|0||||||1||0.001|31|S:149.1||BH25:1&H:0.5&He:10&Met:4&blast:31|2|mass:25&H:0.5&HE:10MET:4||||SNGRBB||| +GRB|0||||||1||0.01|136|S:239.1||BH30:1&H:19&He:12&Met:5&blast:136|2|mass:30&H:19&HE:12MET:5||||SNGRBB||| +LGRB|0||||||1||0.03|3446|S:669.1||BH40:1&H:68&He:18&Met:9&blast:3446|2|mass:40&H:68&HE:18MET:9||||SNGRBB||| +HGRB|0||||||1||0.1|97342|S:1939.1||BH60:1&H:0&He:40&Met:10&blast:97342|2|mass:60&H:0&HE:40MET:10||||SNGRBB||| +CBD|0||||0.1||||||||||||BD||||| +WD|1|WD:1|||||||||||||||||||| +TWD|0||||0.8||||||||||||WD|Star|Degen||| +SWD|0||||4.8||||||||||||WD|Star|Degen||| +NWD|0||||5||||||||||||WD|Star|Degen||| +LWD|0||||6.4||||||||||||WD|Star|Degen||| +NS|1|NS:1|||||||||||||||||||| +SNS|0||||15||||||||||||NS|Star|Degen||| +LNS|0||||18||||||||||||NS|Star|Degen||| +MGT|1|MGT:1|||21|||||||||||||Star|Degen||| +BH|1|BH:1|||||||||||||||||||| +BH25|0||||25||||||||||||BH|BH|BH||| +BH30|0||||30||||||||||||BH|BH|BH||| +BH40|0||||40||||||||||||BH|BH|BH||| +BH60|0||||60||||||||||||BH|BH|BH||| +SMBH|1|BH:1|||||||||||||||||SMBH||| +N|1|S:1|H:1||1|10|10000000||||H:10||H:1&S:10|||||CL|CL||| +G|1|N:1|H:10&N:1||11|10|30000000||||H:150||H:11&S:20|||||CL|CL||| +STN|1|G:1|H:200&G:1||211|300|30000000|0.5|||H:3000||H:211&S:320|||||CL|CL||| +MC|1|G:1&S:1300|H:2000&G:1||2011|4000|300000000||||H:90000.||H:2011&S:4020|||||CL|CL||| +ASTN|1|MC:1&S:60000|H:200000&MC:1||202011|200000|100000000|0.65|||H:2000000||H:202011&S:204020|||||CL|CL||| +SCD|1|Star:300||Star:1000|||10000000|||||||||||SC|SC|0.1|4|C2.3 +SCS|1|SCD:1&Star:2000||Star:10000&BH:10|||1000000000|||||||||||SC|SC|0.2|44350|C2.4 +SCM|1|SCS:1&Star:20000||Star:100000&BH:100|||3000000000|||||||||||SC|SC|0.3|44289|C2.5 +SCL|1|SCM:1&Star:200000||Star:1000000&BH:1000|||10000000000|||||||||||SC|SC|0.5|44230|C2.6 +SCG|1|SCL:1&Star:2000000||Star:10000000&BH:10000|||30000000000|||||||||||SC|SC|0.8|3|C2.7 +GED|1|SMBH:1&SC:1|SMBH:10000|Star:1000000000&BH:1000000&SC:100|||12000000000|||||||||||GAL|GALE|1|44440|C2.9 +GES|1|GED:1&Star:2000000000|SMBH:100000|Star:10000000000&BH:10000000&SC:1000|||13000000000|||||||||||GAL|GALE|1.5|44409|C3.0 +GEM|1|GES:1&Star:20000000000|SMBH:1000000|Star:100000000000&BH:100000000&SC:10000|||15000000000|||||||||||GAL|GALE|2|44378|C3.1 +GEL|1|GEM:1&Star:200000000000|SMBH:10000000|Star:1000000000000&BH:1000000000&SC:100000|||17000000000|||||||||||GAL|GALE|3|44348|C3.2 +GEG|1|GEL:1&Star:2000000000000|SMBH:100000000|Star:10000000000000&BH:10000000000&SC:1000000|||20000000000|||||||||||GAL|GALE|4.5|44317|C3.3 +GSD|1|GED:1|STN:10000&ASTN:10|GED:1||-5240200|2000000000|0.8|||H:2400000000||H:4112110|||||GAL|GALS||44318|C2.9 +GSS|1|GES:1|STN:100000&ASTN:100|GES:1||-52402000|3000000000|0.8|||H:36000000000||H:41121100|||||GAL|GALS||44257|C3.0 +GSM|1|GEM:1|STN:1000000&ASTN:1000|GEM:1||-524020000|4000000000|0.8|||H:480000000000||H:411211000|||||GAL|GALS||44229|C3.1 +GSL|1|GEL:1|STN:10000000&ASTN:10000|GEL:1||-5240200000|6000000000|0.8|||H:7200000000000||H:4112110000|||||GAL|GALS||44198|C3.2 +GSG|1|GEG:1|STN:100000000&ASTN:100000|GEG:1||-52402000000|9000000000|0.8|||H:108000000000000||H:41121100000|||||GAL|GALS||2|C3.3 +LGG|1|GAL:20||GAL:50|||10000000000|||||||||||LS|LS||44317|C3.4 +LSC|1|LGG:1&GAL:100||LGG:200|||20000000000|||||||||||LS|LS||44287|C3.6 +LGF|1|LSC:1&LGG:400||LSC:100|||30000000000|||||5||||||LS|LS||44256|C3.8 +LGW|1|LGF:1&LSC:200||LGF:1000|||60000000000|||||10000||||||LS|LS||44228|C4.1 +LUB|1|LGW:1&LGF:2000||LGW:1000|||100000000000|||||1000000000||||||LS|LS||44197|C4.4 +GG|1|GG:1||||||||||||||||Planet|BPlanet||| +AB|1|AB:1||||||||||||||||Planet|BPlanet||| +RP|1|RP:1||||||||||||||||Planet|BPlanet||| +HP|1|HP:1||||||||||||||||Planet|LPlanet||| +LP|1|LP:1||||||||||||||||Planet|LPlanet||| +EON1|1|EON1:1|||||||||||||||LP|Planet|LPlanet||| +EON2|1|EON2:1|||||||||||||||LP|Planet|LPlanet||| +EON3|1|EON3:1|||||||||||||||LP|Planet|LPlanet||| +EON4|1|EON4:1|||||||||||||||LP|Planet|LPlanet||| +EON5|1|EON5:1|||||||||||||||LP|Planet|LPlanet||| +C0|1|C0:1||||||||||||||||Planet|LPlanet||| +C0.0|1|C0.0:1|||||||||||||||C0|Planet|LPlanet||| +C0.1|1|C0.1:1|||||||||||||||C0|Planet|LPlanet||| +C0.2|1|C0.2:1|||||||||||||||C0|Planet|LPlanet||| +C0.3|1|C0.3:1|||||||||||||||C0|Planet|LPlanet||| +C0.4|1|C0.4:1|||||||||||||||C0|Planet|LPlanet||| +C0.5|1|C0.5:1|||||||||||||||C0|Planet|LPlanet||| +C0.6|1|C0.6:1|||||||||||||||C0|Planet|LPlanet||| +C0.7|1|C0.7:1|||||||||||||||C0|Planet|LPlanet||| +C0.8|1|C0.8:1|||||||||||||||C0|Planet|LPlanet||| +C0.9|1|C0.9:1|||||||||||||||C0|Planet|LPlanet||| +C1|1|C1:1||||||||||||||||Planet|LPlanet||| +C1.0|1|C1.0:1|||||||||||||||C1|Planet|LPlanet||| +C1.1|1|C1.1:1|||||||||||||||C1|Planet|LPlanet||| +C1.2|1|C1.2:1|||||||||||||||C1|Planet|LPlanet||| +C1.3|1|C1.3:1|||||||||||||||C1|Planet|LPlanet||| +C1.4|1|C1.4:1|||||||||||||||C1|Planet|LPlanet||| +C1.5|1|C1.5:1|||||||||||||||C1|Planet|LPlanet||| +C1.6|1|C1.6:1|||||||||||||||C1|Planet|LPlanet||| +C1.7|1|C1.7:1|||||||||||||||C1|Planet|LPlanet||| +C1.8|1|C1.8:1|||||||||||||||C1|Planet|LPlanet||| +C1.9|1|C1.9:1|||||||||||||||C1|Planet|LPlanet||| +C2|1|C2:1|||||||||||||||||||| +C2.0|1|C2.0:1|||||||||||||||C2||||| +C2.1|1|C2.1:1|||||||||||||||C2||||| +C2.2|1|C2.2:1|||||||||||||||C2||||| +C2.3|1|C2.3:1|||||||||||||||C2||||| +C2.4|1|C2.4:1|||||||||||||||C2||||| +C2.5|1|C2.5:1|||||||||||||||C2||||| +C2.6|1|C2.6:1|||||||||||||||C2||||| +C2.7|1|C2.7:1|||||||||||||||C2||||| +C2.8|1|C2.8:1|||||||||||||||C2||||| +C2.9|1|C2.9:1|||||||||||||||C2||||| +C3|1|C3:1|||||||||||||||||||| +C3.0|1|C3.0:1|||||||||||||||C3||||| +C3.1|1|C3.1:1|||||||||||||||C3||||| +C3.2|1|C3.2:1|||||||||||||||C3||||| +C3.3|1|C3.3:1|||||||||||||||C3||||| +C3.4|1|C3.4:1|||||||||||||||C3||||| +C3.5|1|C3.5:1|||||||||||||||C3||||| +C3.6|1|C3.6:1|||||||||||||||C3||||| +C3.7|1|C3.7:1|||||||||||||||C3||||| +C3.8|1|C3.8:1|||||||||||||||C3||||| +C3.9|1|C3.9:1|||||||||||||||C3||||| +C4|1|C4:1|||||||||||||||||||| +C4.0|1|C4.0:1|||||||||||||||C4||||| +C4.1|1|C4.1:1|||||||||||||||C4||||| +C4.2|1|C4.2:1|||||||||||||||C4||||| +C4.3|1|C4.3:1|||||||||||||||C4||||| +C4.4|1|C4.4:1|||||||||||||||C4||||| +Ct|0||||||||||||||||||||| +FHYD|1|FHYD:1|||||||||||||||||||| +FTEM|1|FTEM:1|||||||||||||||||||| +FITE|1|FITE:1|||||||||||||||||||| +FSIN|1|FSIN:1|||||||||||||||||||| +FPRI|1|FPRI:1|||||||||||||||||||| +FSTE|1|FSTE:1|||||||||||||||||||| +FREN|1|FREN:1|||||||||||||||||||| +FINF|1|FINF:1|||||||||||||||||||| +FFRO|1|FFRO:1|||||||||||||||||||| +FDES|1|FDES:1|||||||||||||||||||| +FROC|1|FROC:1|||||||||||||||||||| +FPAN|1|FPAN:1|||||||||||||||||||| +FGAI|1|FGAI:1|||||||||||||||||||| +FDAR|1|FDAR:1|||||||||||||||||||| +FEDE|1|FEDE:1|||||||||||||||||||| +FPAC|1|FPAC:1|||||||||||||||||||| +FENR|1|FENR:1|||||||||||||||||||| +FMOR|1|FMOR:1|||||||||||||||||||| +FDIS|1|FDIS:1|||||||||||||||||||| +FREP|1|FREP:1|||||||||||||||||||| diff --git a/Autoload/entities.csv b/Autoload/owniverse_items.csv similarity index 100% rename from Autoload/entities.csv rename to Autoload/owniverse_items.csv diff --git a/Stage/stage.gd b/Stage/stage.gd index fdafa17..ed9744e 100644 --- a/Stage/stage.gd +++ b/Stage/stage.gd @@ -26,7 +26,7 @@ const SWIPE_DELAY = 2000 # msec $StageRows/PageScroller/HBoxContainer/LifePage/Planets/Civ4 ] -@onready var g_entity_descriptions: Array = [ +@onready var g_item_descriptions: Array = [ $StageRows/PageScroller/HBoxContainer/ForcePage/Description, $StageRows/PageScroller/HBoxContainer/ResourcePage/Description, $StageRows/PageScroller/HBoxContainer/StarPage/Description, @@ -65,7 +65,7 @@ var g_counters: Dictionary[String, Counter] = { "swipe": Counter.new(), } -var ActiveEntities: Dictionary = {} +var ActiveItems: Dictionary = {} var owniverse = Owniverse.new() @@ -77,65 +77,66 @@ func _on_indicator_pressed(indicator_name: String, page: int = 0): _set_description(indicator_name, page) -func entity_activated(entity: OwniverseEntity) -> void: - _control_page(entity) - _set_entity_description(entity) +func item_selected(item: OwniverseItem) -> void: + _control_page(item) + _set_item_description(item) -func _set_entity_description(entity: OwniverseEntity) -> void: +func _set_item_description(item: OwniverseItem) -> void: var description: String = "[b]" \ - + Global.get_localized_item_description(entity.entity_name, "label") \ + + Global.get_localized_item_description(item.item_name, "label") \ +"[/b]" \ +"\n" \ - + Global.get_localized_item_description(entity.entity_name, "description") - var desc_page = clamp(entity.entity_page, 0, 4) - g_entity_descriptions[desc_page].text = description + + Global.get_localized_item_description(item.item_name, "description") + var desc_page = clamp(item.item_page, 0, 4) + g_item_descriptions[desc_page].text = description func _set_description(item_name: String, page: int) -> void: var description = Global.get_description(item_name + ".Name") description += "\n" description += Global.get_description(item_name + ".Description") - g_entity_descriptions[page].text = description + g_item_descriptions[page].text = description -func _control_page(entity: OwniverseEntity) -> void: - if !ActiveEntities.has(entity.entity_page): - ActiveEntities[entity.entity_page] = null +func _control_page(item: OwniverseItem) -> void: + if !ActiveItems.has(item.item_page): + ActiveItems[item.item_page] = null - var current_entity: OwniverseEntity = ActiveEntities[entity.entity_page] - if current_entity == entity: + var current_item: OwniverseItem = ActiveItems[item.item_page] + if current_item == item: return - ActiveEntities[entity.entity_page] = entity + ActiveItems[item.item_page] = item - if current_entity != null and current_entity.entity_page == entity.entity_page: - current_entity.set_selection(false) + if current_item != null and current_item.item_page == item.item_page: + current_item.set_selection(false) - entity.set_selection(true) + item.set_selection(true) # subpages - if entity.sub_page != -1: - item_pages[entity.sub_page].visible = true + if item.item_sub_page != -1: + item_pages[item.item_sub_page].visible = true - if current_entity == null \ - or current_entity.sub_page == -1 \ - or current_entity.sub_page == entity.sub_page: + if current_item == null \ + or current_item.item_sub_page == -1 \ + or current_item.item_sub_page == item.item_sub_page: return - item_pages[current_entity.sub_page].visible = false + item_pages[current_item.item_sub_page].visible = false -func _init_entities() -> bool: - for e_id in Global.Entities: - var entity_properties: Dictionary = Global.Entities[e_id] - var entity: OwniverseEntity = ITEM_BUTTON.instantiate() - if !entity_properties.has("page"): - printerr("Entity `", e_id, "` has no `page` key.") +func _init_items() -> bool: + + for item_id in Global.OwniverseItems: + var item_props: Dictionary = Global.OwniverseItems[item_id] + var item: OwniverseItem = ITEM_BUTTON.instantiate() + if !item_props.has("page"): + printerr("Item `", item_id, "` has no `page` key.") return false - var page: int = int(entity_properties.page) - item_pages[page].add_child(entity) - entity.init_button(entity_properties) - entity.entity_activated.connect(entity_activated) + var page: int = int(item_props.page) + item_pages[page].add_child(item) + item.init_button(item_props) + item.item_activated.connect(item_selected) return false @@ -196,7 +197,8 @@ func _input(event: InputEvent) -> void: func _ready() -> void: - _init_entities() + owniverse.init_enitities() + _init_items() func _process(delta: float) -> void: diff --git a/UI/ItemButton/item_button.gd b/UI/ItemButton/item_button.gd index 12458a8..e9fc1e5 100644 --- a/UI/ItemButton/item_button.gd +++ b/UI/ItemButton/item_button.gd @@ -1,7 +1,7 @@ extends Control -class_name OwniverseEntity +class_name OwniverseItem -signal entity_activated(entity) +signal item_activated(item) const ENTITY_WIDTH = 216 const ENTITY_HEIGHT = 256 @@ -11,10 +11,10 @@ const ENTITY_HEIGHT = 256 @onready var description: Label = $Description @onready var selection: TextureRect = $Selection -@export var entity_name: String = "" -@export var entity_id: String = "" -@export var entity_page: int = -1 -@export var sub_page: int = -1 +var item_id: String = "" +var item_name: String = "" +var item_page: int = -1 +var item_sub_page: int = -1 func set_selection(flag: bool) -> void: @@ -25,16 +25,14 @@ func init_button(properties: Dictionary): var image_path = "res://" + properties.image + properties.name + ".png" texture_button.texture_normal = load(image_path) position = Vector2i(int(properties.col) * ENTITY_WIDTH, int(properties.row) * ENTITY_HEIGHT) - entity_id = properties.id - entity_name = properties.name - entity_page = int(properties.page) - sub_page = int(properties.sub_page) + item_id = properties.id + item_name = properties.name + item_page = int(properties.page) + item_sub_page = int(properties.sub_page) name = properties.id set_selection(false) - #print(properties) func _on_button_up() -> void: set_selection(true) - entity_activated.emit(self) - #Texture_button.texture_normal = load("res://UI/0-Forces/Inflatin.png") + item_activated.emit(self) diff --git a/export_presets.cfg b/export_presets.cfg index b0fed85..f56a813 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -110,7 +110,7 @@ architectures/armeabi-v7a=false architectures/arm64-v8a=true architectures/x86=false architectures/x86_64=false -version/code=124 +version/code=123 version/name="" package/unique_name="com.KIDGameProduction.Owniverse" package/name="Owniverse" diff --git a/project.godot b/project.godot index 1a42ee9..044bae7 100644 --- a/project.godot +++ b/project.godot @@ -15,7 +15,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true [application] config/name="Owniverse" -config/version="0.6.8" +config/version="0.6.7" run/main_scene="uid://bv384dpmvjv8o" config/features=PackedStringArray("4.6", "Mobile") config/icon="res://icon.svg" diff --git a/world/entity.gd b/world/entity.gd new file mode 100644 index 0000000..ab4cfdf --- /dev/null +++ b/world/entity.gd @@ -0,0 +1,132 @@ +extends Node +class_name OwniverseEntity + +var id: String +var is_visible: bool = false +var unlock: Dictionary = {} +var cost: Dictionary = {} +var bind: Dictionary = {} +var mass: float +var space: int +var lifespan: int +var auto: float +var gamma: float +var blast: int +var life_product: Dictionary = {} +var voids: int +var output_or: Dictionary = {} +var output_and: Dictionary = {} +var destroy_level: int +var degradation: Dictionary = {} +#deg_mass: "", +#deg_h: "", +#He": "", +#Met": "", +var planets: Dictionary = {} +#var habitable: "", +#var rocky: "", +#var gas giant: "", +#var asteroids: "", +var count_as: String +var group_as: String +var event_group: String +var space_bonus: float +var civ_bonus: float +var claim: String + +var SCD: Dictionary = { + "id": "SCD", + "is_visible": "1", + "unlock": "Star:300", + "cost": "", + "bind": "Star:1000", + "mass": "", + "space": "", + "lifespan": "10000000", + "auto": "", "gamma": "", + "blast": "", + "life_product": "", + "voids": "", + "output": "", + "destroy_level": "", + "deg_mass": "", + "H": "", + "He": "", + "Met": "", + "planets": "", + "habitable": "", + "rocky": "", + "gas giant": "", + "asteroids": "", + "count_as": "", + "group_as": "SC", + "event_group": "SC", + "space_bonus": "0.1", + "civ_bonus": "4", + "claim": "C2.3" +} + + +func init_entity(values: Dictionary) -> bool: + id = values.id + is_visible = values.is_visible == "1" + unlock = _parse_and_string(values.unlock) + cost = _parse_and_string(values.cost) + bind = _parse_and_string(values.bind) + mass = float(values.mass) + space = int(values.space) + lifespan = int(values.lifespan) + auto = float(values.auto) + gamma = float(values.gamma) + blast = int(values.blast) + life_product = _parse_and_string(values.life_product) + voids = int(values.voids) + output_or = _parse_or_string(values.output) + output_and = _parse_and_string(values.output) + destroy_level = int(values.destroy_level) + degradation = _parse_and_string(values.degradation) + planets = _parse_planet_string(values.planets) + count_as = values.count_as + group_as = values.group_as + event_group = values.event_group + space_bonus = float(values.space_bonus) + civ_bonus = float(values.civ_bonus) + claim = values.claim + + return true + + +func _parse_or_string(source_line: String) -> Dictionary: + var result = {} + if source_line.contains("^"): + var first_split = source_line.split("^") + var second_split = first_split[1].split("%") + var probability = float(second_split[1]) + result["chance"] = probability + result["positive"] = second_split[0] + result["negative"] = first_split[0] + + return result + + +func _parse_and_string(source_line: String) -> Dictionary: + var result = {} + if source_line.contains("&"): + var first_split = source_line.split("&") + for elem in first_split: + var second_split = elem.split(":") + result[second_split[0]] = float(second_split[1]) + + return result + +func _parse_planet_string(source_line: String) -> Dictionary: + var result = {} + if source_line.contains("&"): + var first_split = source_line.split("&") + for elem in first_split: + var second_split = elem.split(":") + result[second_split[0]] = {} + result[second_split[0]]["amount"] = int(second_split[1]) + result[second_split[0]]["chance"] = int(second_split[2]) + + return result diff --git a/world/entity.gd.uid b/world/entity.gd.uid new file mode 100644 index 0000000..c4e81c8 --- /dev/null +++ b/world/entity.gd.uid @@ -0,0 +1 @@ +uid://tvj1grut2p4x diff --git a/world/owniverse.gd b/world/owniverse.gd index 090eea1..d782d46 100644 --- a/world/owniverse.gd +++ b/world/owniverse.gd @@ -4,7 +4,15 @@ class_name Owniverse var g_datetime: float = 0 var g_speed: int = 1 var g_speed_in_years = 1 - + +var g_entities: Dictionary[String, OwniverseEntity] = {} + +func init_enitities() -> void: + for entity_id in Global.OwniverseEntities: + var entity = OwniverseEntity.new() + entity.init_entity(Global.OwniverseEntities[entity_id]) + g_entities[entity_id] = entity + func add_time_delta(delta) -> float: var year_delta:float = delta * g_speed_in_years