diff --git a/godot_ship/scenes/Gameplay.tscn b/godot_ship/scenes/Gameplay.tscn index b820cb7..5f7044a 100644 --- a/godot_ship/scenes/Gameplay.tscn +++ b/godot_ship/scenes/Gameplay.tscn @@ -43,10 +43,10 @@ anchor_left = 0.912 anchor_top = 0.932 anchor_right = 0.912 anchor_bottom = 0.932 -margin_left = 0.319946 -margin_top = 0.47998 -margin_right = 53.3199 -margin_bottom = 20.48 +margin_left = -3.68005 +margin_top = -4.52002 +margin_right = 49.3199 +margin_bottom = 15.48 __meta__ = { "_edit_use_anchors_": false } @@ -97,5 +97,41 @@ collision_layer = 3 contacts_reported = 1 contact_monitor = true +[node name="Confirm Placement" type="Button" parent="."] +margin_left = 409.0 +margin_top = 331.0 +margin_right = 543.0 +margin_bottom = 351.0 +text = "Confirm Placement" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Clear" type="Button" parent="."] +margin_left = 353.0 +margin_top = 331.0 +margin_right = 406.0 +margin_bottom = 351.0 +text = "Clear" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AcceptDialog" type="AcceptDialog" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -179.0 +margin_top = -29.0 +margin_right = 179.0 +margin_bottom = 29.0 +dialog_text = "You can't confirm placement until all ships are placed" +__meta__ = { +"_edit_use_anchors_": false +} + [connection signal="pressed" from="VBoxContainer/Forfeit" to="." method="_on_Forfeit_pressed"] [connection signal="about_to_show" from="ConfirmationDialog" to="." method="_on_ConfirmationDialog_about_to_show"] +[connection signal="pressed" from="Confirm Placement" to="2Ship" method="_on_Confirm_Placement_pressed"] +[connection signal="pressed" from="Clear" to="2Ship" method="_on_Clear_pressed"] diff --git a/godot_ship/script/game/moveShip.gd b/godot_ship/script/game/moveShip.gd index 80ac020..be5d0c6 100644 --- a/godot_ship/script/game/moveShip.gd +++ b/godot_ship/script/game/moveShip.gd @@ -8,11 +8,20 @@ var originalPos # Position before moving the ship var snapOriginalPos = false # Gets the original position var vertical = true # Gets ship which is either vertical or horizonal var startingPos # Starting position of ships before being placed +var TwoShip_StartingPos +var ThreeShipA_StartingPos +var ThreeShipB_StartingPos +var FourShip_StartingPos +var FiveShip_StartingPos # Called when the node enters the scene tree for the first time. func _ready(): startingPos = position # Sets the position of ships when game is started to the startingPos variable - pass + TwoShip_StartingPos = get_parent().get_node("2Ship").position + ThreeShipA_StartingPos = get_parent().get_node("3ShipA").position + ThreeShipB_StartingPos = get_parent().get_node("3ShipB").position + FourShip_StartingPos = get_parent().get_node("4Ship").position + FiveShip_StartingPos = get_parent().get_node("5Ship").position var click_radius = 16 var orient = 0; @@ -217,3 +226,39 @@ func checkOriginalPos(): # Checks whether the position of the ship is the statin return true else: return false + +func _on_Clear_pressed(): + get_parent().get_node("2Ship").position = TwoShip_StartingPos + get_parent().get_node("2Ship").rotation = 0 + get_parent().get_node("3ShipA").position = ThreeShipA_StartingPos + get_parent().get_node("3ShipA").rotation = 0 + get_parent().get_node("3ShipB").position = ThreeShipB_StartingPos + get_parent().get_node("3ShipB").rotation = 0 + get_parent().get_node("4Ship").position = FourShip_StartingPos + get_parent().get_node("4Ship").rotation = 0 + get_parent().get_node("5Ship").position = FiveShip_StartingPos + get_parent().get_node("5Ship").rotation = 0 + vertical = true + +func check_all_ships_are_on_board(): + if !((get_parent().get_node("2Ship").position.x > 17.4 and get_parent().get_node("2Ship").position.x < 335.5) and (get_parent().get_node("2Ship").position.y > 20.2 and get_parent().get_node("2Ship").position.y < 335.5)): + return false + elif !((get_parent().get_node("3ShipA").position.x > 17.4 and get_parent().get_node("3ShipA").position.x < 335.5) and (get_parent().get_node("3ShipA").position.y > 20.2 and get_parent().get_node("3ShipA").position.y < 335.5)): + return false + elif !((get_parent().get_node("3ShipB").position.x > 17.4 and get_parent().get_node("3ShipB").position.x < 335.5) and (get_parent().get_node("3ShipB").position.y > 20.2 and get_parent().get_node("3ShipB").position.y < 335.5)): + return false + elif !((get_parent().get_node("4Ship").position.x > 17.4 and get_parent().get_node("4Ship").position.x < 335.5) and (get_parent().get_node("4Ship").position.y > 20.2 and get_parent().get_node("4Ship").position.y < 335.5)): + return false + elif !((get_parent().get_node("5Ship").position.x > 17.4 and get_parent().get_node("5Ship").position.x < 335.5) and (get_parent().get_node("5Ship").position.y > 20.2 and get_parent().get_node("5Ship").position.y < 335.5)): + return false + else: + return true + +func _on_Confirm_Placement_pressed(): + if check_all_ships_are_on_board(): + print("all ships are on board") # Remove this line + # Convert ships to board pieces + else: + print("You can't confirm placement until all ships are placed") + get_parent().get_node("AcceptDialog").popup() + #OS.alert("You can't confirm placement until all ships are placed", "Confirm Placement")