summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrena Cardoso <>2024-01-27 19:04:15 +0200
committerBrena Cardoso <>2024-01-27 19:04:15 +0200
commitc7c019bf863d6b45ec14ddf0f6bdb9908ec6cbf9 (patch)
tree09175bc1c7066ab4189ec22ed01b6c02734b4576
parent6bbb28a65262a581f66ce8341aeb96a944456230 (diff)
parentfbdee2def3d82fda4a65a91e060a166ee5293222 (diff)
downloadgamejam-ggj-2024-c7c019bf863d6b45ec14ddf0f6bdb9908ec6cbf9.tar.gz
gamejam-ggj-2024-c7c019bf863d6b45ec14ddf0f6bdb9908ec6cbf9.tar.bz2
gamejam-ggj-2024-c7c019bf863d6b45ec14ddf0f6bdb9908ec6cbf9.zip
Merge branch 'main' of github.com:henriquelalves/ggj2024
-rw-r--r--game/main.gd24
-rw-r--r--game/main.tscn4
-rw-r--r--game/microgames/flowers_delivery/flowers_delivery.gd2
-rw-r--r--game/microgames/heart_break/heart_break.gd8
-rw-r--r--game/microgames/heart_break/heart_break.tscn3
-rw-r--r--game/microgames/heart_break/player_heart.gd8
-rw-r--r--game/microgames/heart_break/spiky.gd17
-rw-r--r--game/microgames/heart_break/spiky.tscn3
-rw-r--r--game/shared/assets/SingleDay-Regular.ttfbin0 -> 815516 bytes
-rw-r--r--game/shared/assets/SingleDay-Regular.ttf.import33
-rw-r--r--game/shared/characters/character_animation.gd32
-rw-r--r--game/shared/characters/character_animation.tscn14
-rw-r--r--game/shared/scripts/microgame.gd2
-rw-r--r--game/transition/transition.gd33
-rw-r--r--game/transition/transition.tscn321
15 files changed, 422 insertions, 82 deletions
diff --git a/game/main.gd b/game/main.gd
index 6dc8532..03531c7 100644
--- a/game/main.gd
+++ b/game/main.gd
@@ -5,8 +5,12 @@ const MICROGAMES = [preload("res://game/microgames/flowers_delivery/flowers_deli
@onready var transition: Transition = %Transition
@onready var microgame_viewport = %MicrogameViewport
@onready var microgame_subviewport = %MicrogameSubViewport
+@onready var microgame_timer: Timer = %MicrogameTimer
var _current_microgame: Microgame
+var _starting = true
+var _won_last_microgame = false
+var _microgame_count = 1
func _ready() -> void:
@@ -20,19 +24,23 @@ func _ready() -> void:
while true:
if _current_microgame != null:
_current_microgame.process_mode = Node.PROCESS_MODE_DISABLED
-
- transition.show_win_animation()
-
- await transition.microgame_viewport_hidden
-
- if _current_microgame != null:
+
+ await transition.microgame_fade_out()
_current_microgame.queue_free()
+
+ await transition.play_result_animation(_won_last_microgame)
_current_microgame = MICROGAMES[0].instantiate()
microgame_subviewport.add_child(_current_microgame)
_current_microgame.process_mode = Node.PROCESS_MODE_DISABLED
- await transition.finished
+ await transition.play_microgame_count(_microgame_count)
+
+ await transition.microgame_fade_in()
+
_current_microgame.process_mode = Node.PROCESS_MODE_INHERIT
- await _current_microgame.finished
+ _won_last_microgame = await _current_microgame.finished
+
+ _starting = false
+ _microgame_count += 1
diff --git a/game/main.tscn b/game/main.tscn
index 447d8c7..055f1d2 100644
--- a/game/main.tscn
+++ b/game/main.tscn
@@ -23,3 +23,7 @@ unique_name_in_owner = true
handle_input_locally = false
size = Vector2i(2, 2)
render_target_update_mode = 4
+
+[node name="MicrogameTimer" type="Timer" parent="."]
+unique_name_in_owner = true
+wait_time = 5.0
diff --git a/game/microgames/flowers_delivery/flowers_delivery.gd b/game/microgames/flowers_delivery/flowers_delivery.gd
index 2c448de..e6c25da 100644
--- a/game/microgames/flowers_delivery/flowers_delivery.gd
+++ b/game/microgames/flowers_delivery/flowers_delivery.gd
@@ -4,5 +4,5 @@ extends Microgame
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
await $Timer.timeout
- finished.emit()
+ finished.emit(true if randf() < 0.5 else false)
print("acabou")
diff --git a/game/microgames/heart_break/heart_break.gd b/game/microgames/heart_break/heart_break.gd
index b12ae70..d25afe8 100644
--- a/game/microgames/heart_break/heart_break.gd
+++ b/game/microgames/heart_break/heart_break.gd
@@ -12,7 +12,11 @@ func _process(delta):
func _on_player_heart_body_entered(body):
if body is Spiky:
- print("hey")
- $PlayerHeart.get_node("AnimatedSprite2D").play("death")
+ disable_player()
## GameOver
pass
+
+func disable_player():
+ $PlayerHeart.get_node("AnimatedSprite2D").play("death")
+ $PlayerHeart.playerControl = false
+
diff --git a/game/microgames/heart_break/heart_break.tscn b/game/microgames/heart_break/heart_break.tscn
index 68bec77..b130424 100644
--- a/game/microgames/heart_break/heart_break.tscn
+++ b/game/microgames/heart_break/heart_break.tscn
@@ -54,4 +54,7 @@ position = Vector2(235, 481)
[node name="Spiky4" parent="." instance=ExtResource("3_dfa23")]
position = Vector2(845, 496)
+[node name="Spiky5" parent="." instance=ExtResource("3_dfa23")]
+position = Vector2(570, 104)
+
[connection signal="body_entered" from="PlayerHeart" to="." method="_on_player_heart_body_entered"]
diff --git a/game/microgames/heart_break/player_heart.gd b/game/microgames/heart_break/player_heart.gd
index 565cee1..0a6b26a 100644
--- a/game/microgames/heart_break/player_heart.gd
+++ b/game/microgames/heart_break/player_heart.gd
@@ -1,6 +1,7 @@
extends RigidBody2D
var speed = 250
+var playerControl = true
# Called when the node enters the scene tree for the first time.
func _ready():
@@ -9,7 +10,8 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta):
- var moveVector = Vector2(Input.get_axis("Left","Right")*speed, Input.get_axis("Up","Down")*speed)
- apply_force(moveVector)
- #set_axis_velocity(moveVector)
+ if(playerControl):
+ var moveVector = Vector2(Input.get_axis("Left","Right")*speed, Input.get_axis("Up","Down")*speed)
+ apply_force(moveVector)
+ #set_axis_velocity(moveVector)
pass
diff --git a/game/microgames/heart_break/spiky.gd b/game/microgames/heart_break/spiky.gd
index 3fa5983..df4414b 100644
--- a/game/microgames/heart_break/spiky.gd
+++ b/game/microgames/heart_break/spiky.gd
@@ -1,11 +1,22 @@
-extends RigidBody2D
+extends CharacterBody2D
class_name Spiky
+var dir:Vector2 = Vector2.UP
+var speed = 200
+
# Called when the node enters the scene tree for the first time.
func _ready():
- pass # Replace with function body.
+ dir = dir.rotated(2*PI*randf())
+ #apply_central_force(dir*250)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
- pass
+ velocity = dir * speed
+ var collided = move_and_slide()
+ if(collided):
+ dir = dir.rotated(2*PI*randf())
+ var collider = get_last_slide_collision().get_collider()
+ if(collider is Node and collider.name == "PlayerHeart"):
+ collider.body_entered.emit(self)
+
diff --git a/game/microgames/heart_break/spiky.tscn b/game/microgames/heart_break/spiky.tscn
index 267dc26..da658b2 100644
--- a/game/microgames/heart_break/spiky.tscn
+++ b/game/microgames/heart_break/spiky.tscn
@@ -6,8 +6,7 @@
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1xy8p"]
size = Vector2(96.5, 90)
-[node name="Spiky" type="RigidBody2D"]
-gravity_scale = 0.0
+[node name="Spiky" type="CharacterBody2D"]
script = ExtResource("1_fx3ld")
[node name="Sprite2D" type="Sprite2D" parent="."]
diff --git a/game/shared/assets/SingleDay-Regular.ttf b/game/shared/assets/SingleDay-Regular.ttf
new file mode 100644
index 0000000..c70da6b
--- /dev/null
+++ b/game/shared/assets/SingleDay-Regular.ttf
Binary files differ
diff --git a/game/shared/assets/SingleDay-Regular.ttf.import b/game/shared/assets/SingleDay-Regular.ttf.import
new file mode 100644
index 0000000..48ef387
--- /dev/null
+++ b/game/shared/assets/SingleDay-Regular.ttf.import
@@ -0,0 +1,33 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://den305djdhip6"
+path="res://.godot/imported/SingleDay-Regular.ttf-328494f7e7c7bddc457d5d401d0bdfa4.fontdata"
+
+[deps]
+
+source_file="res://game/shared/assets/SingleDay-Regular.ttf"
+dest_files=["res://.godot/imported/SingleDay-Regular.ttf-328494f7e7c7bddc457d5d401d0bdfa4.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/game/shared/characters/character_animation.gd b/game/shared/characters/character_animation.gd
new file mode 100644
index 0000000..d3fdfc4
--- /dev/null
+++ b/game/shared/characters/character_animation.gd
@@ -0,0 +1,32 @@
+@tool
+extends Node2D
+
+@onready var animated_sprite: AnimatedSprite2D = %CharacterAnimatedSprite
+var _sprite_frames: SpriteFrames
+
+@export var sprite_frames: SpriteFrames :
+ set(v):
+ _sprite_frames = v
+ if not is_node_ready():
+ await ready
+ animated_sprite.sprite_frames = _sprite_frames
+ get:
+ return _sprite_frames
+
+
+func _reset_animation():
+ animated_sprite.animation = "default"
+
+
+func play_happy():
+ animated_sprite.animation = "happy"
+ var tween = create_tween()
+ tween.tween_property(animated_sprite, "scale", Vector2.ONE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_ELASTIC).from(Vector2(1.3, 0.8))
+ tween.tween_callback(_reset_animation).set_delay(0.5)
+
+
+func play_mad():
+ animated_sprite.animation = "mad"
+ var tween = create_tween()
+ tween.tween_property(animated_sprite, "scale", Vector2.ONE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_BACK).from(Vector2(1.2, 0.8))
+ tween.tween_callback(_reset_animation).set_delay(0.5)
diff --git a/game/shared/characters/character_animation.tscn b/game/shared/characters/character_animation.tscn
index 04ddb12..2dabd95 100644
--- a/game/shared/characters/character_animation.tscn
+++ b/game/shared/characters/character_animation.tscn
@@ -1,10 +1,12 @@
-[gd_scene load_steps=2 format=3 uid="uid://k0mx61qjphst"]
-
-[ext_resource type="SpriteFrames" uid="uid://c5j2ojumuirph" path="res://game/microgames/heart_break/assets/heart_animation.tres" id="1_utnrb"]
+[gd_scene load_steps=3 format=3 uid="uid://k0mx61qjphst"]
+[ext_resource type="Script" path="res://game/shared/characters/character_animation.gd" id="1_qpodi"]
+[ext_resource type="SpriteFrames" uid="uid://dbwmqcig0qbw8" path="res://game/shared/characters/ali_animation.tres" id="2_pffd0"]
[node name="CharacterAnimation" type="Node2D"]
+script = ExtResource("1_qpodi")
+sprite_frames = ExtResource("2_pffd0")
-[node name="Character" type="AnimatedSprite2D" parent="."]
-sprite_frames = ExtResource("1_utnrb")
-frame_progress = 0.924904
+[node name="CharacterAnimatedSprite" type="AnimatedSprite2D" parent="."]
+unique_name_in_owner = true
+sprite_frames = ExtResource("2_pffd0")
diff --git a/game/shared/scripts/microgame.gd b/game/shared/scripts/microgame.gd
index 7aef5ed..29b63ed 100644
--- a/game/shared/scripts/microgame.gd
+++ b/game/shared/scripts/microgame.gd
@@ -4,4 +4,4 @@ extends Node
@export var microgame_name = ""
@export var instruction = ""
-signal finished
+signal finished(won)
diff --git a/game/transition/transition.gd b/game/transition/transition.gd
index 45daf65..563e6d1 100644
--- a/game/transition/transition.gd
+++ b/game/transition/transition.gd
@@ -3,22 +3,41 @@ extends Node2D
@export var speed_scale = 1.0
+signal finished_animation
+
@onready var animation_player = %AnimationPlayer
@onready var microgame_viewport_container = %MicrogameViewportContainer
-signal finished
-signal microgame_viewport_hidden
+var _lives = 0
+var _characters = []
func _ready() -> void:
animation_player.speed_scale = speed_scale
+ _characters = %Characters.get_children()
+ animation_player.play("RESET")
-func _emit_microgame_viewport_hidden() -> void:
- microgame_viewport_hidden.emit()
+func microgame_fade_out():
+ animation_player.play("microgame_fade_out")
+ await animation_player.animation_finished
-func show_win_animation():
- animation_player.play("win_transition")
+func microgame_fade_in():
+ animation_player.play_backwards("microgame_fade_out")
await animation_player.animation_finished
- finished.emit()
+
+
+func play_microgame_count(count: int):
+ %MicrogameCountLabel.text = "%03d" % count
+ animation_player.play("show_microgame_count")
+ await animation_player.animation_finished
+
+
+func play_result_animation(won : bool) -> void:
+ for c in _characters:
+ if (won):
+ c.play_happy()
+ else:
+ c.play_mad()
+ await get_tree().create_timer(0.5).timeout
diff --git a/game/transition/transition.tscn b/game/transition/transition.tscn
index 0fdeb01..a86b07a 100644
--- a/game/transition/transition.tscn
+++ b/game/transition/transition.tscn
@@ -1,90 +1,235 @@
-[gd_scene load_steps=6 format=3 uid="uid://u3g8s4kck61t"]
+[gd_scene load_steps=14 format=3 uid="uid://u3g8s4kck61t"]
[ext_resource type="Script" path="res://game/transition/transition.gd" id="1_vtfth"]
+[ext_resource type="PackedScene" uid="uid://k0mx61qjphst" path="res://game/shared/characters/character_animation.tscn" id="2_2nft6"]
+[ext_resource type="FontFile" uid="uid://den305djdhip6" path="res://game/shared/assets/SingleDay-Regular.ttf" id="2_phg5r"]
+[ext_resource type="SpriteFrames" uid="uid://bosng2x2w205a" path="res://game/shared/characters/fro_animation.tres" id="3_gxf7f"]
+[ext_resource type="Texture2D" uid="uid://6v31vl2mxbvb" path="res://game/shared/assets/namoradinha_sheet.png" id="4_wxw0m"]
+[ext_resource type="SpriteFrames" uid="uid://jvyw0cu710vo" path="res://game/shared/characters/kit_animation.tres" id="5_l50r6"]
+[ext_resource type="SpriteFrames" uid="uid://dwwhh2i13kfs2" path="res://game/shared/characters/mi_animation.tres" id="6_eiuh1"]
[sub_resource type="LabelSettings" id="LabelSettings_wobn0"]
-font_size = 44
+font = ExtResource("2_phg5r")
+font_size = 80
font_color = Color(0, 0, 0, 1)
-[sub_resource type="Animation" id="Animation_lm0of"]
-resource_name = "win_transition"
-length = 5.0
+[sub_resource type="Animation" id="Animation_hump4"]
+length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
-tracks/0/path = NodePath("Foreground/Label:position")
+tracks/0/path = NodePath("Foreground/Characters/CharacterAnimation:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
-"times": PackedFloat32Array(0, 1.5, 3.5, 5),
-"transitions": PackedFloat32Array(1, 1, 1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
"update": 0,
-"values": [Vector2(511, -116), Vector2(521, 289), Vector2(521, 289), Vector2(-282, 283)]
+"values": [Vector2(338, 305)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
-tracks/1/path = NodePath("Foreground/ViewportContainer/ColorRect:color")
+tracks/1/path = NodePath("Foreground/Characters/CharacterAnimation2:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
-"times": PackedFloat32Array(0, 0.5, 4, 5),
-"transitions": PackedFloat32Array(1, 1, 1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
"update": 0,
-"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
+"values": [Vector2(163, 386)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
-tracks/2/path = NodePath("Foreground/ViewportContainer:size")
+tracks/2/path = NodePath("Foreground/Characters/CharacterAnimation3:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
-"times": PackedFloat32Array(0, 0.5, 4, 5),
-"transitions": PackedFloat32Array(1, 1, 1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
"update": 0,
-"values": [Vector2(1152, 648), Vector2(432, 220), Vector2(432, 220), Vector2(1152, 648)]
+"values": [Vector2(820, 306)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
-tracks/3/path = NodePath("Foreground/ViewportContainer:position")
+tracks/3/path = NodePath("Foreground/Characters/CharacterAnimation4:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
-"times": PackedFloat32Array(0, 0.5, 4, 5),
-"transitions": PackedFloat32Array(1, 1, 1, 1),
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
"update": 0,
-"values": [Vector2(0, 0), Vector2(360, 68), Vector2(360, 68), Vector2(0, 0)]
+"values": [Vector2(982, 389)]
}
-tracks/4/type = "method"
+tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
-tracks/4/path = NodePath(".")
+tracks/4/path = NodePath("Foreground/ViewportContainer/ColorRect:color")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
-"times": PackedFloat32Array(0.6),
+"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
-"values": [{
-"args": [],
-"method": &"_emit_microgame_viewport_hidden"
-}]
+"update": 0,
+"values": [Color(1, 1, 1, 1)]
+}
+tracks/5/type = "value"
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/path = NodePath("Foreground/ViewportContainer:size")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(432, 220)]
+}
+tracks/6/type = "value"
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/path = NodePath("Foreground/ViewportContainer:position")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(360, 68)]
+}
+tracks/7/type = "value"
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/path = NodePath("Foreground/MicrogameCountLabel:position")
+tracks/7/interp = 1
+tracks/7/loop_wrap = true
+tracks/7/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(511, -116)]
}
-[sub_resource type="Animation" id="Animation_hump4"]
-length = 0.001
+[sub_resource type="Animation" id="Animation_67853"]
+resource_name = "microgame_fade_out"
+length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
-tracks/0/path = NodePath("Foreground/Label:position")
+tracks/0/path = NodePath("Foreground/ViewportContainer/ColorRect:color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
"update": 0,
-"values": [Vector2(511, -116)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Foreground/ViewportContainer:size")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(1152, 648), Vector2(432, 220)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("Foreground/ViewportContainer:position")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(0, 0), Vector2(360, 68)]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("Foreground/Characters/CharacterAnimation:position")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(-158, 449), Vector2(338, 305)]
+}
+tracks/4/type = "value"
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/path = NodePath("Foreground/Characters/CharacterAnimation2:position")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/keys = {
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(-333, 530), Vector2(163, 386)]
+}
+tracks/5/type = "value"
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/path = NodePath("Foreground/Characters/CharacterAnimation3:position")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/keys = {
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(1340, 468), Vector2(820, 306)]
+}
+tracks/6/type = "value"
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/path = NodePath("Foreground/Characters/CharacterAnimation4:position")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/keys = {
+"times": PackedFloat32Array(0, 0.5),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(1502, 551), Vector2(982, 389)]
+}
+
+[sub_resource type="Animation" id="Animation_8isba"]
+resource_name = "show_microgame_count"
+length = 1.6
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Foreground/MicrogameCountLabel:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.3, 1.3, 1.6),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
+"update": 0,
+"values": [Vector2(463, -116), Vector2(455, 275), Vector2(455, 275), Vector2(454, 715)]
+}
+
+[sub_resource type="Animation" id="Animation_lm0of"]
+resource_name = "win_transition"
+length = 5.0
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Foreground/MicrogameCountLabel:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 1.5, 3.5, 5),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
+"update": 0,
+"values": [Vector2(511, -116), Vector2(521, 289), Vector2(521, 289), Vector2(-282, 283)]
}
tracks/1/type = "value"
tracks/1/imported = false
@@ -93,10 +238,10 @@ tracks/1/path = NodePath("Foreground/ViewportContainer/ColorRect:color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.5, 4, 5),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
-"values": [Color(1, 1, 1, 0)]
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
@@ -105,10 +250,10 @@ tracks/2/path = NodePath("Foreground/ViewportContainer:size")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.5, 4, 5),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
-"values": [Vector2(1152, 648)]
+"values": [Vector2(1152, 648), Vector2(432, 220), Vector2(432, 220), Vector2(1152, 648)]
}
tracks/3/type = "value"
tracks/3/imported = false
@@ -117,15 +262,31 @@ tracks/3/path = NodePath("Foreground/ViewportContainer:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
+"times": PackedFloat32Array(0, 0.5, 4, 5),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
-"values": [Vector2(0, 0)]
+"values": [Vector2(0, 0), Vector2(360, 68), Vector2(360, 68), Vector2(0, 0)]
+}
+tracks/4/type = "method"
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/path = NodePath(".")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/keys = {
+"times": PackedFloat32Array(0.6),
+"transitions": PackedFloat32Array(1),
+"values": [{
+"args": [],
+"method": &"_emit_microgame_viewport_hidden"
+}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_en0c8"]
_data = {
"RESET": SubResource("Animation_hump4"),
+"microgame_fade_out": SubResource("Animation_67853"),
+"show_microgame_count": SubResource("Animation_8isba"),
"win_transition": SubResource("Animation_lm0of")
}
@@ -158,8 +319,10 @@ layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
-offset_right = 1152.0
-offset_bottom = 648.0
+offset_left = 360.0
+offset_top = 68.0
+offset_right = 792.0
+offset_bottom = 288.0
grow_horizontal = 2
grow_vertical = 2
@@ -179,9 +342,9 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
-color = Color(1, 1, 1, 0)
-[node name="Label" type="Label" parent="Foreground"]
+[node name="MicrogameCountLabel" type="Label" parent="Foreground"]
+unique_name_in_owner = true
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
@@ -189,12 +352,72 @@ anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 511.0
offset_top = -116.0
-offset_right = 641.0
-offset_bottom = -55.0
+offset_right = 747.0
+offset_bottom = -5.99976
grow_horizontal = 2
grow_vertical = 2
text = "blabla"
label_settings = SubResource("LabelSettings_wobn0")
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="Characters" type="Control" parent="Foreground"]
+unique_name_in_owner = true
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="CharacterAnimation" parent="Foreground/Characters" instance=ExtResource("2_2nft6")]
+position = Vector2(338, 305)
+sprite_frames = ExtResource("3_gxf7f")
+
+[node name="Sprite2D2" type="Sprite2D" parent="Foreground/Characters/CharacterAnimation"]
+show_behind_parent = true
+position = Vector2(-14, 12)
+texture = ExtResource("4_wxw0m")
+offset = Vector2(2.08165e-12, 2.08165e-12)
+hframes = 3
+vframes = 9
+
+[node name="CharacterAnimation2" parent="Foreground/Characters" instance=ExtResource("2_2nft6")]
+position = Vector2(163, 386)
+
+[node name="Sprite2D" type="Sprite2D" parent="Foreground/Characters/CharacterAnimation2"]
+show_behind_parent = true
+position = Vector2(-18, 5)
+texture = ExtResource("4_wxw0m")
+offset = Vector2(2.08165e-12, 2.08165e-12)
+hframes = 3
+vframes = 9
+
+[node name="CharacterAnimation3" parent="Foreground/Characters" instance=ExtResource("2_2nft6")]
+position = Vector2(820, 306)
+scale = Vector2(-1, 1)
+sprite_frames = ExtResource("5_l50r6")
+
+[node name="Sprite2D3" type="Sprite2D" parent="Foreground/Characters/CharacterAnimation3"]
+show_behind_parent = true
+position = Vector2(5, 18)
+texture = ExtResource("4_wxw0m")
+offset = Vector2(2.08165e-12, 2.08165e-12)
+hframes = 3
+vframes = 9
+
+[node name="CharacterAnimation4" parent="Foreground/Characters" instance=ExtResource("2_2nft6")]
+position = Vector2(982, 389)
+scale = Vector2(-1, 1)
+sprite_frames = ExtResource("6_eiuh1")
+
+[node name="Sprite2D4" type="Sprite2D" parent="Foreground/Characters/CharacterAnimation4"]
+show_behind_parent = true
+position = Vector2(0, -1)
+texture = ExtResource("4_wxw0m")
+offset = Vector2(2.08165e-12, 2.08165e-12)
+hframes = 3
+vframes = 9
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true