systems rework: buffs, prestige graph, research, modular architecture

Decouples core systems from centralized globals in favor of catalogue-based architecture and data-driven content.

   Key changes:
   - Prestige: node-based buff tech tree, graph panel, progress bar
   - Research: multi-worker system, per-generator research, xp generation
   - Ascension: meta-currency layer via multi-currency prestige resets
   - Buffs: refactored as generator-independent via catalogues
   - UI: currency panel, edge-scrolling camera + zoom, current-goal panel
   - Alchemy Tower: crafting building with recipe/cost system
   - Testing: 7 test suites (ascension, prestige, research, goals)
   - Content: migrated from hardcoded idles/ to gym format (tiny_sword)
This commit was merged in pull request #1.
This commit is contained in:
2026-05-07 20:36:21 +00:00
parent 2743fd314a
commit 81a4058b04
242 changed files with 11226 additions and 2242 deletions

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://bfrb0ayrljac2"]
[ext_resource type="Texture2D" uid="uid://d3nymghus6x3" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_03.png" id="1_icon"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="2_script"]
[resource]
script = ExtResource("2_script")
id = &"ascension"
display_name = "Ascension"
icon = ExtResource("1_icon")
metadata/_custom_type_script = "uid://dtgqjf3bl7pm8"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://t6du7gm2ywbi"]
[ext_resource type="Texture2D" uid="uid://c1gnh8jgctrcx" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_07.png" id="1_axihf"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="2_fxby5"]
[resource]
script = ExtResource("2_fxby5")
id = &"cognite"
display_name = "Cognite"
icon = ExtResource("1_axihf")
metadata/_custom_type_script = "uid://dtgqjf3bl7pm8"

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://bxg2au0ijp242"]
[ext_resource type="Texture2D" uid="uid://dkt4s1eyw8puy" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_04.png" id="1_4u6o6"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="2_anstu"]
[resource]
script = ExtResource("2_anstu")
id = &"food"
display_name = "Food"
icon = ExtResource("1_4u6o6")

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://w4u1hddplb4e"]
[ext_resource type="Texture2D" uid="uid://d3nymghus6x3" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_03.png" id="1_n656e"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="2_vohw6"]
[resource]
script = ExtResource("2_vohw6")
id = &"gold"
display_name = "Gold"
icon = ExtResource("1_n656e")
always_visible = true

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://dpbndqxvsffa0"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="1_v6rd4"]
[ext_resource type="Texture2D" uid="uid://c1gnh8jgctrcx" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_07.png" id="1_wi1w3"]
[resource]
script = ExtResource("1_v6rd4")
id = &"magic_gold"
display_name = "Magic Gold"
icon = ExtResource("1_wi1w3")
metadata/_custom_type_script = "uid://dtgqjf3bl7pm8"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://brctmnpmhjas6"]
[ext_resource type="Texture2D" uid="uid://c1gnh8jgctrcx" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_07.png" id="1_c7yxi"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="1_fahg0"]
[resource]
script = ExtResource("1_fahg0")
id = &"mana_stone"
display_name = "Mana Stone"
icon = ExtResource("1_c7yxi")
metadata/_custom_type_script = "uid://dtgqjf3bl7pm8"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://co4fiqgluwit0"]
[ext_resource type="Texture2D" uid="uid://c1gnh8jgctrcx" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_07.png" id="1_cks7i"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="2_ih4no"]
[resource]
script = ExtResource("2_ih4no")
id = &"philosoper_stone"
display_name = "Philosoper Stone"
icon = ExtResource("1_cks7i")
metadata/_custom_type_script = "uid://dtgqjf3bl7pm8"

View File

@@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="CurrencyCatalogue" format=3 uid="uid://iqphilgfp2i7"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="1_501l6"]
[ext_resource type="Script" uid="uid://621tus0uvbrd" path="res://core/currency/currency_catalogue.gd" id="2_hmju3"]
[ext_resource type="Resource" uid="uid://w4u1hddplb4e" path="res://docs/gyms/tiny_sword/currencies/gold.tres" id="2_ucsji"]
[ext_resource type="Resource" uid="uid://dfxk30o34qe2s" path="res://docs/gyms/tiny_sword/currencies/worker.tres" id="3_7hx6u"]
[ext_resource type="Resource" uid="uid://bxg2au0ijp242" path="res://docs/gyms/tiny_sword/currencies/food.tres" id="4_c77gh"]
[ext_resource type="Resource" uid="uid://bgsk8h4w80h45" path="res://docs/gyms/tiny_sword/currencies/wood.tres" id="5_gyp05"]
[ext_resource type="Resource" uid="uid://bfrb0ayrljac2" path="res://docs/gyms/tiny_sword/currencies/ascension.tres" id="6_ascension"]
[ext_resource type="Resource" uid="uid://dpbndqxvsffa0" path="res://docs/gyms/tiny_sword/currencies/magic_gold.tres" id="7_vu05v"]
[ext_resource type="Resource" uid="uid://brctmnpmhjas6" path="res://docs/gyms/tiny_sword/currencies/mana_stone.tres" id="8_p3urk"]
[ext_resource type="Resource" uid="uid://t6du7gm2ywbi" path="res://docs/gyms/tiny_sword/currencies/cognite.tres" id="9_ejnoj"]
[ext_resource type="Resource" uid="uid://co4fiqgluwit0" path="res://docs/gyms/tiny_sword/currencies/philosoper_stone.tres" id="10_ejnoj"]
[resource]
script = ExtResource("2_hmju3")
currencies = Array[ExtResource("1_501l6")]([ExtResource("2_ucsji"), ExtResource("3_7hx6u"), ExtResource("4_c77gh"), ExtResource("5_gyp05"), ExtResource("6_ascension"), ExtResource("7_vu05v"), ExtResource("8_p3urk"), ExtResource("9_ejnoj"), ExtResource("10_ejnoj")])
metadata/_custom_type_script = "uid://621tus0uvbrd"

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://bgsk8h4w80h45"]
[ext_resource type="Texture2D" uid="uid://bovjusa7o0l1m" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_02.png" id="1_gm6cf"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="2_jj4s4"]
[resource]
script = ExtResource("2_jj4s4")
id = &"wood"
display_name = "Wood"
icon = ExtResource("1_gm6cf")

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Currency" format=3 uid="uid://dfxk30o34qe2s"]
[ext_resource type="Texture2D" uid="uid://bx7tj1rd3vo3a" path="res://sandbox/tiny_swords/UI Elements/UI Elements/Icons/Icon_05.png" id="1_cbwhh"]
[ext_resource type="Script" uid="uid://dtgqjf3bl7pm8" path="res://core/currency/currency.gd" id="1_ovrsl"]
[resource]
script = ExtResource("1_ovrsl")
id = &"worker"
display_name = "Worker"
icon = ExtResource("1_cbwhh")
metadata/_custom_type_script = "uid://dtgqjf3bl7pm8"