diff --git a/.gitea/workflows/android.yml b/.gitea/workflows/android.yml new file mode 100644 index 0000000..60d95f5 --- /dev/null +++ b/.gitea/workflows/android.yml @@ -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 \ No newline at end of file diff --git a/Autoload/Global.gd b/Autoload/Global.gd index ac3eb9b..64d9f55 100644 --- a/Autoload/Global.gd +++ b/Autoload/Global.gd @@ -17,7 +17,7 @@ var OwniverseEntities: Dictionary = {} var OwniverseItems: 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: diff --git a/Stage/stage.gd b/Stage/stage.gd index 8da2ad9..c417984 100644 --- a/Stage/stage.gd +++ b/Stage/stage.gd @@ -1,7 +1,5 @@ extends Control -#signal produce_items(item_id: String, amount: int) - const OWNIVERSE_ITEM = preload("uid://d3xjfxwe3w16v") 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 = {} -#func unlock_owniverse_item() -> void: - #pass - #endregion 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: 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: diff --git a/data/owniverse_entitites.txt b/data/owniverse_entitites.txt index 68434ec..b0a517a 100644 --- a/data/owniverse_entitites.txt +++ b/data/owniverse_entitites.txt @@ -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 -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|||||||||||||||||||| \ No newline at end of file +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|||| +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|1||| +LP|1|LP:1||||||||||||||||Planet|LPlanet|||| +EON1|1|EON1:1|||||||||||||||LP|Planet|LPlanet|1||| +EON2|1|EON2:1|||||||||||||||LP|Planet|LPlanet|1||| +EON3|1|EON3:1|||||||||||||||LP|Planet|LPlanet|1||| +EON4|1|EON4:1|||||||||||||||LP|Planet|LPlanet|1||| +EON5|1|EON5:1|||||||||||||||LP|Planet|LPlanet|1||| +C0|1|C0:1||||||||||||||||Planet|LPlanet|||| +C0.0|1|C0.0:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.1|1|C0.1:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.2|1|C0.2:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.3|1|C0.3:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.4|1|C0.4:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.5|1|C0.5:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.6|1|C0.6:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.7|1|C0.7:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.8|1|C0.8:1|||||||||||||||C0|Planet|LPlanet|1||| +C0.9|1|C0.9:1|||||||||||||||C0|Planet|LPlanet|1||| +C1|1|C1:1||||||||||||||||Planet|LPlanet|||| +C1.0|1|C1.0:1|||||||||||||||C1|Planet|LPlanet|1||| +C1.1|1|C1.1:1|||||||||||||||C1|Planet|LPlanet|1||| +C1.2|1|C1.2:1|||||||||||||||C1|Planet|LPlanet|1||| +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||||||||||||||||||||| \ No newline at end of file diff --git a/world/owniverse/owniverse.gd b/world/owniverse/owniverse.gd index 213cd88..4d64bec 100644 --- a/world/owniverse/owniverse.gd +++ b/world/owniverse/owniverse.gd @@ -5,9 +5,9 @@ var evolution: OwniverseEvolution = OwniverseEvolution.new() 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_in_years:float = 1 +var current_speed_in_years: float = 1.0 var entities: Dictionary[String, OwniverseEntity] = {} var entity_groups: Dictionary[String, Array] = {} @@ -21,24 +21,15 @@ 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) _check_locked_items() - #var v = _get_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 @@ -46,18 +37,14 @@ 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 + 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]) + _count_amount(item, _cycle_production[item]) -func _entity_evolution(year_delta: float) -> void: - print("evolution: ", year_delta) - pass - func _get_distribution(source: Dictionary) -> Dictionary: var distribution: Dictionary = {} var total: float = 0 @@ -74,20 +61,21 @@ func _get_distribution(source: Dictionary) -> Dictionary: #region Production func produce(item_id: String, amount: float) -> void: - var entity: OwniverseEntity = entities[item_id] + var _entity: OwniverseEntity = entities[item_id] var entity_transaction = {} - for elem in entity.cost: - if current_amount[elem] < amount * entity.cost[elem]: + for elem in _entity.cost: + if current_amount[elem] < amount * _entity.cost[elem]: 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: _process_enitity(elem, entity_transaction[elem]) _process_enitity(item_id, amount) + evolution.add(_entity, current_year, amount) 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] func _check_locked_items() -> void: - for entity:OwniverseEntity in locked_entities: + for entity: OwniverseEntity in locked_entities: for elem in entity.unlock: if cumulative_amount[elem] < entity.unlock[elem]: continue @@ -159,17 +147,17 @@ func change_speed(delta: int) -> int: 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", "year", + if !game_data.has_all(["cumulative_amount", "current_amount" + #, "entity_batches" + , "year", ]): return false - entity_batches = game_data["entity_batches"] + #entity_batches = game_data["entity_batches"] cumulative_amount = game_data["cumulative_amount"] current_amount = game_data["current_amount"] current_year = game_data["year"] @@ -185,36 +173,42 @@ func save_data() -> void: game_data["year"] = current_year game_data["cumulative_amount"] = cumulative_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) func init_enitities() -> void: - for entity_id in Global.OwniverseEntities: - var entity = OwniverseEntity.new(Global.OwniverseEntities[entity_id]) - entities[entity_id] = entity + var _auto_production := [] + for _entity_id in Global.OwniverseEntities: + var _entity = OwniverseEntity.new(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 + 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.unlock != {}: + locked_entities.append(_entity) + + evolution.init_entity(_entity) - if entity.product_per_year_type != "": - auto_production.append(entity) + if _entity.product_per_year_type != "": + auto_production.append(_entity) + _auto_production.append(_entity.id) # 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.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 != "": + if !entity_event_groups.has(_entity.event_group): + entity_event_groups[_entity.event_group] = [] + entity_event_groups[_entity.event_group].append(_entity_id) + + #evolution.init_batches(_auto_production) #endregion diff --git a/world/owniverse/owniverse_batch.gd b/world/owniverse/owniverse_batch.gd deleted file mode 100644 index ea33c8c..0000000 --- a/world/owniverse/owniverse_batch.gd +++ /dev/null @@ -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 diff --git a/world/owniverse/owniverse_batch.gd.uid b/world/owniverse/owniverse_batch.gd.uid deleted file mode 100644 index 22dc595..0000000 --- a/world/owniverse/owniverse_batch.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cs0mllvnraida diff --git a/world/owniverse/owniverse_entity.gd b/world/owniverse/owniverse_entity.gd index 220d3cc..3a39009 100644 --- a/world/owniverse/owniverse_entity.gd +++ b/world/owniverse/owniverse_entity.gd @@ -9,13 +9,13 @@ var bind: Dictionary = {} var mass: float var space: int var lifespan: float -var lifespan_cycle: float +var lifespan_delta: float 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 product_per_year_amount: float = 0 var voids: int var output_or: Dictionary = {} var output_and: Dictionary = {} @@ -41,15 +41,16 @@ func _init(values: Dictionary) -> void: mass = float(values.mass) space = int(values.space) lifespan = float(values.lifespan) - lifespan_cycle = lifespan / Global.batch_count # need for proper math - print(id, " → ", lifespan, " | ", lifespan_cycle) + lifespan_delta = lifespan / Global.batch_count / 2 if lifespan > 10 else 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 + #print(id, " | ", lifespan_delta, " | ", lifespan) voids = int(values.voids) output_or = _parse_or_string(values.output) diff --git a/world/owniverse/owniverse_evolution.gd b/world/owniverse/owniverse_evolution.gd index 79f2b4d..e062472 100644 --- a/world/owniverse/owniverse_evolution.gd +++ b/world/owniverse/owniverse_evolution.gd @@ -2,23 +2,131 @@ extends Node 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] = {} +# TODO to save !!! +var amount: Dictionary[String, float] = {} + var distribution: Dictionary[String, float] = {} -func evolute(): - pass - -func add_to_batch(enitity: OwniverseEntity, amount: float, year: float) -> void: - var to_year: float = year + enitity.lifespan - 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)) +func add(entity: OwniverseEntity, year: float, amount: float): + 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) - _entity_batches[-1].add(amount) + print('---------') + print(batches) + + +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: distribution = {} @@ -33,4 +141,9 @@ func update_distribution(_distribute_by: Dictionary[String, float]) -> void: for id in distribution: 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]