diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node index dab04a2dcd0382458aae92cb380e91648a93783e..25249fabde26a5c30ffd013cb7c0d30a24ab1367 100644 --- a/.godot/editor/create_recent.Node +++ b/.godot/editor/create_recent.Node @@ -1,8 +1,8 @@ +Label Button Control HBoxContainer Node -Label CanvasLayer Camera2D Timer diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg index efad65994738b084eacc081a3843fc22582f062b..461ed2d2ec2dadbe45409af94837d54ee77ec834 100644 --- a/.godot/editor/editor_layout.cfg +++ b/.godot/editor/editor_layout.cfg @@ -2,7 +2,7 @@ dock_3_selected_tab_idx=0 dock_4_selected_tab_idx=0 -dock_5_selected_tab_idx=0 +dock_5_selected_tab_idx=1 dock_floating={} dock_bottom=[] dock_closed=[] @@ -28,15 +28,16 @@ dock_5="Inspector,Node,History" [EditorNode] open_scenes=PackedStringArray("res://main.tscn", "res://scenes/Shop.tscn", "res://scenes/game.tscn", "res://scenes/ui/ui.tscn", "res://scenes/managers/state_manager.tscn", "res://scenes/screens/title_screen.tscn", "res://scenes/screens/select_piece_screen.tscn") -current_scene="res://scenes/game.tscn" +current_scene="res://scenes/ui/ui.tscn" center_split_offset=-241 selected_default_debugger_tab_idx=0 selected_main_editor_idx=2 +selected_bottom_panel_item=0 [ScriptEditor] open_scripts=["res://scripts/ui/display_piece_manager.gd", "res://scripts/game.gd", "res://scripts/ui/game_ui.gd", "res://scripts/King.gd", "res://scripts/Mage.gd", "res://scripts/main/main.gd", "res://scripts/Pawn.gd", "res://scripts/run_data/run_data.gd", "res://scripts/managers/scene_manager.gd", "res://scripts/screens/select_piece_screen.gd", "res://scripts/Shop.gd", "res://scripts/shop_item.gd", "res://scripts/managers/state_manager.gd", "res://scripts/screens/title_screen.gd"] -selected_script="res://scripts/game.gd" +selected_script="res://scripts/ui/game_ui.gd" open_help=["String"] script_split_offset=70 list_split_offset=0 diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4 index af595287b3d543b86f09432daa921849a891fca2..e8bd63fd384bd95b6c05b87ebad06a727df06490 100644 --- a/.godot/editor/filesystem_update4 +++ b/.godot/editor/filesystem_update4 @@ -14,3 +14,5 @@ res://main.tscn res://scenes/Shop.tscn res://scenes/managers/state_manager.tscn res://scripts/ui/game_ui.gd +res://scripts/run_data/run_data.gd +res://scripts/managers/state_manager.gd diff --git a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg index cadb5021d38dd40b19d02efa35eb913bd7e88841..2c7b1e74f37c48c4b7cc60bdb9cc486676953e1e 100644 --- a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(-379.813, -116.439), +"ofs": Vector2(-141.408, -29.9846), "primary_grid_step": Vector2i(8, 8), "show_group_gizmos": true, "show_guides": true, @@ -34,7 +34,7 @@ Anim={ "snap_rotation_step": 0.261799, "snap_scale": false, "snap_scale_step": 0.1, -"zoom": 0.629961 +"zoom": 0.793701 } 3D={ "fov": 70.01, @@ -175,4 +175,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Game")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/UI/GoldDisplay")]) diff --git a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg index c74d2ef9258cb8399318e8de190e9e8918470cc1..07cfab693d5e7f555cd205d58148529c48f55cdc 100644 --- a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -1,5 +1,5 @@ [folding] -node_unfolds=[NodePath("."), PackedStringArray("opponent_shader", "Editor Description"), NodePath("ShadowContainer"), PackedStringArray("Ordering"), NodePath("TileContainer"), PackedStringArray("Transform", "Ordering"), NodePath("PieceContainer"), PackedStringArray("Ordering", "Process", "Texture"), NodePath("Background"), PackedStringArray("Layout", "material", "Ordering", "Layout/Transform", "Layout/Grow Direction", "Layout/Container Sizing", "Layout/Anchor Points", "Layout/Anchor Offsets", "Texture"), NodePath("Explosion"), PackedStringArray("Ordering", "Transform", "Scale", "Time"), NodePath("PlayerPieces"), PackedStringArray("Transform"), NodePath("OpponentPieces"), PackedStringArray("Visibility", "Transform"), NodePath("GoldDisplay"), PackedStringArray("Theme Overrides", "Theme Overrides/fonts", "Theme Overrides/font_sizes")] +node_unfolds=[NodePath("."), PackedStringArray("opponent_shader", "Editor Description"), NodePath("ShadowContainer"), PackedStringArray("Ordering"), NodePath("TileContainer"), PackedStringArray("Transform", "Ordering"), NodePath("PieceContainer"), PackedStringArray("Ordering", "Process", "Texture"), NodePath("Background"), PackedStringArray("Layout", "material", "Ordering", "Layout/Transform", "Layout/Grow Direction", "Layout/Container Sizing", "Layout/Anchor Points", "Layout/Anchor Offsets", "Texture"), NodePath("Explosion"), PackedStringArray("Ordering", "Transform", "Scale", "Time"), NodePath("PlayerPieces"), PackedStringArray("Transform"), NodePath("OpponentPieces"), PackedStringArray("Visibility", "Transform")] resource_unfolds=["res://scenes/game.tscn::ShaderMaterial_gdbwp", PackedStringArray("Shader Parameters", "Resource")] nodes_folded=[] diff --git a/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg b/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg index d3c311229998d01171ec6537a17527e44c1df6c2..d0ed9a5b85fba2c5720404459a196acbdbf38337 100644 --- a/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg +++ b/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg @@ -175,4 +175,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Game")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/UI/GoldDisplay")]) diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg index 2b38bce60be6e25371ece44035b6f207c7d64250..e9d73e4a29aeee079ca33c737e9ec48a5fcc76ec 100644 --- a/.godot/editor/project_metadata.cfg +++ b/.godot/editor/project_metadata.cfg @@ -2,6 +2,7 @@ <<<<<<<HEADexecutable_path="D:/SteamLibrary/steamapps/common/Godot Engine/godot.windows.opt.tools.64.exe" executable_path="D:/SteamLibrary/steamapps/common/Godot Engine/godot.windows.opt.tools.64.exe" +use_advanced_connections=false [recent_files] @@ -10,7 +11,7 @@ scripts=["String", "res://scripts/screens/title_screen.gd", "res://scripts/ui/di [dialog_bounds] -create_new_node=Rect2(1264, 190, 1616, 1130) +create_new_node=Rect2(2194, 121, 1304, 769) [script_setup] diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg index 3775489fb59302ce57b253078609cd2397a4a55d..2664e837b2220f66259b83a01a4c8f567ded939e 100644 --- a/.godot/editor/script_editor_cache.cfg +++ b/.godot/editor/script_editor_cache.cfg @@ -31,11 +31,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 39, +"column": 35, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 297, -"scroll_position": 279.0, +"row": 360, +"scroll_position": 12.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -59,11 +59,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 14, +"column": 27, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 48, -"scroll_position": 33.0, +"row": 50, +"scroll_position": 30.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -73,10 +73,10 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 18, +"column": 14, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 14, +"row": 112, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" @@ -133,11 +133,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 0, +"column": 38, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 19, -"scroll_position": 0.0, +"row": 26, +"scroll_position": 3.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -147,10 +147,10 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 1, +"column": 38, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 9, +"row": 21, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" @@ -175,11 +175,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 0, +"column": 29, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 62, -"scroll_position": 39.0, +"row": 64, +"scroll_position": 43.0, "selection": false, "syntax_highlighter": "GDScript" } diff --git a/scenes/game.tscn b/scenes/game.tscn index 915b17ea65b980f0562b87037e36fdb84024cdc7..70b55e6b949d06bf39e922b6990a3ee6175da8a0 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -78,17 +78,6 @@ size_flags_vertical = 0 text = "Shop Toggle " -[node name="GoldDisplay" type="Label" parent="."] -anchors_preset = 1 -anchor_left = 1.0 -anchor_right = 1.0 -offset_left = -125.0 -offset_top = 36.0 -offset_right = -2.0 -offset_bottom = 103.0 -grow_horizontal = 0 -theme_override_font_sizes/font_size = 26 - [node name="StateManager" parent="." instance=ExtResource("6_7nmsy")] [node name="UI" parent="." instance=ExtResource("6_m4s5t")] diff --git a/scenes/ui/ui.tscn b/scenes/ui/ui.tscn index 30724a9e53746769c95176cb9263ba759d6b126c..29bd40777d71eab0c28b486723518a5b1d891f70 100644 --- a/scenes/ui/ui.tscn +++ b/scenes/ui/ui.tscn @@ -20,7 +20,7 @@ layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 -[node name="Button" type="Button" parent="DisplayPieceManager"] +[node name="ConfirmButton" type="Button" parent="DisplayPieceManager"] layout_mode = 0 offset_left = 207.0 offset_top = -176.0 @@ -35,3 +35,11 @@ offset_bottom = 23.0 theme_override_font_sizes/font_size = 28 text = "Gold: 0 " + +[node name="StateLabel" type="Label" parent="."] +offset_left = 270.0 +offset_right = 310.0 +offset_bottom = 39.0833 +theme_override_font_sizes/font_size = 28 + +[connection signal="pressed" from="DisplayPieceManager/ConfirmButton" to="." method="_on_confirm_pressed"] diff --git a/scripts/game.gd b/scripts/game.gd index 2afcc496547d15fe71f835ba8c4d6c79161407ed..fea54188ebf7b4f5355e3579e70aa6a3342ee451 100644 --- a/scripts/game.gd +++ b/scripts/game.gd @@ -355,7 +355,10 @@ func place_new_piece(x: int, y: int, piece_name: String) -> void: board[x][y] = new_piece piece_container.add_child(new_piece) + + piece_selector.delete_button() piece_selector.clear_selection() + RunData.remove_piece(piece_name) func is_opponent(x,y): if board[x][y] == null: diff --git a/scripts/managers/state_manager.gd b/scripts/managers/state_manager.gd index c00ab9ed3e3998a18ae10424d6c9912934b2047b..2a5a754cb4836300adef0925be9d12d444239ac9 100644 --- a/scripts/managers/state_manager.gd +++ b/scripts/managers/state_manager.gd @@ -17,3 +17,6 @@ func change_state(new_state: GameState) -> void: func get_current_state() -> GameState: return current_state + +func get_state_as_string() -> String: + return GameState.keys()[current_state] diff --git a/scripts/run_data/run_data.gd b/scripts/run_data/run_data.gd index 49ae23e6a4882455642fe709615ff7c08eb8ac09..2ee26069aef57324b9150d1de57bded40c93955d 100644 --- a/scripts/run_data/run_data.gd +++ b/scripts/run_data/run_data.gd @@ -45,5 +45,12 @@ func add_piece(piece: String) -> void: print(piece) print(pieces) +func remove_piece(piece: String) -> void: + pieces.erase(piece) + func get_pieces() -> Array: return pieces + +# DEBUGGING function +func print_pieces() -> void: + print(pieces) diff --git a/scripts/ui/display_piece_manager.gd b/scripts/ui/display_piece_manager.gd index e84c6bcfb3ccae1268d0d19d4e41a6f3d3f1caa9..ad87c57e92d37475be6224a247026a7d01630ead 100644 --- a/scripts/ui/display_piece_manager.gd +++ b/scripts/ui/display_piece_manager.gd @@ -60,3 +60,6 @@ func clear_selection() -> void: selected_button.modulate = Color(1, 1, 1) selected_button = null selected_piece = "" + +func delete_button() -> void: + selected_button.queue_free() diff --git a/scripts/ui/game_ui.gd b/scripts/ui/game_ui.gd index 2435ad4803033bfc2e806ed483415ce033ff72d9..048d5a424a769fe946341c98a715ae2bfcab75b9 100644 --- a/scripts/ui/game_ui.gd +++ b/scripts/ui/game_ui.gd @@ -5,6 +5,7 @@ class_name GameUI @onready var display_piece_manager: Control = $DisplayPieceManager @onready var gold_display: Label = $GoldDisplay +@onready var state_label: Label = $StateLabel # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -12,8 +13,15 @@ func _ready() -> void: RunData.currency_changed.connect(update_gold_display) display_piece_manager.refresh_pieces_display() +func _process(delta: float) -> void: + state_label.text = state_manager.get_state_as_string() + func update_gold_display(new_currency: int = RunData.get_currency()) -> void: gold_display.text = "Gold: %d" % new_currency func get_display_piece_manager() -> Control: return display_piece_manager + +func _on_confirm_pressed() -> void: + state_manager.change_state(state_manager.GameState.PLAYING) + display_piece_manager.visible = false