enhance #136 animations when skipping in picker

This commit is contained in:
betalars 2025-05-07 19:52:57 +02:00
parent 796b7d12c8
commit c00cb4ba13
2 changed files with 262 additions and 5 deletions

View File

@ -111,6 +111,10 @@ func fill_post_slots():
$sticky_notes.get_child(i).add_child(options[i], false)
options[i].owner = self
var picked_player: AnimationPlayer
var random_player: AnimationPlayer
func _input(event):
#if event.is_action_pressed("ui_end"):
# fill_card_slots(3)
@ -125,12 +129,17 @@ func _input(event):
if event.is_action_pressed("ui_accept"):
pick(curr_selection_id)
elif event.is_action_pressed("skip"):
##fixme: using skip causes a lot of invalid state
if selection_state == CARDS_SELECTED:
picked_player.play("skip_pick", .1)
random_player.play("skip_shuffle", .1)
for player in anim_players:
player.advance(10.0)
transition()
show_posts()
elif selection_state == POSTS_SELECTED:
transition()
for player in anim_players + [picked_player, random_player]:
player.advance(10.0)
elif selection_state == TRANSITION:
show_posts()
@ -147,15 +156,16 @@ func pick(id: int):
selection_state = POSTS_SELECTED
anim_players[id].play("pick")
picked_player = anim_players[id]
var yield_to = anim_players[id].animation_finished
output.append(options[id])
options.remove_at(id)
anim_players.remove_at(id)
var parent_id = -1
var parent_id:StringName
if selection_state == POSTS_SELECTED:
parent_id = options.find(output[-1].parent_id)
parent_id = output[-1].parent_id
var i:int = 0
for option:StickyNote in options:
if option.parent_id == parent_id:
@ -179,6 +189,7 @@ func pick(id: int):
Steam.storeStats()
output.append(options.pop_at(winning_id))
random_player = anim_players[winning_id]
anim_players.pop_at(winning_id).play("shuffle")
for anim in anim_players:

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=64 format=3 uid="uid://brk4hjdf2x81a"]
[gd_scene load_steps=70 format=3 uid="uid://brk4hjdf2x81a"]
[ext_resource type="Script" uid="uid://bdb6n10apk1en" path="res://logic-scenes/card_picker/card_picker.gd" id="1_pjntm"]
[ext_resource type="Script" uid="uid://2loic2eeec5b" path="res://logic-scenes/board/card.gd" id="2_f4sp4"]
@ -219,6 +219,86 @@ tracks/2/keys = {
"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_t7byf"]
resource_name = "skip_pick"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.6, 1.26667, 1.96667),
"transitions": PackedFloat32Array(1.7411, 1.7411, 0.450625),
"update": 0,
"values": [Vector2(-110, 350), Vector2(-110, 400), Vector2(-110, 900)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.6, 1.83333),
"transitions": PackedFloat32Array(2.14355, 1.03526),
"update": 0,
"values": [0.0523599, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.9),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_et74x"]
resource_name = "skip_shuffle"
length = 1.7
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.566667, 1, 1.7),
"transitions": PackedFloat32Array(1.7411, 2.37841, 0.450625),
"update": 0,
"values": [Vector2(200, 390), Vector2(200, 400), Vector2(200, 900)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.566667, 1.43333),
"transitions": PackedFloat32Array(2.14355, 1.03526),
"update": 0,
"values": [0.111701, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.866667),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_d68d2"]
resource_name = "unshuffle"
length = 3.0
@ -255,6 +335,8 @@ _data = {
&"reveal": SubResource("Animation_3304u"),
&"select": SubResource("Animation_ldr2c"),
&"shuffle": SubResource("Animation_abihp"),
&"skip_pick": SubResource("Animation_t7byf"),
&"skip_shuffle": SubResource("Animation_et74x"),
&"unshuffle": SubResource("Animation_d68d2")
}
@ -449,6 +531,86 @@ tracks/2/keys = {
"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_f4sp4"]
resource_name = "skip_pick"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.6, 1.26667, 1.96667),
"transitions": PackedFloat32Array(1.7411, 1.7411, 0.450625),
"update": 0,
"values": [Vector2(-110, 350), Vector2(-110, 400), Vector2(-110, 900)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.6, 1.83333),
"transitions": PackedFloat32Array(2.14355, 1.03526),
"update": 0,
"values": [0.0523599, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.9),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_211mu"]
resource_name = "skip_shuffle"
length = 1.7
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.533333, 0.966667, 1.66667),
"transitions": PackedFloat32Array(1.7411, 2.37841, 0.450625),
"update": 0,
"values": [Vector2(200, 390), Vector2(200, 400), Vector2(200, 900)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.533333, 1.4),
"transitions": PackedFloat32Array(2.14355, 1.03526),
"update": 0,
"values": [0.111701, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.833333),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_sa974"]
resource_name = "unshuffle"
length = 3.0
@ -485,6 +647,8 @@ _data = {
&"reveal": SubResource("Animation_orrwn"),
&"select": SubResource("Animation_2c94q"),
&"shuffle": SubResource("Animation_pdic8"),
&"skip_pick": SubResource("Animation_f4sp4"),
&"skip_shuffle": SubResource("Animation_211mu"),
&"unshuffle": SubResource("Animation_sa974")
}
@ -703,6 +867,86 @@ tracks/2/keys = {
"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_8qj35"]
resource_name = "skip_pick"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.6, 1.26667, 1.96667),
"transitions": PackedFloat32Array(1.7411, 1.7411, 0.450625),
"update": 0,
"values": [Vector2(-110, 350), Vector2(-110, 400), Vector2(-110, 900)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.6, 1.83333),
"transitions": PackedFloat32Array(2.14355, 1.03526),
"update": 0,
"values": [0.0523599, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.9),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_ujc5a"]
resource_name = "skip_shuffle"
length = 1.7
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.566667, 1, 1.7),
"transitions": PackedFloat32Array(1.7411, 2.37841, 0.450625),
"update": 0,
"values": [Vector2(200, 390), Vector2(200, 400), Vector2(200, 900)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.566667, 1.43333),
"transitions": PackedFloat32Array(2.14355, 1.03526),
"update": 0,
"values": [0.111701, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.866667),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1.2, 1.2)]
}
[sub_resource type="Animation" id="Animation_mj8e0"]
resource_name = "unshuffle"
length = 3.0
@ -739,6 +983,8 @@ _data = {
&"reveal": SubResource("Animation_ep22n"),
&"select": SubResource("Animation_pcu23"),
&"shuffle": SubResource("Animation_vu874"),
&"skip_pick": SubResource("Animation_8qj35"),
&"skip_shuffle": SubResource("Animation_ujc5a"),
&"unshuffle": SubResource("Animation_mj8e0")
}