Merge pull request 'Feature/evolution' (#1) from feature/evolution into main
Android / android (push) Failing after 39s

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
K
2026-08-19 16:20:56 +00:00
9 changed files with 385 additions and 255 deletions
+55
View File
@@ -0,0 +1,55 @@
name: Android
on:
push:
branches:
- main
jobs:
android:
runs-on: godot
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Godot version
run: |
godot --version
- name: Java version
run: |
java -version
- name: Android SDK
run: |
adb version
- name: Build APK
run: |
mkdir -p build
godot \
--headless \
--path . \
--export-release "Android" \
build/app.apk
- name: Verify APK
run: |
test -f build/app.apk
ls -lh build/app.apk
- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: android-apk
path: build/app.apk
+1 -1
View File
@@ -17,7 +17,7 @@ var OwniverseEntities: Dictionary = {}
var OwniverseItems: Dictionary = {} var OwniverseItems: Dictionary = {}
var Templates: Dictionary = {} var Templates: Dictionary = {}
var batch_count = 40 var batch_count: float = 40.0 # must be even not odd
func get_localized_item_description(item_id: String, item: String) -> String: func get_localized_item_description(item_id: String, item: String) -> String:
+5 -5
View File
@@ -1,7 +1,5 @@
extends Control extends Control
#signal produce_items(item_id: String, amount: int)
const OWNIVERSE_ITEM = preload("uid://d3xjfxwe3w16v") const OWNIVERSE_ITEM = preload("uid://d3xjfxwe3w16v")
const SPEED_TEXTURE_NAME_TEMPLATE = "res://ui/topmenu/time&speed/time%s.png" const SPEED_TEXTURE_NAME_TEMPLATE = "res://ui/topmenu/time&speed/time%s.png"
@@ -98,9 +96,6 @@ func set_owniverse_item_value() -> void:
owniverse.items_to_update = {} owniverse.items_to_update = {}
#func unlock_owniverse_item() -> void:
#pass
#endregion #endregion
func _on_indicator_pressed(indicator_name: String, page: int = 0): func _on_indicator_pressed(indicator_name: String, page: int = 0):
@@ -300,6 +295,11 @@ func _change_speed(delta: int) -> void:
func _on_topmenu_button_pressed(ButtonName) -> void: func _on_topmenu_button_pressed(ButtonName) -> void:
print(ButtonName) print(ButtonName)
#var s: float = 1E15
#var z = 1.0
#for i in range(30):
#print(i, " | ", z, " | ", " | ", s - z)
#z *= 10
func _on_save_data() -> void: func _on_save_data() -> void:
+153 -153
View File
@@ -1,153 +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 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|blastability|space_bonus|civ_bonus|claim
S|1|S:0|S:0||||||||||||||||S||| S|1|S:0|S:0||||||||||||||||S||||
H|1|H:0|H:0||||||||||||||||H||| H|1|H:0|H:0||||||||||||||||H||||
He|1|He:1|||||||||||||||||||| He|1|He:1|||||||||||||||||||||
Met|1|Met:1|||||||||||||||||||| Met|1|Met:1|||||||||||||||||||||
BD|1|BD: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||||| 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||| 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||| 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||| 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||| 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||| 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||| 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||| 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||| HG|1|H:300&SG:1|H:1000||1000|1|900000||||S:9||RHG:1|2||||Star|GiStar||||
RG|1|RG:1|||||||||||||||||||| 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|||| 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|||| 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|||| 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|||| 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|||| HRG|0||||100||10000000||||S:400.||SN^GRB%1|2|||RG|Star|||||
RSG|0||||300||1000000||||S:500||BSN^LGRB%3|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|||| 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||| 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||| 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||| 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||| 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||| 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||| 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||| 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||| 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||||| CBD|0||||0.1||||||||||||BD||||||
WD|1|WD:1|||||||||||||||||||| WD|1|WD:1|||||||||||||||||||||
TWD|0||||0.8||||||||||||WD|Star|Degen||| TWD|0||||0.8||||||||||||WD|Star|Degen||||
SWD|0||||4.8||||||||||||WD|Star|Degen||| SWD|0||||4.8||||||||||||WD|Star|Degen||||
NWD|0||||5||||||||||||WD|Star|Degen||| NWD|0||||5||||||||||||WD|Star|Degen||||
LWD|0||||6.4||||||||||||WD|Star|Degen||| LWD|0||||6.4||||||||||||WD|Star|Degen||||
NS|1|NS:1|||||||||||||||||||| NS|1|NS:1|||||||||||||||||||||
SNS|0||||15||||||||||||NS|Star|Degen||| SNS|0||||15||||||||||||NS|Star|Degen||||
LNS|0||||18||||||||||||NS|Star|Degen||| LNS|0||||18||||||||||||NS|Star|Degen||||
MGT|1|MGT:1|||21|||||||||||||Star|Degen||| MGT|1|MGT:1|||21|||||||||||||Star|Degen||||
BH|1|BH:1|||||||||||||||||||| BH|1|BH:1|||||||||||||||||||||
BH25|0||||25||||||||||||BH|BH|BH||| BH25|0||||25||||||||||||BH|BH|BH||||
BH30|0||||30||||||||||||BH|BH|BH||| BH30|0||||30||||||||||||BH|BH|BH||||
BH40|0||||40||||||||||||BH|BH|BH||| BH40|0||||40||||||||||||BH|BH|BH||||
BH60|0||||60||||||||||||BH|BH|BH||| BH60|0||||60||||||||||||BH|BH|BH||||
SMBH|1|BH:1|||||||||||||||||SMBH||| SMBH|1|BH:1|||||||||||||||||SMBH||||
N|1|S:1|H:1||1|10|10000000||||H:10||H:1&S:10|||||CL|CL||| 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||| 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||| 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||| 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||| 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 LUB|1|LGW:1&LGF:2000||LGW:1000|||100000000000|||||1000000000||||||LS|LS|||44197|C4.4
GG|1|GG:1||||||||||||||||Planet|BPlanet||| GG|1|GG:1||||||||||||||||Planet|BPlanet||||
AB|1|AB:1||||||||||||||||Planet|BPlanet||| AB|1|AB:1||||||||||||||||Planet|BPlanet||||
RP|1|RP:1||||||||||||||||Planet|BPlanet||| RP|1|RP:1||||||||||||||||Planet|BPlanet||||
HP|1|HP:1||||||||||||||||Planet|LPlanet||| HP|1|HP:1||||||||||||||||Planet|LPlanet|1|||
LP|1|LP:1||||||||||||||||Planet|LPlanet||| LP|1|LP:1||||||||||||||||Planet|LPlanet||||
EON1|1|EON1:1|||||||||||||||LP|Planet|LPlanet||| EON1|1|EON1:1|||||||||||||||LP|Planet|LPlanet|1|||
EON2|1|EON2:1|||||||||||||||LP|Planet|LPlanet||| EON2|1|EON2:1|||||||||||||||LP|Planet|LPlanet|1|||
EON3|1|EON3:1|||||||||||||||LP|Planet|LPlanet||| EON3|1|EON3:1|||||||||||||||LP|Planet|LPlanet|1|||
EON4|1|EON4:1|||||||||||||||LP|Planet|LPlanet||| EON4|1|EON4:1|||||||||||||||LP|Planet|LPlanet|1|||
EON5|1|EON5:1|||||||||||||||LP|Planet|LPlanet||| EON5|1|EON5:1|||||||||||||||LP|Planet|LPlanet|1|||
C0|1|C0:1||||||||||||||||Planet|LPlanet||| C0|1|C0:1||||||||||||||||Planet|LPlanet||||
C0.0|1|C0.0:1|||||||||||||||C0|Planet|LPlanet||| C0.0|1|C0.0:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.1|1|C0.1:1|||||||||||||||C0|Planet|LPlanet||| C0.1|1|C0.1:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.2|1|C0.2:1|||||||||||||||C0|Planet|LPlanet||| C0.2|1|C0.2:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.3|1|C0.3:1|||||||||||||||C0|Planet|LPlanet||| C0.3|1|C0.3:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.4|1|C0.4:1|||||||||||||||C0|Planet|LPlanet||| C0.4|1|C0.4:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.5|1|C0.5:1|||||||||||||||C0|Planet|LPlanet||| C0.5|1|C0.5:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.6|1|C0.6:1|||||||||||||||C0|Planet|LPlanet||| C0.6|1|C0.6:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.7|1|C0.7:1|||||||||||||||C0|Planet|LPlanet||| C0.7|1|C0.7:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.8|1|C0.8:1|||||||||||||||C0|Planet|LPlanet||| C0.8|1|C0.8:1|||||||||||||||C0|Planet|LPlanet|1|||
C0.9|1|C0.9:1|||||||||||||||C0|Planet|LPlanet||| C0.9|1|C0.9:1|||||||||||||||C0|Planet|LPlanet|1|||
C1|1|C1:1||||||||||||||||Planet|LPlanet||| C1|1|C1:1||||||||||||||||Planet|LPlanet||||
C1.0|1|C1.0:1|||||||||||||||C1|Planet|LPlanet||| C1.0|1|C1.0:1|||||||||||||||C1|Planet|LPlanet|1|||
C1.1|1|C1.1:1|||||||||||||||C1|Planet|LPlanet||| C1.1|1|C1.1:1|||||||||||||||C1|Planet|LPlanet|1|||
C1.2|1|C1.2:1|||||||||||||||C1|Planet|LPlanet||| C1.2|1|C1.2:1|||||||||||||||C1|Planet|LPlanet|1|||
C1.3|1|C1.3:1|||||||||||||||C1|Planet|LPlanet||| C1.3|1|C1.3:1|||||||||||||||C1|Planet|LPlanet||||
C1.4|1|C1.4:1|||||||||||||||C1|Planet|LPlanet||| C1.4|1|C1.4:1|||||||||||||||C1|Planet|LPlanet||||
C1.5|1|C1.5:1|||||||||||||||C1|Planet|LPlanet||| C1.5|1|C1.5:1|||||||||||||||C1|Planet|LPlanet||||
C1.6|1|C1.6:1|||||||||||||||C1|Planet|LPlanet||| C1.6|1|C1.6:1|||||||||||||||C1|Planet|LPlanet||||
C1.7|1|C1.7:1|||||||||||||||C1|Planet|LPlanet||| C1.7|1|C1.7:1|||||||||||||||C1|Planet|LPlanet||||
C1.8|1|C1.8:1|||||||||||||||C1|Planet|LPlanet||| C1.8|1|C1.8:1|||||||||||||||C1|Planet|LPlanet||||
C1.9|1|C1.9:1|||||||||||||||C1|Planet|LPlanet||| C1.9|1|C1.9:1|||||||||||||||C1|Planet|LPlanet||||
C2|1|C2:1|||||||||||||||||||| C2|1|C2:1|||||||||||||||||||||
C2.0|1|C2.0:1|||||||||||||||C2||||| C2.0|1|C2.0:1|||||||||||||||C2||||||
C2.1|1|C2.1:1|||||||||||||||C2||||| C2.1|1|C2.1:1|||||||||||||||C2||||||
C2.2|1|C2.2:1|||||||||||||||C2||||| C2.2|1|C2.2:1|||||||||||||||C2||||||
C2.3|1|C2.3:1|||||||||||||||C2||||| C2.3|1|C2.3:1|||||||||||||||C2||||||
C2.4|1|C2.4:1|||||||||||||||C2||||| C2.4|1|C2.4:1|||||||||||||||C2||||||
C2.5|1|C2.5:1|||||||||||||||C2||||| C2.5|1|C2.5:1|||||||||||||||C2||||||
C2.6|1|C2.6:1|||||||||||||||C2||||| C2.6|1|C2.6:1|||||||||||||||C2||||||
C2.7|1|C2.7:1|||||||||||||||C2||||| C2.7|1|C2.7:1|||||||||||||||C2||||||
C2.8|1|C2.8:1|||||||||||||||C2||||| C2.8|1|C2.8:1|||||||||||||||C2||||||
C2.9|1|C2.9:1|||||||||||||||C2||||| C2.9|1|C2.9:1|||||||||||||||C2||||||
C3|1|C3:1|||||||||||||||||||| C3|1|C3:1|||||||||||||||||||||
C3.0|1|C3.0:1|||||||||||||||C3||||| C3.0|1|C3.0:1|||||||||||||||C3||||||
C3.1|1|C3.1:1|||||||||||||||C3||||| C3.1|1|C3.1:1|||||||||||||||C3||||||
C3.2|1|C3.2:1|||||||||||||||C3||||| C3.2|1|C3.2:1|||||||||||||||C3||||||
C3.3|1|C3.3:1|||||||||||||||C3||||| C3.3|1|C3.3:1|||||||||||||||C3||||||
C3.4|1|C3.4:1|||||||||||||||C3||||| C3.4|1|C3.4:1|||||||||||||||C3||||||
C3.5|1|C3.5:1|||||||||||||||C3||||| C3.5|1|C3.5:1|||||||||||||||C3||||||
C3.6|1|C3.6:1|||||||||||||||C3||||| C3.6|1|C3.6:1|||||||||||||||C3||||||
C3.7|1|C3.7:1|||||||||||||||C3||||| C3.7|1|C3.7:1|||||||||||||||C3||||||
C3.8|1|C3.8:1|||||||||||||||C3||||| C3.8|1|C3.8:1|||||||||||||||C3||||||
C3.9|1|C3.9:1|||||||||||||||C3||||| C3.9|1|C3.9:1|||||||||||||||C3||||||
C4|1|C4:1|||||||||||||||||||| C4|1|C4:1|||||||||||||||||||||
C4.0|1|C4.0:1|||||||||||||||C4||||| C4.0|1|C4.0:1|||||||||||||||C4||||||
C4.1|1|C4.1:1|||||||||||||||C4||||| C4.1|1|C4.1:1|||||||||||||||C4||||||
C4.2|1|C4.2:1|||||||||||||||C4||||| C4.2|1|C4.2:1|||||||||||||||C4||||||
C4.3|1|C4.3:1|||||||||||||||C4||||| C4.3|1|C4.3:1|||||||||||||||C4||||||
C4.4|1|C4.4:1|||||||||||||||C4||||| C4.4|1|C4.4:1|||||||||||||||C4||||||
Ct|0||||||||||||||||||||| Ct|0||||||||||||||||||||||
fsho|1|fsho:1|||||||||||||||||||| fsho|1|fsho:1|||||||||||||||||||||
finf|1|finf:1|||||||||||||||||||| finf|1|finf:1|||||||||||||||||||||
ftem|1|ftem:1|||||||||||||||||||| ftem|1|ftem:1|||||||||||||||||||||
fcol|1|fcol:1|||||||||||||||||||| fcol|1|fcol:1|||||||||||||||||||||
fpri|1|fpri:1|||||||||||||||||||| fpri|1|fpri:1|||||||||||||||||||||
fsin|1|fsin:1|||||||||||||||||||| fsin|1|fsin:1|||||||||||||||||||||
fren|1|fren:1|||||||||||||||||||| fren|1|fren:1|||||||||||||||||||||
finf|1|finf:1|||||||||||||||||||| finf|1|finf:1|||||||||||||||||||||
ffro|1|ffro:1|||||||||||||||||||| ffro|1|ffro:1|||||||||||||||||||||
fdes|1|fdes:1|||||||||||||||||||| fdes|1|fdes:1|||||||||||||||||||||
froc|1|froc:1|||||||||||||||||||| froc|1|froc:1|||||||||||||||||||||
fpan|1|fpan:1|||||||||||||||||||| fpan|1|fpan:1|||||||||||||||||||||
fgai|1|fgai:1|||||||||||||||||||| fgai|1|fgai:1|||||||||||||||||||||
fdar|1|fdar:1|||||||||||||||||||| fdar|1|fdar:1|||||||||||||||||||||
fede|1|fede:1|||||||||||||||||||| fede|1|fede:1|||||||||||||||||||||
fpac|1|fpac:1|||||||||||||||||||| fpac|1|fpac:1|||||||||||||||||||||
fenr|1|fenr:1|||||||||||||||||||| fenr|1|fenr:1|||||||||||||||||||||
fmor|1|fmor:1|||||||||||||||||||| fmor|1|fmor:1|||||||||||||||||||||
fdis|1|fdis:1|||||||||||||||||||| fdis|1|fdis:1|||||||||||||||||||||
frep|1|frep:1|||||||||||||||||||| frep|1|frep:1|||||||||||||||||||||
+40 -46
View File
@@ -5,9 +5,9 @@ var evolution: OwniverseEvolution = OwniverseEvolution.new()
signal unlock_item(item_id: String) signal unlock_item(item_id: String)
var current_year: float = 0 var current_year: float = 0.0
var current_speed: int = 1 var current_speed: int = 1
var current_speed_in_years:float = 1 var current_speed_in_years: float = 1.0
var entities: Dictionary[String, OwniverseEntity] = {} var entities: Dictionary[String, OwniverseEntity] = {}
var entity_groups: Dictionary[String, Array] = {} var entity_groups: Dictionary[String, Array] = {}
@@ -21,24 +21,15 @@ var locked_entities: Array = []
var cumulative_amount: Dictionary[String, float] = {} var cumulative_amount: Dictionary[String, float] = {}
var current_amount: Dictionary[String, float] = {} var current_amount: Dictionary[String, float] = {}
var batch_count: int = 40
var entity_batches = {}
func cycle(year_delta: float) -> void: func cycle(year_delta: float) -> void:
# all owniverse activity should be called here # all owniverse activity should be called here
_auto_production(year_delta) _auto_production(year_delta)
#_entity_evolution(year_delta)
_check_locked_items() _check_locked_items()
#var v = _get_distribution(current_amount)
evolution.update_distribution(current_amount) evolution.update_distribution(current_amount)
#for k in current_amount:
#if current_amount[k] != 0:
#print(k, "|", current_amount[k])
#region auto production and evolution #region auto production and evolution
@@ -54,10 +45,6 @@ func _auto_production(year_delta: float) -> void:
_count_amount(item, _cycle_production[item]) _count_amount(item, _cycle_production[item])
func _entity_evolution(year_delta: float) -> void:
print("evolution: ", year_delta)
pass
func _get_distribution(source: Dictionary) -> Dictionary: func _get_distribution(source: Dictionary) -> Dictionary:
var distribution: Dictionary = {} var distribution: Dictionary = {}
var total: float = 0 var total: float = 0
@@ -74,20 +61,21 @@ func _get_distribution(source: Dictionary) -> Dictionary:
#region Production #region Production
func produce(item_id: String, amount: float) -> void: func produce(item_id: String, amount: float) -> void:
var entity: OwniverseEntity = entities[item_id] var _entity: OwniverseEntity = entities[item_id]
var entity_transaction = {} var entity_transaction = {}
for elem in entity.cost: for elem in _entity.cost:
if current_amount[elem] < amount * entity.cost[elem]: if current_amount[elem] < amount * _entity.cost[elem]:
return return
if entity.cost[elem] == 0: continue if _entity.cost[elem] == 0: continue
entity_transaction[elem] = -amount * entity.cost[elem] entity_transaction[elem] = - amount * _entity.cost[elem]
for elem in entity_transaction: for elem in entity_transaction:
_process_enitity(elem, entity_transaction[elem]) _process_enitity(elem, entity_transaction[elem])
_process_enitity(item_id, amount) _process_enitity(item_id, amount)
evolution.add(_entity, current_year, amount)
func automated_production(_delta: float) -> void: func automated_production(_delta: float) -> void:
@@ -127,7 +115,7 @@ func _count_amount(entity_id: String, amount: float) -> void:
items_to_update[entity_id] = current_amount[entity_id] items_to_update[entity_id] = current_amount[entity_id]
func _check_locked_items() -> void: func _check_locked_items() -> void:
for entity:OwniverseEntity in locked_entities: for entity: OwniverseEntity in locked_entities:
for elem in entity.unlock: for elem in entity.unlock:
if cumulative_amount[elem] < entity.unlock[elem]: if cumulative_amount[elem] < entity.unlock[elem]:
continue continue
@@ -159,17 +147,17 @@ func change_speed(delta: int) -> int:
func load_data() -> bool: func load_data() -> bool:
#var _is_succesfull = false #var _is_succesfull = false
var game_data: Dictionary = SaveManager.load_data("owniverse", "qwerty") var game_data: Dictionary = SaveManager.load_data("owniverse", "qwerty")
if game_data == {}: if game_data == {}:
return false return false
if !game_data.has_all(["cumulative_amount", "current_amount", if !game_data.has_all(["cumulative_amount", "current_amount"
"entity_batches", "year", #, "entity_batches"
, "year",
]): ]):
return false return false
entity_batches = game_data["entity_batches"] #entity_batches = game_data["entity_batches"]
cumulative_amount = game_data["cumulative_amount"] cumulative_amount = game_data["cumulative_amount"]
current_amount = game_data["current_amount"] current_amount = game_data["current_amount"]
current_year = game_data["year"] current_year = game_data["year"]
@@ -185,36 +173,42 @@ func save_data() -> void:
game_data["year"] = current_year game_data["year"] = current_year
game_data["cumulative_amount"] = cumulative_amount game_data["cumulative_amount"] = cumulative_amount
game_data["current_amount"] = current_amount game_data["current_amount"] = current_amount
game_data["entity_batches"] = entity_batches #game_data["entity_batches"] = entity_batches
SaveManager.save_data("owniverse", "qwerty", game_data) SaveManager.save_data("owniverse", "qwerty", game_data)
func init_enitities() -> void: func init_enitities() -> void:
for entity_id in Global.OwniverseEntities: var _auto_production := []
var entity = OwniverseEntity.new(Global.OwniverseEntities[entity_id]) for _entity_id in Global.OwniverseEntities:
entities[entity_id] = entity var _entity = OwniverseEntity.new(Global.OwniverseEntities[_entity_id])
entities[_entity_id] = _entity
current_amount[entity_id] = 0 current_amount[_entity_id] = 0
cumulative_amount[entity_id] = 0 cumulative_amount[_entity_id] = 0
if entity.group_as != "": if _entity.group_as != "":
current_amount[entity.group_as] = 0 current_amount[_entity.group_as] = 0
cumulative_amount[entity.group_as] = 0 cumulative_amount[_entity.group_as] = 0
if entity.unlock != {}: if _entity.unlock != {}:
locked_entities.append(entity) locked_entities.append(_entity)
if entity.product_per_year_type != "": evolution.init_entity(_entity)
auto_production.append(entity)
if _entity.product_per_year_type != "":
auto_production.append(_entity)
_auto_production.append(_entity.id)
# groups # groups
if entity.group_as != "": if _entity.group_as != "":
if !entity_groups.has(entity.group_as): if !entity_groups.has(_entity.group_as):
entity_groups[entity.group_as] = [] entity_groups[_entity.group_as] = []
entity_groups[entity.group_as].append(entity_id) entity_groups[_entity.group_as].append(_entity_id)
if entity.event_group != "": if _entity.event_group != "":
if !entity_event_groups.has(entity.event_group): if !entity_event_groups.has(_entity.event_group):
entity_event_groups[entity.event_group] = [] entity_event_groups[_entity.event_group] = []
entity_event_groups[entity.event_group].append(entity_id) entity_event_groups[_entity.event_group].append(_entity_id)
#evolution.init_batches(_auto_production)
#endregion #endregion
-32
View File
@@ -1,32 +0,0 @@
extends Node
class_name OwniverseBatch
var from_year: float
var to_year: float
var amount: float = 0
func process(year: float) -> float:
var _amount: float = 0
if year < to_year: return 0
if year >= to_year:
_amount = amount
amount = 0
return _amount
_amount = clampf(amount * (year - from_year) / (to_year - from_year), 0, amount)
amount -= _amount
from_year = year + 1
return _amount
func add(delta: float) -> void:
amount += delta
func _init(year: float, year_delta: float) -> void:
from_year = year - year_delta
to_year = year + year_delta
-1
View File
@@ -1 +0,0 @@
uid://cs0mllvnraida
+5 -4
View File
@@ -9,13 +9,13 @@ var bind: Dictionary = {}
var mass: float var mass: float
var space: int var space: int
var lifespan: float var lifespan: float
var lifespan_cycle: float var lifespan_delta: float
var auto: float var auto: float
var gamma: float var gamma: float
var blast: int var blast: int
var life_product: Dictionary = {} var life_product: Dictionary = {}
var product_per_year_type: String = "" var product_per_year_type: String = ""
var product_per_year_amount: float = 0.0 var product_per_year_amount: float = 0
var voids: int var voids: int
var output_or: Dictionary = {} var output_or: Dictionary = {}
var output_and: Dictionary = {} var output_and: Dictionary = {}
@@ -41,15 +41,16 @@ func _init(values: Dictionary) -> void:
mass = float(values.mass) mass = float(values.mass)
space = int(values.space) space = int(values.space)
lifespan = float(values.lifespan) lifespan = float(values.lifespan)
lifespan_cycle = lifespan / Global.batch_count # need for proper math lifespan_delta = lifespan / Global.batch_count / 2 if lifespan > 10 else lifespan
print(id, "", lifespan, " | ", lifespan_cycle)
auto = float(values.auto) auto = float(values.auto)
gamma = float(values.gamma) gamma = float(values.gamma)
blast = int(values.blast) blast = int(values.blast)
life_product = _parse_and_string(values.life_product) life_product = _parse_and_string(values.life_product)
for key in life_product.keys(): for key in life_product.keys():
product_per_year_type = key product_per_year_type = key
product_per_year_amount = life_product[key] / lifespan if lifespan != 0 else 0 product_per_year_amount = life_product[key] / lifespan if lifespan != 0 else 0
#print(id, " | ", lifespan_delta, " | ", lifespan)
voids = int(values.voids) voids = int(values.voids)
output_or = _parse_or_string(values.output) output_or = _parse_or_string(values.output)
+122 -9
View File
@@ -2,22 +2,130 @@ extends Node
class_name OwniverseEvolution class_name OwniverseEvolution
var batch_count: int = 40 const FLOAT_THRESHOLD: float = 1.0E14
# TODO to save !!!
var state: Dictionary = {
'year': 0.0,
'energy': 1E14,
}
var entities: Dictionary[String, OwniverseEntity] = {}
var producing_entities: Array[OwniverseEntity] = []
# TODO to save !!!
var auto_production_rest: Dictionary = {
'H': 0.0,
'S': 0.0,
'auto': 0.0,
}
var evolving_entities: Array[OwniverseEntity] = []
# TODO to save !!!
var batches: Dictionary[String, Array] = {} var batches: Dictionary[String, Array] = {}
# TODO to save !!!
var amount: Dictionary[String, float] = {}
var distribution: Dictionary[String, float] = {} var distribution: Dictionary[String, float] = {}
func evolute(): func add(entity: OwniverseEntity, year: float, amount: float):
pass var _batch_array: Array = batches[entity.id]
var _from_year: float = year + entity.lifespan - entity.lifespan_delta
var _to_year: float = year + entity.lifespan + entity.lifespan_delta
if _batch_array.size() != 0 and _batch_array[-1].to_year > year + entity.lifespan:
_batch_array[-1].amount += amount
else:
var _batch := {
'from_year': _from_year,
'to_year': _to_year,
'amount': amount,
}
_batch_array.append(_batch)
func add_to_batch(enitity: OwniverseEntity, amount: float, year: float) -> void: print('---------')
var to_year: float = year + enitity.lifespan print(batches)
var _entity_batches: Array[OwniverseBatch] = batches[enitity.id]
if _entity_batches.size() == 0 or _entity_batches[-1].to_year <= to_year:
_entity_batches.append(OwniverseBatch.new(to_year, enitity.lifespan_cycle))
_entity_batches[-1].add(amount)
func process(from_year: float, to_year: float) -> void:
# производим
# эволюционируем
# записываем новые
var _to_produce := {}
var _to_evolute := {}
for _entity_id in batches:
_to_produce[_entity_id] = 0
_to_evolute[_entity_id] = 0
var _new_batch_array := []
for _batch: Dictionary in batches[_entity_id]:
# production
_to_produce[_entity_id] += _batch.amount
# evolution
if _batch.to_year < to_year:
_to_produce[_entity_id] += _batch.amount
else:
var _max_from_year: float = max(from_year, _batch.from_year)
var _min_to_year: float = min(to_year, _batch.to_year)
var _part_of_amount: float = _batch.amount \
* (_min_to_year - _max_from_year) \
/ (_batch.to_year - _batch.from_year)
_to_evolute[_entity_id] += _part_of_amount
var _rest_of_amount: float = _batch.amount - _part_of_amount
if _rest_of_amount > 0:
_new_batch_array.append({
'from_year': _batch._from_year,
'to_year': _batch._to_year,
'amount': _rest_of_amount,
})
# entity level
batches[_entity_id] = _new_batch_array
func produce(from_year: float, to_year: float):
var _time_delta = to_year - from_year
# get entity array for production
for _entity: OwniverseEntity in producing_entities:
var _to_produce: float = 0.0
for _batch: Dictionary in batches[_entity.id]:
_to_produce += _batch.amount
_to_produce *= _time_delta * _entity.product_per_year_amount
if _entity.auto > 0:
var _auto_production_part: float = _entity.auto * _to_produce
_to_produce -= _auto_production_part
auto_production_rest.auto += _auto_production_part
auto_production_rest[_entity.product_per_year_type] += _to_produce
print("auto prod rest: ", auto_production_rest)
auto_production_rest["H"] = produce_hs("H", auto_production_rest["H"])
auto_production_rest["S"] = produce_hs("S", auto_production_rest["S"])
func produce_hs(entity_id: String, value: float) -> float:
var _to_produce: float = floorf(value)
amount[entity_id] += _to_produce
# TODO double double math
if _to_produce > state["energy"]:
_to_produce = state["energy"]
state["energy"] -= _to_produce
return value - _to_produce
func produce_auto() -> float:
return 0.0
func init_entity(entity: OwniverseEntity) -> void:
entities[entity.id] = entity
amount[entity.id] = 0.0
if entity.product_per_year_type != "":
producing_entities.append(entity)
if entity.lifespan > 0:
evolving_entities.append(entity)
batches[entity.id] = []
func update_distribution(_distribute_by: Dictionary[String, float]) -> void: func update_distribution(_distribute_by: Dictionary[String, float]) -> void:
@@ -34,3 +142,8 @@ func update_distribution(_distribute_by: Dictionary[String, float]) -> void:
for id in distribution: for id in distribution:
distribution[id] /= _total distribution[id] /= _total
#func _add_float(a: float, b: Array[float]) -> Array[float]:
#if a < FLOAT_THRESHOLD:
#return [a+b[0], 0]
#else:
#return [a+b[0], 0]