Save file functionality
This commit is contained in:
135
Scenes/UserInterface.tscn
Normal file
135
Scenes/UserInterface.tscn
Normal file
@@ -0,0 +1,135 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://xh0p6v5ir05f"]
|
||||
|
||||
[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
|
||||
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_lggo0")
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
anchors_preset = 0
|
||||
offset_right = 1920.0
|
||||
offset_bottom = 1080.0
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="UI"]
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="UI/CanvasLayer"]
|
||||
offset_left = 3.0
|
||||
offset_right = 395.0
|
||||
offset_bottom = 40.0
|
||||
script = ExtResource("2_o6t6l")
|
||||
|
||||
[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" groups=["Persist"]]
|
||||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[node name="Timer" type="Timer" parent="UI/CanvasLayer/Header" groups=["Persist"]]
|
||||
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("3_1o3gu")
|
||||
|
||||
[node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Bosses"
|
||||
flat = true
|
||||
alignment = 0
|
||||
script = ExtResource("4_3csg5")
|
||||
|
||||
[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" groups=["Persist"]]
|
||||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[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" groups=["Persist"]]
|
||||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[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" 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")
|
||||
158
Scenes/bossFights.tscn
Normal file
158
Scenes/bossFights.tscn
Normal file
@@ -0,0 +1,158 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://2xiybbxvsdwi"]
|
||||
|
||||
[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
|
||||
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_woypb")
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
anchors_preset = 0
|
||||
offset_right = 1920.0
|
||||
offset_bottom = 1080.0
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="UI"]
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="UI/CanvasLayer"]
|
||||
offset_left = 3.0
|
||||
offset_right = 395.0
|
||||
offset_bottom = 40.0
|
||||
script = ExtResource("2_0hr4q")
|
||||
|
||||
[node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Score:"
|
||||
|
||||
[node name="Score" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
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("3_e754c")
|
||||
|
||||
[node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Bosses"
|
||||
flat = true
|
||||
alignment = 0
|
||||
script = ExtResource("4_sjkwo")
|
||||
|
||||
[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="MultiplierLabel" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Multiplier:
|
||||
"
|
||||
|
||||
[node name="Multiplier" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
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
|
||||
offset_top = 294.0
|
||||
offset_right = 1049.0
|
||||
offset_bottom = 422.0
|
||||
|
||||
[node name="BossGrid" type="GridContainer" parent="UI/BossFights"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("5_8idyi")
|
||||
|
||||
[node name="Boss1" type="TextureButton" parent="UI/BossFights/BossGrid"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("6_ea00f")
|
||||
|
||||
[node name="CharacterRoll" type="PanelContainer" parent="UI/BossFights/BossGrid"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
script = ExtResource("7_jle1x")
|
||||
123
Scenes/saveTimer.gd
Normal file
123
Scenes/saveTimer.gd
Normal file
@@ -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
|
||||
16
Scenes/savemanager.tscn
Normal file
16
Scenes/savemanager.tscn
Normal file
@@ -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")
|
||||
145
Scenes/team.tscn
Normal file
145
Scenes/team.tscn
Normal file
@@ -0,0 +1,145 @@
|
||||
[gd_scene load_steps=11 format=3 uid="uid://blwuy4v4qqyna"]
|
||||
|
||||
[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
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_6ykb6")
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 1920.0
|
||||
offset_bottom = 1080.0
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="UI"]
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="UI/CanvasLayer"]
|
||||
offset_left = 3.0
|
||||
offset_right = 395.0
|
||||
offset_bottom = 40.0
|
||||
script = ExtResource("2_63y2i")
|
||||
|
||||
[node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Score:"
|
||||
|
||||
[node name="Score" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[node name="Timer" type="Timer" parent="UI/CanvasLayer/Header"]
|
||||
autostart = true
|
||||
|
||||
[node name="TeamButton" type="Button" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Team"
|
||||
flat = true
|
||||
alignment = 0
|
||||
script = ExtResource("3_yy4wh")
|
||||
|
||||
[node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Bosses"
|
||||
flat = true
|
||||
alignment = 0
|
||||
script = ExtResource("4_nmd48")
|
||||
|
||||
[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="MultiplierLabel" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Multiplier:
|
||||
"
|
||||
|
||||
[node name="Multiplier" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
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 = -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" groups=["Persist"]]
|
||||
custom_minimum_size = Vector2(200, 10)
|
||||
layout_mode = 2
|
||||
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" groups=["Persist"]]
|
||||
custom_minimum_size = Vector2(200, 10)
|
||||
layout_mode = 2
|
||||
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" groups=["Persist"]]
|
||||
custom_minimum_size = Vector2(200, 10)
|
||||
layout_mode = 2
|
||||
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" groups=["Persist"]]
|
||||
custom_minimum_size = Vector2(200, 10)
|
||||
layout_mode = 2
|
||||
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" groups=["Persist"]]
|
||||
custom_minimum_size = Vector2(200, 10)
|
||||
layout_mode = 2
|
||||
script = ExtResource("10_vu24c")
|
||||
|
||||
[node name="Label" type="Label" parent="UI/AspectRatioContainer/TeamScreen"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "testtestsetsetsetsetsetsetset"
|
||||
153
Scenes/teamSelection.tscn
Normal file
153
Scenes/teamSelection.tscn
Normal file
@@ -0,0 +1,153 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://jleorcxdlvge"]
|
||||
|
||||
[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
|
||||
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_4wos3")
|
||||
|
||||
[node name="MemberDatabase" type="Control" parent="."]
|
||||
visible = false
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
script = ExtResource("2_d1pbg")
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
anchors_preset = 0
|
||||
offset_right = 1920.0
|
||||
offset_bottom = 1080.0
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="UI"]
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="UI/CanvasLayer"]
|
||||
offset_left = 3.0
|
||||
offset_right = 395.0
|
||||
offset_bottom = 40.0
|
||||
script = ExtResource("3_5456x")
|
||||
|
||||
[node name="ScoreLabel" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Score:"
|
||||
|
||||
[node name="Score" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
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("4_15yu8")
|
||||
|
||||
[node name="Bossbutton" type="Button" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Bosses"
|
||||
flat = true
|
||||
alignment = 0
|
||||
script = ExtResource("5_1vjo7")
|
||||
|
||||
[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="MultiplierLabel" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
layout_mode = 2
|
||||
text = "Multiplier:
|
||||
"
|
||||
|
||||
[node name="Multiplier" type="Label" parent="UI/CanvasLayer/Header"]
|
||||
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
|
||||
offset_top = 40.0
|
||||
offset_right = 1923.0
|
||||
offset_bottom = 1120.0
|
||||
columns = 10
|
||||
script = ExtResource("6_aruh2")
|
||||
94
Scenes/titleScreen.gd
Normal file
94
Scenes/titleScreen.gd
Normal file
@@ -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
|
||||
29
Scenes/titleScreen.tscn
Normal file
29
Scenes/titleScreen.tscn
Normal file
@@ -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")
|
||||
Reference in New Issue
Block a user