10 Commits

Author SHA1 Message Date
Kirill 5820bbc7b2 Refactor save/load functionality; improve error messages and add save data timer 2026-07-10 20:36:44 +03:00
Kirill 45cfc8c8ee Save load functionality.
Fix export path in export_presets.cfg and refactor variable names for clarity in owniverse.gd
2026-07-05 12:23:33 +03:00
Kirill b41ccdb659 page fix 2026-06-24 23:25:55 +03:00
Kirill 2d2979a1cf Refactor formatting functions and improve item production logic; update UI components for better layout and usability 2026-06-21 17:27:31 +03:00
Kirill 934d890887 Add action buttons and related functionality; refactor production logic and update entity definitions 2026-06-03 23:26:44 +03:00
Kirill c21048add3 Refactor code structure for improved readability and maintainability 2026-05-31 10:57:44 +03:00
Kirill edb5ec9dfa Refactor code structure for improved readability and maintainability 2026-05-26 23:21:44 +03:00
Kirill 3bab036cc4 Add .kilo/agent-manager.json to .gitignore for MacOS specific ignores 2026-05-17 12:24:52 +03:00
Kirill df563bf1b1 Refactor code structure for improved readability and maintainability; removed redundant code blocks and optimized existing functions. 2026-05-05 23:49:12 +03:00
Kirill fc86261a9d Add new entity and item definitions, refactor related code
- Introduced new CSV files for entities and items, defining various properties and characteristics.
- Refactored the stage.gd script to handle item selection and descriptions instead of entities.
- Updated item button script to reflect changes in item properties and signals.
- Created a new entity.gd script to define the OwniverseEntity class with initialization and parsing methods.
- Modified owniverse.gd to initialize entities from the new definitions.
- Adjusted versioning in export presets and project files to reflect recent changes.
2026-04-08 00:23:22 +03:00
70 changed files with 1234 additions and 867 deletions
+5
View File
@@ -0,0 +1,5 @@
.godot/
export/
*.tscn
*.import
addons/
+13
View File
@@ -0,0 +1,13 @@
---
name: Godot 4.4 Core Rules
priority: high
---
Ты — senior Godot 4.4 GDScript разработчик.
- Всегда используй Godot 4.4+ API.
- Пиши строго типизированный код (`var health: int = 100`, `: Array[Node]` и т.д.).
- Предпочитай Signals вместо проверки в _process.
- Используй @export, @export_range, @export_enum, @onready.
- Composition over deep inheritance.
- Менеджеры и автолоады выноси в отдельные singleton'ы.
+9
View File
@@ -0,0 +1,9 @@
---
name: Project Architecture
---
В этом проекте используется следующая архитектура:
- StateMachine на основе Node + signals
- Inventory использует ItemStack и SignalBus
- Все данные сохраняются через SaveManager (autoload)
- UI строится через Control + custom themes
+2
View File
@@ -6,3 +6,5 @@
# MacOS specific ignores
.DS_Store
.kilo/agent-manager.json
.kilo/kilo.jsonc
+34 -22
View File
@@ -10,47 +10,50 @@ var Settings: Dictionary = {
# TODO getter setter for locale
var Owniverse: Dictionary = {
"datetime": {},
"sector": "",
"location": "",
"charsheet": {},
"fleet": {},
"inventory": {},
}
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:
description.replace("value"+str(value), str(item))
for item in items:
description.replace("value" + str(value), str(item))
return description
func format_number(value: float, digits: int = 0) -> String:
if value == 0: return ""
if value < 10_000:
return "%.*f" % [digits, value]
var exp_value = int(floor(log(abs(value)) / log(10.0)))
var mantissa = value / pow(10.0, exp_value)
return "%.*f" % [digits, mantissa] + "E%+d" % exp_value
func _ready() -> void:
Entities = _read_from_csv("res://Autoload/entities.csv")
OwniverseEntities = _read_from_csv("res://data/owniverse_entitites.txt")
OwniverseItems = _read_from_csv("res://data/owniverse_items.txt")
Locales["en"] = _read_from_csv("res://Autoload/locale.en.csv")
Locales["ru"] = _read_from_csv("res://Autoload/locale.ru.csv")
Locales["en"] = _read_from_csv("res://data/locale.en.txt")
Locales["ru"] = _read_from_csv("res://data/locale.ru.txt")
Templates["en"] = _read_from_csv("res://data/templates.en.txt")
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):
@@ -72,7 +75,7 @@ func _read_from_csv(file_path: String) -> Dictionary:
while not file.eof_reached():
var raw_row = file.get_csv_line("|")
if raw_row.is_empty(): # пропускаем пустые строки
if raw_row.is_empty(): # пропускаем пустые строки
continue
var trimmed_row: PackedStringArray = []
@@ -95,6 +98,15 @@ func _read_from_csv(file_path: String) -> Dictionary:
return dict_data
func _read_folder_list(folder_name: String) -> void:
var dir := DirAccess.open(folder_name)
if dir == null: printerr("Could not open folder: ", folder_name); return
dir.list_dir_begin()
for file: String in dir.get_files():
print("", file)
func _print_dict(dict_to_print: Dictionary):
for d in dict_to_print:
print(d, "", dict_to_print[d])
-132
View File
@@ -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||||||||||||||||||||||
1 Пространство S Resource 1 S
2 Водород H Resource 1 H
3 Гелий He Resource
4 Металлы Met Resource
5 Бурый карлик BD Planet BD:1
6 Горячий бурый карлик HBD Star phase 1 BD 0.1 5.00E+09 H:0.1 S:0.5 CBD:1 1
7 Красный карлик 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
8 Оранжевый карлик 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
9 Жёлтый карлик 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
10 Бело-жёлтый карлик 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
11 Жёлтый гигант YG Star phase 1 50 4.50E+08 H:50 1 S:9 LRG:1 H:15 Star GiStar 2
12 Голубой гигант BG Star phase 1 100 9.00E+07 H:100 1 S:9 HRG:1 H:30&YG:1 Star GiStar 2
13 Сверхгигант SG Star phase 1 300 9.00E+06 H:300 1 S:9 RSG:1 H:100&BG:1 Star GiStar 2
14 Гипергигант HG Star phase 1 1000 9.00E+05 H:1000 1 S:9 RHG:1 H:300&SG:1 Star GiStar 2
15 Красный гигант RG Star phase 2 RG:1
16 Малый красный гигант 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
17 Обычный Красный гигант 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
18 Средний красный гигант 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
19 Большой красный гигант LRG Star phase 2 RG 50 5.00E+07 S:300 DSN^SGRB%.1 Star 2
20 Огромный красный гигант HRG Star phase 2 RG 100 1.00E+07 S:400. SN^GRB%1 Star 2
21 Красный сверхгигант RSG Star phase 2 RG 300 1.00E+06 S:500 BSN^LGRB%3 Star 2
22 Красный гипергигант RHG Star phase 2 RG 1000 1.00E+05 S:600 HN^HGRB%10 Star 2
23 Тусклая сверхновая DSN Star phase 3 1 S:59.1 SNS:1&H:6.5&He:13.5&Met:11&blast:2 SNGRBB 2
24 Сверхновая SN Star phase 3 1 S:99.1 LNS:1&H:8&He:50&Met:11&blast:9 SNGRBB 2
25 Яркая сверхновая BSN Star phase 3 1 S:309.1 MGT:1&H:15&He:186&Met:15&blast:305 SNGRBB 2
26 Гиперновая HN Star phase 3 1 S:939.1 BH40:1&H:30&He:560&Met:30&blast:9990 SNGRBB 2
27 Малый гамма-всплеск SGRB Star phase 3 1 S:149.1 BH25:1&H:0.5&He:10&Met:4&blast:31 SNGRBB 2
28 Гамма-всплеск GRB Star phase 3 1 S:239.1 BH30:1&H:19&He:12&Met:5&blast:136 SNGRBB 2
29 Большой гамма-всплеск LGRB Star phase 3 1 S:669.1 BH40:1&H:68&He:18&Met:9&blast:3446 SNGRBB 2
30 Гипер гамма-всплеск HGRB Star phase 3 1 S:1939.1 BH60:1&H:0&He:40&Met:10&blast:97342 SNGRBB 2
31 Холодный бурый карлик CBD Star phase 4 BD 0.1
32 Белый карлик WD Star phase 4 WD:1
33 Крошечный белый карлик TWD Star phase 4 WD 0.8 Star Degen
34 Малый белый карлик SWD Star phase 4 WD 4.8 Star Degen
35 Обычный белый карлик NWD Star phase 4 WD 5 Star Degen
36 Большой белый карлик LWD Star phase 4 WD 6.4 Star Degen
37 Нейтронная звезда NS Star phase 4 NS:1
38 Малая нейтронная звезда SNS Star phase 4 NS 15 Star Degen
39 Большая нейтронная звезда LNS Star phase 4 NS 18 Star Degen
40 Магнетар MGT Star phase 4 21 MGT:1 Star Degen
41 Чёрная дыра BH Star phase 4 BH:1
42 Чёрная дыра 25 BH25 Star phase 4 BH 25 BH BH
43 Чёрная дыра 30 BH30 Star phase 4 BH 30 BH BH
44 Чёрная дыра 40 BH40 Star phase 4 BH 40 BH BH
45 Чёрная дыра 60 BH60 Star phase 4 BH 60 BH BH
46 СМЧД SMBH Star phase 4 BH:1 SMBH
47 Туманность N Cloud 1 1.00E+07 H:1 10 H:10 H:1&S:10 S:1 CL CL
48 Глобула G Cloud 11 3.00E+07 H:10&N:1 10 H:150 H:11&S:20 N:1 CL CL
49 Звёздная колыбель STN Cloud 211 3.00E+07 H:200&G:1 300 H:3000 0.50 H:211&S:320 G:1 CL CL
50 Молекулярное облако MC Cloud 2011 3.00E+08 H:2000&G:1 4000 H:90000. H:2011&S:4020 G:1&S:1300 CL CL
51 Активная звёздная колыбель 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
52 Рассеянное звёздное скопление SCD Cluster 1.00E+07 Star:1000 Star:300 SC SC 0.10 4 C2.3
53 Малое звёздное скопление SCS Cluster 1.00E+09 Star:10000&BH:10 SCD:1&Star:2000 SC SC 0.20 3.6 C2.4
54 Среднее звёздное скопление SCM Cluster 3.00E+09 Star:100000&BH:100 SCS:1&Star:20000 SC SC 0.30 3.4 C2.5
55 Большое звёздное скопление SCL Cluster 1.00E+10 Star:1000000&BH:1000 SCM:1&Star:200000 SC SC 0.50 3.2 C2.6
56 Гигантское звёздное скопление SCG Cluster 3.00E+10 Star:10000000&BH:10000 SCL:1&Star:2000000 SC SC 0.80 3 C2.7
57 Карликовая эллиптическая галактика 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
58 Малая эллиптическая галактика 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
59 Средняя эллиптическая галактика 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
60 Большая эллиптическая галактика 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
61 Гигантская эллиптическая галактика 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
62 Карликовая спиральная галактика 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
63 Малая спиральная галактика 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
64 Средняя спиральная галактика 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
65 Большая спиральная галактика 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
66 Гигантская спиральная галактика 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
67 Группа галактик LGG Structures 1.00E+10 GAL:50 GAL:20 LS LS 1.5 C3.4
68 Сверхскопление LSC Structures 2.00E+10 LGG:200 LGG:1&GAL:100 LS LS 1.4 C3.6
69 Галактическая нить LGF Structures 3.00E+10 LSC:100 5 LSC:1&LGG:400 LS LS 1.3 C3.8
70 Великая стена LGW Structures 6.00E+10 LGF:1000 1.00E+04 LGF:1&LSC:200 LS LS 1.2 C4.1
71 Вселенский пузырь LUB Structures 1.00E+11 LGW:1000 1.00E+09 LGW:1&LGF:2000 LS LS 1.1 C4.4
72 Газовый гигант GG Planet GG:1 Planet BPlanet
73 Астероиды AB Planet AB:1 Planet BPlanet
74 Каменистая RP Planet RP:1 Planet BPlanet
75 Обитаемая HP Planet HP:1 Planet LPlanet
76 Живая LP Planet LP:1 Planet LPlanet
77 Эон 1: Архей EON1 Planet LP EON1:1 Planet LPlanet
78 Эон 2: Протерозой EON2 Planet LP EON2:1 Planet LPlanet
79 Эон 3: Палеозой EON3 Planet LP EON3:1 Planet LPlanet
80 Эон 4: Мезозой EON4 Planet LP EON4:1 Planet LPlanet
81 Эон 5: Кайнозой EON5 Planet LP EON5:1 Planet LPlanet
82 Цивилизация типа 0 C0 Civilization C0:1 Planet LPlanet
83 Цивилизация 0.0 C0.0 Civilization C0 C0.0:1 Planet LPlanet
84 Цивилизация 0.1 C0.1 Civilization C0 C0.1:1 Planet LPlanet
85 Цивилизация 0.2 C0.2 Civilization C0 C0.2:1 Planet LPlanet
86 Цивилизация 0.3 C0.3 Civilization C0 C0.3:1 Planet LPlanet
87 Цивилизация 0.4 C0.4 Civilization C0 C0.4:1 Planet LPlanet
88 Цивилизация 0.5 C0.5 Civilization C0 C0.5:1 Planet LPlanet
89 Цивилизация 0.6 C0.6 Civilization C0 C0.6:1 Planet LPlanet
90 Цивилизация 0.7 C0.7 Civilization C0 C0.7:1 Planet LPlanet
91 Цивилизация 0.8 C0.8 Civilization C0 C0.8:1 Planet LPlanet
92 Цивилизация 0.9 C0.9 Civilization C0 C0.9:1 Planet LPlanet
93 Цивилизация типа 1 C1 Civilization C1:1 Planet LPlanet
94 Цивилизация 1.0 C1.0 Civilization C1 C1.0:1 Planet LPlanet
95 Цивилизация 1.1 C1.1 Civilization C1 C1.1:1 Planet LPlanet
96 Цивилизация 1.2 C1.2 Civilization C1 C1.2:1 Planet LPlanet
97 Цивилизация 1.3 C1.3 Civilization C1 C1.3:1 Planet LPlanet
98 Цивилизация 1.4 C1.4 Civilization C1 C1.4:1 Planet LPlanet
99 Цивилизация 1.5 C1.5 Civilization C1 C1.5:1 Planet LPlanet
100 Цивилизация 1.6 C1.6 Civilization C1 C1.6:1 Planet LPlanet
101 Цивилизация 1.7 C1.7 Civilization C1 C1.7:1 Planet LPlanet
102 Цивилизация 1.8 C1.8 Civilization C1 C1.8:1 Planet LPlanet
103 Цивилизация 1.9 C1.9 Civilization C1 C1.9:1 Planet LPlanet
104 Цивилизация типа 2 C2 Civilization C2:1
105 Цивилизация 2.0 C2.0 Civilization C2 C2.0:1
106 Цивилизация 2.1 C2.1 Civilization C2 C2.1:1
107 Цивилизация 2.2 C2.2 Civilization C2 C2.2:1
108 Цивилизация 2.3 C2.3 Civilization C2 C2.3:1
109 Цивилизация 2.4 C2.4 Civilization C2 C2.4:1
110 Цивилизация 2.5 C2.5 Civilization C2 C2.5:1
111 Цивилизация 2.6 C2.6 Civilization C2 C2.6:1
112 Цивилизация 2.7 C2.7 Civilization C2 C2.7:1
113 Цивилизация 2.8 C2.8 Civilization C2 C2.8:1
114 Цивилизация 2.9 C2.9 Civilization C2 C2.9:1
115 Цивилизация типа 3 C3 Civilization C3:1
116 Цивилизация 3.0 C3.0 Civilization C3 C3.0:1
117 Цивилизация 3.1 C3.1 Civilization C3 C3.1:1
118 Цивилизация 3.2 C3.2 Civilization C3 C3.2:1
119 Цивилизация 3.3 C3.3 Civilization C3 C3.3:1
120 Цивилизация 3.4 C3.4 Civilization C3 C3.4:1
121 Цивилизация 3.5 C3.5 Civilization C3 C3.5:1
122 Цивилизация 3.6 C3.6 Civilization C3 C3.6:1
123 Цивилизация 3.7 C3.7 Civilization C3 C3.7:1
124 Цивилизация 3.8 C3.8 Civilization C3 C3.8:1
125 Цивилизация 3.9 C3.9 Civilization C3 C3.9:1
126 Цивилизация типа 4 C4 Civilization C4:1
127 Цивилизация 4.0 C4.0 Civilization C4 C4.0:1
128 Цивилизация 4.1 C4.1 Civilization C4 C4.1:1
129 Цивилизация 4.2 C4.2 Civilization C4 C4.2:1
130 Цивилизация 4.3 C4.3 Civilization C4 C4.3:1
131 Цивилизация 4.4 C4.4 Civilization C4 C4.4:1
132 Трансцендентная цивилизация Ct Civilization
-125
View File
@@ -1,125 +0,0 @@
id|name|image|page|row|col|sub_page
Shovelin|Shovelin|UI/0-Forces/|0|0|0|
Inflatin|Inflatin|UI/0-Forces/|0|0|1|
Temporite|Temporite|UI/0-Forces/|0|0|2|
Collisite|Collisite|UI/0-Forces/|0|0|3|
Primex|Primex|UI/0-Forces/|0|0|4|
Singularite|Singularite|UI/0-Forces/|0|1|0|
Renewin|Renewin|UI/0-Forces/|0|1|1|
Infusite|Infusite|UI/0-Forces/|0|1|2|
Frostin|Frostin|UI/0-Forces/|0|1|3|
Destellarite|Destellarite|UI/0-Forces/|0|1|4|
Rockex|Rockex|UI/0-Forces/|0|2|0|
Panspermin|Panspermin|UI/0-Forces/|0|2|1|
Gaianite|Gaianite|UI/0-Forces/|0|2|2|
Darwinite|Darwinite|UI/0-Forces/|0|2|3|
Edenex|Edenex|UI/0-Forces/|0|2|4|
Pacifin|Pacifin|UI/0-Forces/|0|3|0|
Enragein|Enragein|UI/0-Forces/|0|3|1|
Moralite|Moralite|UI/0-Forces/|0|3|2|
Discriminite|Discriminite|UI/0-Forces/|0|3|3|
Reprex|Reprex|UI/0-Forces/|0|3|4|
S|Space|UI/1-Resources/|1|0|0|
H|Hydrogen|UI/1-Resources/|1|1|0|
He|Helium|UI/1-Resources/|1|2|0|
Met|Metal|UI/1-Resources/|1|3|0|
N|Nebula|UI/2-Stars/|2|0|0|
G|Globula|UI/2-Stars/|2|0|1|
STN|StarNursery|UI/2-Stars/|2|0|2|
MC|MolecularCloud|UI/2-Stars/|2|0|3|
ASTN|ActiveStarNursery|UI/2-Stars/|2|0|4|
BD|BrownDwarf|UI/2-Stars/|2|1|0|
RD|RedDwarf|UI/2-Stars/|2|1|1|
OD|OrangeDwarf|UI/2-Stars/|2|1|2|
YD|YellowDwarf|UI/2-Stars/|2|1|3|
WYD|WhiteYellowDwarf|UI/2-Stars/|2|1|4|
RG|RedGiant|UI/2-Stars/|2|2|0|
WS|WhiteStar|UI/2-Stars/|2|2|1|
BG|BlueGiant|UI/2-Stars/|2|2|2|
SG|Supergiant|UI/2-Stars/|2|2|3|
HG|Hypergiant|UI/2-Stars/|2|2|4|
WD|WhiteDwarf|UI/2-Stars/|2|3|0|
NS|NeutronStar|UI/2-Stars/|2|3|1|
MGT|Magnetar|UI/2-Stars/|2|3|2|
BH|BlackHole|UI/2-Stars/|2|3|3|
SMBH|SupermassiveBlackHole|UI/2-Stars/|2|3|4|
SCD|StarClusterScattered|UI/3-Structures/|3|0|0|
SCS|StarClusterSmall|UI/3-Structures/|3|0|1|
SCM|StarClusterMedium|UI/3-Structures/|3|0|2|
SCL|StarClusterLarge|UI/3-Structures/|3|0|3|
SCG|StarClusterGiant|UI/3-Structures/|3|0|4|
GED|GalaxyEllipticalDwarf|UI/3-Structures/|3|1|0|
GES|GalaxyEllipticalSmall|UI/3-Structures/|3|1|1|
GEM|GalaxyEllipticalMedium|UI/3-Structures/|3|1|2|
GEL|GalaxyEllipticalLarge|UI/3-Structures/|3|1|3|
GEG|GalaxyEllipticalGiant|UI/3-Structures/|3|1|4|
GSD|GalaxySpiralDwarf|UI/3-Structures/|3|2|0|
GSS|GalaxySpiralSmall|UI/3-Structures/|3|2|1|
GSM|GalaxySpiralMedium|UI/3-Structures/|3|2|2|
GSL|GalaxySpiralLarge|UI/3-Structures/|3|2|3|
GSG|GalaxySpiralGiant|UI/3-Structures/|3|2|4|
LGG|GalacticGroup|UI/3-Structures/|3|3|0|
LSC|GalacticSupercluster|UI/3-Structures/|3|3|1|
LGF|GalacticFilament|UI/3-Structures/|3|3|2|
LGW|GalacticWall|UI/3-Structures/|3|3|3|
LUB|UniverseBubble|UI/3-Structures/|3|3|4|
GG|GasGiant|UI/4-Life/|4|0|0|
AB|AsteroidBelt|UI/4-Life/|4|0|1|
RP|RockyPlanet|UI/4-Life/|4|0|2|
HP|HabitablePlanet|UI/4-Life/|4|0|3|
LP|LivingPlanet|UI/4-Life/|4|0|4|5
C0|Civ0|UI/4-Life/|4|1|0|6
C1|Civ1|UI/4-Life/|4|1|1|7
C2|Civ2|UI/4-Life/|4|1|2|8
C3|Civ3|UI/4-Life/|4|1|3|9
C4|Civ4|UI/4-Life/|4|1|4|10
EON1|Archean|UI/4-Life/Living/|5|0|0|
EON2|Proterozoic|UI/4-Life/Living/|5|0|1|
EON3|Paleozoic|UI/4-Life/Living/|5|0|2|
EON4|Mezozoic|UI/4-Life/Living/|5|0|3|
EON5|Cenozoic|UI/4-Life/Living/|5|0|4|
C0.0|Civ0.0|UI/4-Life/Civ0/|6|0|0|
C0.1|Civ0.1|UI/4-Life/Civ0/|6|0|1|
C0.2|Civ0.2|UI/4-Life/Civ0/|6|0|2|
C0.3|Civ0.3|UI/4-Life/Civ0/|6|0|3|
C0.4|Civ0.4|UI/4-Life/Civ0/|6|0|4|
C0.5|Civ0.5|UI/4-Life/Civ0/|6|1|0|
C0.6|Civ0.6|UI/4-Life/Civ0/|6|1|1|
C0.7|Civ0.7|UI/4-Life/Civ0/|6|1|2|
C0.8|Civ0.8|UI/4-Life/Civ0/|6|1|3|
C0.9|Civ0.9|UI/4-Life/Civ0/|6|1|4|
C1.0|Civ1.0|UI/4-Life/Civ1/|7|0|0|
C1.1|Civ1.1|UI/4-Life/Civ1/|7|0|1|
C1.2|Civ1.2|UI/4-Life/Civ1/|7|0|2|
C1.3|Civ1.3|UI/4-Life/Civ1/|7|0|3|
C1.4|Civ1.4|UI/4-Life/Civ1/|7|0|4|
C1.5|Civ1.5|UI/4-Life/Civ1/|7|1|0|
C1.6|Civ1.6|UI/4-Life/Civ1/|7|1|1|
C1.7|Civ1.7|UI/4-Life/Civ1/|7|1|2|
C1.8|Civ1.8|UI/4-Life/Civ1/|7|1|3|
C1.9|Civ1.9|UI/4-Life/Civ1/|7|1|4|
C2.0|Civ2.0|UI/4-Life/Civ2/|8|0|0|
C2.1|Civ2.1|UI/4-Life/Civ2/|8|0|1|
C2.2|Civ2.2|UI/4-Life/Civ2/|8|0|2|
C2.3|Civ2.3|UI/4-Life/Civ2/|8|0|3|
C2.4|Civ2.4|UI/4-Life/Civ2/|8|0|4|
C2.5|Civ2.5|UI/4-Life/Civ2/|8|1|0|
C2.6|Civ2.6|UI/4-Life/Civ2/|8|1|1|
C2.7|Civ2.7|UI/4-Life/Civ2/|8|1|2|
C2.8|Civ2.8|UI/4-Life/Civ2/|8|1|3|
C2.9|Civ2.9|UI/4-Life/Civ2/|8|1|4|
C3.0|Civ3.0|UI/4-Life/Civ3/|9|0|0|
C3.1|Civ3.1|UI/4-Life/Civ3/|9|0|1|
C3.2|Civ3.2|UI/4-Life/Civ3/|9|0|2|
C3.3|Civ3.3|UI/4-Life/Civ3/|9|0|3|
C3.4|Civ3.4|UI/4-Life/Civ3/|9|0|4|
C3.5|Civ3.5|UI/4-Life/Civ3/|9|1|0|
C3.6|Civ3.6|UI/4-Life/Civ3/|9|1|1|
C3.7|Civ3.7|UI/4-Life/Civ3/|9|1|2|
C3.8|Civ3.8|UI/4-Life/Civ3/|9|1|3|
C3.9|Civ3.9|UI/4-Life/Civ3/|9|1|4|
C4.0|Civ4.0|UI/4-Life/Civ4/|10|0|0|
C4.1|Civ4.1|UI/4-Life/Civ4/|10|0|1|
C4.2|Civ4.2|UI/4-Life/Civ4/|10|0|2|
C4.3|Civ4.3|UI/4-Life/Civ4/|10|0|3|
C4.4|Civ4.4|UI/4-Life/Civ4/|10|0|4|
1 id name image page row col sub_page
2 Shovelin Shovelin UI/0-Forces/ 0 0 0
3 Inflatin Inflatin UI/0-Forces/ 0 0 1
4 Temporite Temporite UI/0-Forces/ 0 0 2
5 Collisite Collisite UI/0-Forces/ 0 0 3
6 Primex Primex UI/0-Forces/ 0 0 4
7 Singularite Singularite UI/0-Forces/ 0 1 0
8 Renewin Renewin UI/0-Forces/ 0 1 1
9 Infusite Infusite UI/0-Forces/ 0 1 2
10 Frostin Frostin UI/0-Forces/ 0 1 3
11 Destellarite Destellarite UI/0-Forces/ 0 1 4
12 Rockex Rockex UI/0-Forces/ 0 2 0
13 Panspermin Panspermin UI/0-Forces/ 0 2 1
14 Gaianite Gaianite UI/0-Forces/ 0 2 2
15 Darwinite Darwinite UI/0-Forces/ 0 2 3
16 Edenex Edenex UI/0-Forces/ 0 2 4
17 Pacifin Pacifin UI/0-Forces/ 0 3 0
18 Enragein Enragein UI/0-Forces/ 0 3 1
19 Moralite Moralite UI/0-Forces/ 0 3 2
20 Discriminite Discriminite UI/0-Forces/ 0 3 3
21 Reprex Reprex UI/0-Forces/ 0 3 4
22 S Space UI/1-Resources/ 1 0 0
23 H Hydrogen UI/1-Resources/ 1 1 0
24 He Helium UI/1-Resources/ 1 2 0
25 Met Metal UI/1-Resources/ 1 3 0
26 N Nebula UI/2-Stars/ 2 0 0
27 G Globula UI/2-Stars/ 2 0 1
28 STN StarNursery UI/2-Stars/ 2 0 2
29 MC MolecularCloud UI/2-Stars/ 2 0 3
30 ASTN ActiveStarNursery UI/2-Stars/ 2 0 4
31 BD BrownDwarf UI/2-Stars/ 2 1 0
32 RD RedDwarf UI/2-Stars/ 2 1 1
33 OD OrangeDwarf UI/2-Stars/ 2 1 2
34 YD YellowDwarf UI/2-Stars/ 2 1 3
35 WYD WhiteYellowDwarf UI/2-Stars/ 2 1 4
36 RG RedGiant UI/2-Stars/ 2 2 0
37 WS WhiteStar UI/2-Stars/ 2 2 1
38 BG BlueGiant UI/2-Stars/ 2 2 2
39 SG Supergiant UI/2-Stars/ 2 2 3
40 HG Hypergiant UI/2-Stars/ 2 2 4
41 WD WhiteDwarf UI/2-Stars/ 2 3 0
42 NS NeutronStar UI/2-Stars/ 2 3 1
43 MGT Magnetar UI/2-Stars/ 2 3 2
44 BH BlackHole UI/2-Stars/ 2 3 3
45 SMBH SupermassiveBlackHole UI/2-Stars/ 2 3 4
46 SCD StarClusterScattered UI/3-Structures/ 3 0 0
47 SCS StarClusterSmall UI/3-Structures/ 3 0 1
48 SCM StarClusterMedium UI/3-Structures/ 3 0 2
49 SCL StarClusterLarge UI/3-Structures/ 3 0 3
50 SCG StarClusterGiant UI/3-Structures/ 3 0 4
51 GED GalaxyEllipticalDwarf UI/3-Structures/ 3 1 0
52 GES GalaxyEllipticalSmall UI/3-Structures/ 3 1 1
53 GEM GalaxyEllipticalMedium UI/3-Structures/ 3 1 2
54 GEL GalaxyEllipticalLarge UI/3-Structures/ 3 1 3
55 GEG GalaxyEllipticalGiant UI/3-Structures/ 3 1 4
56 GSD GalaxySpiralDwarf UI/3-Structures/ 3 2 0
57 GSS GalaxySpiralSmall UI/3-Structures/ 3 2 1
58 GSM GalaxySpiralMedium UI/3-Structures/ 3 2 2
59 GSL GalaxySpiralLarge UI/3-Structures/ 3 2 3
60 GSG GalaxySpiralGiant UI/3-Structures/ 3 2 4
61 LGG GalacticGroup UI/3-Structures/ 3 3 0
62 LSC GalacticSupercluster UI/3-Structures/ 3 3 1
63 LGF GalacticFilament UI/3-Structures/ 3 3 2
64 LGW GalacticWall UI/3-Structures/ 3 3 3
65 LUB UniverseBubble UI/3-Structures/ 3 3 4
66 GG GasGiant UI/4-Life/ 4 0 0
67 AB AsteroidBelt UI/4-Life/ 4 0 1
68 RP RockyPlanet UI/4-Life/ 4 0 2
69 HP HabitablePlanet UI/4-Life/ 4 0 3
70 LP LivingPlanet UI/4-Life/ 4 0 4 5
71 C0 Civ0 UI/4-Life/ 4 1 0 6
72 C1 Civ1 UI/4-Life/ 4 1 1 7
73 C2 Civ2 UI/4-Life/ 4 1 2 8
74 C3 Civ3 UI/4-Life/ 4 1 3 9
75 C4 Civ4 UI/4-Life/ 4 1 4 10
76 EON1 Archean UI/4-Life/Living/ 5 0 0
77 EON2 Proterozoic UI/4-Life/Living/ 5 0 1
78 EON3 Paleozoic UI/4-Life/Living/ 5 0 2
79 EON4 Mezozoic UI/4-Life/Living/ 5 0 3
80 EON5 Cenozoic UI/4-Life/Living/ 5 0 4
81 C0.0 Civ0.0 UI/4-Life/Civ0/ 6 0 0
82 C0.1 Civ0.1 UI/4-Life/Civ0/ 6 0 1
83 C0.2 Civ0.2 UI/4-Life/Civ0/ 6 0 2
84 C0.3 Civ0.3 UI/4-Life/Civ0/ 6 0 3
85 C0.4 Civ0.4 UI/4-Life/Civ0/ 6 0 4
86 C0.5 Civ0.5 UI/4-Life/Civ0/ 6 1 0
87 C0.6 Civ0.6 UI/4-Life/Civ0/ 6 1 1
88 C0.7 Civ0.7 UI/4-Life/Civ0/ 6 1 2
89 C0.8 Civ0.8 UI/4-Life/Civ0/ 6 1 3
90 C0.9 Civ0.9 UI/4-Life/Civ0/ 6 1 4
91 C1.0 Civ1.0 UI/4-Life/Civ1/ 7 0 0
92 C1.1 Civ1.1 UI/4-Life/Civ1/ 7 0 1
93 C1.2 Civ1.2 UI/4-Life/Civ1/ 7 0 2
94 C1.3 Civ1.3 UI/4-Life/Civ1/ 7 0 3
95 C1.4 Civ1.4 UI/4-Life/Civ1/ 7 0 4
96 C1.5 Civ1.5 UI/4-Life/Civ1/ 7 1 0
97 C1.6 Civ1.6 UI/4-Life/Civ1/ 7 1 1
98 C1.7 Civ1.7 UI/4-Life/Civ1/ 7 1 2
99 C1.8 Civ1.8 UI/4-Life/Civ1/ 7 1 3
100 C1.9 Civ1.9 UI/4-Life/Civ1/ 7 1 4
101 C2.0 Civ2.0 UI/4-Life/Civ2/ 8 0 0
102 C2.1 Civ2.1 UI/4-Life/Civ2/ 8 0 1
103 C2.2 Civ2.2 UI/4-Life/Civ2/ 8 0 2
104 C2.3 Civ2.3 UI/4-Life/Civ2/ 8 0 3
105 C2.4 Civ2.4 UI/4-Life/Civ2/ 8 0 4
106 C2.5 Civ2.5 UI/4-Life/Civ2/ 8 1 0
107 C2.6 Civ2.6 UI/4-Life/Civ2/ 8 1 1
108 C2.7 Civ2.7 UI/4-Life/Civ2/ 8 1 2
109 C2.8 Civ2.8 UI/4-Life/Civ2/ 8 1 3
110 C2.9 Civ2.9 UI/4-Life/Civ2/ 8 1 4
111 C3.0 Civ3.0 UI/4-Life/Civ3/ 9 0 0
112 C3.1 Civ3.1 UI/4-Life/Civ3/ 9 0 1
113 C3.2 Civ3.2 UI/4-Life/Civ3/ 9 0 2
114 C3.3 Civ3.3 UI/4-Life/Civ3/ 9 0 3
115 C3.4 Civ3.4 UI/4-Life/Civ3/ 9 0 4
116 C3.5 Civ3.5 UI/4-Life/Civ3/ 9 1 0
117 C3.6 Civ3.6 UI/4-Life/Civ3/ 9 1 1
118 C3.7 Civ3.7 UI/4-Life/Civ3/ 9 1 2
119 C3.8 Civ3.8 UI/4-Life/Civ3/ 9 1 3
120 C3.9 Civ3.9 UI/4-Life/Civ3/ 9 1 4
121 C4.0 Civ4.0 UI/4-Life/Civ4/ 10 0 0
122 C4.1 Civ4.1 UI/4-Life/Civ4/ 10 0 1
123 C4.2 Civ4.2 UI/4-Life/Civ4/ 10 0 2
124 C4.3 Civ4.3 UI/4-Life/Civ4/ 10 0 3
125 C4.4 Civ4.4 UI/4-Life/Civ4/ 10 0 4
@@ -5,25 +5,14 @@ extends Node
const SETTING_SECTION := "Settings"
const SAVE_PATH = "user://settings.cfg"
func ch():
pass
#print(Global.Owniverse)
#print('h')
#save_data('ow1', 'test', Global.Owniverse)
#var d1: Dictionary = load_data('ow1', 'test1')
#print("d1: ", d1)
#var d2: Dictionary = load_data('ow1', 'test')
#print("d2: ", d2)
#print('d')
#print(Global.Owniverse.datetime.WEEKDAYS)
#region Save Load routines
func save_data(filename: String, password: String, data: Dictionary) -> void:
filename = "user://" + filename + ".adventure"
var file := FileAccess.open_encrypted_with_pass(filename, FileAccess.WRITE, password)
if file == null:
push_error("Не удалось открыть файл для шифрованной записи")
push_error("Can't write to the file: ", filename)
return
file.store_var(data) # бинарно + быстрее + сериализация
@@ -37,17 +26,15 @@ func load_data(filename: String, password: String) -> Dictionary:
var file := FileAccess.open_encrypted_with_pass(filename, FileAccess.READ, password)
if file == null:
push_error("Неверный пароль или повреждённый файл")
push_error(filename, " couldn't be decrypted.")
return {}
var data:Variant = file.get_var()
var data: Variant = file.get_var()
file.close()
#print("data")
#print(data)
return data if data is Dictionary else {}
#endregion
#region Settings
+127 -61
View File
@@ -1,14 +1,15 @@
extends Control
const ITEM_BUTTON = preload("uid://d3xjfxwe3w16v")
signal produce_items(item_id: String, amount: int)
const SPEED_TEXTURE_NAME_TEMPLATE = "res://UI/TopMenu/Time&Speed/Time%s.png"
const OWNIVERSE_ITEM = preload("uid://d3xjfxwe3w16v")
const SPEED_TEXTURE_NAME_TEMPLATE = "res://ui/topmenu/time&speed/time%s.png"
const PAGE_COUNT = 5
const PAGE_WIDTH = 1080
const DRAG_TOLERANCE = 360
const SWIPE_DURATION: float = 2
const SWIPE_DELAY = 2000 # msec
const SWIPE_DURATION: float = 0.4
@onready var stage_page_scroller: ScrollContainer = $StageRows/PageScroller
@@ -26,7 +27,12 @@ const SWIPE_DELAY = 2000 # msec
$StageRows/PageScroller/HBoxContainer/LifePage/Planets/Civ4
]
@onready var g_entity_descriptions: Array = [
@onready var page_actions: Dictionary[int, OwniverseAction] = {
2: $StageRows/PageScroller/HBoxContainer/StarPage/Actions,
3: $StageRows/PageScroller/HBoxContainer/StructurePage/Actions,
}
@onready var g_item_descriptions: Array = [
$StageRows/PageScroller/HBoxContainer/ForcePage/Description,
$StageRows/PageScroller/HBoxContainer/ResourcePage/Description,
$StageRows/PageScroller/HBoxContainer/StarPage/Description,
@@ -54,7 +60,7 @@ const SWIPE_DELAY = 2000 # msec
var g_tween: Tween = null
var g_dragged_start: Vector2 = Vector2.ZERO
var g_scroll_start: int = 0
var g_current_page: int = 0
#var g_current_page: int = 0
var g_last_scroll_updated: int = 0
@@ -65,80 +71,114 @@ var g_counters: Dictionary[String, Counter] = {
"swipe": Counter.new(),
}
var ActiveEntities: Dictionary = {}
var g_active_items: Dictionary = {}
var owniverse = Owniverse.new()
var owniverse:Owniverse = Owniverse.new()
var owniverse_items: Dictionary[String, OwniverseItem] = {}
func set_datetime(value: String):
date_time.text = value
var item_list_to_update: Dictionary = {}
func set_datetime(value: float):
date_time.text = str(snapped(value, 0.1))
#region Item manipulations: update and visibility
func add_to_update_list(item_id: String, amount: int) -> void:
if item_list_to_update.has(item_id):
item_list_to_update[item_id] += amount
else:
item_list_to_update[item_id] = amount
func set_owniverse_item_value() -> void:
for item_id in owniverse.items_to_update:
if owniverse_items.has(item_id):
owniverse_items[item_id].set_label(owniverse.items_to_update[item_id])
owniverse.items_to_update = {}
#func unlock_owniverse_item() -> void:
#pass
#endregion
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 _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:
# TODO переписать это ↓
if !g_active_items.has(item.item_page):
g_active_items[item.item_page] = null
var current_entity: OwniverseEntity = ActiveEntities[entity.entity_page]
if current_entity == entity:
var current_item: OwniverseItem = g_active_items[item.item_page]
if current_item == item:
return
ActiveEntities[entity.entity_page] = entity
g_active_items[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_owniverse_items() -> bool:
owniverse_items = {}
for item_id in Global.OwniverseItems:
var item_props: Dictionary = Global.OwniverseItems[item_id]
var item: OwniverseItem = OWNIVERSE_ITEM.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_activated)
owniverse_items[item_id] = item
return false
func item_activated(item: OwniverseItem) -> void:
_control_page(item)
_set_item_description(item)
if item.item_id == "S" or item.item_id == "H":
owniverse.produce(item.item_id, 100_000)
func _unlock_item(item_id: String):
owniverse_items[item_id].set_visible(true)
func _check_counters(delta: float) -> Array:
var actions: Array = []
@@ -156,6 +196,8 @@ func _check_counters(delta: float) -> Array:
return actions
#region Swipe
func _do_actions(actions: Array) -> void:
for action: String in actions:
match action:
@@ -163,9 +205,6 @@ func _do_actions(actions: Array) -> void:
_swipe_to_nearest_page()
#region Swipe
func _swipe_to_nearest_page() -> void:
if stage_page_scroller.scroll_horizontal % PAGE_WIDTH == 0: return
@@ -196,27 +235,49 @@ func _input(event: InputEvent) -> void:
func _ready() -> void:
_init_entities()
owniverse.init_enitities()
owniverse.load_data()
_init_owniverse_items()
owniverse.unlock_item.connect(_unlock_item)
g_counters.swipe.sec = 0.2
for pa in page_actions:
page_actions[pa].action_pressed.connect(_page_action_pressed)
page_actions[pa].page_id = pa
func _process(delta: float) -> void:
# Update date
var sdt: String = str(snapped(owniverse.add_time_delta(delta), 0.1))
set_datetime(sdt)
var year_delta: float = owniverse.add_time_delta(delta)
set_datetime(year_delta)
owniverse.cycle(year_delta)
var actions = _check_counters(delta)
_do_actions(actions)
_set_active_page_actions()
func _set_active_page_actions() -> void:
for pa in page_actions:
if !g_active_items.has(pa): continue
var item_id: String = g_active_items[pa].item_id
var amount = owniverse.get_available_to_produce(item_id)
page_actions[pa].set_actions(item_id, amount)
func _on_burger_button_pressed() -> void:
print("b")
pass # Replace with function body.
func _page_action_pressed(page_id: int, action_amount: float) -> void:
if !g_active_items.has(page_id):
return
var item_id: String = g_active_items[page_id].item_id
if action_amount > 0:
owniverse.produce(item_id, action_amount)
func _on_report_button_pressed() -> void:
print("r")
pass # Replace with function body.
func _change_speed(delta: int) -> void:
var speed: int = owniverse.change_speed(delta)
var ind: int = 1
@@ -235,6 +296,11 @@ func _change_speed(delta: int) -> void:
else:
g_time_minus.texture_normal = load(SPEED_TEXTURE_NAME_TEMPLATE % str(speed - 1))
g_time_plus.texture_normal = load(SPEED_TEXTURE_NAME_TEMPLATE % str(speed + 1))
func _on_topmenu_button_pressed(ButtonName) -> void:
print(ButtonName)
func _on_save_data() -> void:
owniverse.save_data()
-9
View File
@@ -2,15 +2,9 @@ class_name Counter extends RefCounted
var is_active: bool = false
var sec: float = 1
var value: float = 0
#func set_inactive() -> void:
#is_active = false
#
#func set_active() -> void:
#is_active = true
func is_reached() -> bool:
if value >= sec:
@@ -24,6 +18,3 @@ func add_delta(delta: float) -> void:
func debug() -> void:
print(is_active, " | ", value, " of ", sec)
#func _init():
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dg15dpxiepicb"]
[gd_scene format=3 uid="uid://dg15dpxiepicb"]
[ext_resource type="Texture2D" uid="uid://chxxghyul1im7" path="res://UI/Border/border-2px.png" id="1_6kaf8"]
[ext_resource type="Texture2D" uid="uid://chxxghyul1im7" path="res://ui/border/border-2px.png" id="1_6kaf8"]
[node name="Border" type="TextureRect"]
texture = ExtResource("1_6kaf8")
Binary file not shown.
+46
View File
@@ -0,0 +1,46 @@
extends HBoxContainer
class_name OwniverseAction
signal action_pressed(page_id, amount: float)
@onready var action_labels: Array = [
$ActionControl0/Label,
$ActionControl1/Label,
$ActionControl2/Label,
$ActionControl3/Label,
$ActionControl4/Label,
]
var page_id: int = -1
var current_item_id = ""
var action_values: Dictionary = {
0: 0,
1: 0,
2: 0,
3: 0,
4: 0,
}
func set_actions(item_id: String, value: float) -> void:
current_item_id = item_id
_set_action_values(_get_distribution(value))
func _get_distribution(value: float) -> Array:
var distribution: Array = [value, 0, 0, 0, 0]
var exp_value = int(floor(log(abs(value)) / log(10.0)))
var floor_value = max(exp_value - 4, -1)
for ev in range(exp_value, floor_value, -1):
distribution.push_front(pow(10.0, ev))
return distribution
func _set_action_values(values: Array) -> void:
for ind in range(0, 5):
action_values[ind] = values[ind]
action_labels[ind].text = Global.format_number(values[ind]) if values[ind] > 0 else ""
func _on_action_button_pressed(button_id: int) -> void:
action_pressed.emit(page_id, action_values[button_id])
+1
View File
@@ -0,0 +1 @@
uid://c2ech05mh56y8
+121
View File
@@ -0,0 +1,121 @@
[gd_scene format=3 uid="uid://dwneq2qq5p8ek"]
[ext_resource type="Script" uid="uid://c2ech05mh56y8" path="res://ui/actions/actions.gd" id="1_cjivn"]
[ext_resource type="FontFile" uid="uid://d3k1ddvv0rmhs" path="res://fonts/Roboto_Condensed/RobotoCondensed-Light.ttf" id="1_lgdyb"]
[ext_resource type="Texture2D" uid="uid://gsclv7fr1rbr" path="res://ui/actions/action_button.png" id="2_cjivn"]
[node name="Actions" type="HBoxContainer" unique_id=503388208]
custom_minimum_size = Vector2(0, 216)
theme_override_constants/separation = 0
script = ExtResource("1_cjivn")
[node name="ActionControl0" type="Control" parent="." unique_id=1275614326]
custom_minimum_size = Vector2(216, 216)
layout_mode = 2
[node name="Label" type="Label" parent="ActionControl0" unique_id=1639484784]
custom_minimum_size = Vector2(216, 32)
layout_mode = 0
offset_right = 216.0
offset_bottom = 40.0
theme_override_fonts/font = ExtResource("1_lgdyb")
theme_override_font_sizes/font_size = 32
horizontal_alignment = 1
[node name="TextureButton" type="TextureButton" parent="ActionControl0" unique_id=1122042557]
custom_minimum_size = Vector2(216, 184)
layout_mode = 0
offset_top = 32.0
offset_right = 216.0
offset_bottom = 216.0
texture_normal = ExtResource("2_cjivn")
[node name="ActionControl1" type="Control" parent="." unique_id=428212496]
custom_minimum_size = Vector2(216, 216)
layout_mode = 2
[node name="Label" type="Label" parent="ActionControl1" unique_id=382714464]
custom_minimum_size = Vector2(216, 32)
layout_mode = 0
offset_right = 216.0
offset_bottom = 40.0
theme_override_fonts/font = ExtResource("1_lgdyb")
theme_override_font_sizes/font_size = 32
horizontal_alignment = 1
[node name="TextureButton" type="TextureButton" parent="ActionControl1" unique_id=1538851090]
custom_minimum_size = Vector2(216, 184)
layout_mode = 0
offset_top = 32.0
offset_right = 216.0
offset_bottom = 216.0
texture_normal = ExtResource("2_cjivn")
[node name="ActionControl2" type="Control" parent="." unique_id=1758592847]
custom_minimum_size = Vector2(216, 216)
layout_mode = 2
[node name="Label" type="Label" parent="ActionControl2" unique_id=1162569223]
custom_minimum_size = Vector2(216, 32)
layout_mode = 0
offset_right = 216.0
offset_bottom = 40.0
theme_override_fonts/font = ExtResource("1_lgdyb")
theme_override_font_sizes/font_size = 32
horizontal_alignment = 1
[node name="TextureButton" type="TextureButton" parent="ActionControl2" unique_id=1137903803]
custom_minimum_size = Vector2(216, 184)
layout_mode = 0
offset_top = 32.0
offset_right = 216.0
offset_bottom = 216.0
texture_normal = ExtResource("2_cjivn")
[node name="ActionControl3" type="Control" parent="." unique_id=615206748]
custom_minimum_size = Vector2(216, 216)
layout_mode = 2
[node name="Label" type="Label" parent="ActionControl3" unique_id=580732513]
custom_minimum_size = Vector2(216, 32)
layout_mode = 0
offset_right = 216.0
offset_bottom = 40.0
theme_override_fonts/font = ExtResource("1_lgdyb")
theme_override_font_sizes/font_size = 32
horizontal_alignment = 1
[node name="TextureButton" type="TextureButton" parent="ActionControl3" unique_id=1783481629]
custom_minimum_size = Vector2(216, 184)
layout_mode = 0
offset_top = 32.0
offset_right = 216.0
offset_bottom = 216.0
texture_normal = ExtResource("2_cjivn")
[node name="ActionControl4" type="Control" parent="." unique_id=473471606]
custom_minimum_size = Vector2(216, 216)
layout_mode = 2
[node name="Label" type="Label" parent="ActionControl4" unique_id=1862337838]
custom_minimum_size = Vector2(216, 32)
layout_mode = 0
offset_right = 216.0
offset_bottom = 40.0
theme_override_fonts/font = ExtResource("1_lgdyb")
theme_override_font_sizes/font_size = 32
horizontal_alignment = 1
[node name="TextureButton" type="TextureButton" parent="ActionControl4" unique_id=1477690280]
custom_minimum_size = Vector2(216, 184)
layout_mode = 0
offset_top = 32.0
offset_right = 216.0
offset_bottom = 216.0
texture_normal = ExtResource("2_cjivn")
[connection signal="pressed" from="ActionControl0/TextureButton" to="." method="_on_action_button_pressed" binds= [0]]
[connection signal="pressed" from="ActionControl1/TextureButton" to="." method="_on_action_button_pressed" binds= [1]]
[connection signal="pressed" from="ActionControl2/TextureButton" to="." method="_on_action_button_pressed" binds= [2]]
[connection signal="pressed" from="ActionControl3/TextureButton" to="." method="_on_action_button_pressed" binds= [3]]
[connection signal="pressed" from="ActionControl4/TextureButton" to="." method="_on_action_button_pressed" binds= [4]]
@@ -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,17 @@ 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
var item_type = ""
func set_label(value: float) -> void:
description.text = Global.format_number(value)
#description.text = str(value)
func set_selection(flag: bool) -> void:
@@ -25,16 +32,13 @@ 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)
@@ -1,15 +1,25 @@
[gd_scene format=3 uid="uid://d3xjfxwe3w16v"]
[ext_resource type="Script" uid="uid://bxxllddlgurus" path="res://UI/ItemButton/item_button.gd" id="1_e6ro1"]
[ext_resource type="Texture2D" uid="uid://56w57w6iu3np" path="res://UI/ItemButton/Selected.png" id="2_eurq3"]
[ext_resource type="Script" uid="uid://bxxllddlgurus" path="res://ui/owniverse_item/owniverse_item.gd" id="1_e6ro1"]
[ext_resource type="Texture2D" uid="uid://56w57w6iu3np" path="res://ui/owniverse_item/Selected.png" id="2_eurq3"]
[node name="Button" type="Control" unique_id=667620208]
visible = false
layout_mode = 3
anchors_preset = 0
offset_right = 216.0
offset_bottom = 260.0
mouse_filter = 1
script = ExtResource("1_e6ro1")
[node name="Selection" type="TextureRect" parent="." unique_id=674793134]
visible = false
layout_mode = 0
offset_right = 216.0
offset_bottom = 216.0
mouse_filter = 2
texture = ExtResource("2_eurq3")
[node name="TextureButton" type="TextureButton" parent="." unique_id=1377839155]
custom_minimum_size = Vector2(216, 216)
layout_mode = 0
@@ -22,11 +32,7 @@ layout_mode = 0
offset_top = 220.0
offset_right = 216.0
offset_bottom = 260.0
theme_override_font_sizes/font_size = 31
horizontal_alignment = 1
[node name="Selection" type="TextureRect" parent="." unique_id=674793134]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("2_eurq3")
[connection signal="button_up" from="TextureButton" to="." method="_on_button_up"]
[connection signal="pressed" from="TextureButton" to="." method="_on_button_up"]
-5
View File
@@ -1,5 +0,0 @@
extends Node
func print_smth(smth: String):
pass
#print(smth)
-1
View File
@@ -1 +0,0 @@
uid://xte4iwvipeve
@@ -1,5 +1,6 @@
Version|Content:en|Content:ru
0.5.1.|Minor fixes|Незначительные правки
0.6.12.128|Unlock|Раблокироровка
0.5.1|Minor fixes|Незначительные правки
0.5.0|WooHoo! Public release|Ура! Публичный релиз
0.4.8|Ads double forces|Реклама удваивает силы
0.4.7|Forces rebalanced|Силы перебалансированы
+153
View File
@@ -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|S:0|S:0||||||||||||||||S|||
H|1|H:0|H:0||||||||||||||||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:0&MET: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.05&MET: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.64&MET: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.3&MET: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.36&MET: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.5&MET: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:50&MET: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:186&MET: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:560&MET: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:10&MET: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:12&MET: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:18&MET: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:40&MET: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|||||||||||||||||||||
fsho|1|fsho:1||||||||||||||||||||
finf|1|finf:1||||||||||||||||||||
ftem|1|ftem:1||||||||||||||||||||
fcol|1|fcol:1||||||||||||||||||||
fpri|1|fpri:1||||||||||||||||||||
fsin|1|fsin: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||||||||||||||||||||
+125
View File
@@ -0,0 +1,125 @@
id|name|image|page|row|col|sub_page
fsho|shovelin|ui/0-forces/|0|0|0|
finf|inflatin|ui/0-forces/|0|0|1|
ftem|temporite|ui/0-forces/|0|0|2|
fcol|collisite|ui/0-forces/|0|0|3|
fpri|primex|ui/0-forces/|0|0|4|
fsin|singularite|ui/0-forces/|0|1|0|
fren|renewin|ui/0-forces/|0|1|1|
finf|infusite|ui/0-forces/|0|1|2|
ffro|frostin|ui/0-forces/|0|1|3|
fdes|destellarite|ui/0-forces/|0|1|4|
froc|rockex|ui/0-forces/|0|2|0|
fpan|panspermin|ui/0-forces/|0|2|1|
fgai|gaianite|ui/0-forces/|0|2|2|
fdar|darwinite|ui/0-forces/|0|2|3|
fede|edenex|ui/0-forces/|0|2|4|
fpac|pacifin|ui/0-forces/|0|3|0|
fenr|enragein|ui/0-forces/|0|3|1|
fmor|moralite|ui/0-forces/|0|3|2|
fdis|discriminite|ui/0-forces/|0|3|3|
frep|reprex|ui/0-forces/|0|3|4|
S|space|ui/1-resources/|1|0|0|
H|hydrogen|ui/1-resources/|1|1|0|
He|helium|ui/1-resources/|1|2|0|
Met|metal|ui/1-resources/|1|3|0|
N|nebula|ui/2-stars/|2|0|0|
G|globula|ui/2-stars/|2|0|1|
STN|starnursery|ui/2-stars/|2|0|2|
MC|molecularcloud|ui/2-stars/|2|0|3|
ASTN|activestarnursery|ui/2-stars/|2|0|4|
BD|browndwarf|ui/2-stars/|2|1|0|
RD|reddwarf|ui/2-stars/|2|1|1|
OD|orangedwarf|ui/2-stars/|2|1|2|
YD|yellowdwarf|ui/2-stars/|2|1|3|
WYD|whiteyellowdwarf|ui/2-stars/|2|1|4|
RG|redgiant|ui/2-stars/|2|2|0|
WS|whitestar|ui/2-stars/|2|2|1|
BG|bluegiant|ui/2-stars/|2|2|2|
SG|supergiant|ui/2-stars/|2|2|3|
HG|hypergiant|ui/2-stars/|2|2|4|
WD|whitedwarf|ui/2-stars/|2|3|0|
NS|neutronstar|ui/2-stars/|2|3|1|
MGT|magnetar|ui/2-stars/|2|3|2|
BH|blackhole|ui/2-stars/|2|3|3|
SMBH|supermassiveblackhole|ui/2-stars/|2|3|4|
SCD|starclusterscattered|ui/3-structures/|3|0|0|
SCS|starclustersmall|ui/3-structures/|3|0|1|
SCM|starclustermedium|ui/3-structures/|3|0|2|
SCL|starclusterlarge|ui/3-structures/|3|0|3|
SCG|starclustergiant|ui/3-structures/|3|0|4|
GED|galaxyellipticaldwarf|ui/3-structures/|3|1|0|
GES|galaxyellipticalsmall|ui/3-structures/|3|1|1|
GEM|galaxyellipticalmedium|ui/3-structures/|3|1|2|
GEL|galaxyellipticallarge|ui/3-structures/|3|1|3|
GEG|galaxyellipticalgiant|ui/3-structures/|3|1|4|
GSD|galaxyspiraldwarf|ui/3-structures/|3|2|0|
GSS|galaxyspiralsmall|ui/3-structures/|3|2|1|
GSM|galaxyspiralmedium|ui/3-structures/|3|2|2|
GSL|galaxyspirallarge|ui/3-structures/|3|2|3|
GSG|galaxyspiralgiant|ui/3-structures/|3|2|4|
LGG|galacticgroup|ui/3-structures/|3|3|0|
LSC|galacticsupercluster|ui/3-structures/|3|3|1|
LGF|galacticfilament|ui/3-structures/|3|3|2|
LGW|galacticwall|ui/3-structures/|3|3|3|
LUB|universebubble|ui/3-structures/|3|3|4|
GG|gasgiant|ui/4-life/|4|0|0|
AB|asteroidbelt|ui/4-life/|4|0|1|
RP|rockyplanet|ui/4-life/|4|0|2|
HP|habitableplanet|ui/4-life/|4|0|3|
LP|livingplanet|ui/4-life/|4|0|4|5
C0|civ0|ui/4-life/|4|1|0|6
C1|civ1|ui/4-life/|4|1|1|7
C2|civ2|ui/4-life/|4|1|2|8
C3|civ3|ui/4-life/|4|1|3|9
C4|civ4|ui/4-life/|4|1|4|10
EON1|archean|ui/4-life/living/|5|0|0|
EON2|proterozoic|ui/4-life/living/|5|0|1|
EON3|paleozoic|ui/4-life/living/|5|0|2|
EON4|mezozoic|ui/4-life/living/|5|0|3|
EON5|cenozoic|ui/4-life/living/|5|0|4|
C0.0|civ0.0|ui/4-life/civ0/|6|0|0|
C0.1|civ0.1|ui/4-life/civ0/|6|0|1|
C0.2|civ0.2|ui/4-life/civ0/|6|0|2|
C0.3|civ0.3|ui/4-life/civ0/|6|0|3|
C0.4|civ0.4|ui/4-life/civ0/|6|0|4|
C0.5|civ0.5|ui/4-life/civ0/|6|1|0|
C0.6|civ0.6|ui/4-life/civ0/|6|1|1|
C0.7|civ0.7|ui/4-life/civ0/|6|1|2|
C0.8|civ0.8|ui/4-life/civ0/|6|1|3|
C0.9|civ0.9|ui/4-life/civ0/|6|1|4|
C1.0|civ1.0|ui/4-life/civ1/|7|0|0|
C1.1|civ1.1|ui/4-life/civ1/|7|0|1|
C1.2|civ1.2|ui/4-life/civ1/|7|0|2|
C1.3|civ1.3|ui/4-life/civ1/|7|0|3|
C1.4|civ1.4|ui/4-life/civ1/|7|0|4|
C1.5|civ1.5|ui/4-life/civ1/|7|1|0|
C1.6|civ1.6|ui/4-life/civ1/|7|1|1|
C1.7|civ1.7|ui/4-life/civ1/|7|1|2|
C1.8|civ1.8|ui/4-life/civ1/|7|1|3|
C1.9|civ1.9|ui/4-life/civ1/|7|1|4|
C2.0|civ2.0|ui/4-life/civ2/|8|0|0|
C2.1|civ2.1|ui/4-life/civ2/|8|0|1|
C2.2|civ2.2|ui/4-life/civ2/|8|0|2|
C2.3|civ2.3|ui/4-life/civ2/|8|0|3|
C2.4|civ2.4|ui/4-life/civ2/|8|0|4|
C2.5|civ2.5|ui/4-life/civ2/|8|1|0|
C2.6|civ2.6|ui/4-life/civ2/|8|1|1|
C2.7|civ2.7|ui/4-life/civ2/|8|1|2|
C2.8|civ2.8|ui/4-life/civ2/|8|1|3|
C2.9|civ2.9|ui/4-life/civ2/|8|1|4|
C3.0|civ3.0|ui/4-life/civ3/|9|0|0|
C3.1|civ3.1|ui/4-life/civ3/|9|0|1|
C3.2|civ3.2|ui/4-life/civ3/|9|0|2|
C3.3|civ3.3|ui/4-life/civ3/|9|0|3|
C3.4|civ3.4|ui/4-life/civ3/|9|0|4|
C3.5|civ3.5|ui/4-life/civ3/|9|1|0|
C3.6|civ3.6|ui/4-life/civ3/|9|1|1|
C3.7|civ3.7|ui/4-life/civ3/|9|1|2|
C3.8|civ3.8|ui/4-life/civ3/|9|1|3|
C3.9|civ3.9|ui/4-life/civ3/|9|1|4|
C4.0|civ4.0|ui/4-life/civ4/|10|0|0|
C4.1|civ4.1|ui/4-life/civ4/|10|0|1|
C4.2|civ4.2|ui/4-life/civ4/|10|0|2|
C4.3|civ4.3|ui/4-life/civ4/|10|0|3|
C4.4|civ4.4|ui/4-life/civ4/|10|0|4|
+5 -265
View File
@@ -8,7 +8,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.7.exe"
export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.13-129.exe"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
@@ -74,13 +74,13 @@ Remove-Item -Recurse -Force '{temp_dir}'"
name="Android"
platform="Android"
runnable=false
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
include_filter="res://autoload/*.*, *.gd, *.tscn, *.tres, *.json, *.txt, *.png, res://autoload/entitites.txt"
exclude_filter=""
export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.8-124.aab"
export_path="../../Documents/Owad/Owniverse.I/Builds/owniverse.0.6.12-128.aab"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
@@ -110,7 +110,7 @@ architectures/armeabi-v7a=false
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
version/code=124
version/code=129
version/name=""
package/unique_name="com.KIDGameProduction.Owniverse"
package/name="Owniverse"
@@ -295,263 +295,3 @@ permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
[preset.2]
name="macOS"
platform="macOS"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../Sync/Owad/Owniverse.I/Builds/owniverse.II.20260309.dmg"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.2.options]
export/distribution_type=1
binary_format/architecture="universal"
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
application/liquid_glass_icon=""
application/icon=""
application/icon_interpolation=4
application/bundle_identifier="com.KIDGameProduction.Owniverse"
application/signature=""
application/app_category="Games"
application/short_version=""
application/version=""
application/copyright=""
application/copyright_localized={}
application/min_macos_version_x86_64="10.12"
application/min_macos_version_arm64="11.00"
application/export_angle=0
display/high_res=true
shader_baker/enabled=false
application/additional_plist_content=""
xcode/platform_build="14C18"
xcode/sdk_version="13.1"
xcode/sdk_build="22C55"
xcode/sdk_name="macosx13.1"
xcode/xcode_version="1420"
xcode/xcode_build="14C18"
codesign/codesign=3
codesign/installer_identity=""
codesign/apple_team_id=""
codesign/identity=""
codesign/entitlements/custom_file=""
codesign/entitlements/allow_jit_code_execution=false
codesign/entitlements/allow_unsigned_executable_memory=false
codesign/entitlements/allow_dyld_environment_variables=false
codesign/entitlements/disable_library_validation=false
codesign/entitlements/audio_input=false
codesign/entitlements/camera=false
codesign/entitlements/location=false
codesign/entitlements/address_book=false
codesign/entitlements/calendars=false
codesign/entitlements/photos_library=false
codesign/entitlements/apple_events=false
codesign/entitlements/debugging=false
codesign/entitlements/app_sandbox/enabled=false
codesign/entitlements/app_sandbox/network_server=false
codesign/entitlements/app_sandbox/network_client=false
codesign/entitlements/app_sandbox/device_usb=false
codesign/entitlements/app_sandbox/device_bluetooth=false
codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/entitlements/app_sandbox/files_user_selected=0
codesign/entitlements/app_sandbox/helper_executables=[]
codesign/entitlements/additional=""
codesign/custom_options=PackedStringArray()
notarization/notarization=1
privacy/microphone_usage_description=""
privacy/microphone_usage_description_localized={}
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
privacy/location_usage_description=""
privacy/location_usage_description_localized={}
privacy/address_book_usage_description=""
privacy/address_book_usage_description_localized={}
privacy/calendar_usage_description=""
privacy/calendar_usage_description_localized={}
privacy/photos_library_usage_description=""
privacy/photos_library_usage_description_localized={}
privacy/desktop_folder_usage_description=""
privacy/desktop_folder_usage_description_localized={}
privacy/documents_folder_usage_description=""
privacy/documents_folder_usage_description_localized={}
privacy/downloads_folder_usage_description=""
privacy/downloads_folder_usage_description_localized={}
privacy/network_volumes_usage_description=""
privacy/network_volumes_usage_description_localized={}
privacy/removable_volumes_usage_description=""
privacy/removable_volumes_usage_description_localized={}
privacy/tracking_enabled=false
privacy/tracking_domains=PackedStringArray()
privacy/collected_data/name/collected=false
privacy/collected_data/name/linked_to_user=false
privacy/collected_data/name/used_for_tracking=false
privacy/collected_data/name/collection_purposes=0
privacy/collected_data/email_address/collected=false
privacy/collected_data/email_address/linked_to_user=false
privacy/collected_data/email_address/used_for_tracking=false
privacy/collected_data/email_address/collection_purposes=0
privacy/collected_data/phone_number/collected=false
privacy/collected_data/phone_number/linked_to_user=false
privacy/collected_data/phone_number/used_for_tracking=false
privacy/collected_data/phone_number/collection_purposes=0
privacy/collected_data/physical_address/collected=false
privacy/collected_data/physical_address/linked_to_user=false
privacy/collected_data/physical_address/used_for_tracking=false
privacy/collected_data/physical_address/collection_purposes=0
privacy/collected_data/other_contact_info/collected=false
privacy/collected_data/other_contact_info/linked_to_user=false
privacy/collected_data/other_contact_info/used_for_tracking=false
privacy/collected_data/other_contact_info/collection_purposes=0
privacy/collected_data/health/collected=false
privacy/collected_data/health/linked_to_user=false
privacy/collected_data/health/used_for_tracking=false
privacy/collected_data/health/collection_purposes=0
privacy/collected_data/fitness/collected=false
privacy/collected_data/fitness/linked_to_user=false
privacy/collected_data/fitness/used_for_tracking=false
privacy/collected_data/fitness/collection_purposes=0
privacy/collected_data/payment_info/collected=false
privacy/collected_data/payment_info/linked_to_user=false
privacy/collected_data/payment_info/used_for_tracking=false
privacy/collected_data/payment_info/collection_purposes=0
privacy/collected_data/credit_info/collected=false
privacy/collected_data/credit_info/linked_to_user=false
privacy/collected_data/credit_info/used_for_tracking=false
privacy/collected_data/credit_info/collection_purposes=0
privacy/collected_data/other_financial_info/collected=false
privacy/collected_data/other_financial_info/linked_to_user=false
privacy/collected_data/other_financial_info/used_for_tracking=false
privacy/collected_data/other_financial_info/collection_purposes=0
privacy/collected_data/precise_location/collected=false
privacy/collected_data/precise_location/linked_to_user=false
privacy/collected_data/precise_location/used_for_tracking=false
privacy/collected_data/precise_location/collection_purposes=0
privacy/collected_data/coarse_location/collected=false
privacy/collected_data/coarse_location/linked_to_user=false
privacy/collected_data/coarse_location/used_for_tracking=false
privacy/collected_data/coarse_location/collection_purposes=0
privacy/collected_data/sensitive_info/collected=false
privacy/collected_data/sensitive_info/linked_to_user=false
privacy/collected_data/sensitive_info/used_for_tracking=false
privacy/collected_data/sensitive_info/collection_purposes=0
privacy/collected_data/contacts/collected=false
privacy/collected_data/contacts/linked_to_user=false
privacy/collected_data/contacts/used_for_tracking=false
privacy/collected_data/contacts/collection_purposes=0
privacy/collected_data/emails_or_text_messages/collected=false
privacy/collected_data/emails_or_text_messages/linked_to_user=false
privacy/collected_data/emails_or_text_messages/used_for_tracking=false
privacy/collected_data/emails_or_text_messages/collection_purposes=0
privacy/collected_data/photos_or_videos/collected=false
privacy/collected_data/photos_or_videos/linked_to_user=false
privacy/collected_data/photos_or_videos/used_for_tracking=false
privacy/collected_data/photos_or_videos/collection_purposes=0
privacy/collected_data/audio_data/collected=false
privacy/collected_data/audio_data/linked_to_user=false
privacy/collected_data/audio_data/used_for_tracking=false
privacy/collected_data/audio_data/collection_purposes=0
privacy/collected_data/gameplay_content/collected=false
privacy/collected_data/gameplay_content/linked_to_user=false
privacy/collected_data/gameplay_content/used_for_tracking=false
privacy/collected_data/gameplay_content/collection_purposes=0
privacy/collected_data/customer_support/collected=false
privacy/collected_data/customer_support/linked_to_user=false
privacy/collected_data/customer_support/used_for_tracking=false
privacy/collected_data/customer_support/collection_purposes=0
privacy/collected_data/other_user_content/collected=false
privacy/collected_data/other_user_content/linked_to_user=false
privacy/collected_data/other_user_content/used_for_tracking=false
privacy/collected_data/other_user_content/collection_purposes=0
privacy/collected_data/browsing_history/collected=false
privacy/collected_data/browsing_history/linked_to_user=false
privacy/collected_data/browsing_history/used_for_tracking=false
privacy/collected_data/browsing_history/collection_purposes=0
privacy/collected_data/search_history/collected=false
privacy/collected_data/search_history/linked_to_user=false
privacy/collected_data/search_history/used_for_tracking=false
privacy/collected_data/search_history/collection_purposes=0
privacy/collected_data/user_id/collected=false
privacy/collected_data/user_id/linked_to_user=false
privacy/collected_data/user_id/used_for_tracking=false
privacy/collected_data/user_id/collection_purposes=0
privacy/collected_data/device_id/collected=false
privacy/collected_data/device_id/linked_to_user=false
privacy/collected_data/device_id/used_for_tracking=false
privacy/collected_data/device_id/collection_purposes=0
privacy/collected_data/purchase_history/collected=false
privacy/collected_data/purchase_history/linked_to_user=false
privacy/collected_data/purchase_history/used_for_tracking=false
privacy/collected_data/purchase_history/collection_purposes=0
privacy/collected_data/product_interaction/collected=false
privacy/collected_data/product_interaction/linked_to_user=false
privacy/collected_data/product_interaction/used_for_tracking=false
privacy/collected_data/product_interaction/collection_purposes=0
privacy/collected_data/advertising_data/collected=false
privacy/collected_data/advertising_data/linked_to_user=false
privacy/collected_data/advertising_data/used_for_tracking=false
privacy/collected_data/advertising_data/collection_purposes=0
privacy/collected_data/other_usage_data/collected=false
privacy/collected_data/other_usage_data/linked_to_user=false
privacy/collected_data/other_usage_data/used_for_tracking=false
privacy/collected_data/other_usage_data/collection_purposes=0
privacy/collected_data/crash_data/collected=false
privacy/collected_data/crash_data/linked_to_user=false
privacy/collected_data/crash_data/used_for_tracking=false
privacy/collected_data/crash_data/collection_purposes=0
privacy/collected_data/performance_data/collected=false
privacy/collected_data/performance_data/linked_to_user=false
privacy/collected_data/performance_data/used_for_tracking=false
privacy/collected_data/performance_data/collection_purposes=0
privacy/collected_data/other_diagnostic_data/collected=false
privacy/collected_data/other_diagnostic_data/linked_to_user=false
privacy/collected_data/other_diagnostic_data/used_for_tracking=false
privacy/collected_data/other_diagnostic_data/collection_purposes=0
privacy/collected_data/environment_scanning/collected=false
privacy/collected_data/environment_scanning/linked_to_user=false
privacy/collected_data/environment_scanning/used_for_tracking=false
privacy/collected_data/environment_scanning/collection_purposes=0
privacy/collected_data/hands/collected=false
privacy/collected_data/hands/linked_to_user=false
privacy/collected_data/hands/used_for_tracking=false
privacy/collected_data/hands/collection_purposes=0
privacy/collected_data/head/collected=false
privacy/collected_data/head/linked_to_user=false
privacy/collected_data/head/used_for_tracking=false
privacy/collected_data/head/collection_purposes=0
privacy/collected_data/other_data_types/collected=false
privacy/collected_data/other_data_types/linked_to_user=false
privacy/collected_data/other_data_types/used_for_tracking=false
privacy/collected_data/other_data_types/collection_purposes=0
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
pkill -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\"
rm -rf \"{temp_dir}\""
+7 -5
View File
@@ -15,21 +15,23 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application]
config/name="Owniverse"
config/version="0.6.8"
config/version="0.6.13"
run/main_scene="uid://bv384dpmvjv8o"
config/features=PackedStringArray("4.6", "Mobile")
config/icon="res://icon.svg"
boot_splash/show_image=false
config/icon="uid://do5teb1i7uiuw"
config/size/borderless=true
config/stretch_mode=0
[autoload]
Global="*res://Autoload/Global.gd"
SaveManager="*res://Autoload/SaveManager.gd"
Global="*uid://5xb12usvrifm"
SaveManager="*uid://ul0srjc4gcgg"
[display]
window/size/viewport_width=1080
window/size/viewport_height=1920
window/size/borderless=true
window/size/extend_to_title=true
window/stretch/mode="viewport"
window/handheld/orientation=1
+26 -27
View File
@@ -2,7 +2,6 @@ extends SceneTree
func _init():
#print("Testing SaveManager...")
# Instantiate Global manually
var global_script = load("res://Autoload/Global.gd")
var global_instance = global_script.new()
@@ -20,37 +19,37 @@ func _init():
# Workaround: I'll just copy the logic I want to test.
var data = global_instance.Owniverse
#print("Data to save: ", data)
# var data = global_instance.Owniverse
# #print("Data to save: ", data)
var filename = "user://test_save_check.dat"
var password = "test"
# var filename = "user://test_save_check.dat"
# var password = "test"
var file = FileAccess.open_encrypted_with_pass(filename, FileAccess.WRITE, password)
if file == null:
print("Error opening file for write: ", FileAccess.get_open_error())
quit(1)
return
# var file = FileAccess.open_encrypted_with_pass(filename, FileAccess.WRITE, password)
# if file == null:
# print("Error opening file for write: ", FileAccess.get_open_error())
# quit(1)
# return
#print("Saving...")
file.store_var(data)
file.close()
# #print("Saving...")
# file.store_var(data)
# file.close()
#print("Loading...")
file = FileAccess.open_encrypted_with_pass(filename, FileAccess.READ, password)
if file == null:
printerr("Error opening file for read")
quit(1)
return
# #print("Loading...")
# file = FileAccess.open_encrypted_with_pass(filename, FileAccess.READ, password)
# if file == null:
# printerr("Error opening file for read")
# quit(1)
# return
var loaded_data = file.get_var()
#print("Loaded data: ", loaded_data)
# var loaded_data = file.get_var()
# #print("Loaded data: ", loaded_data)
if str(data) == str(loaded_data):
print("SUCCESS: Data matches.")
else:
printerr("FAILURE: Data mismatch.")
print("Original: ", data)
print("Loaded: ", loaded_data)
# if str(data) == str(loaded_data):
# print("SUCCESS: Data matches.")
# else:
# printerr("FAILURE: Data mismatch.")
# print("Original: ", data)
# print("Loaded: ", loaded_data)
quit()
+12 -21
View File
@@ -2,10 +2,9 @@ extends Node2D
@export_group("Visual Settings")
@export var STARRY_SKY_LAYER: PackedScene
@export var Star_Count: int = 2000: set = set_star_count
@export var Star_Count: int = 2000
@export var Background_Image_Size: Vector2 = Vector2(1080, 1920):
set = set_Background_Image_Size
@export var Background_Image_Size: Vector2 = Vector2(1080, 1920)
@export var Background_Layers: Array [StarrySkyLayer]
var Stars_by_Layers: Dictionary = {}
@@ -59,10 +58,11 @@ func _ready() -> void:
initiate_layers()
randomize_parallax()
generate_layers()
randomize_parallax(0)
func _process(delta: float) -> void:
if randi_range(0, 1000) == 0:
randomize_parallax()
#func _process(delta: float) -> void:
#if randi_range(0, 1000) == 0:
#randomize_parallax()
func _draw() -> void:
draw_rect(Rect2(Vector2.ZERO, Background_Image_Size), BACKGROUND_COLOR)
@@ -71,8 +71,8 @@ func generate_layers():
var max_rnd_seed = STAR_COLOR_DISTRIBUTION[-1][0]
for ind1 in range(Star_Count):
var star_coords = Vector2(randi_range(0, Background_Image_Size.x),
randi_range(0, Background_Image_Size.y))
var star_coords = Vector2(randf_range(0, Background_Image_Size.x),
randf_range(0, Background_Image_Size.y))
var rnd_seed = randi_range(0, max_rnd_seed)
for item:Array in STAR_COLOR_DISTRIBUTION:
var item_seed = item[0]
@@ -94,10 +94,12 @@ func initiate_layers():
var new_star_layer:StarrySkyLayer = STARRY_SKY_LAYER.instantiate()
add_child(new_star_layer)
new_star_layer.Background_Image_Size = Background_Image_Size
#new_star_layer.autoscroll = (ind1 + 1) * DEFAULT_AUTOSCROL
Background_Layers.append(new_star_layer)
func randomize_parallax():
func randomize_parallax(chance: int = 120):
if randi_range(0, chance) != 0:
return
var x_offset = 0
var y_offset = 0
if _random_sign() == 1:
@@ -119,14 +121,3 @@ func _random_sign() -> int:
return [1, -1].pick_random()
#endregion
#region Сеттеры для автоматического обновления
func set_Background_Image_Size(value: Vector2):
Background_Image_Size = value
queue_redraw()
func set_star_count(value: int):
Star_Count = value
queue_redraw()
#endregion
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://icbk3la71t7h"]
[gd_scene format=3 uid="uid://icbk3la71t7h"]
[ext_resource type="Script" uid="uid://bq7xkdvq4iejn" path="res://World/Background/starry_sky_layer.gd" id="1_st4ay"]
[ext_resource type="Script" uid="uid://bq7xkdvq4iejn" path="res://world/Background/starry_sky_layer.gd" id="1_st4ay"]
[node name="StarrySkyLayer" type="Parallax2D"]
scroll_offset = Vector2(1080, 1920)
+99
View File
@@ -0,0 +1,99 @@
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 product_per_year_type: String = ""
var product_per_year_amount: float = 0.0
var voids: int
var output_or: Dictionary = {}
var output_and: Dictionary = {}
var destroy_level: int
var degradation: Dictionary = {}
var planets: Dictionary = {}
var count_as: String
var group_as: String
var event_group: String
var space_bonus: float
var civ_bonus: float
var claim: String
var amount: float = 0.0
func init_entity(values: Dictionary) -> void:
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)
for key in life_product.keys():
product_per_year_type = key
product_per_year_amount = life_product[key] / lifespan if lifespan != 0 else 0
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
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 = {}
var first_split = source_line.split("&")
for elem in first_split:
var second_split = elem.split(":")
if len(second_split) == 2:
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
+1
View File
@@ -0,0 +1 @@
uid://tvj1grut2p4x
+205 -14
View File
@@ -1,23 +1,214 @@
extends Node
class_name Owniverse
var g_datetime: float = 0
var g_speed: int = 1
var g_speed_in_years = 1
func add_time_delta(delta) -> float:
var year_delta:float = delta * g_speed_in_years
signal unlock_item(item_id: String)
# all ownivewrse activity should be called here
var current_year: float = 0
var current_speed: int = 1
var current_speed_in_years:int = 1
var entities: Dictionary[String, OwniverseEntity] = {}
var entity_groups: Dictionary[String, Array] = {}
var entity_event_groups: Dictionary[String, Array] = {}
var items_to_update: Dictionary[String, float] = {}
var auto_production: Array = []
var locked_entities: Array = []
var cumulative_amount: Dictionary[String, float] = {}
var current_amount: Dictionary[String, float] = {}
var batch_count: int = 40
var entity_batches = {}
func cycle(year_delta: float) -> void:
# all owniverse activity should be called here
_auto_production(year_delta)
_entity_evolution(year_delta)
g_datetime += year_delta
return g_datetime
_check_locked_items()
#print(_get_distribution(current_amount))
#region auto production and evolution
func _auto_production(year_delta: float) -> void:
var cycle_production = {"S": 0.0, "H": 0.0}
for entity: OwniverseEntity in auto_production:
if current_amount[entity.id] == 0:
continue
cycle_production[entity.product_per_year_type] += \
current_amount[entity.id] * entity.product_per_year_amount * year_delta
for item in cycle_production:
_count_amount(item, cycle_production[item])
func _entity_evolution(year_delta: float) -> void:
pass
func _get_distribution(source: Dictionary) -> Dictionary:
var distribution: Dictionary = {}
var total: float = 0
for id in source:
if source[id] != 0:
total += source[id]
distribution[id] = source[id]
for id in distribution:
distribution[id] /= total
return distribution
#endregion
#region Production
func produce(item_id: String, amount: float) -> void:
var entity: OwniverseEntity = entities[item_id]
var entity_transaction = {}
for elem in entity.cost:
if current_amount[elem] < amount * entity.cost[elem]:
return
if entity.cost[elem] == 0: continue
entity_transaction[elem] = -amount * entity.cost[elem]
for elem in entity_transaction:
_process_enitity(elem, entity_transaction[elem])
_process_enitity(item_id, amount)
func automated_production(_delta: float) -> void:
for entity_id in auto_production:
var entity = entities[entity_id]
var amount_to_produce = int(entity.amount * entity.product_per_year_amount * _delta)
func get_available_to_produce(item_id: String) -> float:
var entity: OwniverseEntity = entities[item_id]
if entity.cost == {}: return 0
var amount: float = 1E50
for elem in entity.cost:
amount = min(floorf(current_amount[elem] / entity.cost[elem]), amount)
return amount
# add to all lists
func _process_enitity(entity_id: String, amount: float) -> void:
if amount == 0: return
_count_amount(entity_id, amount)
func _count_amount(entity_id: String, amount: float) -> void:
if amount == 0: return
current_amount[entity_id] += amount
var entity: OwniverseEntity = entities[entity_id]
if entity.group_as != "":
current_amount[entity.group_as] += amount
if amount < 0: return
cumulative_amount[entity_id] += amount
if entity.group_as != "":
cumulative_amount[entity.group_as] += amount
items_to_update[entity_id] = current_amount[entity_id]
func _check_locked_items() -> void:
for entity:OwniverseEntity in locked_entities:
for elem in entity.unlock:
if cumulative_amount[elem] < entity.unlock[elem]:
continue
#print(entity.id, " ", elem, ":", entity.unlock[elem])
unlock_item.emit(entity.id)
locked_entities.erase(entity)
return # SIC!
#endregion
#region Time
func add_time_delta(delta) -> float:
var year_delta: float = delta * current_speed_in_years
current_year += year_delta
return current_year
func change_speed(delta: int) -> int:
g_speed = clamp(g_speed + delta, 1, Global.SPEED_LIMIT)
g_speed_in_years = pow(10, g_speed-1)
return g_speed
current_speed = clamp(current_speed + delta, 1, Global.SPEED_LIMIT)
current_speed_in_years = pow(10, current_speed - 1)
return current_speed
#endregion
func hello():
print("ello")
#region Init save load routines
func load_data() -> bool:
var is_succesfull = false
var game_data: Dictionary = SaveManager.load_data("owniverse", "qwerty")
if game_data == {}:
return false
if !game_data.has_all(["cumulative_amount", "current_amount", "entity_batches"]):
return false
entity_batches = game_data["entity_batches"]
cumulative_amount = game_data["cumulative_amount"]
current_amount = game_data["current_amount"]
for item in current_amount:
items_to_update[item] = current_amount[item]
return true
func save_data() -> void:
var game_data: Dictionary = {}
game_data["cumulative_amount"] = cumulative_amount
game_data["current_amount"] = current_amount
game_data["entity_batches"] = entity_batches
SaveManager.save_data("owniverse", "qwerty", game_data)
func init_enitities() -> void:
for entity_id in Global.OwniverseEntities:
var entity = OwniverseEntity.new()
entity.init_entity(Global.OwniverseEntities[entity_id])
entities[entity_id] = entity
current_amount[entity_id] = 0
cumulative_amount[entity_id] = 0
if entity.group_as != "":
current_amount[entity.group_as] = 0
cumulative_amount[entity.group_as] = 0
if entity.unlock != {}:
locked_entities.append(entity)
if entity.product_per_year_type != "":
auto_production.append(entity)
# groups
if entity.group_as != "":
if !entity_groups.has(entity.group_as):
entity_groups[entity.group_as] = []
entity_groups[entity.group_as].append(entity_id)
if entity.event_group != "":
if !entity_event_groups.has(entity.event_group):
entity_event_groups[entity.event_group] = []
entity_event_groups[entity.event_group].append(entity_id)
#if entity.event_group != "":
#entity_event_groups.append(entity.id)
print(entity_groups)
print(entity_event_groups)
#endregion
BIN
View File
Binary file not shown.
Binary file not shown.
+190 -134
View File
@@ -1,53 +1,58 @@
[gd_scene format=3 uid="uid://bv384dpmvjv8o"]
[ext_resource type="Script" uid="uid://d2wrwichuoncd" path="res://World/Background/background.gd" id="1_fj7yv"]
[ext_resource type="PackedScene" uid="uid://icbk3la71t7h" path="res://World/Background/starry_sky_layer.tscn" id="3_aqk2v"]
[ext_resource type="Script" uid="uid://iiva6x8uo0f2" path="res://Stage/stage.gd" id="3_bh8nc"]
[ext_resource type="Texture2D" uid="uid://5f80g4i46ycl" path="res://UI/TopMenu/Buttons/button.burger.normal.png" id="4_2u3nc"]
[ext_resource type="Texture2D" uid="uid://caia36a08wlqs" path="res://UI/TopMenu/Buttons/button.burger.pressed.png" id="5_2u3nc"]
[ext_resource type="Script" uid="uid://xte4iwvipeve" path="res://command_processor.gd" id="5_036b0"]
[ext_resource type="Texture2D" uid="uid://cjcchycx7biyl" path="res://UI/TopMenu/Time&Speed/TimeX.png" id="6_ikiii"]
[ext_resource type="FontFile" uid="uid://d3k1ddvv0rmhs" path="res://fonts/Roboto_Condensed/RobotoCondensed-Light.ttf" id="6_wse8f"]
[ext_resource type="FontFile" uid="uid://dtyi81a0phumr" path="res://fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf" id="7_ic0uy"]
[ext_resource type="Texture2D" uid="uid://davmv5mwt3mo1" path="res://UI/TopMenu/Time&Speed/speed.png" id="8_2u3nc"]
[ext_resource type="Texture2D" uid="uid://cnjtnggw5ccq3" path="res://UI/TopMenu/Time&Speed/Time1.png" id="8_cbp6q"]
[ext_resource type="FontFile" uid="uid://8s0fv3gfj317" path="res://fonts/Roboto_Condensed/RobotoCondensed-BoldItalic.ttf" id="8_k3n1d"]
[ext_resource type="FontFile" uid="uid://derqj4pbwtae6" path="res://fonts/Roboto_Condensed/RobotoCondensed-Italic.ttf" id="9_2o6r5"]
[ext_resource type="Texture2D" uid="uid://rmdsdkck0vst" path="res://UI/TopMenu/Buttons/buton.report.normal.png" id="9_26xuy"]
[ext_resource type="Texture2D" uid="uid://dbhkuw2jshyoh" path="res://UI/TopMenu/Buttons/buton.report.pressed.png" id="10_bc84e"]
[ext_resource type="Texture2D" uid="uid://dgkmobpfbbffa" path="res://UI/Pages/Forces.en.png" id="13_il2jm"]
[ext_resource type="Texture2D" uid="uid://i43jaaejvh5f" path="res://UI/Indicators/Energy/Energy.png" id="16_udxuc"]
[ext_resource type="Texture2D" uid="uid://cvc1stj3hoax5" path="res://UI/Indicators/Density/Density.png" id="17_ikiii"]
[ext_resource type="Texture2D" uid="uid://bef36h52n7lxb" path="res://UI/Indicators/Energy/border-energy.png" id="18_mc2jv"]
[ext_resource type="Texture2D" uid="uid://blq0anccuu387" path="res://UI/Pages/Resources.en.png" id="18_wjb0r"]
[ext_resource type="Texture2D" uid="uid://38fl8ovnubh8" path="res://UI/Pages/Stars.en.png" id="20_mc2jv"]
[ext_resource type="Texture2D" uid="uid://bm8ae1ffv7xq5" path="res://UI/Indicators/Density/DensityPointer.png" id="20_wjb0r"]
[ext_resource type="Texture2D" uid="uid://df2nus1pmcc67" path="res://UI/Indicators/Density/DensityCrunch.png" id="21_4h6ng"]
[ext_resource type="Texture2D" uid="uid://cbi24bwo70nk" path="res://UI/Pages/Structures.en.png" id="21_bo7i5"]
[ext_resource type="Texture2D" uid="uid://bpff5o5oa4wag" path="res://UI/Pages/Planets.en.png" id="22_4h6ng"]
[ext_resource type="Texture2D" uid="uid://bbk74pjqgxe32" path="res://UI/Indicators/Density/DensityRip.png" id="22_o3ebs"]
[ext_resource type="Texture2D" uid="uid://ysbavtgmq7me" path="res://UI/Indicators/Explosiveness/Explosiveness.png" id="24_qktwf"]
[ext_resource type="Texture2D" uid="uid://sry5js57vds4" path="res://UI/Indicators/Burnability/BurnabilityPointer.png" id="25_bh8nc"]
[ext_resource type="Texture2D" uid="uid://dbcmaot2c3tg5" path="res://UI/Indicators/Burnability/Burnability.png" id="27_jjr1n"]
[ext_resource type="Texture2D" uid="uid://bbint5cvwtrou" path="res://UI/Indicators/Explosiveness/ExplosivenessPointer.png" id="27_qktwf"]
[ext_resource type="PackedScene" uid="uid://dg15dpxiepicb" path="res://UI/Border/border.tscn" id="28_o3ebs"]
[ext_resource type="Texture2D" uid="uid://cfttpatxe6k2u" path="res://UI/Indicators/Aggression/Aggression.png" id="30_gggvi"]
[ext_resource type="Texture2D" uid="uid://dm87u2ku8wec8" path="res://UI/Indicators/Aggression/AggressionPointer.png" id="31_w44yn"]
[ext_resource type="Texture2D" uid="uid://bgjcnwl61nu5i" path="res://UI/Indicators/Trends/TrendBar1.png" id="33_w44yn"]
[ext_resource type="Texture2D" uid="uid://caiyhk6vv53iu" path="res://UI/Indicators/Trends/TrendBar2.png" id="34_g1i3r"]
[ext_resource type="Texture2D" uid="uid://dspjxpbpwq52k" path="res://UI/Indicators/Trends/TrendIcon2.png" id="35_my276"]
[ext_resource type="Texture2D" uid="uid://dxutg6k0ck226" path="res://UI/Indicators/Trends/TrendBar3.png" id="36_jas3d"]
[ext_resource type="Texture2D" uid="uid://bp72c0myjnl61" path="res://UI/Indicators/Trends/TrendIcon3.png" id="37_7htu6"]
[ext_resource type="Texture2D" uid="uid://qrjhpvw8ou3o" path="res://UI/Indicators/Trends/TrendBar4.png" id="38_7qk3m"]
[ext_resource type="Texture2D" uid="uid://bwqmmmg6w7dho" path="res://UI/Indicators/Trends/TrendIcon4.png" id="39_xpnt2"]
[ext_resource type="Texture2D" uid="uid://4tpbmpe6tbk0" path="res://UI/Indicators/Trends/TrendBar5.png" id="40_ruyqm"]
[ext_resource type="Texture2D" uid="uid://cnf3ml5gj2cvl" path="res://UI/Indicators/Trends/TrendIcon5.png" id="41_fnoqa"]
[ext_resource type="Script" uid="uid://d2wrwichuoncd" path="res://world/Background/background.gd" id="1_ifjjt"]
[ext_resource type="PackedScene" uid="uid://icbk3la71t7h" path="res://world/Background/starry_sky_layer.tscn" id="2_behgl"]
[ext_resource type="Script" uid="uid://iiva6x8uo0f2" path="res://stage/stage.gd" id="3_k83x5"]
[ext_resource type="Texture2D" uid="uid://5f80g4i46ycl" path="res://ui/topmenu/buttons/button.burger.normal.png" id="4_b8tmp"]
[ext_resource type="Texture2D" uid="uid://caia36a08wlqs" path="res://ui/topmenu/buttons/button.burger.pressed.png" id="5_en1oy"]
[ext_resource type="Texture2D" uid="uid://cjcchycx7biyl" path="res://ui/topmenu/time&speed/timex.png" id="6_pfbnl"]
[ext_resource type="FontFile" uid="uid://dtyi81a0phumr" path="res://fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf" id="7_gwdna"]
[ext_resource type="Texture2D" uid="uid://davmv5mwt3mo1" path="res://ui/topmenu/time&speed/speed.png" id="8_h4vgh"]
[ext_resource type="Texture2D" uid="uid://cnjtnggw5ccq3" path="res://ui/topmenu/time&speed/time1.png" id="9_kvuv0"]
[ext_resource type="Texture2D" uid="uid://rmdsdkck0vst" path="res://ui/topmenu/buttons/buton.report.normal.png" id="10_sg5c8"]
[ext_resource type="Texture2D" uid="uid://dbhkuw2jshyoh" path="res://ui/topmenu/buttons/buton.report.pressed.png" id="11_vu62d"]
[ext_resource type="PackedScene" uid="uid://dg15dpxiepicb" path="res://ui/border/border.tscn" id="12_58wjt"]
[ext_resource type="Texture2D" uid="uid://dgkmobpfbbffa" path="res://ui/pages/forces.en.png" id="13_dp8ul"]
[ext_resource type="FontFile" uid="uid://d3k1ddvv0rmhs" path="res://fonts/Roboto_Condensed/RobotoCondensed-Light.ttf" id="14_o7xkw"]
[ext_resource type="FontFile" uid="uid://8s0fv3gfj317" path="res://fonts/Roboto_Condensed/RobotoCondensed-BoldItalic.ttf" id="15_bfrib"]
[ext_resource type="FontFile" uid="uid://derqj4pbwtae6" path="res://fonts/Roboto_Condensed/RobotoCondensed-Italic.ttf" id="16_mip0j"]
[ext_resource type="PackedScene" uid="uid://dwneq2qq5p8ek" path="res://ui/actions/actions.tscn" id="17_ifjjt"]
[ext_resource type="Texture2D" uid="uid://i43jaaejvh5f" path="res://ui/indicators/energy/energy.png" id="17_l6135"]
[ext_resource type="Texture2D" uid="uid://bef36h52n7lxb" path="res://ui/indicators/energy/border-energy.png" id="18_uvuuk"]
[ext_resource type="Texture2D" uid="uid://blq0anccuu387" path="res://ui/pages/resources.en.png" id="19_an6vj"]
[ext_resource type="Texture2D" uid="uid://cvc1stj3hoax5" path="res://ui/indicators/density/density.png" id="20_s3ar6"]
[ext_resource type="Texture2D" uid="uid://df2nus1pmcc67" path="res://ui/indicators/density/density_crunch.png" id="21_d36xh"]
[ext_resource type="Texture2D" uid="uid://bbk74pjqgxe32" path="res://ui/indicators/density/density_rip.png" id="22_vu83j"]
[ext_resource type="Texture2D" uid="uid://bm8ae1ffv7xq5" path="res://ui/indicators/density/density_pointer.png" id="23_bcq5b"]
[ext_resource type="Texture2D" uid="uid://dbcmaot2c3tg5" path="res://ui/indicators/burnability/burnability.png" id="24_o2i0n"]
[ext_resource type="Texture2D" uid="uid://sry5js57vds4" path="res://ui/indicators/burnability/burnability_pointer.png" id="25_rur7c"]
[ext_resource type="Texture2D" uid="uid://38fl8ovnubh8" path="res://ui/pages/stars.en.png" id="26_y1rwn"]
[ext_resource type="Texture2D" uid="uid://ysbavtgmq7me" path="res://ui/indicators/explosiveness/explosiveness.png" id="27_4rajv"]
[ext_resource type="Texture2D" uid="uid://bbint5cvwtrou" path="res://ui/indicators/explosiveness/explosivenessPointer.png" id="28_upe80"]
[ext_resource type="Texture2D" uid="uid://cbi24bwo70nk" path="res://ui/pages/structures.en.png" id="29_0drd1"]
[ext_resource type="Texture2D" uid="uid://cfttpatxe6k2u" path="res://ui/indicators/aggression/aggression.png" id="30_bemti"]
[ext_resource type="Texture2D" uid="uid://dm87u2ku8wec8" path="res://ui/indicators/aggression/aggression_pointer.png" id="31_x6tg5"]
[ext_resource type="Texture2D" uid="uid://bpff5o5oa4wag" path="res://ui/pages/planets.en.png" id="32_xitqn"]
[ext_resource type="Texture2D" uid="uid://bgjcnwl61nu5i" path="res://ui/indicators/trends/trend_bar1.png" id="33_fprte"]
[ext_resource type="Texture2D" uid="uid://caiyhk6vv53iu" path="res://ui/indicators/trends/trend_bar2.png" id="34_lnsl1"]
[ext_resource type="Texture2D" uid="uid://dspjxpbpwq52k" path="res://ui/indicators/trends/trend_icon_2.png" id="35_1u5dl"]
[ext_resource type="Texture2D" uid="uid://dxutg6k0ck226" path="res://ui/indicators/trends/trend_bar3.png" id="36_v15xm"]
[ext_resource type="Texture2D" uid="uid://bp72c0myjnl61" path="res://ui/indicators/trends/trend_icon_3.png" id="37_vjhti"]
[ext_resource type="Texture2D" uid="uid://qrjhpvw8ou3o" path="res://ui/indicators/trends/trend_bar4.png" id="38_ctwlg"]
[ext_resource type="Texture2D" uid="uid://bwqmmmg6w7dho" path="res://ui/indicators/trends/trend_icon_4.png" id="39_jms70"]
[ext_resource type="Texture2D" uid="uid://4tpbmpe6tbk0" path="res://ui/indicators/trends/trend_bar5.png" id="40_50rdj"]
[ext_resource type="Texture2D" uid="uid://cnf3ml5gj2cvl" path="res://ui/indicators/trends/trend_icon_5.png" id="41_mi6gc"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ifjjt"]
[node name="World" type="Node2D" unique_id=1392592456]
[node name="Background" type="Node2D" parent="." unique_id=1988758765]
script = ExtResource("1_fj7yv")
STARRY_SKY_LAYER = ExtResource("3_aqk2v")
script = ExtResource("1_ifjjt")
STARRY_SKY_LAYER = ExtResource("2_behgl")
[node name="Timer" type="Timer" parent="Background" unique_id=188844703]
autostart = true
[node name="Stage" type="Control" parent="." unique_id=1485959841]
custom_minimum_size = Vector2(1080, 1920)
@@ -57,7 +62,7 @@ offset_right = 40.0
offset_bottom = 40.0
size_flags_horizontal = 4
size_flags_vertical = 3
script = ExtResource("3_bh8nc")
script = ExtResource("3_k83x5")
[node name="StageRows" type="VBoxContainer" parent="Stage" unique_id=1878643860]
layout_mode = 1
@@ -80,8 +85,8 @@ custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture_normal = ExtResource("4_2u3nc")
texture_pressed = ExtResource("5_2u3nc")
texture_normal = ExtResource("4_b8tmp")
texture_pressed = ExtResource("5_en1oy")
[node name="LeftSeparator" type="Panel" parent="Stage/StageRows/TopMenu" unique_id=305575734]
self_modulate = Color(1, 1, 1, 0)
@@ -93,7 +98,7 @@ custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture_normal = ExtResource("6_ikiii")
texture_normal = ExtResource("6_pfbnl")
[node name="InfoPanel" type="VBoxContainer" parent="Stage/StageRows/TopMenu" unique_id=397773008]
custom_minimum_size = Vector2(440, 0)
@@ -104,7 +109,7 @@ size_flags_horizontal = 3
custom_minimum_size = Vector2(240, 72)
layout_mode = 2
theme_override_colors/font_color = Color(0.6, 0.6, 0.6, 1)
theme_override_fonts/font = ExtResource("7_ic0uy")
theme_override_fonts/font = ExtResource("7_gwdna")
theme_override_font_sizes/font_size = 48
text = "2025.11.16 09:23"
horizontal_alignment = 1
@@ -117,49 +122,49 @@ size_flags_vertical = 4
[node name="Speed1" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=2128881914]
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed2" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=1532494238]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed3" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=180180843]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed4" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=847300920]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed5" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=636141728]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed6" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=988232766]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed7" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=1241111770]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="Speed8" type="TextureRect" parent="Stage/StageRows/TopMenu/InfoPanel/Speed" unique_id=220922349]
visible = false
layout_mode = 2
texture = ExtResource("8_2u3nc")
texture = ExtResource("8_h4vgh")
[node name="TimePlus" type="TextureButton" parent="Stage/StageRows/TopMenu" unique_id=2128537958]
custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture_normal = ExtResource("8_cbp6q")
texture_normal = ExtResource("9_kvuv0")
[node name="RightSeparator" type="Panel" parent="Stage/StageRows/TopMenu" unique_id=1481873764]
self_modulate = Color(1, 1, 1, 0)
@@ -171,10 +176,10 @@ custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture_normal = ExtResource("9_26xuy")
texture_pressed = ExtResource("10_bc84e")
texture_normal = ExtResource("10_sg5c8")
texture_pressed = ExtResource("11_vu62d")
[node name="TopMenuBorder" parent="Stage/StageRows" unique_id=476233375 instance=ExtResource("28_o3ebs")]
[node name="TopMenuBorder" parent="Stage/StageRows" unique_id=476233375 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="PageScroller" type="ScrollContainer" parent="Stage/StageRows" unique_id=1772137283]
@@ -189,6 +194,7 @@ theme_override_constants/separation = 0
[node name="ForcePage" type="VBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer" unique_id=71643627]
layout_mode = 2
theme_override_constants/separation = 0
[node name="PageHeader" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=2102307933]
custom_minimum_size = Vector2(0, 128)
@@ -204,42 +210,50 @@ layout_mode = 2
[node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage/PageHeader" unique_id=1295272502]
custom_minimum_size = Vector2(440, 64)
layout_mode = 2
texture = ExtResource("13_il2jm")
texture = ExtResource("13_dp8ul")
[node name="RighIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage/PageHeader" unique_id=504419468]
custom_minimum_size = Vector2(316, 64)
layout_mode = 2
[node name="PageHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=1411786120 instance=ExtResource("28_o3ebs")]
[node name="PageHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=1411786120 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=1934400572]
custom_minimum_size = Vector2(0, 670)
custom_minimum_size = Vector2(0, 384)
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("6_wse8f")
theme_override_fonts/bold_font = ExtResource("7_ic0uy")
theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d")
theme_override_fonts/italics_font = ExtResource("9_2o6r5")
theme_override_fonts/normal_font = ExtResource("14_o7xkw")
theme_override_fonts/bold_font = ExtResource("7_gwdna")
theme_override_fonts/bold_italics_font = ExtResource("15_bfrib")
theme_override_fonts/italics_font = ExtResource("16_mip0j")
theme_override_font_sizes/normal_font_size = 42
theme_override_font_sizes/bold_font_size = 54
theme_override_font_sizes/bold_italics_font_size = 42
theme_override_font_sizes/italics_font_size = 42
theme_override_font_sizes/mono_font_size = 42
bbcode_enabled = true
text = "Forces"
fit_content = true
horizontal_alignment = 1
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=519355296 instance=ExtResource("28_o3ebs")]
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=519355296 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Forces" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=2057408842]
custom_minimum_size = Vector2(1080, 1024)
layout_mode = 2
mouse_filter = 1
[node name="ActionBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=101392860 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Panel" type="PanelContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/ForcePage" unique_id=609868831]
custom_minimum_size = Vector2(0, 216)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ifjjt")
[node name="ResourcePage" type="VBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer" unique_id=1417647206]
layout_mode = 2
theme_override_constants/separation = 0
[node name="ResourceHeader" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1468901953]
custom_minimum_size = Vector2(0, 128)
@@ -259,19 +273,19 @@ offset_left = 2.0
offset_top = 34.0
offset_right = 318.0
offset_bottom = 94.0
texture = ExtResource("16_udxuc")
texture = ExtResource("17_l6135")
[node name="Energy" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/EnergyIndicator" unique_id=1283004804]
layout_mode = 0
offset_top = 32.0
offset_right = 320.0
offset_bottom = 96.0
texture = ExtResource("18_mc2jv")
texture = ExtResource("18_uvuuk")
[node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader" unique_id=1086493812]
custom_minimum_size = Vector2(440, 64)
layout_mode = 2
texture = ExtResource("18_wjb0r")
texture = ExtResource("19_an6vj")
[node name="DensityIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader" unique_id=956598060]
custom_minimum_size = Vector2(320, 128)
@@ -291,7 +305,7 @@ offset_right = 158.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("17_ikiii")
texture = ExtResource("20_s3ar6")
stretch_mode = 3
[node name="DensityCrunch" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/DensityIndicator" unique_id=473304616]
@@ -309,7 +323,7 @@ offset_right = 158.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("21_4h6ng")
texture = ExtResource("21_d36xh")
stretch_mode = 3
[node name="DensityRip" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/DensityIndicator" unique_id=1255957268]
@@ -327,7 +341,7 @@ offset_right = 158.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("22_o3ebs")
texture = ExtResource("22_vu83j")
stretch_mode = 3
[node name="Pointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/ResourceHeader/DensityIndicator" unique_id=1087356985]
@@ -343,29 +357,28 @@ offset_right = 20.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("20_wjb0r")
texture = ExtResource("23_bcq5b")
[node name="ResourceHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=2672876 instance=ExtResource("28_o3ebs")]
[node name="ResourceHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=2672876 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1171833]
custom_minimum_size = Vector2(0, 670)
custom_minimum_size = Vector2(0, 384)
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("6_wse8f")
theme_override_fonts/bold_font = ExtResource("7_ic0uy")
theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d")
theme_override_fonts/italics_font = ExtResource("9_2o6r5")
theme_override_fonts/normal_font = ExtResource("14_o7xkw")
theme_override_fonts/bold_font = ExtResource("7_gwdna")
theme_override_fonts/bold_italics_font = ExtResource("15_bfrib")
theme_override_fonts/italics_font = ExtResource("16_mip0j")
theme_override_font_sizes/normal_font_size = 42
theme_override_font_sizes/bold_font_size = 54
theme_override_font_sizes/bold_italics_font_size = 42
theme_override_font_sizes/italics_font_size = 42
theme_override_font_sizes/mono_font_size = 42
bbcode_enabled = true
fit_content = true
horizontal_alignment = 1
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1268799323 instance=ExtResource("28_o3ebs")]
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1268799323 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=206289176]
@@ -375,14 +388,24 @@ layout_mode = 2
[node name="Resources" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/HBoxContainer" unique_id=1538364728]
custom_minimum_size = Vector2(256, 1024)
layout_mode = 2
mouse_filter = 2
[node name="RichTextLabel" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage/HBoxContainer" unique_id=420150583]
layout_mode = 2
size_flags_horizontal = 3
context_menu_enabled = true
[node name="ActionBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1789647912 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Panel" type="PanelContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/ResourcePage" unique_id=1336208519]
custom_minimum_size = Vector2(0, 216)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ifjjt")
[node name="StarPage" type="VBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer" unique_id=270059674]
layout_mode = 2
theme_override_constants/separation = 0
[node name="StarHeader" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=1459928]
custom_minimum_size = Vector2(0, 128)
@@ -408,7 +431,7 @@ offset_right = 158.0
offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("27_jjr1n")
texture = ExtResource("24_o2i0n")
[node name="BurnabilityPointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader/BurnabilityIndicator" unique_id=326702611]
layout_mode = 1
@@ -423,12 +446,12 @@ offset_right = 20.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("25_bh8nc")
texture = ExtResource("25_rur7c")
[node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader" unique_id=1846312458]
custom_minimum_size = Vector2(440, 64)
layout_mode = 2
texture = ExtResource("20_mc2jv")
texture = ExtResource("26_y1rwn")
[node name="ExplosivenessIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader" unique_id=528204117]
custom_minimum_size = Vector2(320, 128)
@@ -447,7 +470,7 @@ offset_right = 158.0
offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("24_qktwf")
texture = ExtResource("27_4rajv")
[node name="ExplosivenessPointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage/StarHeader/ExplosivenessIndicator" unique_id=1486652639]
layout_mode = 1
@@ -462,19 +485,19 @@ offset_right = 20.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("27_qktwf")
texture = ExtResource("28_upe80")
[node name="StarHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=2057421818 instance=ExtResource("28_o3ebs")]
[node name="StarHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=2057421818 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=1195874488]
custom_minimum_size = Vector2(0, 670)
custom_minimum_size = Vector2(0, 384)
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("6_wse8f")
theme_override_fonts/bold_font = ExtResource("7_ic0uy")
theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d")
theme_override_fonts/italics_font = ExtResource("9_2o6r5")
theme_override_fonts/normal_font = ExtResource("14_o7xkw")
theme_override_fonts/bold_font = ExtResource("7_gwdna")
theme_override_fonts/bold_italics_font = ExtResource("15_bfrib")
theme_override_fonts/italics_font = ExtResource("16_mip0j")
theme_override_font_sizes/normal_font_size = 42
theme_override_font_sizes/bold_font_size = 54
theme_override_font_sizes/bold_italics_font_size = 42
@@ -484,15 +507,22 @@ bbcode_enabled = true
text = "Stars"
horizontal_alignment = 1
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=358659431 instance=ExtResource("28_o3ebs")]
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=358659431 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Stars" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=1969457639]
custom_minimum_size = Vector2(1080, 1024)
layout_mode = 2
[node name="ActionBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=136439467 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Actions" parent="Stage/StageRows/PageScroller/HBoxContainer/StarPage" unique_id=503388208 instance=ExtResource("17_ifjjt")]
layout_mode = 2
[node name="StructurePage" type="VBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer" unique_id=435979853]
layout_mode = 2
theme_override_constants/separation = 0
[node name="StructureHeader" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=1291109226]
custom_minimum_size = Vector2(0, 128)
@@ -512,19 +542,19 @@ offset_left = 2.0
offset_top = 34.0
offset_right = 318.0
offset_bottom = 94.0
texture = ExtResource("16_udxuc")
texture = ExtResource("17_l6135")
[node name="Energy" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/EnergyIndicator" unique_id=1417853951]
layout_mode = 0
offset_top = 32.0
offset_right = 320.0
offset_bottom = 96.0
texture = ExtResource("18_mc2jv")
texture = ExtResource("18_uvuuk")
[node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader" unique_id=1038870090]
custom_minimum_size = Vector2(440, 64)
layout_mode = 2
texture = ExtResource("21_bo7i5")
texture = ExtResource("29_0drd1")
[node name="DensityIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader" unique_id=1280030697]
custom_minimum_size = Vector2(320, 128)
@@ -544,7 +574,7 @@ offset_right = 158.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("17_ikiii")
texture = ExtResource("20_s3ar6")
stretch_mode = 3
[node name="DensityCrunch" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" unique_id=1612334015]
@@ -562,7 +592,7 @@ offset_right = 158.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("21_4h6ng")
texture = ExtResource("21_d36xh")
stretch_mode = 3
[node name="DensityRip" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" unique_id=1570489598]
@@ -580,7 +610,7 @@ offset_right = 158.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("22_o3ebs")
texture = ExtResource("22_vu83j")
stretch_mode = 3
[node name="Pointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" unique_id=1090838442]
@@ -596,19 +626,19 @@ offset_right = 20.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("20_wjb0r")
texture = ExtResource("23_bcq5b")
[node name="StructureHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=522613609 instance=ExtResource("28_o3ebs")]
[node name="StructureHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=522613609 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=414749774]
custom_minimum_size = Vector2(0, 670)
custom_minimum_size = Vector2(0, 384)
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("6_wse8f")
theme_override_fonts/bold_font = ExtResource("7_ic0uy")
theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d")
theme_override_fonts/italics_font = ExtResource("9_2o6r5")
theme_override_fonts/normal_font = ExtResource("14_o7xkw")
theme_override_fonts/bold_font = ExtResource("7_gwdna")
theme_override_fonts/bold_italics_font = ExtResource("15_bfrib")
theme_override_fonts/italics_font = ExtResource("16_mip0j")
theme_override_font_sizes/normal_font_size = 42
theme_override_font_sizes/bold_font_size = 54
theme_override_font_sizes/bold_italics_font_size = 42
@@ -618,15 +648,22 @@ bbcode_enabled = true
text = "Structures"
horizontal_alignment = 1
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=342730054 instance=ExtResource("28_o3ebs")]
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=342730054 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Structures" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=1126505300]
custom_minimum_size = Vector2(1080, 1024)
layout_mode = 2
[node name="ActionBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=449208508 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Actions" parent="Stage/StageRows/PageScroller/HBoxContainer/StructurePage" unique_id=1391835556 instance=ExtResource("17_ifjjt")]
layout_mode = 2
[node name="LifePage" type="VBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer" unique_id=1519563846]
layout_mode = 2
theme_override_constants/separation = 0
[node name="LifeHeader" type="HBoxContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=1673431378]
custom_minimum_size = Vector2(0, 128)
@@ -652,7 +689,7 @@ offset_right = 158.0
offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("30_gggvi")
texture = ExtResource("30_bemti")
[node name="AggressionPointer" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/AggressionIndicator" unique_id=1229249560]
layout_mode = 1
@@ -667,12 +704,12 @@ offset_right = 20.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("31_w44yn")
texture = ExtResource("31_x6tg5")
[node name="Header" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader" unique_id=607573422]
custom_minimum_size = Vector2(440, 64)
layout_mode = 2
texture = ExtResource("22_4h6ng")
texture = ExtResource("32_xitqn")
[node name="TrendIndicator" type="TextureButton" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader" unique_id=483731989]
custom_minimum_size = Vector2(320, 128)
@@ -689,67 +726,67 @@ layout_mode = 2
[node name="Trend1" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer" unique_id=1067418872]
layout_mode = 2
texture = ExtResource("33_w44yn")
texture = ExtResource("33_fprte")
[node name="Trend1Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer" unique_id=433344874]
layout_mode = 2
texture = ExtResource("31_w44yn")
texture = ExtResource("31_x6tg5")
[node name="CenterContainer2" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1119046601]
layout_mode = 2
[node name="Trend2" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer2" unique_id=893059409]
layout_mode = 2
texture = ExtResource("34_g1i3r")
texture = ExtResource("34_lnsl1")
[node name="Trend2Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer2" unique_id=1567846635]
layout_mode = 2
texture = ExtResource("35_my276")
texture = ExtResource("35_1u5dl")
[node name="CenterContainer3" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1657283663]
layout_mode = 2
[node name="Trend3" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer3" unique_id=1541892233]
layout_mode = 2
texture = ExtResource("36_jas3d")
texture = ExtResource("36_v15xm")
[node name="Trend3Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer3" unique_id=2131664708]
layout_mode = 2
texture = ExtResource("37_7htu6")
texture = ExtResource("37_vjhti")
[node name="CenterContainer4" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1576749946]
layout_mode = 2
[node name="Trend4" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer4" unique_id=1484921702]
layout_mode = 2
texture = ExtResource("38_7qk3m")
texture = ExtResource("38_ctwlg")
[node name="Trend4Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer4" unique_id=209689041]
layout_mode = 2
texture = ExtResource("39_xpnt2")
texture = ExtResource("39_jms70")
[node name="CenterContainer5" type="CenterContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer" unique_id=1182691919]
layout_mode = 2
[node name="Trend5" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer5" unique_id=873423599]
layout_mode = 2
texture = ExtResource("40_ruyqm")
texture = ExtResource("40_50rdj")
[node name="Trend5Icon" type="TextureRect" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator/HBoxContainer/CenterContainer5" unique_id=1362104530]
layout_mode = 2
texture = ExtResource("41_fnoqa")
texture = ExtResource("41_mi6gc")
[node name="LifeHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=100084430 instance=ExtResource("28_o3ebs")]
[node name="LifeHeaderBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=100084430 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Description" type="RichTextLabel" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=454792539]
custom_minimum_size = Vector2(0, 670)
custom_minimum_size = Vector2(0, 384)
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("6_wse8f")
theme_override_fonts/bold_font = ExtResource("7_ic0uy")
theme_override_fonts/bold_italics_font = ExtResource("8_k3n1d")
theme_override_fonts/italics_font = ExtResource("9_2o6r5")
theme_override_fonts/normal_font = ExtResource("14_o7xkw")
theme_override_fonts/bold_font = ExtResource("7_gwdna")
theme_override_fonts/bold_italics_font = ExtResource("15_bfrib")
theme_override_fonts/italics_font = ExtResource("16_mip0j")
theme_override_font_sizes/normal_font_size = 42
theme_override_font_sizes/bold_font_size = 54
theme_override_font_sizes/bold_italics_font_size = 42
@@ -759,7 +796,7 @@ bbcode_enabled = true
text = "Planets"
horizontal_alignment = 1
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=335602062 instance=ExtResource("28_o3ebs")]
[node name="Border" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=335602062 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Planets" type="Control" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=1203503863]
@@ -820,9 +857,26 @@ offset_top = 512.0
offset_right = 1080.0
offset_bottom = 1024.0
[node name="CommandProcessor" type="Node" parent="." unique_id=2069361293]
script = ExtResource("5_036b0")
[node name="ActionBorder" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=160841192 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="Panel" type="PanelContainer" parent="Stage/StageRows/PageScroller/HBoxContainer/LifePage" unique_id=116394684]
custom_minimum_size = Vector2(0, 216)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ifjjt")
[node name="Border" parent="Stage/StageRows" unique_id=145801370 instance=ExtResource("12_58wjt")]
layout_mode = 2
[node name="ItemAmountUpdate" type="Timer" parent="Stage" unique_id=1953928024]
wait_time = 0.2
autostart = true
[node name="SaveData" type="Timer" parent="Stage" unique_id=1208861837]
wait_time = 5.0
autostart = true
[connection signal="timeout" from="Background/Timer" to="Background" method="randomize_parallax"]
[connection signal="pressed" from="Stage/StageRows/TopMenu/BurgerButton" to="Stage" method="_on_topmenu_button_pressed" binds= ["Burger"]]
[connection signal="pressed" from="Stage/StageRows/TopMenu/TimeMinus" to="Stage" method="_change_speed" binds= [-1]]
[connection signal="pressed" from="Stage/StageRows/TopMenu/TimePlus" to="Stage" method="_change_speed" binds= [1]]
@@ -835,3 +889,5 @@ script = ExtResource("5_036b0")
[connection signal="pressed" from="Stage/StageRows/PageScroller/HBoxContainer/StructurePage/StructureHeader/DensityIndicator" to="Stage" method="_on_indicator_pressed" binds= ["Density", 3]]
[connection signal="pressed" from="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/AggressionIndicator" to="Stage" method="_on_indicator_pressed" binds= ["Aggression", 4]]
[connection signal="pressed" from="Stage/StageRows/PageScroller/HBoxContainer/LifePage/LifeHeader/TrendIndicator" to="Stage" method="_on_indicator_pressed" binds= ["Trends", 4]]
[connection signal="timeout" from="Stage/ItemAmountUpdate" to="Stage" method="set_owniverse_item_value"]
[connection signal="timeout" from="Stage/SaveData" to="Stage" method="_on_save_data"]