diff --git a/art/characters/chugeist_tmp.png b/art/characters/chugeist_tmp.png new file mode 100644 index 0000000..7bb9433 Binary files /dev/null and b/art/characters/chugeist_tmp.png differ diff --git a/art/characters/chugeist_tmp.png.import b/art/characters/chugeist_tmp.png.import new file mode 100644 index 0000000..e5810a0 --- /dev/null +++ b/art/characters/chugeist_tmp.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgba1uv0muxat" +path="res://.godot/imported/chugeist_tmp.png-ff2e3a6be0ff4b186834b14d159443da.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/characters/chugeist_tmp.png" +dest_files=["res://.godot/imported/chugeist_tmp.png-ff2e3a6be0ff4b186834b14d159443da.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/dialog/Chuga.dch b/dialog/Chuga.dch index 732ef41..ebd1048 100644 --- a/dialog/Chuga.dch +++ b/dialog/Chuga.dch @@ -8,12 +8,22 @@ "sound_moods": {}, "style": "" }, -&"default_portrait": "", +&"default_portrait": "_tmp", &"description": "helpful spirit forest", &"display_name": "Chuga", &"mirror": false, &"nicknames": [""], &"offset": Vector2(0, 0), -&"portraits": {}, +&"portraits": { +"_tmp": { +"export_overrides": { +"image": "\"res://art/characters/chugeist_tmp.png\"" +}, +"mirror": false, +"offset": Vector2(0, 0), +"scale": 1, +"scene": "" +} +}, &"scale": 1.0 } \ No newline at end of file diff --git a/prefabs/characters/Chugar.tscn b/prefabs/characters/Chugar.tscn new file mode 100644 index 0000000..c1f1cd6 --- /dev/null +++ b/prefabs/characters/Chugar.tscn @@ -0,0 +1,65 @@ +[gd_scene load_steps=8 format=3 uid="uid://ddpl8cbck7e6s"] + +[ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_xix7p"] +[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_udjjv"] +[ext_resource type="Texture2D" uid="uid://bgba1uv0muxat" path="res://art/characters/chugeist_tmp.png" id="3_42og6"] +[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="43_xooq4"] +[ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_v6w16"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"] +resource_local_to_scene = true +radius = 345.552 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_aqu1t"] +radius = 84.0 +height = 168.0 + +[node name="Chuga" type="Node2D"] +editor_description = "This Scene seems a bit Chuga coated" +z_index = 1 +y_sort_enabled = true +script = ExtResource("1_xix7p") + +[node name="InteractionArea" parent="." instance=ExtResource("2_udjjv")] +position = Vector2(0, -450) +scale = Vector2(2.805, 2.805) + +[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"] +position = Vector2(-4.99109, 63.4581) +shape = SubResource("CircleShape2D_at1n1") + +[node name="Label" parent="InteractionArea" index="1"] +z_index = 5 +custom_minimum_size = Vector2(10, 10) +offset_left = -131.194 +offset_top = -157.219 +offset_right = 115.806 +offset_bottom = -54.2193 +theme_override_font_sizes/font_size = 60 +text = "[E] talk" + +[node name="TalkingControl" type="Node2D" parent="."] + +[node name="Visual" type="Sprite2D" parent="TalkingControl"] +position = Vector2(-39, -770) +scale = Vector2(1.81875, 1.81875) +texture = ExtResource("3_42og6") + +[node name="Dialogic starter" type="Node2D" parent="."] +script = ExtResource("43_xooq4") + +[node name="DialogicToggle" type="Node2D" parent="Dialogic starter"] +script = ExtResource("44_v6w16") + +[node name="AnimatableBody2D" type="AnimatableBody2D" parent="."] +position = Vector2(0, -172) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatableBody2D"] +position = Vector2(0, 94) +shape = SubResource("CapsuleShape2D_aqu1t") + +[connection signal="Talking" from="." to="Dialogic starter" method="open"] +[connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"] +[connection signal="timelineEnded" from="Dialogic starter/DialogicToggle" to="." method="ToggleTalking"] + +[editable path="InteractionArea"] diff --git a/scenes/Babushka_scene_forest_fight_1_2d.tscn b/scenes/Babushka_scene_forest_fight_1_2d.tscn index 8fb78b6..0f733a8 100644 --- a/scenes/Babushka_scene_forest_fight_1_2d.tscn +++ b/scenes/Babushka_scene_forest_fight_1_2d.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=69 format=3 uid="uid://dfyb4dckoltpw"] +[gd_scene load_steps=70 format=3 uid="uid://dfyb4dckoltpw"] [ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_vl6d5"] -[ext_resource type="PackedScene" uid="uid://bm21nqepnwaik" path="res://scenes/Babushka_scene_indoor_common_room.tscn" id="2_5evxf"] [ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="3_jrqoq"] [ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="4_6el7d"] [ext_resource type="Texture2D" uid="uid://be1nofeo7an0" path="res://art/mockups/Kenney_Backgrounds/PNG/cloud2.png" id="5_253jf"] @@ -29,6 +28,7 @@ [ext_resource type="PackedScene" uid="uid://hk8ahyp6dgl6" path="res://prefabs/fight/fight_base_scene.tscn" id="27_55b52"] [ext_resource type="PackedScene" uid="uid://bp64p6y72j71w" path="res://prefabs/fight/fighters/enemy_blob_fighter.tscn" id="27_hfhye"] [ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="29_3jjxs"] +[ext_resource type="PackedScene" uid="uid://ddpl8cbck7e6s" path="res://prefabs/characters/Chugar.tscn" id="29_26tkn"] [ext_resource type="PackedScene" uid="uid://cr66tpdr5rma5" path="res://prefabs/fight/fighters/enemy_mavkha_fighter.tscn" id="29_hfhye"] [ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="30_l10vl"] [ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="31_c2gvt"] @@ -104,6 +104,10 @@ noise = SubResource("FastNoiseLite_wgikv") [sub_resource type="RectangleShape2D" id="RectangleShape2D_hfhye"] size = Vector2(1054.5, 2334.5) +[sub_resource type="CircleShape2D" id="CircleShape2D_hfhye"] +resource_local_to_scene = true +radius = 345.552 + [sub_resource type="ShaderMaterial" id="ShaderMaterial_bcdgk"] shader = ExtResource("39_mp3tl") shader_parameter/speed = 1.0 @@ -134,7 +138,6 @@ stream_2/stream = ExtResource("61_qkd2b") [node name="BabushkaSceneFarmOutside2d" type="Node2D"] script = ExtResource("1_vl6d5") -_sceneToLoad = ExtResource("2_5evxf") [node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")] position = Vector2(3180, 1961) @@ -856,6 +859,13 @@ position = Vector2(178, 594) z_index = 1 y_sort_enabled = true +[node name="Chuga" parent="YSorted" instance=ExtResource("29_26tkn")] +position = Vector2(6402, 1956) +_timelinesToPlay = PackedStringArray("quest5_forest_start", "quest5_forest_end") + +[node name="CollisionShape3D" parent="YSorted/Chuga/InteractionArea/Area2D" index="0"] +shape = SubResource("CircleShape2D_hfhye") + [node name="Vesna" parent="YSorted" instance=ExtResource("29_3jjxs")] z_index = 1 position = Vector2(3180, 2125) @@ -2061,14 +2071,6 @@ polygon = PackedVector2Array(5543, 1787, 8663, 1938, 15008, 1914, 15121, 2882, 1 [node name="CanvasLayer" parent="." instance=ExtResource("50_r0n5l")] [node name="Inventory" parent="CanvasLayer" index="1"] -anchors_preset = 7 -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_left = -116.0 -offset_top = -53.0 -offset_right = 231.82 -offset_bottom = 141.4 -grow_vertical = 0 size_flags_horizontal = 6 size_flags_vertical = 10 @@ -2179,18 +2181,23 @@ script = ExtResource("56_bjj0f") [connection signal="body_entered" from="Fight1/FightStarter/TriggerArea" to="Fight1/FightStarter" method="Start"] [connection signal="FightEnded" from="Fight1/FightBaseScene" to="YSorted/Vesna" method="show"] [connection signal="FightEnded" from="Fight1/FightBaseScene" to="YSorted/Vesna" method="EnableMovement"] +[connection signal="FightStarted" from="Fight1/FightBaseScene" to="YSorted/Chuga" method="hide"] [connection signal="FightStarted" from="Fight1/FightBaseScene" to="YSorted/Vesna" method="hide"] [connection signal="FightStarted" from="Fight1/FightBaseScene" to="YSorted/Vesna" method="DisableMovement"] [connection signal="body_entered" from="Fight2/FightStarter/TriggerArea" to="Fight2/FightStarter" method="Start"] +[connection signal="FightEnded" from="Fight2/FightBaseScene" to="YSorted/Chuga" method="show"] [connection signal="FightEnded" from="Fight2/FightBaseScene" to="YSorted/Vesna" method="show"] [connection signal="FightEnded" from="Fight2/FightBaseScene" to="YSorted/Vesna" method="EnableMovement"] [connection signal="FightStarted" from="Fight2/FightBaseScene" to="YSorted/Vesna" method="hide"] [connection signal="FightStarted" from="Fight2/FightBaseScene" to="YSorted/Vesna" method="DisableMovement"] +[connection signal="timelineEnded" from="YSorted/Chuga/Dialogic starter/DialogicToggle" to="YSorted/Chuga" method="set_position" binds= [Vector2(14579, 2951)]] [connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"] [connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"] [connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"] [editable path="Fight1/FightBaseScene"] [editable path="Fight2/FightBaseScene"] +[editable path="YSorted/Chuga"] +[editable path="YSorted/Chuga/InteractionArea"] [editable path="YSorted/Vesna"] [editable path="CanvasLayer"] diff --git a/scripts/CSharp/Common/NPC/TalkingCharacter.cs b/scripts/CSharp/Common/NPC/TalkingCharacter.cs index 0b8ea19..7a12e36 100644 --- a/scripts/CSharp/Common/NPC/TalkingCharacter.cs +++ b/scripts/CSharp/Common/NPC/TalkingCharacter.cs @@ -4,13 +4,13 @@ namespace Babushka.scripts.CSharp.Common.NPC; public partial class TalkingCharacter : Node2D { - [Export] private AnimatedSprite2D _sprite; + [Export] private AnimatedSprite2D? _sprite; [Export] private string[] _timelinesToPlay; - - + + private bool _isTalking = true; private int _timelineIndex = 0; - + [Signal] public delegate void TalkingEventHandler(string timelineName); public override void _Ready() @@ -22,16 +22,19 @@ public partial class TalkingCharacter : Node2D { if (_isTalking || _timelineIndex >= _timelinesToPlay.Length) { - _sprite.Animation = "idle"; + if (_sprite != null) + _sprite.Animation = "idle"; _isTalking = false; } else { - _sprite.Animation = "talk"; + if (_sprite != null) + _sprite.Animation = "talk"; _isTalking = true; EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]); _timelineIndex++; } - _sprite.Play(); + if (_sprite != null) + _sprite.Play(); } -} \ No newline at end of file +}