From 3a1b69a987a5487ef05ed76811d43c224df03820 Mon Sep 17 00:00:00 2001 From: jerick Date: Tue, 18 Jun 2024 11:33:55 -0400 Subject: [PATCH] Save file functionality --- Game.gd | 248 ------- Game.tscn | 182 ------ Global.gd | 20 +- Inventory.tres | 20 - MemberDatabase/memberData.gd | 611 ------------------ MemberInventory/Inventory_Data.gd | 5 - MemberInventory/Slot_Data.gd | 14 - Root.gd | 33 - Save/saveData.json | 26 + {User Interface => Scenes}/UserInterface.tscn | 42 +- bossFights.tscn => Scenes/bossFights.tscn | 36 +- Scenes/saveTimer.gd | 123 ++++ Scenes/savemanager.tscn | 16 + team.tscn => Scenes/team.tscn | 110 +--- .../teamSelection.tscn | 32 +- Scenes/titleScreen.gd | 94 +++ Scenes/titleScreen.tscn | 29 + TeamSelection.gd | 7 +- TitleClick.gd | 15 + User Interface/Bossbutton.gd | 2 +- User Interface/Member1.gd | 7 +- User Interface/Member2.gd | 4 +- User Interface/Member3.gd | 4 +- User Interface/Member4.gd | 4 +- User Interface/Member5.gd | 4 +- User Interface/TeamButton.gd | 2 +- inventory.gd | 21 - inventory.tscn | 19 - slot.gd | 14 - slot.tscn | 30 - 30 files changed, 428 insertions(+), 1346 deletions(-) delete mode 100644 Game.gd delete mode 100644 Game.tscn delete mode 100644 Inventory.tres delete mode 100644 MemberDatabase/memberData.gd delete mode 100644 MemberInventory/Inventory_Data.gd delete mode 100644 MemberInventory/Slot_Data.gd create mode 100644 Save/saveData.json rename {User Interface => Scenes}/UserInterface.tscn (76%) rename bossFights.tscn => Scenes/bossFights.tscn (85%) create mode 100644 Scenes/saveTimer.gd create mode 100644 Scenes/savemanager.tscn rename team.tscn => Scenes/team.tscn (61%) rename teamSelection.tscn => Scenes/teamSelection.tscn (84%) create mode 100644 Scenes/titleScreen.gd create mode 100644 Scenes/titleScreen.tscn create mode 100644 TitleClick.gd delete mode 100644 inventory.gd delete mode 100644 inventory.tscn delete mode 100644 slot.gd delete mode 100644 slot.tscn diff --git a/Game.gd b/Game.gd deleted file mode 100644 index 9cbf84c..0000000 --- a/Game.gd +++ /dev/null @@ -1,248 +0,0 @@ -extends Control - -var score = 0 -var clickAdd = 1 -var scorePerSec = 1 -var scoreMultiplier = 1 - -#Click Upgrades Costs -var clickUpgradeReq1 = 10 -var clickUpgradeReq10 = 100 -var clickUpgradeReq20 = 1000 -var clickUpgradeReq40 = 10000 -var clickUpgradeReq60 = 100000 -var clickUpgradeReq80 = 1000000 -var clickUpgradeReq100 = 10000000 -var clickUpgradeReq200 = 100000000 -var clickUpgradeReq400 = 1000000000 - - -# Click Upgrades Amount -var clickUpgradeAmt1 = 1 -var clickUpgradeAmt10 = 10 -var clickUpgradeAmt20 = 20 -var clickUpgradeAmt40 = 40 -var clickUpgradeAmt60 = 60 -var clickUpgradeAmt80 = 80 -var clickUpgradeAmt100 = 100 -var clickUpgradeAmt200 = 200 -var clickUpgradeAmt400 = 400 - - -# Passive Upgrades Costs -var passiveUpgradeReq2 = 100 -var passiveUpgradeReq10 = 1000 -var passiveUpgradeReq20 = 10000 -var passiveUpgradeReq50 = 100000 -var passiveUpgradeReq100 = 1000000 -var passiveUpgradeReq200 = 10000000 -var passiveUpgradeReq500 = 100000000 -var passiveUpgradeReq1000 = 1000000000 -var passiveUpgradeReq10000 = 10000000000 - -# Passive Upgrades Amount -var passiveUpgradeAmt2 = 2 -var passiveUpgradeAmt10 = 10 -var passiveUpgradeAmt20 = 20 -var passiveUpgradeAmt50 = 50 -var passiveUpgradeAmt100 = 100 -var passiveUpgradeAmt200 = 200 -var passiveUpgradeAmt500 = 500 -var passiveUpgradeAmt1000 = 1000 -var passiveUpgradeAmt10000 = 10000 - - - -# Called when the node enters the scene tree for the first time. -func _ready(): - $ClickUpgrades.get_popup().connect("id_pressed",clickUpgrade) - $PassiveUpgrades.get_popup().connect("id_pressed",passiveUpgrade) - $Timer.connect("timeout", _on_Timer_timeout) - #Code for the Click Me Button (deprecated) - #$Click.pressed.connect(self._on_button_pressed) - -#Prints all input events, only for debugging -#func _input(event): - #print(event.as_text()) - -func _on_Timer_timeout(): - score += scorePerSec * scoreMultiplier - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): - #Displays normal numbers until commas are needed - if score > 999: - $Score.text = str(scoreFormat(score)) - else: - $Score.text = str(score) #Changes the score number - -#This checks any input that comes in -func _input(event): - #Function to record every left click as a "Click" to add to the score - if event.is_action_pressed("left_mouse"): - _on_button_pressed() - -#Formats the score string so commas are inserted -func scoreFormat(score): - # Convert value to string. - var str_value: String = str(score) - - # Loop backward starting at the last 3 digits, - # add comma then, repeat every 3rd step. - for i in range(str_value.length()-3, 0, -3): - str_value = str_value.insert(i, ",") - score = str_value - return score - -func _on_button_pressed(): - score += clickAdd * scoreMultiplier - -func clickUpgrade(id): - match id: - 0: - if score >= clickUpgradeReq1: - print ("Score sufficient") - score -=clickUpgradeReq1 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt1 - else: - print("not enough score") - 1: - if score >= clickUpgradeReq10: - print ("Score sufficient") - score -=clickUpgradeReq10 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt10 - else: - print("not enough score") - 2: - if score >= clickUpgradeReq20: - print ("Score sufficient") - score -=clickUpgradeReq20 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt20 - else: - print("not enough score") - 3: - if score >= clickUpgradeReq40: - print ("Score sufficient") - score -=clickUpgradeReq40 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt40 - else: - print("not enough score") - 4: - if score >= clickUpgradeReq60: - print ("Score sufficient") - score -=clickUpgradeReq60 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt60 - else: - print("not enough score") - 5: - if score >= clickUpgradeReq80: - print ("Score sufficient") - score -=clickUpgradeReq80 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt80 - else: - print("not enough score") - 6: - if score >= clickUpgradeReq100: - print ("Score sufficient") - score -=clickUpgradeReq100 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt100 - else: - print("not enough score") - 7: - if score >= clickUpgradeReq200: - print ("Score sufficient") - score -=clickUpgradeReq200 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt200 - else: - print("not enough score") - 8: - if score >= clickUpgradeReq400: - print ("Score sufficient") - score -=clickUpgradeReq400 - $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt400 - else: - print("not enough score") - -func passiveUpgrade(id): - match id: - 0: - if score >= passiveUpgradeReq2: - print ("Score sufficient") - score -=passiveUpgradeReq2 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt2 - else: - print("not enough score") - 1: - if score >= passiveUpgradeReq10: - print ("Score sufficient") - score -=passiveUpgradeReq10 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt10 - else: - print("not enough score") - 2: - if score >= passiveUpgradeReq20: - print ("Score sufficient") - score -=passiveUpgradeReq20 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt20 - else: - print("not enough score") - 3: - if score >= passiveUpgradeReq50: - print ("Score sufficient") - score -=passiveUpgradeReq50 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt50 - else: - print("not enough score") - 4: - if score >= passiveUpgradeReq100: - print ("Score sufficient") - score -=passiveUpgradeReq100 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt100 - else: - print("not enough score") - 5: - if score >= passiveUpgradeReq200: - print ("Score sufficient") - score -=passiveUpgradeReq200 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt200 - else: - print("not enough score") - 6: - if score >= passiveUpgradeReq500: - print ("Score sufficient") - score -=passiveUpgradeReq500 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt500 - else: - print("not enough score") - 7: - if score >= passiveUpgradeReq1000: - print ("Score sufficient") - score -=passiveUpgradeReq1000 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt1000 - else: - print("not enough score") - 8: - if score >= passiveUpgradeReq10000: - print ("Score sufficient") - score -=passiveUpgradeReq10000 - $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt10000 - else: - print("not enough score") diff --git a/Game.tscn b/Game.tscn deleted file mode 100644 index 6006380..0000000 --- a/Game.tscn +++ /dev/null @@ -1,182 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://xh0p6v5ir05f"] - -[ext_resource type="Script" path="res://Root.gd" id="1_fof5y"] -[ext_resource type="Script" path="res://UI.gd" id="1_rdmp6"] - -[node name="Root" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_fof5y") - -[node name="Header" type="CanvasLayer" parent="."] - -[node name="UI" type="Control" parent="Header"] -layout_mode = 3 -anchors_preset = 0 -offset_right = 1152.0 -offset_bottom = 40.0 - -[node name="PanelContainer" type="GridContainer" parent="Header/UI"] -layout_mode = 0 -offset_right = 1152.0 -offset_bottom = 40.0 -columns = 5 -script = ExtResource("1_rdmp6") - -[node name="ScoreLabel" type="Label" parent="Header/UI/PanelContainer"] -layout_mode = 2 -text = "Score:" - -[node name="Score" type="Label" parent="Header/UI/PanelContainer"] -layout_mode = 2 -text = "0" - -[node name="Click" type="Button" parent="Header/UI/PanelContainer"] -visible = false -layout_mode = 2 -shortcut_in_tooltip = false -text = "Click Me" -flat = true - -[node name="Timer" type="Timer" parent="Header/UI/PanelContainer"] -autostart = true - -[node name="ClickUpgrades" type="MenuButton" parent="Header/UI/PanelContainer"] -layout_mode = 2 -text = "Click Upgrades" -item_count = 9 -popup/item_0/text = "+1 Cost:10" -popup/item_0/id = 0 -popup/item_1/text = "+10 Cost: 100" -popup/item_1/id = 1 -popup/item_2/text = "+20 Cost:1,000" -popup/item_2/id = 2 -popup/item_3/text = "+40 Cost: 10,000" -popup/item_3/id = 3 -popup/item_4/text = "+60 Cost: 100,000" -popup/item_4/id = 4 -popup/item_5/text = "+80 Cost: 1,000,000" -popup/item_5/id = 5 -popup/item_6/text = "+100 Cost: 10,000,000" -popup/item_6/id = 6 -popup/item_7/text = "+200 Cost: 100,000,000" -popup/item_7/id = 7 -popup/item_8/text = "+400 Cost: 1,000,000,000" -popup/item_8/id = 8 - -[node name="PassiveUpgrades" type="MenuButton" parent="Header/UI/PanelContainer"] -layout_mode = 2 -text = "Passive Upgrades" -item_count = 9 -popup/item_0/text = "2/s Cost: 100" -popup/item_0/id = 0 -popup/item_1/text = "10/s Cost: 1,000" -popup/item_1/id = 1 -popup/item_2/text = "20/s Cost: 10,000" -popup/item_2/id = 2 -popup/item_3/text = "50/s Cost: 100,000" -popup/item_3/id = 3 -popup/item_4/text = "100/s Cost:1,000,000" -popup/item_4/id = 4 -popup/item_5/text = "200/s Cost: 10,000,000" -popup/item_5/id = 5 -popup/item_6/text = "500/s Cost: 100,000,000" -popup/item_6/id = 6 -popup/item_7/text = "1,000/s Cost: 1,000,000,000" -popup/item_7/id = 7 -popup/item_8/text = "10,000/s Cost: 10,000,000,000" -popup/item_8/id = 8 - -[node name="TeamButton" type="Button" parent="Header/UI/PanelContainer"] -layout_mode = 2 -text = "Team" -flat = true -alignment = 0 - -[node name="Team" type="Panel" parent="."] -layout_mode = 0 -offset_left = 2.0 -offset_top = 40.0 -offset_right = 1152.0 -offset_bottom = 648.0 - -[node name="GridContainer" type="GridContainer" parent="Team"] -layout_mode = 0 -offset_left = 63.0 -offset_top = 109.0 -offset_right = 1150.0 -offset_bottom = 609.0 -columns = 5 - -[node name="TeamMember1" type="Button" parent="Team/GridContainer"] -layout_mode = 2 -text = " - - - - - - - - - -Add Team Here++++++ - - - - - - - - - - -" - -[node name="TeamMember2" type="Button" parent="Team/GridContainer"] -layout_mode = 2 -text = "Add Team Here++++++" - -[node name="TeamMember3" type="Button" parent="Team/GridContainer"] -layout_mode = 2 -text = "Add Team Here++++++" - -[node name="TeamMember4" type="Button" parent="Team/GridContainer"] -layout_mode = 2 -text = "Add Team Here++++++" - -[node name="TeamMember5" type="Button" parent="Team/GridContainer"] -layout_mode = 2 -text = "Add Team Here++++++" - -[node name="MemberInventory" type="ColorRect" parent="."] -layout_mode = 0 -offset_left = 2.0 -offset_top = 40.0 -offset_right = 1152.0 -offset_bottom = 649.0 -color = Color(0.219501, 0.219501, 0.219501, 1) - -[node name="CenterContainer" type="CenterContainer" parent="MemberInventory"] -layout_mode = 0 -offset_right = 1150.0 -offset_bottom = 608.0 - -[node name="user Int" type="CanvasLayer" parent="."] - -[node name="MemberInterface" type="Control" parent="user Int"] -layout_mode = 3 -anchors_preset = 0 -offset_left = 21.2617 -offset_top = 125.673 -offset_right = 61.2617 -offset_bottom = 165.673 - -[node name="MemberInventory" type="PanelContainer" parent="user Int/MemberInterface"] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 diff --git a/Global.gd b/Global.gd index 8689f1b..49612f4 100644 --- a/Global.gd +++ b/Global.gd @@ -26,9 +26,9 @@ var damagePerSecMember1: int = 0 var damagePerClickMember1: int = 0 var damageMultiplierMember1: int = 1 ##Textures -var texture_member1 : Texture = null +var texture_member1 = "" # Function to set texture for member 1 -func set_texture1(texture: Texture): +func set_texture1(texture: String): texture_member1 = texture # Function to get texture for member 1 @@ -41,9 +41,9 @@ var damagePerSecMember2: int = 0 var damagePerClickMember2: int = 0 var damageMultiplierMember2: int = 1 -var texture_member2 : Texture = null +var texture_member2 = "" # Function to set texture for member 2 -func set_texture2(texture: Texture): +func set_texture2(texture: String): texture_member2 = texture # Function to get texture for member 2 @@ -56,9 +56,9 @@ var damagePerSecMember3: int = 0 var damagePerClickMember3: int = 0 var damageMultiplierMember3: int = 1 -var texture_member3 : Texture = null +var texture_member3 = "" # Function to set texture for member 3 -func set_texture3(texture: Texture): +func set_texture3(texture: String): texture_member3 = texture # Function to get texture for member 3 @@ -70,9 +70,9 @@ func get_texture3() -> Texture: var damagePerSecMember4: int = 0 var damagePerClickMember4: int = 0 var damageMultiplierMember4: int = 1 -var texture_member4 : Texture = null +var texture_member4 = "" # Function to set texture for member 4 -func set_texture4(texture: Texture): +func set_texture4(texture: String): texture_member4 = texture # Function to get texture for member 4 @@ -84,9 +84,9 @@ func get_texture4() -> Texture: var damagePerSecMember5: int = 0 var damagePerClickMember5: int = 0 var damageMultiplierMember5: int = 1 -var texture_member5 : Texture = null +var texture_member5 = "" # Function to set texture for member 5 -func set_texture5(texture: Texture): +func set_texture5(texture: String): texture_member5 = texture # Function to get texture for member 5 diff --git a/Inventory.tres b/Inventory.tres deleted file mode 100644 index 57eb4f8..0000000 --- a/Inventory.tres +++ /dev/null @@ -1,20 +0,0 @@ -[gd_resource type="Resource" script_class="InventoryData" load_steps=7 format=3 uid="uid://cvuvn1voknqbj"] - -[ext_resource type="Script" path="res://MemberInventory/Inventory_Data.gd" id="1_pvibr"] -[ext_resource type="Resource" path="res://Member/Members/apple.tres" id="2_aboym"] -[ext_resource type="Script" path="res://MemberInventory/Slot_Data.gd" id="3_22rk4"] -[ext_resource type="Resource" path="res://Member/Members/blue_book.tres" id="4_fg6vr"] - -[sub_resource type="Resource" id="Resource_vnpe5"] -script = ExtResource("3_22rk4") -memberData = ExtResource("2_aboym") -quantity = 11 - -[sub_resource type="Resource" id="Resource_cm5vi"] -script = ExtResource("3_22rk4") -memberData = ExtResource("4_fg6vr") -quantity = 5 - -[resource] -script = ExtResource("1_pvibr") -slot_datas = Array[ExtResource("3_22rk4")]([null, null, SubResource("Resource_vnpe5"), null, null, null, SubResource("Resource_cm5vi"), null, null, null, null, null, null, null, null, null, null, null]) diff --git a/MemberDatabase/memberData.gd b/MemberDatabase/memberData.gd deleted file mode 100644 index fbefd4b..0000000 --- a/MemberDatabase/memberData.gd +++ /dev/null @@ -1,611 +0,0 @@ -extends Node -const Rarity = { - "COMMON":0.8, - "UNCOMMON": 0.4, - "RARE": 0.2, - "SUPERRARE": 0.1, - "LEGENDARY": 0.05 -} - -var members = { - "squire": { - "name": "Squire", - "description": "Someone who does things for someone else, not very impressive.", - "perSec": 1, - "clickAdd": 1, - "scoreMultiplier": 1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Squire.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "archer": { - "name": "Archer", - "description": "Better at accurate clicks than consistent damage", - "perSec": 2, - "clickAdd": 2, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Archer.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "mage": { - "name": "Mage", - "description": "A good mix of DPS and click power", - "perSec": 3, - "clickAdd": 3, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Mage.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "warrior": { - "name": "Warrior", - "description": "Strong and brave fighter", - "perSec": 4, - "clickAdd": 4, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Warrior.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "healer": { - "name": "Healer", - "description": "Skilled in healing magic", - "perSec": 5, - "clickAdd": 5, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Healer.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "knight": { - "name": "Knight", - "description": "Valiant defender of the realm", - "perSec": 6, - "clickAdd": 6, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Knight.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "assassin": { - "name": "Assassin", - "description": "Expert in stealth and quick kills", - "perSec": 7, - "clickAdd": 7, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Assassin.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "paladin": { - "name": "Paladin", - "description": "Holy warrior with healing abilities", - "perSec": 8, - "clickAdd": 8, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Paladin.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "ranger": { - "name": "Ranger", - "description": "Skilled in ranged combat and survival", - "perSec": 9, - "clickAdd": 9, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Ranger.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "bard": { - "name": "Bard", - "description": "Musical magician with supportive abilities", - "perSec": 10, - "clickAdd": 10, - "scoreMultiplier": 1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Bard.png", - "tier": 1, - "rarity": Rarity.COMMON - }, - "crusader": { - "name": "Crusader", - "description": "Devout warrior on a holy quest", - "perSec": 11, - "clickAdd": 11, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Crusader.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "druid": { - "name": "Druid", - "description": "Nature mage with control over the elements", - "perSec": 12, - "clickAdd": 12, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Druid.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "samurai": { - "name": "Samurai", - "description": "Noble warrior with unmatched skill", - "perSec": 13, - "clickAdd": 13, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Samurai.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "ninja": { - "name": "Ninja", - "description": "Stealthy assassin with deadly precision", - "perSec": 14, - "clickAdd": 14, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Ninja.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "summoner": { - "name": "Summoner", - "description": "Mage with the ability to summon creatures", - "perSec": 15, - "clickAdd": 15, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Summoner.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "shaman": { - "name": "Shaman", - "description": "Spiritual healer and magic user", - "perSec": 16, - "clickAdd": 16, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Shaman.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "necromancer": { - "name": "Necromancer", - "description": "Dark mage with control over the dead", - "perSec": 17, - "clickAdd": 17, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Necromancer.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "berserker": { - "name": "Berserker", - "description": "Fierce warrior with unstoppable rage", - "perSec": 18, - "clickAdd": 18, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Berserker.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "monk": { - "name": "Monk", - "description": "Master of martial arts and inner peace", - "perSec": 19, - "clickAdd": 19, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Monk.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "alchemist": { - "name": "Alchemist", - "description": "Skilled in the art of potion-making", - "perSec": 20, - "clickAdd": 20, - "scoreMultiplier": 1.1, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Alchemist.png", - "tier": 2, - "rarity": Rarity.UNCOMMON - }, - "barbarian": { - "name": "Barbarian", - "description": "Savage warrior with immense strength", - "perSec": 21, - "clickAdd": 21, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Barbarian.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "illusionist": { - "name": "Illusionist", - "description": "Mage with mastery over illusions", - "perSec": 22, - "clickAdd": 22, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Illusionist.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "warlock": { - "name": "Warlock", - "description": "Dark mage with forbidden knowledge", - "perSec": 23, - "clickAdd": 23, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Warlock.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "pirate": { - "name": "Pirate", - "description": "Swashbuckling rogue of the seas", - "perSec": 24, - "clickAdd": 24, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Pirate.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "gladiator": { - "name": "Gladiator", - "description": "Champion of the arena", - "perSec": 25, - "clickAdd": 25, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Gladiator.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "rune_master": { - "name": "Rune Master", - "description": "Mage with mastery over runic magic", - "perSec": 26, - "clickAdd": 26, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Rune_Master.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "beastmaster": { - "name": "Beastmaster", - "description": "Warrior with control over beasts", - "perSec": 27, - "clickAdd": 27, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Beastmaster.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "elementalist": { - "name": "Elementalist", - "description": "Mage with control over the elements", - "perSec": 28, - "clickAdd": 28, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Elementalist.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "shadow_knight": { - "name": "Shadow Knight", - "description": "Dark warrior with control over shadows", - "perSec": 29, - "clickAdd": 29, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Shadow_Knight.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "archmage": { - "name": "Archmage", - "description": "Supreme master of magical arts", - "perSec": 30, - "clickAdd": 30, - "scoreMultiplier": 1.2, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Archmage.png", - "tier": 3, - "rarity": Rarity.RARE - }, - "dark_paladin": { - "name": "Dark Paladin", - "description": "Corrupted knight with dark powers", - "perSec": 31, - "clickAdd": 31, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Dark_Paladin.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "demon_hunter": { - "name": "Demon Hunter", - "description": "Expert in slaying demonic creatures", - "perSec": 32, - "clickAdd": 32, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Demon_Hunter.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "spirit_guardian": { - "name": "Spirit Guardian", - "description": "Protector of the spiritual realm", - "perSec": 33, - "clickAdd": 33, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Spirit_Guardian.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "phoenix": { - "name": "Phoenix", - "description": "Immortal bird of fire and rebirth", - "perSec": 34, - "clickAdd": 34, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Phoenix.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "dragon_rider": { - "name": "Dragon Rider", - "description": "Warrior who rides a mighty dragon", - "perSec": 35, - "clickAdd": 35, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Dragon_Rider.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "soul_reaper": { - "name": "Soul Reaper", - "description": "Harvester of souls from the afterlife", - "perSec": 36, - "clickAdd": 36, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Soul_Reaper.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "stormcaller": { - "name": "Stormcaller", - "description": "Mage with control over storms", - "perSec": 37, - "clickAdd": 37, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Stormcaller.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "blade_dancer": { - "name": "Blade Dancer", - "description": "Agile warrior with deadly precision", - "perSec": 38, - "clickAdd": 38, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Blade_Dancer.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "celestial_mage": { - "name": "Celestial Mage", - "description": "Mage with power over celestial bodies", - "perSec": 39, - "clickAdd": 39, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Celestial_Mage.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "void_walker": { - "name": "Void Walker", - "description": "Mage with control over void magic", - "perSec": 40, - "clickAdd": 40, - "scoreMultiplier": 1.3, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Void_Walker.png", - "tier": 4, - "rarity": Rarity.SUPERRARE - }, - "eternal_knight": { - "name": "Eternal Knight", - "description": "Immortal protector of the realm", - "perSec": 41, - "clickAdd": 41, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Eternal_Knight.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "chaos_warrior": { - "name": "Chaos Warrior", - "description": "Warrior with control over chaos", - "perSec": 42, - "clickAdd": 42, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Chaos_Warrior.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "starfall_mage": { - "name": "Starfall Mage", - "description": "Mage with control over falling stars", - "perSec": 43, - "clickAdd": 43, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Starfall_Mage.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "abyssal_warlock": { - "name": "Abyssal Warlock", - "description": "Dark mage with control over the abyss", - "perSec": 44, - "clickAdd": 44, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Abyssal_Warlock.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "lunar_knight": { - "name": "Lunar Knight", - "description": "Warrior with power over the moon", - "perSec": 45, - "clickAdd": 45, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Lunar_Knight.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "cosmic_mage": { - "name": "Cosmic Mage", - "description": "Mage with control over cosmic energy", - "perSec": 46, - "clickAdd": 46, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Cosmic_Mage.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "shadow_assassin": { - "name": "Shadow Assassin", - "description": "Master assassin with control over shadows", - "perSec": 47, - "clickAdd": 47, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Shadow_Assassin.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "firelord": { - "name": "Firelord", - "description": "Mage with mastery over fire", - "perSec": 48, - "clickAdd": 48, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Firelord.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "ice_queen": { - "name": "Ice Queen", - "description": "Mage with mastery over ice", - "perSec": 49, - "clickAdd": 49, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Ice_Queen.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - }, - "celeste_the_starcaller": { - "name": "Celeste the Starcaller", - "description": "Mage with control over stars", - "perSec": 50, - "clickAdd": 50, - "scoreMultiplier": 1.4, - "isObtained": false, - "memberAmount": 1, - "texturePath": "res://Images/Members/Celeste_the_Starcaller.png", - "tier": 5, - "rarity": Rarity.LEGENDARY - } -} diff --git a/MemberInventory/Inventory_Data.gd b/MemberInventory/Inventory_Data.gd deleted file mode 100644 index e95ab64..0000000 --- a/MemberInventory/Inventory_Data.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Resource -class_name InventoryData - -@export var slot_datas: Array[Slot_Data] - diff --git a/MemberInventory/Slot_Data.gd b/MemberInventory/Slot_Data.gd deleted file mode 100644 index a5bc467..0000000 --- a/MemberInventory/Slot_Data.gd +++ /dev/null @@ -1,14 +0,0 @@ -extends Resource -class_name Slot_Data - -const MAX_STACK_SIZE: int = 99 - -@export var memberData: Member_Data -@export_range(1, MAX_STACK_SIZE) var quantity: int = 1: set = set_quantity - -func set_quantity(value: int) -> void: - quantity = value - if quantity > 1 and not memberData.stackable: - quantity = 1 - push_error("%s is not stackable, setting quantity to 1" % memberData.name) - diff --git a/Root.gd b/Root.gd index eefeaca..953286e 100644 --- a/Root.gd +++ b/Root.gd @@ -8,39 +8,6 @@ func _ready(): pass #User Data copy if needed -var files_to_copy = [ - "MemberDatabase/memberData.json", - "Boss/bossData.json" -] - -var user_directory = OS.get_user_data_dir() - - -func copy_file_if_not_exists(file_name: String): - var user_file_path = "user://" + file_name - if not FileAccess.file_exists(user_file_path): - var res_file_path = "res://" + file_name - if FileAccess.file_exists(res_file_path): - var file = FileAccess.open(res_file_path, FileAccess.READ) - if file: - var data = file.get_as_text() - file.close() - - # Write to user:// directory - var user_file = FileAccess.open(user_file_path, FileAccess.WRITE) - if user_file: - user_file.store_string(data) - user_file.close() - print("Copied ", file_name, " to user:// directory.") - else: - print("Failed to open destination file: ", user_file_path) - user_file.get_open_error() - else: - print("Failed to open source file: ", res_file_path) - else: - print("Source file ", res_file_path, " not found.") - else: - print("File ", user_file_path, " already exists.") diff --git a/Save/saveData.json b/Save/saveData.json new file mode 100644 index 0000000..f18405e --- /dev/null +++ b/Save/saveData.json @@ -0,0 +1,26 @@ +{ + "damagePerClick": 1, + "damagePerSec": 1, + "damageMultiplier": 1, + "totalDamage": 0, + "damagePerSecMember1": 0, + "damagePerClickMember1": 0, + "damageMultiplierMember1": 1, + "textureMember1": "", + "damagePerSecMember2": 0, + "damagePerClickMember2": 0, + "damageMultiplierMember2": 1, + "textureMember2": "", + "damagePerSecMember3": 0, + "damagePerClickMember3": 0, + "damageMultiplierMember3": 1, + "textureMember3": "", + "damagePerSecMember4": 0, + "damagePerClickMember4": 0, + "damageMultiplierMember4": 1, + "textureMember4": "", + "damagePerSecMember5": 0, + "damagePerClickMember5": 0, + "damageMultiplierMember5": 1, + "textureMember5": "" + } \ No newline at end of file diff --git a/User Interface/UserInterface.tscn b/Scenes/UserInterface.tscn similarity index 76% rename from User Interface/UserInterface.tscn rename to Scenes/UserInterface.tscn index 519931e..cdce804 100644 --- a/User Interface/UserInterface.tscn +++ b/Scenes/UserInterface.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=5 format=3 uid="uid://xh0p6v5ir05f"] +[gd_scene load_steps=6 format=3 uid="uid://xh0p6v5ir05f"] -[ext_resource type="Script" path="res://Root.gd" id="1_dtx5s"] -[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_g0muc"] -[ext_resource type="Script" path="res://User Interface/Header.gd" id="3_q5rri"] -[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_7wp2t"] +[ext_resource type="Script" path="res://Root.gd" id="1_lggo0"] +[ext_resource type="Script" path="res://User Interface/Header.gd" id="2_o6t6l"] +[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_1o3gu"] +[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_3csg5"] +[ext_resource type="Script" path="res://Scenes/saveTimer.gd" id="5_85eop"] [node name="Root" type="Control"] layout_mode = 3 @@ -14,7 +15,7 @@ offset_right = 768.0 offset_bottom = 432.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource("1_dtx5s") +script = ExtResource("1_lggo0") [node name="UI" type="Control" parent="."] anchors_preset = 0 @@ -27,17 +28,17 @@ offset_bottom = 1080.0 offset_left = 3.0 offset_right = 395.0 offset_bottom = 40.0 -script = ExtResource("3_q5rri") +script = ExtResource("2_o6t6l") -[node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"] +[node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "Score:" -[node name="Score" type="Label" parent="UI/CanvasLayer/Header"] +[node name="Score" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "0" -[node name="Timer" type="Timer" parent="UI/CanvasLayer/Header"] +[node name="Timer" type="Timer" parent="UI/CanvasLayer/Header" groups=["Persist"]] autostart = true [node name="ClickUpgrades" type="MenuButton" parent="UI/CanvasLayer/Header"] @@ -93,37 +94,42 @@ layout_mode = 2 text = "Team" flat = true alignment = 0 -script = ExtResource("3_g0muc") +script = ExtResource("3_1o3gu") [node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"] layout_mode = 2 text = "Bosses" flat = true alignment = 0 -script = ExtResource("4_7wp2t") +script = ExtResource("4_3csg5") -[node name="ClickAddLabel" type="Label" parent="UI/CanvasLayer/Header"] +[node name="ClickAddLabel" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "ClickAdd:" -[node name="ClickAdd" type="Label" parent="UI/CanvasLayer/Header"] +[node name="ClickAdd" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "0" -[node name="PerSecLabel" type="Label" parent="UI/CanvasLayer/Header"] +[node name="PerSecLabel" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "PerSec: " -[node name="PerSec" type="Label" parent="UI/CanvasLayer/Header"] +[node name="PerSec" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "0" -[node name="MultiplierLabel" type="Label" parent="UI/CanvasLayer/Header"] +[node name="MultiplierLabel" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "Multiplier: " -[node name="Multiplier" type="Label" parent="UI/CanvasLayer/Header"] +[node name="Multiplier" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "0" + +[node name="saveTimer" type="Timer" parent="UI/CanvasLayer/Header"] +wait_time = 5.0 +autostart = true +script = ExtResource("5_85eop") diff --git a/bossFights.tscn b/Scenes/bossFights.tscn similarity index 85% rename from bossFights.tscn rename to Scenes/bossFights.tscn index 0baf8f4..365f835 100644 --- a/bossFights.tscn +++ b/Scenes/bossFights.tscn @@ -1,12 +1,13 @@ -[gd_scene load_steps=8 format=3 uid="uid://2xiybbxvsdwi"] +[gd_scene load_steps=9 format=3 uid="uid://2xiybbxvsdwi"] -[ext_resource type="Script" path="res://Root.gd" id="1_dq55c"] -[ext_resource type="Script" path="res://User Interface/Header.gd" id="2_e5bkm"] -[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_2wxqa"] -[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_0lt4t"] -[ext_resource type="Script" path="res://User Interface/BossGrid.gd" id="5_1d3gb"] -[ext_resource type="Script" path="res://User Interface/Boss1.gd" id="6_pp6ep"] -[ext_resource type="Script" path="res://User Interface/CharacterRoll.gd" id="7_7lppr"] +[ext_resource type="Script" path="res://Root.gd" id="1_woypb"] +[ext_resource type="Script" path="res://User Interface/Header.gd" id="2_0hr4q"] +[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_e754c"] +[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_sjkwo"] +[ext_resource type="Script" path="res://User Interface/BossGrid.gd" id="5_8idyi"] +[ext_resource type="Script" path="res://Scenes/saveTimer.gd" id="5_wpe6x"] +[ext_resource type="Script" path="res://User Interface/Boss1.gd" id="6_ea00f"] +[ext_resource type="Script" path="res://User Interface/CharacterRoll.gd" id="7_jle1x"] [node name="Root" type="Control"] layout_mode = 3 @@ -17,7 +18,7 @@ offset_right = 768.0 offset_bottom = 432.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource("1_dq55c") +script = ExtResource("1_woypb") [node name="UI" type="Control" parent="."] anchors_preset = 0 @@ -30,7 +31,7 @@ offset_bottom = 1080.0 offset_left = 3.0 offset_right = 395.0 offset_bottom = 40.0 -script = ExtResource("2_e5bkm") +script = ExtResource("2_0hr4q") [node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"] layout_mode = 2 @@ -96,14 +97,14 @@ layout_mode = 2 text = "Team" flat = true alignment = 0 -script = ExtResource("3_2wxqa") +script = ExtResource("3_e754c") [node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"] layout_mode = 2 text = "Bosses" flat = true alignment = 0 -script = ExtResource("4_0lt4t") +script = ExtResource("4_sjkwo") [node name="ClickAddLabel" type="Label" parent="UI/CanvasLayer/Header"] layout_mode = 2 @@ -131,6 +132,11 @@ text = "Multiplier: layout_mode = 2 text = "0" +[node name="saveTimer" type="Timer" parent="UI/CanvasLayer/Header"] +wait_time = 5.0 +autostart = true +script = ExtResource("5_wpe6x") + [node name="BossFights" type="PanelContainer" parent="UI"] layout_mode = 0 offset_left = 857.0 @@ -140,13 +146,13 @@ offset_bottom = 422.0 [node name="BossGrid" type="GridContainer" parent="UI/BossFights"] layout_mode = 2 -script = ExtResource("5_1d3gb") +script = ExtResource("5_8idyi") [node name="Boss1" type="TextureButton" parent="UI/BossFights/BossGrid"] layout_mode = 2 -script = ExtResource("6_pp6ep") +script = ExtResource("6_ea00f") [node name="CharacterRoll" type="PanelContainer" parent="UI/BossFights/BossGrid"] visible = false layout_mode = 2 -script = ExtResource("7_7lppr") +script = ExtResource("7_jle1x") diff --git a/Scenes/saveTimer.gd b/Scenes/saveTimer.gd new file mode 100644 index 0000000..79ebc48 --- /dev/null +++ b/Scenes/saveTimer.gd @@ -0,0 +1,123 @@ +extends Timer + +var save_data = {} + + +func saveGame(): + #var save_game = FileAccess.open("user://Save/savegame.save", FileAccess.WRITE) + #var save_nodes = get_tree().get_nodes_in_group("Persist") + #for node in save_nodes: + #if node.scene_file_path.is_empty(): + #print("persistent node '%s' is not an instanced scene, skipped" % node.name) + #continue +# + ## Check the node has a save function. + #if !node.has_method("save"): + #print("persistent node '%s' is missing a save() function, skipped" % node.name) + #continue +# + ## Call the node's save function. + #var node_data = node.call("save") +# + ## JSON provides a static method to serialized JSON string. + #var json_string = JSON.stringify(node_data) +# + ## Store the save dictionary as a new line in the save file. + #save_game.store_line(json_string) + +#func save(): + #var save_dict = { + #"filename" : get_scene_file_path(), + #"parent" : get_parent().get_path(), + #"damagePerClick" : Global.globalDamagePerClick, + #"damagePerSec" : Global.globalDamagePerSec, + #"damageMultiplier" : Global.globalDamageMultiplier, + #"totalDamage" : Global.globalDamage + #} + + var file_path = "user://Save/saveData.json" + var file = FileAccess.open(file_path, FileAccess.WRITE) + if file: + var json_text = JSON.stringify(save_data) + file.store_string(json_text) + file.close() + print("Game Data Saved") + else: + print("Failed to open file: ", file_path) + +func load_save_data(): + + #If using json + var file = FileAccess.open("user://Save/saveData.json", FileAccess.READ) + #var file = FileAccess.open("user://memberData.json", FileAccess.READ) + if file: + var json_text = file.get_as_text() + #print (json_text) + file.close() + + var json = JSON.new() + var json_result = json.parse(json_text) + #print (json_result) + + if json_result == OK: + save_data = json.get_data() + print("Save data loaded successfully.") + #print(character_data) + else: + print("Failed to parse JSON: ", json_result.error_string) + else: + print("Save data file not found.") + + +func _ready(): + # Initialize data or load from file if necessary + #$saveTimer.connect("timeout", _on_Timer_timeout) + connect("timeout", _on_Timer_timeout) + #var current_scene = get_tree().current_scene + #if current_scene: + ## Verify the saveTimer node exists in the current scene + #var timer_node = current_scene.get_node("saveTimer") # Adjust the path as necessary + #if timer_node: + #print("Timer node found: ", timer_node) + #timer_node.connect("timeout", _on_Timer_timeout) + #timer_node.start() + #else: + #print("saveTimer node not found") + #else: + #print("Current scene not found") + +func _on_Timer_timeout(): + load_save_data() + save_data["damagePerClick"] = Global.globalDamagePerClick + save_data["damagePerSec"] = Global.globalDamagePerSec + save_data["damageMultiplier"] = Global.globalDamageMultiplier + save_data["totalDamage"] = Global.globalDamage + save_data["damagePerSecMember1"] = Global.damagePerSecMember1 + save_data["damagePerClickMember1"] = Global.damagePerClickMember1 + save_data["damageMultiplierMember1"] = Global.damageMultiplierMember1 + if Global.texture_member1: + save_data["textureMember1"] = Global.texture_member1 + save_data["damagePerSecMember2"] = Global.damagePerSecMember2 + save_data["damagePerClickMember2"] = Global.damagePerClickMember2 + save_data["damageMultiplierMember2"] = Global.damageMultiplierMember2 + if Global.texture_member2: + save_data["textureMember2"] = Global.texture_member2 + save_data["damagePerSecMember3"] = Global.damagePerSecMember3 + save_data["damagePerClickMember3"] = Global.damagePerClickMember3 + save_data["damageMultiplierMember3"] = Global.damageMultiplierMember3 + if Global.texture_member3: + save_data["textureMember3"] = Global.texture_member3 + save_data["damagePerSecMember4"] = Global.damagePerSecMember4 + save_data["damagePerClickMember4"] = Global.damagePerClickMember4 + save_data["damageMultiplierMember4"] = Global.damageMultiplierMember4 + if Global.texture_member4: + save_data["textureMember4"] = Global.texture_member4 + save_data["damagePerSecMember5"] = Global.damagePerSecMember5 + save_data["damagePerClickMember5"] = Global.damagePerClickMember5 + save_data["damageMultiplierMember5"] = Global.damageMultiplierMember5 + if Global.texture_member5: + save_data["textureMember5"] = Global.texture_member5 + saveGame() +func _process(delta): + + pass diff --git a/Scenes/savemanager.tscn b/Scenes/savemanager.tscn new file mode 100644 index 0000000..182bc3d --- /dev/null +++ b/Scenes/savemanager.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=3 uid="uid://b70r8ttk10fgd"] + +[ext_resource type="Script" path="res://Scenes/saveTimer.gd" id="1_5di46"] + +[node name="saveManager" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="saveTimer" type="Timer" parent="."] +wait_time = 60.0 +autostart = true +script = ExtResource("1_5di46") diff --git a/team.tscn b/Scenes/team.tscn similarity index 61% rename from team.tscn rename to Scenes/team.tscn index 8309b06..6a70837 100644 --- a/team.tscn +++ b/Scenes/team.tscn @@ -1,15 +1,15 @@ [gd_scene load_steps=11 format=3 uid="uid://blwuy4v4qqyna"] -[ext_resource type="Script" path="res://User Interface/Header.gd" id="1_ldil2"] -[ext_resource type="Script" path="res://Root.gd" id="1_mv0o0"] -[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="2_nwe87"] -[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="3_c1mhp"] -[ext_resource type="Script" path="res://User Interface/AspectRatioContainer.gd" id="4_eqraq"] -[ext_resource type="Script" path="res://User Interface/Member1.gd" id="5_574fx"] -[ext_resource type="Script" path="res://User Interface/Member2.gd" id="6_a2aw7"] -[ext_resource type="Script" path="res://User Interface/Member3.gd" id="7_o40hd"] -[ext_resource type="Script" path="res://User Interface/Member4.gd" id="8_0l7ds"] -[ext_resource type="Script" path="res://User Interface/Member5.gd" id="9_yaflp"] +[ext_resource type="Script" path="res://Root.gd" id="1_6ykb6"] +[ext_resource type="Script" path="res://User Interface/Header.gd" id="2_63y2i"] +[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_yy4wh"] +[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_nmd48"] +[ext_resource type="Script" path="res://Scenes/saveTimer.gd" id="5_6vp5u"] +[ext_resource type="Script" path="res://User Interface/Member1.gd" id="6_dqecs"] +[ext_resource type="Script" path="res://User Interface/Member2.gd" id="7_ddddf"] +[ext_resource type="Script" path="res://User Interface/Member3.gd" id="8_d2bof"] +[ext_resource type="Script" path="res://User Interface/Member4.gd" id="9_2ploj"] +[ext_resource type="Script" path="res://User Interface/Member5.gd" id="10_vu24c"] [node name="Root" type="Control"] layout_mode = 3 @@ -18,7 +18,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource("1_mv0o0") +script = ExtResource("1_6ykb6") [node name="UI" type="Control" parent="."] layout_mode = 3 @@ -32,7 +32,7 @@ offset_bottom = 1080.0 offset_left = 3.0 offset_right = 395.0 offset_bottom = 40.0 -script = ExtResource("1_ldil2") +script = ExtResource("2_63y2i") [node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"] layout_mode = 2 @@ -45,67 +45,19 @@ text = "0" [node name="Timer" type="Timer" parent="UI/CanvasLayer/Header"] autostart = true -[node name="ClickUpgrades" type="MenuButton" parent="UI/CanvasLayer/Header"] -visible = false -layout_mode = 2 -text = "Click Upgrades" -item_count = 9 -popup/item_0/text = "+1 Cost:10" -popup/item_0/id = 0 -popup/item_1/text = "+10 Cost: 100" -popup/item_1/id = 1 -popup/item_2/text = "+20 Cost:1,000" -popup/item_2/id = 2 -popup/item_3/text = "+40 Cost: 10,000" -popup/item_3/id = 3 -popup/item_4/text = "+60 Cost: 100,000" -popup/item_4/id = 4 -popup/item_5/text = "+80 Cost: 1,000,000" -popup/item_5/id = 5 -popup/item_6/text = "+100 Cost: 10,000,000" -popup/item_6/id = 6 -popup/item_7/text = "+200 Cost: 100,000,000" -popup/item_7/id = 7 -popup/item_8/text = "+400 Cost: 1,000,000,000" -popup/item_8/id = 8 - -[node name="PassiveUpgrades" type="MenuButton" parent="UI/CanvasLayer/Header"] -visible = false -layout_mode = 2 -text = "Passive Upgrades" -item_count = 9 -popup/item_0/text = "2/s Cost: 100" -popup/item_0/id = 0 -popup/item_1/text = "10/s Cost: 1,000" -popup/item_1/id = 1 -popup/item_2/text = "20/s Cost: 10,000" -popup/item_2/id = 2 -popup/item_3/text = "50/s Cost: 100,000" -popup/item_3/id = 3 -popup/item_4/text = "100/s Cost:1,000,000" -popup/item_4/id = 4 -popup/item_5/text = "200/s Cost: 10,000,000" -popup/item_5/id = 5 -popup/item_6/text = "500/s Cost: 100,000,000" -popup/item_6/id = 6 -popup/item_7/text = "1,000/s Cost: 1,000,000,000" -popup/item_7/id = 7 -popup/item_8/text = "10,000/s Cost: 10,000,000,000" -popup/item_8/id = 8 - [node name="TeamButton" type="Button" parent="UI/CanvasLayer/Header"] layout_mode = 2 text = "Team" flat = true alignment = 0 -script = ExtResource("2_nwe87") +script = ExtResource("3_yy4wh") [node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"] layout_mode = 2 text = "Bosses" flat = true alignment = 0 -script = ExtResource("3_c1mhp") +script = ExtResource("4_nmd48") [node name="ClickAddLabel" type="Label" parent="UI/CanvasLayer/Header"] layout_mode = 2 @@ -133,55 +85,59 @@ text = "Multiplier: layout_mode = 2 text = "0" +[node name="saveTimer" type="Timer" parent="UI/CanvasLayer/Header"] +wait_time = 5.0 +autostart = true +script = ExtResource("5_6vp5u") + [node name="AspectRatioContainer" type="AspectRatioContainer" parent="UI"] layout_mode = 0 -offset_left = -2.60654 -offset_top = 271.396 -offset_right = 1917.39 -offset_bottom = 800.396 -script = ExtResource("4_eqraq") +offset_left = -3.0 +offset_top = 40.0 +offset_right = 1152.0 +offset_bottom = 648.0 [node name="TeamScreen" type="HBoxContainer" parent="UI/AspectRatioContainer"] visibility_layer = 2 layout_mode = 2 alignment = 1 -[node name="Member1" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen"] +[node name="Member1" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 -script = ExtResource("5_574fx") +script = ExtResource("6_dqecs") [node name="VSeparator" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] layout_mode = 2 -[node name="Member2" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen"] +[node name="Member2" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 -script = ExtResource("6_a2aw7") +script = ExtResource("7_ddddf") [node name="VSeparator2" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] layout_mode = 2 -[node name="Member3" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen"] +[node name="Member3" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 -script = ExtResource("7_o40hd") +script = ExtResource("8_d2bof") [node name="VSeparator3" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] layout_mode = 2 -[node name="Member4" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen"] +[node name="Member4" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 -script = ExtResource("8_0l7ds") +script = ExtResource("9_2ploj") [node name="VSeparator4" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] layout_mode = 2 -[node name="Member5" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen"] +[node name="Member5" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 -script = ExtResource("9_yaflp") +script = ExtResource("10_vu24c") [node name="Label" type="Label" parent="UI/AspectRatioContainer/TeamScreen"] visible = false diff --git a/teamSelection.tscn b/Scenes/teamSelection.tscn similarity index 84% rename from teamSelection.tscn rename to Scenes/teamSelection.tscn index de8cd0a..42e0f9d 100644 --- a/teamSelection.tscn +++ b/Scenes/teamSelection.tscn @@ -1,11 +1,12 @@ -[gd_scene load_steps=7 format=3 uid="uid://jleorcxdlvge"] +[gd_scene load_steps=8 format=3 uid="uid://jleorcxdlvge"] -[ext_resource type="Script" path="res://Root.gd" id="1_8y42b"] -[ext_resource type="Script" path="res://User Interface/Header.gd" id="2_mowpw"] -[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_oxquv"] -[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_l25dw"] -[ext_resource type="Script" path="res://TeamSelection.gd" id="5_3rdmh"] -[ext_resource type="Script" path="res://MemberDatabase/MemberDatabase.gd" id="6_ukmgy"] +[ext_resource type="Script" path="res://Root.gd" id="1_4wos3"] +[ext_resource type="Script" path="res://MemberDatabase/MemberDatabase.gd" id="2_d1pbg"] +[ext_resource type="Script" path="res://User Interface/Header.gd" id="3_5456x"] +[ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="4_15yu8"] +[ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="5_1vjo7"] +[ext_resource type="Script" path="res://Scenes/saveTimer.gd" id="6_6bpyy"] +[ext_resource type="Script" path="res://TeamSelection.gd" id="6_aruh2"] [node name="Root" type="Control"] layout_mode = 3 @@ -16,14 +17,14 @@ offset_right = 768.0 offset_bottom = 432.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource("1_8y42b") +script = ExtResource("1_4wos3") [node name="MemberDatabase" type="Control" parent="."] visible = false anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 -script = ExtResource("6_ukmgy") +script = ExtResource("2_d1pbg") [node name="UI" type="Control" parent="."] anchors_preset = 0 @@ -36,7 +37,7 @@ offset_bottom = 1080.0 offset_left = 3.0 offset_right = 395.0 offset_bottom = 40.0 -script = ExtResource("2_mowpw") +script = ExtResource("3_5456x") [node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"] layout_mode = 2 @@ -102,14 +103,14 @@ layout_mode = 2 text = "Team" flat = true alignment = 0 -script = ExtResource("3_oxquv") +script = ExtResource("4_15yu8") [node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"] layout_mode = 2 text = "Bosses" flat = true alignment = 0 -script = ExtResource("4_l25dw") +script = ExtResource("5_1vjo7") [node name="ClickAddLabel" type="Label" parent="UI/CanvasLayer/Header"] layout_mode = 2 @@ -137,6 +138,11 @@ text = "Multiplier: layout_mode = 2 text = "0" +[node name="saveTimer" type="Timer" parent="UI/CanvasLayer/Header"] +wait_time = 5.0 +autostart = true +script = ExtResource("6_6bpyy") + [node name="TeamSelection" type="GridContainer" parent="UI"] layout_mode = 0 offset_left = 3.0 @@ -144,4 +150,4 @@ offset_top = 40.0 offset_right = 1923.0 offset_bottom = 1120.0 columns = 10 -script = ExtResource("5_3rdmh") +script = ExtResource("6_aruh2") diff --git a/Scenes/titleScreen.gd b/Scenes/titleScreen.gd new file mode 100644 index 0000000..1f5089f --- /dev/null +++ b/Scenes/titleScreen.gd @@ -0,0 +1,94 @@ +extends Control + +var files_to_copy = [ + "MemberDatabase/memberData.json", + "Boss/bossData.json", + "Save/saveData.json" +] + +var user_directory = OS.get_user_data_dir() + +var save_data = {} + +func copy_file_if_not_exists(file_name: String): + var user_file_path = "user://" + file_name + if not FileAccess.file_exists(user_file_path): + var res_file_path = "res://" + file_name + if FileAccess.file_exists(res_file_path): + var file = FileAccess.open(res_file_path, FileAccess.READ) + if file: + var data = file.get_as_text() + file.close() + + # Write to user:// directory + var user_file = FileAccess.open(user_file_path, FileAccess.WRITE) + if user_file: + user_file.store_string(data) + user_file.close() + print("Copied ", file_name, " to user:// directory.") + else: + print("Failed to open destination file: ", user_file_path) + user_file.get_open_error() + else: + print("Failed to open source file: ", res_file_path) + else: + print("Source file ", res_file_path, " not found.") + else: + print("File ", user_file_path, " already exists.") + +func load_saved_game(): + #If using json + var file = FileAccess.open("user://Save/saveData.json", FileAccess.READ) + #var file = FileAccess.open("user://memberData.json", FileAccess.READ) + if file: + var json_text = file.get_as_text() + #print (json_text) + file.close() + + var json = JSON.new() + var json_result = json.parse(json_text) + #print (json_result) + + if json_result == OK: + save_data = json.get_data() + print("Save data loaded successfully.") + #print(character_data) + else: + print("Failed to parse JSON: ", json_result.error_string) + else: + print("Save data file not found.") + #Sets the global variables to what was saved + Global.globalDamage = save_data["totalDamage"] + Global.globalDamagePerClick = save_data["damagePerClick"] + Global.globalDamagePerSec = save_data["damagePerSec"] + Global.globalDamageMultiplier = save_data["damageMultiplier"] + Global.damagePerSecMember1 = save_data["damagePerSecMember1"] + Global.damagePerClickMember1 = save_data["damagePerClickMember1"] + Global.damageMultiplierMember1 = save_data["damageMultiplierMember1"] + Global.texture_member1 = save_data["textureMember1"] + Global.damagePerSecMember2 = save_data["damagePerSecMember2"] + Global.damagePerClickMember2 = save_data["damagePerClickMember2"] + Global.damageMultiplierMember2 = save_data["damageMultiplierMember2"] + Global.texture_member2 = save_data["textureMember2"] + Global.damagePerSecMember3 = save_data["damagePerSecMember3"] + Global.damagePerClickMember3 = save_data["damagePerClickMember3"] + Global.damageMultiplierMember3 = save_data["damageMultiplierMember3"] + Global.texture_member3 = save_data["textureMember3"] + Global.damagePerSecMember4 = save_data["damagePerSecMember4"] + Global.damagePerClickMember4 = save_data["damagePerClickMember4"] + Global.damageMultiplierMember4 = save_data["damageMultiplierMember4"] + Global.texture_member4 = save_data["textureMember4"] + Global.damagePerSecMember5 = save_data["damagePerSecMember5"] + Global.damagePerClickMember5 = save_data["damagePerClickMember5"] + Global.damageMultiplierMember5 = save_data["damageMultiplierMember5"] + Global.texture_member5 = save_data["textureMember5"] + +# Called when the node enters the scene tree for the first time. +func _ready(): + for file_name in files_to_copy: + copy_file_if_not_exists(file_name) # Replace with function body. + load_saved_game() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/Scenes/titleScreen.tscn b/Scenes/titleScreen.tscn new file mode 100644 index 0000000..dd388c9 --- /dev/null +++ b/Scenes/titleScreen.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=3 format=3 uid="uid://c1kf17y3j7jhy"] + +[ext_resource type="Script" path="res://TitleClick.gd" id="1_8fgbc"] +[ext_resource type="Script" path="res://Scenes/titleScreen.gd" id="1_euijw"] + +[node name="TitleScreen" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = 768.0 +offset_bottom = 432.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_euijw") + +[node name="Title Text" type="RichTextLabel" parent="."] +layout_mode = 0 +offset_right = 2422.0 +offset_bottom = 1080.0 +text = "Title Screen + +Click Anywhere" + +[node name="TitleClick" type="LinkButton" parent="Title Text"] +layout_mode = 0 +offset_right = 1920.0 +offset_bottom = 1080.0 +script = ExtResource("1_8fgbc") diff --git a/TeamSelection.gd b/TeamSelection.gd index 2ad36b3..d563114 100644 --- a/TeamSelection.gd +++ b/TeamSelection.gd @@ -60,7 +60,7 @@ func _on_button_exited(button: TextureButton): # Update the global singleton for the given index -func update_global_texture_singleton(texture: Texture): +func update_global_texture_singleton(texture: String): match Global.currentMemberSelected: 0: Global.set_texture1(texture) @@ -79,7 +79,8 @@ func _on_button_pressed(button: TextureButton, member: Dictionary): ## Print the name of the button ##print("Button pressed: ", button.name) - var selected_texture = button.texture_normal + var selected_texture = button.texture_normal.resource_path + print(selected_texture) #var texture = button.texture_normal # Logic to determine which target button to update (this can be based on user selection or some other logic) # For this example, we'll update the first available slot @@ -96,7 +97,7 @@ func _on_button_pressed(button: TextureButton, member: Dictionary): Global.teamScreenVisible = true Global.teamSelectionVisible = false - get_tree().change_scene_to_file("res://team.tscn") + get_tree().change_scene_to_file("res://Scenes/team.tscn") diff --git a/TitleClick.gd b/TitleClick.gd new file mode 100644 index 0000000..6ddefe9 --- /dev/null +++ b/TitleClick.gd @@ -0,0 +1,15 @@ +extends LinkButton + + +# Called when the node enters the scene tree for the first time. +func _ready(): + self.connect("pressed", Callable(self, "_on_Button_pressed")) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + + +func _on_Button_pressed(): + get_tree().change_scene_to_file("res://Scenes/UserInterface.tscn") diff --git a/User Interface/Bossbutton.gd b/User Interface/Bossbutton.gd index 85869b8..544a8ff 100644 --- a/User Interface/Bossbutton.gd +++ b/User Interface/Bossbutton.gd @@ -8,7 +8,7 @@ func _ready(): # Function to handle the button press func _on_Button_pressed(): - get_tree().change_scene_to_file("res://bossFights.tscn") + get_tree().change_scene_to_file("res://Scenes/bossFights.tscn") #if Global.bossScreenVisible == false: #Global.bossScreenVisible = true #Global.teamScreenVisible = false diff --git a/User Interface/Member1.gd b/User Interface/Member1.gd index a891487..89e9cd3 100644 --- a/User Interface/Member1.gd +++ b/User Interface/Member1.gd @@ -6,19 +6,20 @@ func _ready(): # Connect the pressed signal to the _on_Button_pressed function self.connect("pressed", Callable(self, "_on_Button_pressed")) + func _process(delta): #Checks if the texture needs to be set if Global.texture_member1: - self.texture_normal = Global.texture_member1 - + self.texture_normal = load(Global.texture_member1) + # Function to handle the button press func _on_Button_pressed(): #MemberDatabase.load_character_data() - get_tree().change_scene_to_file("res://teamSelection.tscn") + get_tree().change_scene_to_file("res://Scenes/teamSelection.tscn") Global.currentMemberSelected = 0 diff --git a/User Interface/Member2.gd b/User Interface/Member2.gd index 72a3277..57c774d 100644 --- a/User Interface/Member2.gd +++ b/User Interface/Member2.gd @@ -12,12 +12,12 @@ func _ready(): func _process(delta): #Checks if the texture needs to be set if Global.texture_member2: - self.texture_normal = Global.texture_member2 + self.texture_normal = load(Global.texture_member2) # Function to handle the button press func _on_Button_pressed(): - get_tree().change_scene_to_file("res://teamSelection.tscn") + get_tree().change_scene_to_file("res://Scenes/teamSelection.tscn") Global.currentMemberSelected = 1 diff --git a/User Interface/Member3.gd b/User Interface/Member3.gd index f60a756..443d469 100644 --- a/User Interface/Member3.gd +++ b/User Interface/Member3.gd @@ -12,13 +12,13 @@ func _ready(): func _process(delta): #Checks if the texture needs to be set if Global.texture_member3: - self.texture_normal = Global.texture_member3 + self.texture_normal = load(Global.texture_member3) # Function to handle the button press func _on_Button_pressed(): #This is an array, numbers will not match - get_tree().change_scene_to_file("res://teamSelection.tscn") + get_tree().change_scene_to_file("res://Scenes/teamSelection.tscn") Global.currentMemberSelected = 2 Global.teamScreenVisible = false diff --git a/User Interface/Member4.gd b/User Interface/Member4.gd index 1813788..33dab5e 100644 --- a/User Interface/Member4.gd +++ b/User Interface/Member4.gd @@ -12,12 +12,12 @@ func _ready(): func _process(delta): #Checks if the texture needs to be set if Global.texture_member4: - self.texture_normal = Global.texture_member4 + self.texture_normal = load(Global.texture_member4) # Function to handle the button press func _on_Button_pressed(): - get_tree().change_scene_to_file("res://teamSelection.tscn") + get_tree().change_scene_to_file("res://Scenes/teamSelection.tscn") Global.currentMemberSelected = 3 diff --git a/User Interface/Member5.gd b/User Interface/Member5.gd index 9c42e32..cac3367 100644 --- a/User Interface/Member5.gd +++ b/User Interface/Member5.gd @@ -12,12 +12,12 @@ func _ready(): func _process(delta): #Checks if the texture needs to be set if Global.texture_member5: - self.texture_normal = Global.texture_member5 + self.texture_normal = load(Global.texture_member5) # Function to handle the button press func _on_Button_pressed(): - get_tree().change_scene_to_file("res://teamSelection.tscn") + get_tree().change_scene_to_file("res://Scenes/teamSelection.tscn") Global.currentMemberSelected = 4 diff --git a/User Interface/TeamButton.gd b/User Interface/TeamButton.gd index 1e0180d..1d4f3ad 100644 --- a/User Interface/TeamButton.gd +++ b/User Interface/TeamButton.gd @@ -9,7 +9,7 @@ func _ready(): func _on_Button_pressed(): #var new_scene = load("res://teamSelection.tscn") - get_tree().change_scene_to_file("res://team.tscn") + get_tree().change_scene_to_file("res://Scenes/team.tscn") #if Global.teamScreenVisible == false: #Global.teamSelectionVisible = false diff --git a/inventory.gd b/inventory.gd deleted file mode 100644 index 270d461..0000000 --- a/inventory.gd +++ /dev/null @@ -1,21 +0,0 @@ -extends PanelContainer - -const Slot = preload("res://slot.tscn") - -@onready var member_grid = $MarginContainer/MemberGrid - -func _ready() -> void: - var inv_data = preload("res://Inventory.tres") - populate_member_grid(inv_data.slot_datas) - -func populate_member_grid(slot_datas: Array[Slot_Data]) -> void: - for child in member_grid.get_children(): - child.queue_free() - - for slot_data in slot_datas: - var slot = Slot.instantiate() - member_grid.add_child(slot) - - #Populates slot - if slot_data: - slot.set_slot_data(slot_data) diff --git a/inventory.tscn b/inventory.tscn deleted file mode 100644 index 87a7128..0000000 --- a/inventory.tscn +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://djb50o2drdkk1"] - -[ext_resource type="Script" path="res://inventory.gd" id="1_51xtg"] - -[node name="Inventory" type="PanelContainer"] -offset_right = 40.0 -offset_bottom = 40.0 -script = ExtResource("1_51xtg") - -[node name="MarginContainer" type="MarginContainer" parent="."] -layout_mode = 2 -theme_override_constants/margin_left = 8 -theme_override_constants/margin_top = 8 -theme_override_constants/margin_right = 8 -theme_override_constants/margin_bottom = 8 - -[node name="MemberGrid" type="GridContainer" parent="MarginContainer"] -layout_mode = 2 -columns = 54 diff --git a/slot.gd b/slot.gd deleted file mode 100644 index da9d696..0000000 --- a/slot.gd +++ /dev/null @@ -1,14 +0,0 @@ -extends PanelContainer - -@onready var texture_rect = $MarginContainer/TextureRect -@onready var quantity_label = $"Quantity Label" - -func set_slot_data(slot_data: Slot_Data) -> void: - var member_data = slot_data.memberData - #Updates texture - texture_rect.texture = member_data.texture - tooltip_text = "%s\n%s" % [member_data.name, member_data.description] - - if slot_data.quantity > 1: - quantity_label.text = "x%s" % slot_data.quantity - quantity_label.show() diff --git a/slot.tscn b/slot.tscn deleted file mode 100644 index 55d99a5..0000000 --- a/slot.tscn +++ /dev/null @@ -1,30 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://cacut43x6gvco"] - -[ext_resource type="Script" path="res://slot.gd" id="1_lwvfm"] - -[node name="Slot" type="PanelContainer"] -custom_minimum_size = Vector2(64, 64) -offset_right = 40.0 -offset_bottom = 40.0 -script = ExtResource("1_lwvfm") - -[node name="MarginContainer" type="MarginContainer" parent="."] -layout_mode = 2 -theme_override_constants/margin_left = 4 -theme_override_constants/margin_top = 4 -theme_override_constants/margin_right = 4 -theme_override_constants/margin_bottom = 4 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer"] -layout_mode = 2 -expand_mode = 1 -stretch_mode = 5 - -[node name="Quantity Label" type="Label" parent="."] -visible = false -layout_mode = 2 -size_flags_horizontal = 8 -size_flags_vertical = 0 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 3 -text = "x99"