diff --git a/Global.gd b/Global.gd index d8ef128..058b7d5 100644 --- a/Global.gd +++ b/Global.gd @@ -1,3 +1,14 @@ extends Node var selected_texture : AtlasTexture = null + +var teamScreenVisible : bool = false +var teamSelectionVisible : bool = false + +var globalScore : int = 0 +var globalClickAdd : int = 1 +var globalScorePerSec : int = 1 +var globalScoreMultiplier: int = 1 + +var teamScreenPath: String = "/root/Root/UI/AspectRatioContainer" +var teamSelectionPath: String = "/root/Root/UI/TeamSelection" diff --git a/TeamSelection.gd b/TeamSelection.gd index 5c328b0..b5ceebc 100644 --- a/TeamSelection.gd +++ b/TeamSelection.gd @@ -5,6 +5,7 @@ signal texture_selected(texture : AtlasTexture) # Called when the node enters the scene tree for the first time. func _ready(): + # Iterate over all children of the GridContainer for button in get_children(): # Check if the child is a TextureButton @@ -12,14 +13,23 @@ func _ready(): # Connect the pressed signal of the TextureButton to the handler function button.connect("pressed", Callable(self, "_on_TextureButton_pressed").bind(button)) + + # Handler function for the pressed signal func _on_TextureButton_pressed(button): # Print the name of the button - print("Button pressed: ", button.name) + #print("Button pressed: ", button.name) #Texture Variable var texture : AtlasTexture = button.texture_normal + #Sets the selected texture on the team screen Global.selected_texture = texture - get_tree().change_scene_to_file("res://User Interface/UserInterface.tscn") + + #For returning to the Team Selection Screen after selecting member + #Sets the global variable for the team selection screen to true so when you move back it's already open + Global.teamScreenVisible = true + Global.teamSelectionVisible = false + + diff --git a/User Interface/Hank.gd b/User Interface/Hank.gd new file mode 100644 index 0000000..5d68bdc --- /dev/null +++ b/User Interface/Hank.gd @@ -0,0 +1,18 @@ +extends TextureButton + + +@export var memberClickAdd: int = 0 +@export var memberPerSec: int = 0 + +# Called when the node enters the scene tree for the first time. +func _ready(): + # Connect the pressed signal to the _on_Button_pressed function + self.connect("pressed", Callable(self, "_on_Button_pressed")) + + +func _on_Button_pressed(): + Global.globalClickAdd += memberClickAdd + Global.globalScorePerSec += memberPerSec + + + pass diff --git a/User Interface/Header.gd b/User Interface/Header.gd index e2e9226..abcc60b 100644 --- a/User Interface/Header.gd +++ b/User Interface/Header.gd @@ -1,7 +1,5 @@ extends Control -#https://www.youtube.com/watch?v=V79YabQZC1s -#13:03 var score = 0 var clickAdd = 1 @@ -61,23 +59,45 @@ func _ready(): $ClickUpgrades.get_popup().connect("id_pressed",clickUpgrade) $PassiveUpgrades.get_popup().connect("id_pressed",passiveUpgrade) $Timer.connect("timeout", _on_Timer_timeout) - #$TeamButton.pressed.connect(self.openTeamWindow) - #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 + Global.globalScore += Global.globalScorePerSec * Global.globalScoreMultiplier # 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: + if Global.globalScore > 999: $Score.text = str(scoreFormat(score)) else: - $Score.text = str(score) #Changes the score number + $Score.text = str(Global.globalScore) #Changes the score number + + $ClickAdd.text = str(Global.globalClickAdd) + $PerSec.text = str(Global.globalScorePerSec) + + #Pulls the global score data to keep it up to date + #score = Global.globalScore + #Global.globalClickAdd = Global.globalClickAdd + #scorePerSec = Global.globalScorePerSec + #scoreMultiplier = Global.globalScoreMultiplier + + #Stores the score stats in a global variable to be called in other scenes + #Global.globalScore = score + #Global.globalClickAdd = Global.globalClickAdd + #Global.globalScorePerSec = scorePerSec + #Global.globalScoreMultiplier = scoreMultiplier + + #Get the current status of any screens needed + var teamScreen = get_node(Global.teamScreenPath) + teamScreen.visible = Global.teamScreenVisible + + var teamSelection = get_node(Global.teamSelectionPath) + teamSelection.visible = Global.teamSelectionVisible #This checks any input that comes in func _input(event): @@ -87,14 +107,11 @@ func _input(event): #_on_button_pressed() - - - #Formats the score string so commas are inserted func scoreFormat(score): # Convert value to string. - var str_value: String = str(score) - + var str_value: String = str(Global.globalScore) + # 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): @@ -103,155 +120,155 @@ func scoreFormat(score): return score func leftClick(): - score += clickAdd * scoreMultiplier + Global.globalScore += Global.globalClickAdd * Global.globalScoreMultiplier func clickUpgrade(id): match id: 0: - if score >= clickUpgradeReq1: + if Global.globalScore >= clickUpgradeReq1: print ("Score sufficient") - score -=clickUpgradeReq1 + Global.globalScore -=clickUpgradeReq1 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt1 + Global.globalClickAdd += clickUpgradeAmt1 else: print("not enough score") 1: - if score >= clickUpgradeReq10: + if Global.globalScore >= clickUpgradeReq10: print ("Score sufficient") - score -=clickUpgradeReq10 + Global.globalScore -=clickUpgradeReq10 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt10 + Global.globalClickAdd += clickUpgradeAmt10 else: print("not enough score") 2: - if score >= clickUpgradeReq20: + if Global.globalScore >= clickUpgradeReq20: print ("Score sufficient") - score -=clickUpgradeReq20 + Global.globalScore -=clickUpgradeReq20 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt20 + Global.globalClickAdd += clickUpgradeAmt20 else: print("not enough score") 3: - if score >= clickUpgradeReq40: + if Global.globalScore >= clickUpgradeReq40: print ("Score sufficient") - score -=clickUpgradeReq40 + Global.globalScore -=clickUpgradeReq40 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt40 + Global.globalClickAdd += clickUpgradeAmt40 else: print("not enough score") 4: - if score >= clickUpgradeReq60: + if Global.globalScore >= clickUpgradeReq60: print ("Score sufficient") - score -=clickUpgradeReq60 + Global.globalScore -=clickUpgradeReq60 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt60 + Global.globalClickAdd += clickUpgradeAmt60 else: print("not enough score") 5: - if score >= clickUpgradeReq80: + if Global.globalScore >= clickUpgradeReq80: print ("Score sufficient") - score -=clickUpgradeReq80 + Global.globalScore -=clickUpgradeReq80 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt80 + Global.globalClickAdd += clickUpgradeAmt80 else: print("not enough score") 6: - if score >= clickUpgradeReq100: + if Global.globalScore >= clickUpgradeReq100: print ("Score sufficient") - score -=clickUpgradeReq100 + Global.globalScore -=clickUpgradeReq100 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt100 + Global.globalClickAdd += clickUpgradeAmt100 else: print("not enough score") 7: - if score >= clickUpgradeReq200: + if Global.globalScore >= clickUpgradeReq200: print ("Score sufficient") - score -=clickUpgradeReq200 + Global.globalScore -=clickUpgradeReq200 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt200 + Global.globalClickAdd += clickUpgradeAmt200 else: print("not enough score") 8: - if score >= clickUpgradeReq400: + if Global.globalScore >= clickUpgradeReq400: print ("Score sufficient") - score -=clickUpgradeReq400 + Global.globalScore -=clickUpgradeReq400 $ClickUpgrades.get_popup().set_item_disabled(id, true) - clickAdd += clickUpgradeAmt400 + Global.globalClickAdd += clickUpgradeAmt400 else: print("not enough score") func passiveUpgrade(id): match id: 0: - if score >= passiveUpgradeReq2: + if Global.globalScore >= passiveUpgradeReq2: print ("Score sufficient") - score -=passiveUpgradeReq2 + Global.globalScore -=passiveUpgradeReq2 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt2 + Global.globalScorePerSec = passiveUpgradeAmt2 else: print("not enough score") 1: - if score >= passiveUpgradeReq10: + if Global.globalScore >= passiveUpgradeReq10: print ("Score sufficient") - score -=passiveUpgradeReq10 + Global.globalScore -=passiveUpgradeReq10 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt10 + Global.globalScorePerSec = passiveUpgradeAmt10 else: print("not enough score") 2: - if score >= passiveUpgradeReq20: + if Global.globalScore >= passiveUpgradeReq20: print ("Score sufficient") - score -=passiveUpgradeReq20 + Global.globalScore -=passiveUpgradeReq20 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt20 + Global.globalScorePerSec = passiveUpgradeAmt20 else: print("not enough score") 3: - if score >= passiveUpgradeReq50: + if Global.globalScore >= passiveUpgradeReq50: print ("Score sufficient") - score -=passiveUpgradeReq50 + Global.globalScore -=passiveUpgradeReq50 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt50 + Global.globalScorePerSec = passiveUpgradeAmt50 else: print("not enough score") 4: - if score >= passiveUpgradeReq100: + if Global.globalScore >= passiveUpgradeReq100: print ("Score sufficient") - score -=passiveUpgradeReq100 + Global.globalScore -=passiveUpgradeReq100 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt100 + Global.globalScorePerSec = passiveUpgradeAmt100 else: print("not enough score") 5: - if score >= passiveUpgradeReq200: + if Global.globalScore >= passiveUpgradeReq200: print ("Score sufficient") - score -=passiveUpgradeReq200 + Global.globalScore -=passiveUpgradeReq200 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt200 + Global.globalScorePerSec = passiveUpgradeAmt200 else: print("not enough score") 6: - if score >= passiveUpgradeReq500: + if Global.globalScore >= passiveUpgradeReq500: print ("Score sufficient") - score -=passiveUpgradeReq500 + Global.globalScore -=passiveUpgradeReq500 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt500 + Global.globalScorePerSec = passiveUpgradeAmt500 else: print("not enough score") 7: - if score >= passiveUpgradeReq1000: + if Global.globalScore >= passiveUpgradeReq1000: print ("Score sufficient") - score -=passiveUpgradeReq1000 + Global.globalScore -=passiveUpgradeReq1000 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt1000 + Global.globalScorePerSec = passiveUpgradeAmt1000 else: print("not enough score") 8: - if score >= passiveUpgradeReq10000: + if Global.globalScore >= passiveUpgradeReq10000: print ("Score sufficient") - score -=passiveUpgradeReq10000 + Global.globalScore -=passiveUpgradeReq10000 $PassiveUpgrades.get_popup().set_item_disabled(id, true) - scorePerSec = passiveUpgradeAmt10000 + Global.globalScorePerSec = passiveUpgradeAmt10000 else: print("not enough score") diff --git a/User Interface/Member1.gd b/User Interface/Member1.gd index 62d2637..4ef0d46 100644 --- a/User Interface/Member1.gd +++ b/User Interface/Member1.gd @@ -1,18 +1,27 @@ extends TextureButton + # Called when the node enters the scene tree for the first time. func _ready(): # Connect the pressed signal to the _on_Button_pressed function self.connect("pressed", Callable(self, "_on_Button_pressed")) - #Checks if the texture needs to be set + + + +func _process(delta): + #Checks if the texture needs to be set if Global.selected_texture: self.texture_normal = Global.selected_texture - # Function to handle the button press func _on_Button_pressed(): - # Change the current scene - get_tree().change_scene_to_file("res://team.tscn") + + + + Global.teamScreenVisible = false + + Global.teamSelectionVisible = true + #Function to set texture of the button diff --git a/User Interface/TeamButton.gd b/User Interface/TeamButton.gd index 2c6ad7b..b09882d 100644 --- a/User Interface/TeamButton.gd +++ b/User Interface/TeamButton.gd @@ -1,5 +1,18 @@ extends Button +# Called when the node enters the scene tree for the first time. +func _ready(): + self.connect("pressed", Callable(self, "_on_Button_pressed")) + +# Function to handle the button press +func _on_Button_pressed(): + if Global.teamScreenVisible == false: + Global.teamSelectionVisible = false + Global.teamScreenVisible = true + else: + Global.teamScreenVisible = false + + diff --git a/User Interface/UserInterface.tscn b/User Interface/UserInterface.tscn index be09476..d26fa6c 100644 --- a/User Interface/UserInterface.tscn +++ b/User Interface/UserInterface.tscn @@ -1,10 +1,32 @@ -[gd_scene load_steps=6 format=3 uid="uid://xh0p6v5ir05f"] +[gd_scene load_steps=14 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/Member1.gd" id="4_4xump"] [ext_resource type="Texture2D" uid="uid://bfdqkquqtf6ir" path="res://Images/plus-icon-vector-illustration.jpg" id="4_gxo13"] +[ext_resource type="Script" path="res://TeamSelection.gd" id="6_1cnw8"] +[ext_resource type="Texture2D" uid="uid://b1kl4huy0vnin" path="res://Member/#1 - Transparent Icons.png" id="7_s2y5l"] +[ext_resource type="Script" path="res://User Interface/Hank.gd" id="8_kx4m8"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_74gmg"] +atlas = ExtResource("7_s2y5l") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xmmtg"] +atlas = ExtResource("7_s2y5l") +region = Rect2(96, 320, 32, 32) + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_pioex"] +load_path = "res://.godot/imported/#1 - Transparent Icons.png-075c51137bc59a17da3b30778a360723.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_l5qwh"] +atlas = SubResource("CompressedTexture2D_pioex") +region = Rect2(32, 416, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_t1ab2"] +atlas = SubResource("CompressedTexture2D_pioex") +region = Rect2(288, 416, 32, 32) [node name="Root" type="Control"] layout_mode = 3 @@ -94,7 +116,25 @@ flat = true alignment = 0 script = ExtResource("3_g0muc") +[node name="ClickAddLabel" type="Label" parent="UI/CanvasLayer/Header"] +layout_mode = 2 +text = "ClickAdd:" + +[node name="ClickAdd" type="Label" parent="UI/CanvasLayer/Header"] +layout_mode = 2 +text = "0" + +[node name="PerSecLabel" type="Label" parent="UI/CanvasLayer/Header"] +layout_mode = 2 +text = "PerSec: +" + +[node name="PerSec" type="Label" parent="UI/CanvasLayer/Header"] +layout_mode = 2 +text = "0" + [node name="AspectRatioContainer" type="AspectRatioContainer" parent="UI"] +visible = false layout_mode = 0 offset_left = -2.60654 offset_top = 271.396 @@ -150,3 +190,31 @@ text = "Click Here" visible = false layout_mode = 2 text = "testtestsetsetsetsetsetsetset" + +[node name="TeamSelection" type="GridContainer" parent="UI"] +visible = false +offset_left = 3.0 +offset_top = 40.0 +offset_right = 1923.0 +offset_bottom = 1120.0 +columns = 10 +script = ExtResource("6_1cnw8") + +[node name="Hank" type="TextureButton" parent="UI/TeamSelection"] +layout_mode = 2 +texture_normal = SubResource("AtlasTexture_74gmg") +script = ExtResource("8_kx4m8") +memberClickAdd = 5 +memberPerSec = 25 + +[node name="Rory" type="TextureButton" parent="UI/TeamSelection"] +layout_mode = 2 +texture_normal = SubResource("AtlasTexture_xmmtg") + +[node name="TextureButton3" type="TextureButton" parent="UI/TeamSelection"] +layout_mode = 2 +texture_normal = SubResource("AtlasTexture_l5qwh") + +[node name="TextureButton4" type="TextureButton" parent="UI/TeamSelection"] +layout_mode = 2 +texture_normal = SubResource("AtlasTexture_t1ab2") diff --git a/team.tscn b/team.tscn index 4fc379d..e69f418 100644 --- a/team.tscn +++ b/team.tscn @@ -11,15 +11,15 @@ region = Rect2(128, 0, 32, 32) atlas = ExtResource("1_o7i06") region = Rect2(96, 320, 32, 32) -[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_pioex"] +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_yxbb2"] load_path = "res://.godot/imported/#1 - Transparent Icons.png-075c51137bc59a17da3b30778a360723.ctex" [sub_resource type="AtlasTexture" id="AtlasTexture_d8eoy"] -atlas = SubResource("CompressedTexture2D_pioex") +atlas = SubResource("CompressedTexture2D_yxbb2") region = Rect2(32, 416, 32, 32) [sub_resource type="AtlasTexture" id="AtlasTexture_ng453"] -atlas = SubResource("CompressedTexture2D_pioex") +atlas = SubResource("CompressedTexture2D_yxbb2") region = Rect2(288, 416, 32, 32) [node name="Root" type="Control"]