Compare commits

..

8 Commits

28 changed files with 270 additions and 55 deletions
+1
View File
@@ -1,4 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArea3D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F8a54226fa2e1c9371a8091f24cfd744aef11fe6869527dc23b9b837623a29b9_003FArea3D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAudioStreamPlayer2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F848324b1c23114c3f5e8bbb5a42c4ade394c59a7a7a133a66b76581ca571_003FAudioStreamPlayer2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd111abf504bf42b5968a609b168fd093b2e200_003Fbb_003F1c116fcd_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Ff1d69ec2da76ccf9bc8a75c8e0fdca9a7ba1adf8c8c9d5047e2fa5991c02eca_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
@@ -18,7 +18,7 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
+7 -7
View File
@@ -1,15 +1,15 @@
join Yeli center
Yeli (_part_side): Hi Vesna! Nice to see you!
Yeli (_part_side): Hi Vesna! So nice to see you!
Yeli: It's been so long!
[text_input text="How have you been?" var="PLAYERMOOD" placeholder="Awesome!" default="Good" allow_empty="true"]
Yeli: It's nice to hear that you've been {PLAYERMOOD}.
Yeli: There is so much to do on the farm. Would you like to help me?
[text_input text="How have you been?" var="PLAYERMOOD" placeholder="Good" default="Good" allow_empty="true"]
Yeli: {PLAYERMOOD} huh? Nice!
Yeli: Well, enough chitchat! There is so much to do on the farm. Would you like to help me?
- Absolutely!
Yeli: That's what I like to hear!
- Yes!
Yeli: Very good!
- When do I start?
- For sure!
Yeli: Awesome!
Yeli: Ok then let's start with the tilling. In order to till the soil and plant something, you need a hoe.
Yeli: You can find it leaning against the back fence somewhere. Pick it up and come back to me.
Yeli: Ok then let's start with the tilling. In order to till the soil and plant something, you need a hoe or rake.
Yeli: You can find one leaning against the back fence somewhere. Pick it up and come back to me.
leave Yeli
+4
View File
@@ -0,0 +1,4 @@
join Yeli center
Yeli: So you found it? Nice!
Yeli: Now find a nice plot of land and start tilling it. You can simply click on the ground while you have the rake in your hand.
leave Yeli
+1
View File
@@ -0,0 +1 @@
uid://c2edb6qee3oft
+12
View File
@@ -0,0 +1,12 @@
join Yeli center
Yeli: Done tilling? Ok, next step is watering!
Yeli: First, pick up the watering can and select it in your inventory by using the mouse wheel.
Yeli: Then go to the well and press [E] to fill it up.
Yeli: Did you follow?
- Pick up waterin can, then go to well. Got it.
- Not exactly. What do I do again?
Yeli: Pick up the watering can and fill it up at the well. Easy peasy.
Yeli: Alright, then you go to a field that you prepared and click on it while holding the watering can. You'll see it turn dark from the water.
Yeli: Your current watering can has a capacity of 4. That means it can water 4 fields before it needs to be refilled.
Yeli: Now go and water the fields, then come back to me. There's another thing, but let's do this step by step.
leave Yeli
+1
View File
@@ -0,0 +1 @@
uid://c8ak87t7rdyur
+7
View File
@@ -0,0 +1,7 @@
join Yeli center
Yeli: Nicely done!
Yeli: Your fields are now prepped for the growing part.
Yeli: Here, have some tomato seeds. Use them to grow your first plants.
Yeli: Once the plants are planted, you can trigger their next development stage by watering them and pressing [E] at their field. It's a little trick I've learned. But don't tell anyone else!
Yeli: Once the tomatoes are fully grown, you can harvest them and we can cook a nice soup out of them.
leave Yeli
+1
View File
@@ -0,0 +1 @@
uid://vr8kyg00yn6u
+7
View File
@@ -0,0 +1,7 @@
join Yeli center
Yeli: Woah, what's going on here?
Yeli: Seems like this room isn't ready for business yet.
Yeli: Let's wait until the developers are done with it, shall we?
Yeli: See you at {SHOW}!
leave Yeli
[end_timeline]
+1
View File
@@ -0,0 +1 @@
uid://ik2t6j8tken
+8 -1
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=821 format=3 uid="uid://c25udixd5m6l0"]
[gd_scene load_steps=822 format=3 uid="uid://c25udixd5m6l0"]
[ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"]
[ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/Player2D.cs" id="2_1vqmv"]
@@ -818,6 +818,7 @@
[ext_resource type="Texture2D" uid="uid://x8hr8287ff2n" path="res://art/farm/farming/farmobjekte/tools atlas.png" id="816_1a3c1"]
[ext_resource type="Script" uid="uid://bcskt5ckh3rqa" path="res://scripts/CSharp/Common/Farming/FarmingControls2D.cs" id="817_6nrw3"]
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field_2d.tscn" id="818_16w6h"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"]
radius = 110.018
@@ -3563,5 +3564,11 @@ _fieldPrefab = ExtResource("818_16w6h")
_movingPlayer = NodePath("../CharacterBody2D")
_camera = NodePath("../CharacterBody2D/Camera2D")
[node name="Node2D" type="Node2D" parent="."]
position = Vector2(0, 374)
script = ExtResource("819_4na52")
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D" method="PlayWateringAnimation"]
[connection signal="timelineEnded" from="Node2D" to="." method="EnableMovement"]
[connection signal="timelineStarted" from="Node2D" to="." method="DisableMovement"]
+8 -7
View File
@@ -183,7 +183,9 @@ animations = [{
}]
[node name="Yeli" type="Node2D"]
z_index = 1
y_sort_enabled = true
position = Vector2(0, 322)
script = ExtResource("1_at1n1")
[node name="InteractionArea" parent="." instance=ExtResource("42_ahrat")]
@@ -194,19 +196,18 @@ scale = Vector2(2.805, 2.805)
shape = SubResource("CircleShape2D_at1n1")
[node name="Label" parent="InteractionArea" index="1"]
top_level = true
custom_minimum_size = Vector2(10, 10)
offset_left = -94.0
offset_top = 83.0
offset_right = -39.65
offset_bottom = 113.0
scale = Vector2(3, 3)
offset_left = -127.273
offset_top = -245.633
offset_right = 119.727
offset_bottom = -142.633
theme_override_font_sizes/font_size = 60
text = "[E] talk"
[node name="TalkingControl" type="Node2D" parent="." node_paths=PackedStringArray("_sprite")]
script = ExtResource("1_hn8at")
_sprite = NodePath("AnimatedSprite")
_timelinesToPlay = PackedStringArray("yeli_intro_01")
_timelinesToPlay = PackedStringArray("yeli_intro_01", "yeli_intro_02", "yeli_intro_03", "yeli_intro_04")
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"]
y_sort_enabled = true
+26 -3
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://b1d2e7ely6hyw"]
[gd_scene load_steps=8 format=3 uid="uid://b1d2e7ely6hyw"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_femni"]
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_femni"]
@@ -6,9 +6,13 @@
[ext_resource type="Texture2D" uid="uid://d3dq15edmgbwf" path="res://art/farm/tilable grounds/böden/nasse farming erde rund.png" id="4_lsfck"]
[ext_resource type="PackedScene" uid="uid://c3hwbwo423nbm" path="res://prefabs/farm/base_plant_2d.tscn" id="5_femni"]
[sub_resource type="CircleShape2D" id="CircleShape2D_yi42k"]
resource_local_to_scene = true
radius = 201.345
[sub_resource type="CircleShape2D" id="CircleShape2D_femni"]
resource_local_to_scene = true
radius = 300.0
radius = 194.926
[node name="BaseField" type="Node2D"]
@@ -17,12 +21,14 @@ visible = false
z_index = 1
scale = Vector2(2.225, 2.225)
[node name="FieldBehaviour" type="Sprite2D" parent="."]
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_growingCollider")]
z_index = -1
scale = Vector2(0.9, 1)
texture = ExtResource("2_yi42k")
script = ExtResource("2_femni")
Tilled = ExtResource("2_yi42k")
Watered = ExtResource("4_lsfck")
_growingCollider = NodePath("BasePlant/InteractionArea")
[node name="BasePlant" parent="FieldBehaviour" node_paths=PackedStringArray("_field") instance=ExtResource("5_femni")]
_field = NodePath("..")
@@ -30,11 +36,28 @@ _field = NodePath("..")
[node name="BigPlant" parent="FieldBehaviour/BasePlant" index="2"]
position = Vector2(6, -161)
[node name="InteractionArea" parent="FieldBehaviour/BasePlant" index="3"]
z_index = 3
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_yi42k")
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"]
shape = SubResource("CircleShape2D_femni")
[node name="Label" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2" index="1"]
visible = false
[node name="ReadyPlant" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem" index="5"]
visible = false
position = Vector2(0, -291.3)
[node name="01" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/ReadyPlant" index="0"]
visible = true
[connection signal="Interacted" from="InteractionArea2" to="FieldBehaviour/BasePlant" method="Grow"]
[editable path="FieldBehaviour/BasePlant"]
[editable path="FieldBehaviour/BasePlant/InteractionArea"]
[editable path="FieldBehaviour/BasePlant/ReadyPlantInventoryItem"]
[editable path="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2"]
-3
View File
@@ -39,7 +39,6 @@ position = Vector2(0, 0.5)
[node name="TomatoSeed" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk")
flip_v = true
region_enabled = true
@@ -48,7 +47,6 @@ region_rect = Rect2(-2, 15, 85, 81)
[node name="TomatoSeed2" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk")
flip_v = true
region_enabled = true
@@ -57,7 +55,6 @@ region_rect = Rect2(15, 177, 84, 108)
[node name="TomatoSeed3" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk")
flip_v = true
region_enabled = true
@@ -49,12 +49,13 @@ autowrap_mode = 3
shape = SubResource("CircleShape2D_tlhp6")
[node name="Label" parent="InteractionArea2" index="1"]
offset_left = -142.0
offset_top = -278.0
offset_right = 1.0
offset_bottom = -170.0
visible = true
z_index = 5
offset_left = -68.0
offset_top = -111.0
offset_right = 75.0
offset_bottom = -3.0
theme = SubResource("Theme_xu8me")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Icon" type="Sprite2D" parent="."]
+10 -4
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=3 format=3 uid="uid://cqc72e4hq6bcd"]
[gd_scene load_steps=4 format=3 uid="uid://cqc72e4hq6bcd"]
[ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"]
@@ -6,6 +6,9 @@
resource_local_to_scene = true
radius = 300.0
[sub_resource type="Theme" id="Theme_5ajrf"]
default_font_size = 75
[node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")]
script = ExtResource("1_5ajrf")
_area = NodePath("Area2D")
@@ -19,10 +22,13 @@ shape = SubResource("CircleShape2D_npluf")
[node name="Label" type="Label" parent="."]
visible = false
offset_right = 50.0
offset_bottom = 30.0
scale = Vector2(2, 2)
offset_left = -46.0
offset_top = -55.0
offset_right = 45.0
offset_bottom = 48.0
theme = SubResource("Theme_5ajrf")
text = "[E]"
horizontal_alignment = 1
[connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"]
[connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"]
+7 -2
View File
@@ -32,10 +32,15 @@ directories/dch_directory={
directories/dtl_directory={
"semi_cat": "res://dialog/semi_cat.dtl",
"test_time_line": "res://dialog/test_time_line.dtl",
"yeli_intro_01": "res://dialog/yeli_intro_01.dtl"
"yeli_intro_01": "res://dialog/yeli_intro_01.dtl",
"yeli_intro_02": "res://dialog/yeli_intro_02.dtl",
"yeli_intro_03": "res://dialog/yeli_intro_03.dtl",
"yeli_intro_04": "res://dialog/yeli_intro_04.dtl",
"yeli_intro_05": "res://dialog/yeli_intro_05.dtl"
}
variables={
"PLAYERMOOD": "Good"
"PLAYERMOOD": "Good",
"SHOW": "IGF"
}
glossary/default_case_sensitive=true
layout/style_list=["res://dialog/NPC_narrative.tres"]
+61 -9
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=60 format=3 uid="uid://gigb28qk8t12"]
[gd_scene load_steps=69 format=3 uid="uid://gigb28qk8t12"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="1_7wfwe"]
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"]
@@ -36,6 +36,13 @@
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="28_ipqaa"]
[ext_resource type="Resource" uid="uid://datee0flk1e84" path="res://resources/items/scythe.tres" id="29_wtdui"]
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="32_2nee2"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="34_e5b7x"]
[ext_resource type="PackedScene" uid="uid://bm21nqepnwaik" path="res://scenes/IndoorTest2.tscn" id="35_taxvr"]
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
[ext_resource type="AudioStream" uid="uid://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="39_di1ed"]
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="40_ceriq"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="40_w3jkj"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
shader = ExtResource("13_7p0hq")
@@ -132,13 +139,26 @@ shader_parameter/brightness_add = 0.0
shader_parameter/contrast_mult = 0.913
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2nee2"]
size = Vector2(12082, 1176)
size = Vector2(5905, 1176)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_p6n74"]
resource_local_to_scene = true
size = Vector2(7340, 1192)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ceriq"]
loop = false
stream_count = 2
stream_0 = ExtResource("37_di1ed")
stream_1 = ExtResource("37_8ey8m")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ceriq"]
streams_count = 2
stream_0/stream = ExtResource("39_di1ed")
stream_1/stream = ExtResource("40_ceriq")
[node name="BabushkaSceneFarmOutside2d" type="Node2D"]
script = ExtResource("34_e5b7x")
_sceneToLoad = ExtResource("35_taxvr")
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
@@ -796,7 +816,6 @@ z_index = 1
y_sort_enabled = true
[node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")]
z_index = 1
position = Vector2(6173, 3310)
[node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")]
@@ -839,7 +858,7 @@ _blueprint = ExtResource("26_ipqaa")
shape = SubResource("CircleShape2D_2nee2")
[node name="CanGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
position = Vector2(6702, 3507)
position = Vector2(8192, 3507)
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
_blueprint = ExtResource("28_ipqaa")
@@ -880,27 +899,30 @@ shape = SubResource("CircleShape2D_ipqaa")
position = Vector2(-60, 122)
[node name="Static" type="Node2D" parent="YSorted/Farm visuals"]
position = Vector2(-8213, 84)
[node name="House Mockup" type="Sprite2D" parent="YSorted/Farm visuals/Static"]
visible = false
material = SubResource("ShaderMaterial_lhtpe")
position = Vector2(5280, 1600)
scale = Vector2(5, 5)
texture = ExtResource("2_lhtpe")
[node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Farm visuals/Static/House Mockup"]
visible = false
collision_layer = 2
collision_mask = 6
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="YSorted/Farm visuals/Static/House Mockup/StaticBody2D"]
visible = false
position = Vector2(-257.6, 236.8)
polygon = PackedVector2Array(232, -4.80005, 0, 0, 0, -96, -262.4, -97.6, -265.6, -260.8, -310.4, -260.8, -235.2, -321.6, -124.8, -323.2, -57.6, -424, 84.8, -436.8, 118.4, -452.8, 136, -436.8, 726.4, -452.8, 817.6, -299.2, 785.6, -291.2, 785.6, -108.8, 241.6, -94.4)
disabled = true
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")]
position = Vector2(7178, 1965)
scale = Vector2(2.425, 2.425)
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
position = Vector2(48, 0)
position = Vector2(53, 20)
scale = Vector2(1, 0.993819)
script = ExtResource("25_0qu0h")
metadata/_custom_type_script = "uid://dhxtdhfqx3bte"
@@ -910,7 +932,7 @@ collision_mask = 5
collision_priority = 10.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="YSorted/Farm visuals/FieldParent/Area2D"]
position = Vector2(473, 2949)
position = Vector2(2897.5, 2949)
shape = SubResource("RectangleShape2D_2nee2")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="YSorted/Farm visuals/FieldParent/Area2D"]
@@ -933,7 +955,37 @@ size_flags_horizontal = 4
size_flags_vertical = 8
_inventoryOpenedOffset = -600.0
[node name="Audio" type="Node" parent="."]
[node name="Background Music" type="AudioStreamPlayer2D" parent="Audio"]
position = Vector2(4002, 2030)
stream = SubResource("AudioStreamPlaylist_ceriq")
volume_db = -15.0
autoplay = true
max_distance = 1e+06
[node name="SFX" type="Node" parent="Audio"]
[node name="Farming SFX" type="AudioStreamPlayer2D" parent="Audio/SFX"]
stream = SubResource("AudioStreamRandomizer_ceriq")
max_distance = 2e+07
script = ExtResource("40_w3jkj")
[node name="Watering SFX" type="AudioStreamPlayer2D" parent="Audio/SFX"]
stream = SubResource("AudioStreamRandomizer_ceriq")
max_distance = 2e+07
script = ExtResource("40_w3jkj")
[node name="FillWater SFX2" type="AudioStreamPlayer2D" parent="Audio/SFX"]
stream = SubResource("AudioStreamRandomizer_ceriq")
max_distance = 2e+07
script = ExtResource("40_w3jkj")
[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="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
[connection signal="Interacted" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadScene"]
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
[connection signal="mouse_entered" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Farm visuals/FieldParent" method="MouseEnteredAllowedArea"]
[connection signal="mouse_exited" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Farm visuals/FieldParent" method="MouseExitedAllowedArea"]
+17 -10
View File
@@ -8,17 +8,24 @@
script = ExtResource("1_fj2fh")
_sceneToLoad = ExtResource("2_r0y6o")
[node name="Background" type="Sprite2D" parent="."]
position = Vector2(880, 524)
scale = Vector2(1.2, 1.2)
texture = ExtResource("1_qerdf")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="Start" type="Button" parent="Background"]
offset_left = 6.66665
offset_top = 304.167
offset_right = 52.6666
offset_bottom = 335.167
[node name="TextureRect" type="TextureRect" parent="CanvasLayer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_qerdf")
expand_mode = 2
stretch_mode = 6
[node name="Start" type="Button" parent="CanvasLayer/TextureRect"]
offset_left = 571.0
offset_top = 559.0
offset_right = 617.0
offset_bottom = 590.0
scale = Vector2(2, 2)
text = "Start"
[connection signal="pressed" from="Background/Start" to="." method="LoadScene"]
[connection signal="pressed" from="CanvasLayer/TextureRect/Start" to="." method="LoadScene"]
+26 -1
View File
@@ -1,5 +1,6 @@
[gd_scene load_steps=19 format=3 uid="uid://bm21nqepnwaik"]
[gd_scene load_steps=23 format=3 uid="uid://bm21nqepnwaik"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_aivb2"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="2_a2ood"]
[ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="3_a2ood"]
[ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="3_je1cl"]
@@ -14,6 +15,8 @@
[ext_resource type="Texture2D" uid="uid://tyypifpte0pb" path="res://art/indoor/room export/Room_01_chugun.png" id="11_atjbs"]
[ext_resource type="Texture2D" uid="uid://x7trh4dgsvoe" path="res://art/indoor/room export/Room_01_assets.png" id="13_j5d18"]
[ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="14_j5d18"]
[ext_resource type="PackedScene" uid="uid://dfvgp1my5rydh" path="res://prefabs/characters/Yeli.tscn" id="15_ciwvv"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="17_835kg"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
resource_local_to_scene = true
@@ -104,8 +107,13 @@ _data = {
&"hand_stretch": SubResource("Animation_8o6or")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_wuntg"]
resource_local_to_scene = true
radius = 300.0
[node name="IndoorTest" type="Node2D"]
y_sort_enabled = true
script = ExtResource("1_aivb2")
[node name="BackWall" type="Node" parent="."]
@@ -318,4 +326,21 @@ offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2576, 802, 219, 64)
[node name="Yeli" parent="." instance=ExtResource("15_ciwvv")]
position = Vector2(-2912, 432)
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_wuntg")
[node name="TalkingControl" parent="Yeli" index="1"]
_timelinesToPlay = PackedStringArray("yeli_intro_05")
[node name="dialogic_toggle" type="Node2D" parent="Yeli"]
script = ExtResource("17_835kg")
metadata/_custom_type_script = "uid://cvkw4qd2hxksi"
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="." method="Quit"]
[editable path="Player2d"]
[editable path="Yeli"]
[editable path="Yeli/InteractionArea"]
+14
View File
@@ -0,0 +1,14 @@
using Godot;
namespace Babushka.scripts.CSharp.Common;
public partial class AudioPlayer : AudioStreamPlayer2D
{
/// <summary>
/// For SFX and other audio that should be played only once and not looped.
/// </summary>
public void PlayOneShot()
{
Play();
}
}
+1
View File
@@ -0,0 +1 @@
uid://cfnrd5k1k0gxw
@@ -19,6 +19,12 @@ public partial class Player2D : CharacterBody2D
private Vector2 _lastDirection = Vector2.Zero;
private InventoryManager _inventoryManager;
public bool InputEnabled
{
get => _canHandleInput;
set => _canHandleInput = value;
}
public override void _Ready()
{
InventoryManager.Instance.playerInventory.InventoryContentsChanged += HandleNewItemInInventory;
@@ -1,3 +1,4 @@
using Babushka.scripts.CSharp.Common.CharacterControls;
using Godot;
namespace Babushka.scripts.CSharp.Common.Farming;
@@ -17,6 +18,7 @@ public partial class FieldBehaviour2D : Sprite2D
[Export] private Texture2D Tilled;
[Export] private Texture2D Watered;
[Export] public FieldState FieldState = FieldState.Tilled;
[Export] private InteractionArea2D _growingCollider;
public Vector2 FieldPosition;
@@ -36,10 +38,12 @@ public partial class FieldBehaviour2D : Sprite2D
case FieldState.Tilled:
FieldState = FieldState.Tilled;
Texture = Tilled;
_growingCollider.Visible = false;
break;
case FieldState.Watered:
FieldState = FieldState.Watered;
Texture = Watered;
_growingCollider.Visible = true;
break;
case FieldState.Planted:
FieldState = FieldState.Planted;
@@ -9,6 +9,8 @@ public partial class FieldService2D : Node2D
[Export] private Dictionary<Vector2I, FieldBehaviour2D> fields = new Dictionary<Vector2I, FieldBehaviour2D>();
private bool _fieldAllowed = false;
[Signal] public delegate void FieldCreatedEventHandler();
//Validate
@@ -33,6 +35,7 @@ public partial class FieldService2D : Node2D
if (!fields.ContainsKey(key))
{
fields.Add(key, field);
EmitSignal(SignalName.FieldCreated);
return true;
}
return false;
@@ -14,6 +14,7 @@ public partial class VesnaBehaviour2D : Node
[Export] private ItemResource _wateringCan;
[Signal] public delegate void PickedUpToolEventHandler(bool success, int toolId);
[Signal] public delegate void FilledWateringCanEventHandler();
private InventoryManager _inventoryManager;
private InventoryInstance _inventoryInstance;
@@ -64,8 +65,25 @@ public partial class VesnaBehaviour2D : Node
{
_farmingControls.FillWateringCan(true);
_player2d.PlayWateringCanFillupAnimation();
EmitSignal(SignalName.FilledWateringCan);
}
}
#endregion
/// <summary>
/// Enables the character movement in the Player2D script.
/// </summary>
public void EnableMovement()
{
_player2d.InputEnabled = true;
}
/// <summary>
/// Disables the character movement in the Player2D script.
/// </summary>
public void DisableMovement()
{
_player2d.InputEnabled = false;
}
}
+12 -2
View File
@@ -5,13 +5,18 @@ namespace Babushka.scripts.CSharp.Common;
public partial class SceneTransition : Node
{
[Export] private PackedScene _sceneToLoad;
[Export] private Node _sceneInstanceParent;
[Export] private Node? _sceneInstanceParent;
[Export] private bool _unloadSelf = true;
public void LoadScene()
{
Node sceneInstance = _sceneToLoad.Instantiate();
_sceneInstanceParent.AddChild(sceneInstance);
if(_sceneInstanceParent != null)
_sceneInstanceParent.AddChild(sceneInstance);
else
{
GetTree().Root.AddChild(sceneInstance);
}
if (_unloadSelf)
{
@@ -19,4 +24,9 @@ public partial class SceneTransition : Node
}
}
public void Quit()
{
GetTree().Quit();
}
}