implement skipping functionality

This commit is contained in:
betalars 2023-07-19 13:51:26 +02:00
parent 3423505322
commit 1c6e752237
2 changed files with 32 additions and 8 deletions

View File

@ -21,7 +21,11 @@ class_name Collectable_Ui
if collapse and has_stage: State.leave_stage(self)
@export var is_story: bool = false
@export var is_story: bool = false:
set(story):
is_story = story
if not story:
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "Order Thoughts"
@export var has_stage: bool = false:
set(focused):
print("set focus of card to ", focused)
@ -29,13 +33,10 @@ class_name Collectable_Ui
if has_stage == focused: return
if focused:
owner.reveal()
has_stage = true
print(visible)
if not visible: show()
collapsed = false
if collected:
$Panel/Content/Buttons/VBoxContainer/put_back.grab_focus()
else:
if not visible: show()
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.grab_focus()
elif has_stage:
has_stage = false
@ -72,6 +73,8 @@ class_name Collectable_Ui
$Panel/Content/ContentNotes.text = new_notes
signal card_collected
signal open_board
signal scene_skipped(i: int)
# Called when the node enters the scene tree for the first time.
func _ready():
@ -82,6 +85,7 @@ func _ready():
item_name = item_name
content_notes = content_notes
is_story = is_story
func _hide_buttons():
if is_inside_tree():
@ -108,6 +112,8 @@ func hide():
func show():
if !visible:
$Panel/Content/ContentNotes.visible = State.show_content_notes
$Panel/Content/Buttons/VBoxContainer/skip.visible = State.allow_skipping and is_story and not skipped
if not collapsed:
_show_buttons()
modulate = Color()
@ -122,8 +128,22 @@ func _yoink_focus():
func _on_pick_button_pressed():
print("card collected!")
if scene != null:
get_tree().call_group("animation_player", "play_scene", scene)
get_tree().call_group("animation_player", "play_scene", scene, collected)
if skipped: emit_signal("scene_skipped", -1)
collected = true
else:
emit_signal("open_board")
State.leave_stage(self)
func _on_pick_button_released():
hide()
func _on_skip_pressed():
print("Scene skipped!")
if scene != null:
emit_signal("scene_skipped", 1)
skipped = true
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "collect (un-skip)"
State.leave_stage(self)

View File

@ -137,18 +137,21 @@ text = "Collect"
script = SubResource("GDScript_g0qhf")
[node name="Summary" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
visible = false
layout_mode = 2
tooltip_text = "Take this with you, but get a neutral description of it's story."
text = "get neutral summary"
script = SubResource("GDScript_g0qhf")
[node name="skip" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
visible = false
layout_mode = 2
tooltip_text = "Choose this to entirely skip this Item without being unable to progress in the story. Skipped Segments can still be interacted with via the Pause Screen, if you decide to change your mind."
text = "skip"
script = SubResource("GDScript_g0qhf")
[node name="put_back" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
visible = false
layout_mode = 2
text = "put back"
script = SubResource("GDScript_g0qhf")
@ -172,4 +175,5 @@ libraries = {
[connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_pressed"]
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/Summary" to="." method="_yoink_focus"]
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_yoink_focus"]
[connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_on_skip_pressed"]
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/put_back" to="." method="_yoink_focus"]