diff --git a/TODO.md b/TODO.md index 9decdf6..c64e029 100644 --- a/TODO.md +++ b/TODO.md @@ -11,9 +11,9 @@ 3. Sound effects * on hit * if possible, a small bit of background music -4. Further visual polish -5. New units +4. New units +5. Further visual polish -Bugs +Bugs of note: - * if the player has no possible moves, there is no way to continue: add a skip turn button + * n/a diff --git a/assets/export/skip.png b/assets/export/skip.png new file mode 100644 index 0000000..9f96909 Binary files /dev/null and b/assets/export/skip.png differ diff --git a/assets/export/skip_disabled.png b/assets/export/skip_disabled.png new file mode 100644 index 0000000..1280945 Binary files /dev/null and b/assets/export/skip_disabled.png differ diff --git a/assets/export/skip_hover.png b/assets/export/skip_hover.png new file mode 100644 index 0000000..c5a1669 Binary files /dev/null and b/assets/export/skip_hover.png differ diff --git a/assets/export/skip_pressed.png b/assets/export/skip_pressed.png new file mode 100644 index 0000000..7e786d4 Binary files /dev/null and b/assets/export/skip_pressed.png differ diff --git a/assets/source/Squares.xcf b/assets/source/Squares.xcf index 6b6d4c9..b25ae83 100644 Binary files a/assets/source/Squares.xcf and b/assets/source/Squares.xcf differ diff --git a/assets/source/buttons.xcf b/assets/source/buttons.xcf new file mode 100644 index 0000000..208b44b Binary files /dev/null and b/assets/source/buttons.xcf differ diff --git a/src/Game.gd b/src/Game.gd index 1e40f67..d565e9d 100644 --- a/src/Game.gd +++ b/src/Game.gd @@ -258,10 +258,12 @@ func _ready(): func _input(ev): if Input.is_action_just_pressed("ui_cancel"): print(ev) - self._on_escape() + self._on_escape(false, "Paused") -func _on_escape(force_visible = false): +func _on_escape(force_visible = false, message = null): var n = get_node("/root/Game/EndMenu") + if message != null: + n.get_node("VBoxContainer/Label").set_text(message) if n.is_visible() and not force_visible: n.set_visible(false) else: @@ -336,6 +338,10 @@ func _on_phase_end(): if not self.current_state in self.states.keys(): self.current_state = 0 self._on_new_turn() + if self.current_state == 0: + get_node("PanelRight/VBox/HBox/VBox/HBox/SkipTurnButton").set_disabled(false) + else: + get_node("PanelRight/VBox/HBox/VBox/HBox/SkipTurnButton").set_disabled(true) get_node("TopBar/Bottom/Instruction").set_text( self.states[self.current_state]["description"] + " - " + self.states[self.current_state]["directive"] ) @@ -455,7 +461,7 @@ func _process(delta): get_node("/root/Game/BottomBar/Help").set_text("Well, I'll be damned. I didn't think this would happen!") get_node("/root/Game/Impossible").play() # Show a popup for new one, or quit - self._on_escape(true) + self._on_escape(true, "Game over!") if self.current_state == 1: if self.ai_target != null: var target_square = self.board_squares[self.ai_target] @@ -608,3 +614,7 @@ func _on_Huh_finished(): func _on_StopThat_finished(): get_node("/root/Game/StopThat").stop() + + +func _on_SkipTurnButton_pressed(): + self._on_phase_end() diff --git a/src/Game.tscn b/src/Game.tscn index 9635881..416c122 100644 --- a/src/Game.tscn +++ b/src/Game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=20 format=2] [ext_resource path="res://src/Game.gd" type="Script" id=1] [ext_resource path="res://src/Playfield.tscn" type="PackedScene" id=2] @@ -13,11 +13,18 @@ [ext_resource path="res://assets/export/huh.wav" type="AudioStream" id=11] [ext_resource path="res://assets/export/dust.wav" type="AudioStream" id=12] [ext_resource path="res://assets/export/hehe.wav" type="AudioStream" id=13] +[ext_resource path="res://assets/export/skip.png" type="Texture" id=14] +[ext_resource path="res://assets/export/skip_pressed.png" type="Texture" id=15] +[ext_resource path="res://assets/export/skip_disabled.png" type="Texture" id=16] +[ext_resource path="res://assets/export/skip_hover.png" type="Texture" id=17] [sub_resource type="DynamicFont" id=1] size = 24 font_data = ExtResource( 4 ) +[sub_resource type="DynamicFont" id=2] +font_data = ExtResource( 4 ) + [node name="Game" type="Container"] anchor_right = 1.0 anchor_bottom = 1.0 @@ -105,7 +112,6 @@ text = "Do a thing" valign = 1 [node name="EndMenu" parent="." instance=ExtResource( 5 )] -visible = true [node name="EndSong" type="AudioStreamPlayer" parent="."] stream = ExtResource( 6 ) @@ -132,6 +138,58 @@ stream = ExtResource( 11 ) [node name="StopThat" type="AudioStreamPlayer" parent="."] stream = ExtResource( 10 ) + +[node name="PanelRight" type="Panel" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 1024.0 + +[node name="VBox" type="VBoxContainer" parent="PanelRight"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 15.0 +margin_top = 15.0 +margin_right = -15.0 +margin_bottom = -15.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="HBox" type="HBoxContainer" parent="PanelRight/VBox"] +margin_right = 226.0 +margin_bottom = 87.0 +alignment = 2 + +[node name="VBox" type="VBoxContainer" parent="PanelRight/VBox/HBox"] +margin_left = 136.0 +margin_right = 226.0 +margin_bottom = 87.0 +alignment = 1 + +[node name="HBox" type="HBoxContainer" parent="PanelRight/VBox/HBox/VBox"] +margin_right = 90.0 +margin_bottom = 64.0 +alignment = 1 + +[node name="SkipTurnButton" type="TextureButton" parent="PanelRight/VBox/HBox/VBox/HBox"] +margin_left = 13.0 +margin_right = 77.0 +margin_bottom = 64.0 +hint_tooltip = "Skip Turn" +texture_normal = ExtResource( 14 ) +texture_pressed = ExtResource( 15 ) +texture_hover = ExtResource( 17 ) +texture_disabled = ExtResource( 16 ) +stretch_mode = 3 + +[node name="Label" type="Label" parent="PanelRight/VBox/HBox/VBox"] +margin_top = 68.0 +margin_right = 90.0 +margin_bottom = 87.0 +custom_fonts/font = SubResource( 2 ) +text = "Skip Turn" +align = 1 +valign = 1 [connection signal="finished" from="EndSong" to="." method="_on_EndSong_finished"] [connection signal="finished" from="Yammering" to="." method="_on_Yammering_finished"] [connection signal="finished" from="Dust" to="." method="_on_Dust_finished"] @@ -140,3 +198,4 @@ stream = ExtResource( 10 ) [connection signal="finished" from="Hehe" to="." method="_on_Hehe_finished"] [connection signal="finished" from="Huh" to="." method="_on_Huh_finished"] [connection signal="finished" from="StopThat" to="." method="_on_StopThat_finished"] +[connection signal="pressed" from="PanelRight/VBox/HBox/VBox/HBox/SkipTurnButton" to="." method="_on_SkipTurnButton_pressed"]