Add a way to skip turns

This commit is contained in:
Kienan Stewart 2022-04-03 13:15:42 -04:00
parent 399ab622a2
commit 23f8070ac1
9 changed files with 78 additions and 9 deletions

View File

@ -11,9 +11,9 @@
3. Sound effects 3. Sound effects
* on hit * on hit
* if possible, a small bit of background music * if possible, a small bit of background music
4. Further visual polish 4. New units
5. 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

BIN
assets/export/skip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

BIN
assets/source/buttons.xcf Normal file

Binary file not shown.

View File

@ -258,10 +258,12 @@ func _ready():
func _input(ev): func _input(ev):
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
print(ev) 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") 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: if n.is_visible() and not force_visible:
n.set_visible(false) n.set_visible(false)
else: else:
@ -336,6 +338,10 @@ func _on_phase_end():
if not self.current_state in self.states.keys(): if not self.current_state in self.states.keys():
self.current_state = 0 self.current_state = 0
self._on_new_turn() 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( get_node("TopBar/Bottom/Instruction").set_text(
self.states[self.current_state]["description"] + " - " + self.states[self.current_state]["directive"] 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/BottomBar/Help").set_text("Well, I'll be damned. I didn't think this would happen!")
get_node("/root/Game/Impossible").play() get_node("/root/Game/Impossible").play()
# Show a popup for new one, or quit # 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.current_state == 1:
if self.ai_target != null: if self.ai_target != null:
var target_square = self.board_squares[self.ai_target] var target_square = self.board_squares[self.ai_target]
@ -608,3 +614,7 @@ func _on_Huh_finished():
func _on_StopThat_finished(): func _on_StopThat_finished():
get_node("/root/Game/StopThat").stop() get_node("/root/Game/StopThat").stop()
func _on_SkipTurnButton_pressed():
self._on_phase_end()

View File

@ -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/Game.gd" type="Script" id=1]
[ext_resource path="res://src/Playfield.tscn" type="PackedScene" id=2] [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/huh.wav" type="AudioStream" id=11]
[ext_resource path="res://assets/export/dust.wav" type="AudioStream" id=12] [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/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] [sub_resource type="DynamicFont" id=1]
size = 24 size = 24
font_data = ExtResource( 4 ) font_data = ExtResource( 4 )
[sub_resource type="DynamicFont" id=2]
font_data = ExtResource( 4 )
[node name="Game" type="Container"] [node name="Game" type="Container"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@ -105,7 +112,6 @@ text = "Do a thing"
valign = 1 valign = 1
[node name="EndMenu" parent="." instance=ExtResource( 5 )] [node name="EndMenu" parent="." instance=ExtResource( 5 )]
visible = true
[node name="EndSong" type="AudioStreamPlayer" parent="."] [node name="EndSong" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 6 ) stream = ExtResource( 6 )
@ -132,6 +138,58 @@ stream = ExtResource( 11 )
[node name="StopThat" type="AudioStreamPlayer" parent="."] [node name="StopThat" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 10 ) 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="EndSong" to="." method="_on_EndSong_finished"]
[connection signal="finished" from="Yammering" to="." method="_on_Yammering_finished"] [connection signal="finished" from="Yammering" to="." method="_on_Yammering_finished"]
[connection signal="finished" from="Dust" to="." method="_on_Dust_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="Hehe" to="." method="_on_Hehe_finished"]
[connection signal="finished" from="Huh" to="." method="_on_Huh_finished"] [connection signal="finished" from="Huh" to="." method="_on_Huh_finished"]
[connection signal="finished" from="StopThat" to="." method="_on_StopThat_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"]