From 5b0ff134570f1a170aae796888e4d6fe45d89006 Mon Sep 17 00:00:00 2001
From: Kyaw Aung <kyawaung0924@gmail.com>
Date: Mon, 10 Feb 2025 23:18:04 -0600
Subject: [PATCH] pieces from available pieces disappear when places, and
 confirm button now puts the game into a playing state and hides placement
 state UI

---
 .godot/editor/create_recent.Node              |  2 +-
 .godot/editor/editor_layout.cfg               |  7 ++--
 .godot/editor/filesystem_update4              |  2 ++
 ...state-c2a7af834e91ff64325daddf58e45dc0.cfg |  6 ++--
 ...lding-c2a7af834e91ff64325daddf58e45dc0.cfg |  2 +-
 ...state-3070c538c03ee49b7677ff960a3f5195.cfg |  2 +-
 .godot/editor/project_metadata.cfg            |  3 +-
 .godot/editor/script_editor_cache.cfg         | 32 +++++++++----------
 scenes/game.tscn                              | 11 -------
 scenes/ui/ui.tscn                             | 10 +++++-
 scripts/game.gd                               |  3 ++
 scripts/managers/state_manager.gd             |  3 ++
 scripts/run_data/run_data.gd                  |  7 ++++
 scripts/ui/display_piece_manager.gd           |  3 ++
 scripts/ui/game_ui.gd                         |  8 +++++
 15 files changed, 63 insertions(+), 38 deletions(-)

diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node
index dab04a2..25249fa 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 efad659..461ed2d 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 af59528..e8bd63f 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 cadb502..2c7b1e7 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 c74d2ef..07cfab6 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 d3c3112..d0ed9a5 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 2b38bce..e9d73e4 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 3775489..2664e83 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 915b17e..70b55e6 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 30724a9..29bd407 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 2afcc49..fea5418 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 c00ab9e..2a5a754 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 49ae23e..2ee2606 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 e84c6bc..ad87c57 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 2435ad4..048d5a4 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
-- 
GitLab