Reworked Domovoi kitchen animation and added AnimationStarter script

feature/fight_system
kziolkowski 6 months ago
parent 202f8809aa
commit 135ba0d198

@ -1,4 +1,4 @@
[gd_scene load_steps=24 format=3 uid="uid://bm21nqepnwaik"] [gd_scene load_steps=27 format=3 uid="uid://bm21nqepnwaik"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_3vr4f"] [ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_3vr4f"]
[ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="2_ubg3a"] [ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="2_ubg3a"]
@ -11,10 +11,12 @@
[ext_resource type="Texture2D" uid="uid://dhvi5404cqioa" path="res://art/indoor/room export/Room_01_window.png" id="9_aoesu"] [ext_resource type="Texture2D" uid="uid://dhvi5404cqioa" path="res://art/indoor/room export/Room_01_window.png" id="9_aoesu"]
[ext_resource type="Texture2D" uid="uid://bpi35nxbhput8" path="res://art/indoor/room export/Room_01_pechkaDoor.png" id="10_xcryd"] [ext_resource type="Texture2D" uid="uid://bpi35nxbhput8" path="res://art/indoor/room export/Room_01_pechkaDoor.png" id="10_xcryd"]
[ext_resource type="Texture2D" uid="uid://tyypifpte0pb" path="res://art/indoor/room export/Room_01_chugun.png" id="11_as3nm"] [ext_resource type="Texture2D" uid="uid://tyypifpte0pb" path="res://art/indoor/room export/Room_01_chugun.png" id="11_as3nm"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="11_gpagp"]
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="12_bu2a1"] [ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="12_bu2a1"]
[ext_resource type="Texture2D" uid="uid://404glx32r1w8" path="res://art/indoor/room export/Room_01_bench.png" id="13_rongr"] [ext_resource type="Texture2D" uid="uid://404glx32r1w8" path="res://art/indoor/room export/Room_01_bench.png" id="13_rongr"]
[ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="14_d7yky"] [ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="14_d7yky"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="15_7a68a"] [ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="15_7a68a"]
[ext_resource type="Script" uid="uid://31p67cdowuw4" path="res://scripts/CSharp/Common/Animation/AnimationStarter.cs" id="15_27bwy"]
[ext_resource type="PackedScene" uid="uid://dfvgp1my5rydh" path="res://prefabs/characters/Yeli.tscn" id="16_dhsxs"] [ext_resource type="PackedScene" uid="uid://dfvgp1my5rydh" path="res://prefabs/characters/Yeli.tscn" id="16_dhsxs"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="17_k0k8c"] [ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="17_k0k8c"]
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="18_dw4nn"] [ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="18_dw4nn"]
@ -23,6 +25,10 @@
resource_local_to_scene = true resource_local_to_scene = true
size = Vector2(3836, 1086) size = Vector2(3836, 1086)
[sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"]
resource_local_to_scene = true
radius = 300.0
[sub_resource type="Animation" id="Animation_j5d18"] [sub_resource type="Animation" id="Animation_j5d18"]
length = 0.001 length = 0.001
tracks/0/type = "value" tracks/0/type = "value"
@ -47,7 +53,7 @@ tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 0,
"values": [Vector2(-710, 0)] "values": [Vector2(-240, -100)]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
@ -61,10 +67,46 @@ tracks/2/keys = {
"update": 1, "update": 1,
"values": [false] "values": [false]
} }
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("BackWall/Room assets/offerings/apple:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(229.5, 331.5)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("BackWall/Room assets/offerings/apple:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("BackWall/Room assets/Domovoi:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_8o6or"] [sub_resource type="Animation" id="Animation_8o6or"]
resource_name = "hand_stretch" resource_name = "hand_stretch"
length = 4.0 length = 5.0
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -72,10 +114,10 @@ tracks/0/path = NodePath("BackWall/Room assets/hand:scale")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0.133333, 3), "times": PackedFloat32Array(0.7, 3.5, 3.93333),
"transitions": PackedFloat32Array(0.406126, 2.46229), "transitions": PackedFloat32Array(0.406126, 2.46229, 1),
"update": 0, "update": 0,
"values": [Vector2(0, 0), Vector2(1, 1)] "values": [Vector2(0, 0), Vector2(1.38, 1.38), Vector2(0, 0)]
} }
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
@ -84,10 +126,10 @@ tracks/1/path = NodePath("BackWall/Room01PechkaDoor:position")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(-0.0333333, 2.96667), "times": PackedFloat32Array(0, 2.97015, 3.96667, 4.93333),
"transitions": PackedFloat32Array(0.101532, 1), "transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0, "update": 0,
"values": [Vector2(-710, 0), Vector2(-760, 0)] "values": [Vector2(-240, -101), Vector2(-362, -99), Vector2(-360.955, -99), Vector2(-240, -99)]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
@ -96,10 +138,46 @@ tracks/2/path = NodePath("BackWall/Room assets/eyes:visible")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(2.26667, 3.7, 3.9), "times": PackedFloat32Array(0.0333333, 3.3, 3.7, 3.9, 4.2),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [false, true, false, true, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("BackWall/Room assets/offerings/apple:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.0333333, 3.53333, 4),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(229.5, 331.5), Vector2(229.5, 331.5), Vector2(76, -15)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("BackWall/Room assets/offerings/apple:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 3.96667),
"transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [true, false, true] "values": [true, false]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("BackWall/Room assets/Domovoi:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 2.33333, 2.63333, 2.76667, 2.86667, 3, 3.1, 3.26667, 4.96667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1.03526, 1, 1),
"update": 0,
"values": [0.0, 0.0, -0.1309, -0.0558505, 0.144862, -0.0593412, 0.205949, 0.0, 0.0]
} }
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ciwvv"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_ciwvv"]
@ -235,11 +313,17 @@ region_rect = Rect2(1020, 338, 607, 757)
[node name="Room01PechkaDoor" type="Sprite2D" parent="BackWall"] [node name="Room01PechkaDoor" type="Sprite2D" parent="BackWall"]
z_index = -50 z_index = -50
position = Vector2(-248, -96) position = Vector2(-240, -100)
texture = ExtResource("10_xcryd") texture = ExtResource("10_xcryd")
region_enabled = true region_enabled = true
region_rect = Rect2(2360, 864, 356, 251) region_rect = Rect2(2360, 864, 356, 251)
[node name="InteractionArea" parent="BackWall/Room01PechkaDoor" instance=ExtResource("11_gpagp")]
scale = Vector2(1.8, 1.96)
[node name="CollisionShape3D" parent="BackWall/Room01PechkaDoor/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_gpagp")
[node name="Room01Chugun" type="Sprite2D" parent="BackWall"] [node name="Room01Chugun" type="Sprite2D" parent="BackWall"]
z_index = -40 z_index = -40
position = Vector2(16, -560) position = Vector2(16, -560)
@ -284,9 +368,9 @@ region_rect = Rect2(2244, 763, 274, 91)
[node name="Domovoi" type="Sprite2D" parent="BackWall/Room assets"] [node name="Domovoi" type="Sprite2D" parent="BackWall/Room assets"]
z_index = -10 z_index = -10
y_sort_enabled = true y_sort_enabled = true
position = Vector2(335, 474.5) position = Vector2(336.487, 275.616)
texture = ExtResource("4_27bwy") texture = ExtResource("4_27bwy")
offset = Vector2(0, -296) offset = Vector2(-14.6475, -97.651)
region_enabled = true region_enabled = true
region_rect = Rect2(3157, 688, 118.519, 221) region_rect = Rect2(3157, 688, 118.519, 221)
@ -309,19 +393,22 @@ offset = Vector2(0, -296)
region_enabled = true region_enabled = true
region_rect = Rect2(2624, 435, 49, 76) region_rect = Rect2(2624, 435, 49, 76)
[node name="hand" type="Sprite2D" parent="BackWall/Room assets"] [node name="hand" type="Sprite2D" parent="BackWall/Room assets" node_paths=PackedStringArray("_animationPlayer")]
z_index = -10 z_index = -10
y_sort_enabled = true y_sort_enabled = true
position = Vector2(47.5969, 6.18) position = Vector2(-101, -6)
rotation = -0.0663225 rotation = -0.0663225
scale = Vector2(1e-05, 1e-05) scale = Vector2(1e-05, 1e-05)
texture = ExtResource("4_27bwy") texture = ExtResource("4_27bwy")
offset = Vector2(43.3898, 128.128) offset = Vector2(43.3898, 128.128)
region_enabled = true region_enabled = true
region_rect = Rect2(3362, 139, 101, 269) region_rect = Rect2(3362, 139, 101, 269)
script = ExtResource("15_27bwy")
_animationPlayer = NodePath("SpiritAnimation")
_animationName = "hand_stretch"
_repeatable = false
[node name="SpiritAnimation" type="AnimationPlayer" parent="BackWall/Room assets/hand"] [node name="SpiritAnimation" type="AnimationPlayer" parent="BackWall/Room assets/hand"]
active = false
root_node = NodePath("../../../..") root_node = NodePath("../../../..")
libraries = { libraries = {
&"": SubResource("AnimationLibrary_ciwvv") &"": SubResource("AnimationLibrary_ciwvv")
@ -356,13 +443,14 @@ region_rect = Rect2(2761, 161, 135, 199)
[node name="eyes" type="Sprite2D" parent="BackWall/Room assets"] [node name="eyes" type="Sprite2D" parent="BackWall/Room assets"]
visible = false visible = false
z_index = -10 z_index = -10
position = Vector2(32, -72) position = Vector2(-169, -80)
scale = Vector2(0.4, 0.4) scale = Vector2(0.4, 0.4)
texture = ExtResource("14_d7yky") texture = ExtResource("14_d7yky")
region_enabled = true region_enabled = true
region_rect = Rect2(2647, 15, 286, 183) region_rect = Rect2(2647, 15, 286, 183)
[node name="offerings" type="Node2D" parent="BackWall/Room assets"] [node name="offerings" type="Node2D" parent="BackWall/Room assets"]
position = Vector2(-205, -8)
[node name="apple" type="Sprite2D" parent="BackWall/Room assets/offerings"] [node name="apple" type="Sprite2D" parent="BackWall/Room assets/offerings"]
z_index = -1 z_index = -1
@ -418,8 +506,11 @@ editor_draw_limits = true
script = ExtResource("18_dw4nn") script = ExtResource("18_dw4nn")
_followNode = NodePath("../Vesna/CharacterBody2D") _followNode = NodePath("../Vesna/CharacterBody2D")
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room01PechkaDoor/InteractionArea" method="ToggleActive"]
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room assets/hand" method="PlayAnimation"]
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="." method="Quit"] [connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="." method="Quit"]
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
[editable path="Vesna"] [editable path="Vesna"]
[editable path="Yeli"] [editable path="Yeli"]
[editable path="Yeli/InteractionArea"] [editable path="Yeli/InteractionArea"]

@ -0,0 +1,24 @@
using Godot;
using System;
public partial class AnimationStarter : Node2D
{
[Export] private AnimationPlayer _animationPlayer;
[Export] private string _animationName;
[Export] private bool _repeatable = true;
private bool _played;
public void PlayAnimation()
{
if (_animationPlayer == null || string.IsNullOrEmpty(_animationName))
return;
if (!_repeatable && _played)
return;
_animationPlayer.Play(_animationName);
_played = true;
}
}

@ -13,19 +13,30 @@ public partial class InteractionArea2D : Node2D
[Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove [Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove
[Signal] public delegate void InteractedEventHandler(); [Signal] public delegate void InteractedEventHandler();
public bool IsActive { get; set; } = true;
public void OnPlayerEntered(Node2D player) public void OnPlayerEntered(Node2D player)
{ {
if (!IsActive)
return;
if(_showLabel) if(_showLabel)
_label.Show(); _label.Show();
} }
public void OnPlayerExited(Node2D player) public void OnPlayerExited(Node2D player)
{ {
if (!IsActive)
return;
_label.Hide(); _label.Hide();
} }
public override void _Input(InputEvent @event) public override void _Input(InputEvent @event)
{ {
if (!IsActive)
return;
if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies()) if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies())
{ {
_label.Hide(); _label.Hide();
@ -36,9 +47,18 @@ public partial class InteractionArea2D : Node2D
public void SetSpriteActiveState(bool success, int id) // TODO: remove public void SetSpriteActiveState(bool success, int id) // TODO: remove
{ {
if(!IsActive)
return;
if (_id == id) if (_id == id)
{ {
_sprites.SwitchState(!success); _sprites.SwitchState(!success);
} }
} }
public void ToggleActive()
{
IsActive = !IsActive;
_label.Hide();
}
} }
Loading…
Cancel
Save