Compare commits

...

24 Commits

Author SHA1 Message Date
kziolkowski 6275bea52c MAde Vesna and Yeli disappear on dialogic start 2025-07-31 23:30:12 +02:00
kziolkowski 279cac22ee Fixed dialogic settings 2025-07-31 23:25:43 +02:00
kziolkowski e88ba2e1ef Updated interaction area setups to avoid nullrefs 2025-07-31 23:08:10 +02:00
kziolkowski f01143e887 cleaned up dialogue structure and removed vesna2 from dialogues 2025-07-31 22:09:37 +02:00
kziolkowski 18711776bb Fixed output error ERROR: Script class can only be set together with base class name 2025-07-31 21:45:22 +02:00
kziolkowski 0f246825fc Added Wellbehaviour and fixed door interaction to offer outlines 2025-07-31 20:36:17 +02:00
kziolkowski 19e30dd0b8 Removed disclaimer reference from bootstrap 2025-07-31 20:35:49 +02:00
kziolkowski 730c4999d7 Extracted FightAttack Enum in the hopes of fixing errors 2025-07-31 20:35:24 +02:00
kziolkowski cfe604d3b7 set duck body scale to 1,1 2025-07-31 18:55:06 +02:00
kziolkowski ad16b86171 wip exchanging interaction label with outline 2025-07-27 13:17:34 +02:00
kziolkowski 5ee295256b Fixed Yeli Layering issue in indoor scene 2025-07-26 17:05:17 +02:00
kziolkowski ab23d41496 Fixed ysorting on ducks and trash 2025-07-26 16:51:05 +02:00
kziolkowski 486cfb5546 WIP trying to fix the last plant stage bug on repeated farming rounds 2025-07-17 22:10:08 +02:00
kziolkowski b92eb909ad Removed no longer needed print statements 2025-07-17 20:47:34 +02:00
kziolkowski d2c7302ab2 Fixed farming (the way it was before) 2025-07-17 20:44:28 +02:00
kziolkowski 5affc48dc5 Added scene transitions between fighting scene, credits, and start 2025-07-11 04:12:42 +02:00
kziolkowski cdb6b83124 Merge remote-tracking branch 'origin/feature/fight_system' into feature/showcase_kathi 2025-07-11 03:55:56 +02:00
kziolkowski a4f9511892 WIP fixing farming mechanic again 2025-07-11 03:55:36 +02:00
kziolkowski 7a3e96d679 Merge remote-tracking branch 'origin/feature/fight_system' into feature/showcase_kathi 2025-07-11 03:13:08 +02:00
kziolkowski e38c391e1c Reworked flow to make it playable somehow 2025-07-11 03:12:29 +02:00
kziolkowski eaedf8c396 WIP Beetroot 2025-07-11 03:00:43 +02:00
kziolkowski ffa20bbdf8 Added trash to first outdoor scene 2025-07-11 00:56:51 +02:00
kziolkowski b77b6e3a52 Added second outdoor scene after tutorial 2025-07-11 00:17:31 +02:00
kziolkowski c7d56301fc Added counter script to count ducks (and other things) 2025-07-10 23:58:33 +02:00
116 changed files with 5622 additions and 448 deletions
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccy6bwunhfvrf"
path="res://.godot/imported/Babushka_house_frontDoor.png-345830acb7ae8cbbb97011f89455fd91.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/farm/Babushka_house_frontDoor.png"
dest_files=["res://.godot/imported/Babushka_house_frontDoor.png-345830acb7ae8cbbb97011f89455fd91.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5ade1s2ijunu"
path="res://.godot/imported/beetroot_icon.png-aef760d681bd7ef4c12802c6da8d93f5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/farm/farming/farmobjekte/beetroot/beetroot_icon.png"
dest_files=["res://.godot/imported/beetroot_icon.png-aef760d681bd7ef4c12802c6da8d93f5.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://xtci0n8tquc0"
path="res://.godot/imported/beetroot_00.png-0c2234fc9109ef4b2bb1c7f568ee2fc7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/farm/farming/farmobjekte/beetroot_00.png"
dest_files=["res://.godot/imported/beetroot_00.png-0c2234fc9109ef4b2bb1c7f568ee2fc7.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

+9
View File
@@ -0,0 +1,9 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://blch5kdhkbj75"]
[ext_resource type="Shader" uid="uid://dsa3lv2as7q3b" path="res://shader/outline.gdshader" id="1_awyqf"]
[resource]
shader = ExtResource("1_awyqf")
shader_parameter/allow_out_of_bounds = true
shader_parameter/outline_thickness = 8.0
shader_parameter/outline_color = Color(0.88, 0.81664, 0.4576, 1)
@@ -4,12 +4,11 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://b3kyrsoobmkhp" uid="uid://b3kyrsoobmkhp"
path="res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn" valid=false
[deps] [deps]
source_file="res://art/mockups/3d/best_house_blender.blend" source_file="res://art/mockups/3d/best_house_blender.blend"
dest_files=["res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"]
[params] [params]
+13 -6
View File
@@ -15,8 +15,8 @@
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
overrides = { overrides = {
"global_bg_color": "Color(0.898375, 0.917922, 0.835355, 1)", "global_bg_color": "Color(0.898375, 0.917922, 0.835355, 1)",
"global_font_color": "Color(0.242786, 0.16463, 0.180255, 1)", "global_font_color": "Color(0.257812, 0.125248, 0.0533752, 1)",
"global_font_size": "20.0" "global_font_size": "30.0"
} }
[sub_resource type="Resource" id="Resource_uxnk3"] [sub_resource type="Resource" id="Resource_uxnk3"]
@@ -44,10 +44,10 @@ overrides = {
"name_label_alignment": "2", "name_label_alignment": "2",
"name_label_box_modulate": "Color(1, 1, 1, 1)", "name_label_box_modulate": "Color(1, 1, 1, 1)",
"name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"", "name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"",
"name_label_custom_font_size": "30.0",
"name_label_use_global_color": "false", "name_label_use_global_color": "false",
"next_indicator_enabled": "false", "next_indicator_enabled": "false",
"text_alignment": "1", "text_size": "40.0",
"text_size": "20.0",
"typing_sounds_end_sound": "\"res://audio/sfx/UI/Dialog/SFX_Dialog_Open_01.wav\"" "typing_sounds_end_sound": "\"res://audio/sfx/UI/Dialog/SFX_Dialog_Open_01.wav\""
} }
@@ -59,7 +59,14 @@ overrides = {}
[sub_resource type="Resource" id="Resource_umvdi"] [sub_resource type="Resource" id="Resource_umvdi"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("7_rg32j") scene = ExtResource("7_rg32j")
overrides = {} overrides = {
"font_size_custom": "30.0",
"text_color_disabled": "Color(0.605469, 0.605469, 0.605469, 1)",
"text_color_focused": "Color(1, 0.628906, 0.628906, 1)",
"text_color_hovered": "Color(0.882353, 0.572549, 0.572549, 1)",
"text_color_pressed": "Color(1, 0.882812, 0.53125, 1)",
"text_color_use_global": "false"
}
[sub_resource type="Resource" id="Resource_ci2ul"] [sub_resource type="Resource" id="Resource_ci2ul"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
@@ -94,4 +101,4 @@ layer_info = {
} }
base_overrides = {} base_overrides = {}
layers = Array[ExtResource("1_0jwhi")]([]) layers = Array[ExtResource("1_0jwhi")]([])
metadata/_latest_layer = "14" metadata/_latest_layer = "15"
@@ -0,0 +1,6 @@
join Yeli center
Yeli: Thank you for your help out there.
Yeli: You must be tired. Please rest. I prepared a bed for you. It's in the room to the left.
Yeli: There is nothing interesting to see here.
leave Yeli
[end_timeline]
@@ -1,18 +1,18 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
Everyone: Smachnoho! Everyone: Smachnoho!
Vesna2: Lovely soup, Yeli! vesna: Lovely soup, Yeli!
Yeli (_part_side): God bless you, my child! Thats also thanks to you. Yeli (_part_side): God bless you, my child! Thats also thanks to you.
Vesna2: So, how do you like it in Lasnoye so far? vesna: So, how do you like it in Lasnoye so far?
- It feels different from when Vasily and I used to live here. - It feels different from when Vasily and I used to live here.
- Its just as I remembered it. - Its just as I remembered it.
Yeli (_part_side): Indeed, it is. Yeli (_part_side): Indeed, it is.
Yeli (_part_side): Since the evacuation, Lasnoye and its people had to adapt to…new circumstances. Yeli (_part_side): Since the evacuation, Lasnoye and its people had to adapt to…new circumstances.
Yeli (_part_side): But at its core, its still our motherland from back then. Yeli (_part_side): But at its core, its still our motherland from back then.
Vesna2: …And the forest? Has anyone tried to go back and-- vesna: …And the forest? Has anyone tried to go back and--
Yeli (_part_side): The forest is strictly off-limits! Yeli (_part_side): The forest is strictly off-limits!
Yeli (_part_side): Dragana forbids it. Yeli (_part_side): Dragana forbids it.
Yeli (_part_side): The grime turned the forest into a dangerous place. Yeli (_part_side): The grime turned the forest into a dangerous place.
Yeli (_part_side): But here youre safe. After all, you can always count on your Yeli! Yeli (_part_side): But here youre safe. After all, you can always count on your Yeli!
Vesna2: In that case, pass me some more soup! vesna: In that case, pass me some more soup!
[end_timeline] [end_timeline]
-19
View File
@@ -1,19 +0,0 @@
{
"@path": "res://addons/dialogic/Resources/character.gd",
"@subpath": NodePath(""),
&"_translation_id": "",
&"color": Color(1, 1, 1, 1),
&"custom_info": {
"sound_mood_default": "",
"sound_moods": {},
"style": "NPC_narrative"
},
&"default_portrait": "",
&"description": "Main character",
&"display_name": "Vesna2",
&"mirror": false,
&"nicknames": [""],
&"offset": Vector2(0, 0),
&"portraits": {},
&"scale": 1.0
}
-1
View File
@@ -1 +0,0 @@
uid://c0vfdx7xal0py
-4
View File
@@ -1,4 +0,0 @@
join Vesna2 center
Vesna2: I just wish I liked tomatoes more.
Vesna2: Well…Yeli probably started with the cooking. I should go inside.
[end_timeline]
-15
View File
@@ -1,15 +0,0 @@
join Vesna2 center
join Domovoi center
Vesna2: Oh no, most of the beets arent ripe yet.
Domovoi: Pssss!
Domovoi: Yeah, you!
Domovoi: The code word is “Rosty Rosty”
Vesna2: What?
Domovoi: Just say it!
Vesna2: Rosty…rosty?
# Hier wächst die rote Beete magisch. Mit einem Signal/Ereignis?
[signal]
Vesna2: It worked! How did it work?
Vesna2: Thank y…and hes gone.
What a truly quirky individual.
[end_timeline]
-5
View File
@@ -1,5 +0,0 @@
join Chuga center
Chuga: I believe youve seen enough for today.
Chuga: And yes, you too.
Thank you for playing!
[end_timeline]
@@ -1,5 +1,5 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
Yeli (_part_side): Wow! So many? Yeli (_part_side): Wow! So many?
Yeli (_part_side): Good job! Put it in the kettle! Yeli (_part_side): Good job! Put it in the kettle!
[wait_input] [wait_input]
@@ -0,0 +1,15 @@
join vesna center
join Domovoi center
vesna: Oh no, most of the beets arent ripe yet.
Domovoi: Pssss!
Domovoi: Yeah, you!
Domovoi: The code word is “Rosty Rosty”
vesna: What?
Domovoi: Just say it!
vesna: Rosty…rosty?
# Hier wächst die rote Beete magisch. Mit einem Signal/Ereignis?
[signal arg="MagicWord"]
vesna: It worked! How did it work?
vesna: Thank y…and hes gone.
vesna: What a truly quirky individual.
[end_timeline]
@@ -1,3 +1,3 @@
join vesna left join vesna center
Thats the last one. I should get back to Yeli. Thats the last one. I should get back to Yeli.
[end_timeline] [end_timeline]
@@ -1,8 +1,8 @@
join Yeli center join Yeli right
join vesna left join vesna left
Yeli (_part_side): Come here, you little quacking beast! Yeli (_part_side): Come here, you little quacking beast!
- What a mess! - What a mess!
- You havent called me that way yet. - How did you call me?
Yeli (_part_side): Vesna, oh, thank goodness! Yeli (_part_side): Vesna, oh, thank goodness!
Yeli (_part_side): Please could you get the runner ducks back into their coop? Yeli (_part_side): Please could you get the runner ducks back into their coop?
[end_timeline] [end_timeline]
@@ -0,0 +1,6 @@
join Chuga center
Chuga: I believe youve seen enough for today.
Chuga: And yes, you too.
vesna: Thank you for playing!
do SceneTransition.ChangeSceneToFileThreaded("res://scenes/Babushka_scene_credits.tscn")
[end_timeline]
@@ -1,21 +1,21 @@
join Vesna2 center join vesna center
join Chuga center join Chuga center
Chuga: Look who it is! Chuga: Look who it is!
Vesna2: Your name was Chuga, right? I want to go to the forest! vesna: Your name was Chuga, right? I want to go to the forest!
Chuga: To the forest? After everything the others told you? Chuga: To the forest? After everything the others told you?
Vesna2: Will you let me through? vesna: Will you let me through?
Chuga: Will I? Chuga: Will I?
Chuga: Let us have a riddle! Chuga: Let us have a riddle!
Chuga: If you answer correctly, I let you through. Chuga: If you answer correctly, I let you through.
Chuga: If not, I let you through anyway. Chuga: If not, I let you through anyway.
Vesna2: So, whats the point of answering? vesna: So, whats the point of answering?
Chuga: You give me an answer, and I give you something to see in the dark. Chuga: You give me an answer, and I give you something to see in the dark.
Chuga: Or are you planning to return with bumps and bruises? Chuga: Or are you planning to return with bumps and bruises?
Chuga: So, listen\: “I wear a crown, but Im no king.” Vesna, what am I? Chuga: So, listen\: “I wear a crown, but Im no king.” Vesna, what am I?
- Queen - Queen
Chuga: What a boring answer. Chuga: What a boring answer.
- Tree - Tree
Thats it! Chuga: Thats it!
- Soup - Soup
Chuga: Hate the player, not the game. Chuga: Hate the player, not the game.
Chuga: Here you go! Chuga: Here you go!
@@ -0,0 +1,4 @@
join vesna center
vesna: I just wish I liked tomatoes more.
vesna: Well…Yeli probably started with the cooking. I should go inside.
[end_timeline]
@@ -1,5 +1,5 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
Yeli (_part_side): Great! Now I need you to plant some tomatoes! Yeli (_part_side): Great! Now I need you to plant some tomatoes!
label plant tomatoes label plant tomatoes
Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields. Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields.
@@ -1,10 +1,10 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore. Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore.
Vesna2: But youre diligent! Youve started with the preparation for dinner. vesna: But youre diligent! Youve started with the preparation for dinner.
Yeli (_part_side): Indeed, I have. Yeli (_part_side): Indeed, I have.
Yeli (_part_side): But, oh my, those ducks messed up the tomatos. Yeli (_part_side): But, oh my, those ducks messed up the tomatos.
Yeli (_part_side): Oh, would you like to assist me? Yeli (_part_side): Oh, would you like to assist me?
Vesna2: What do I have to do? vesna: What do I have to do?
Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me! Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me!
[end_timeline] [end_timeline]
+8
View File
@@ -0,0 +1,8 @@
join vesna center
[text_input text="What shold I say?" var="MAGICWORD" placeholder="Expelliarmus!" allow_empty="true"]
if {MAGICWORD} == "Rosty Rosty":
vesna: That did the trick!
[signal arg="MagicWord"]
else:
vesna: Didn't seem to work...
[end_timeline]
+1
View File
@@ -0,0 +1 @@
uid://dtcypgqal1ids
-7
View File
@@ -1,7 +0,0 @@
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]
+2 -2
View File
@@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="_builds/Babushka_win_0_3/Babushka.exe" export_path="_builds/Babushka_showcase_win_04/Babushka.exe"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
@@ -79,7 +79,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="_builds/Babushka_linux_0_2/Babushka.x86_64" export_path="_builds/Babushka_showcase_lux_04/Babushka.x86_64"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
+51
View File
@@ -0,0 +1,51 @@
[gd_scene load_steps=16 format=3 uid="uid://sbf12hin4kes"]
[ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="3_ic616"]
[ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"]
[ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"]
[ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"]
[ext_resource type="AudioStream" uid="uid://dd3qyaox6mx4i" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_02.wav" id="6_u7jgg"]
[ext_resource type="AudioStream" uid="uid://b1qhh35hugoy0" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_03.wav" id="7_bu430"]
[ext_resource type="AudioStream" uid="uid://ceob726q4obuw" path="res://audio/sfx/Kitchen/SFX_Cooking_Utensils_02.wav" id="8_gnu24"]
[ext_resource type="AudioStream" uid="uid://tjuxapc4wuss" path="res://audio/sfx/Kitchen/SFX_Cutlery_02.wav" id="9_vmxy4"]
[ext_resource type="AudioStream" uid="uid://duiyhe7yiyotb" path="res://audio/sfx/Kitchen/SFX_Cutlery_03.wav" id="10_aqih4"]
[ext_resource type="AudioStream" uid="uid://bc216pfieuc8h" path="res://audio/sfx/Kitchen/SFX_Cutlery_04.wav" id="11_kb03l"]
[ext_resource type="AudioStream" uid="uid://dp6qen84ptlvx" path="res://audio/sfx/Kitchen/SFX_Cutlery_05.wav" id="12_kka6u"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="13_wswkg"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dich4"]
streams_count = 10
stream_0/stream = ExtResource("3_ktmp7")
stream_1/stream = ExtResource("4_ic616")
stream_2/stream = ExtResource("5_dx175")
stream_3/stream = ExtResource("6_u7jgg")
stream_4/stream = ExtResource("7_bu430")
stream_5/stream = ExtResource("8_gnu24")
stream_6/stream = ExtResource("9_vmxy4")
stream_7/stream = ExtResource("10_aqih4")
stream_8/stream = ExtResource("11_kb03l")
stream_9/stream = ExtResource("12_kka6u")
[node name="trashObject" type="Sprite2D"]
z_index = 1
y_sort_enabled = true
texture = ExtResource("1_k4ca3")
offset = Vector2(1, -215)
region_enabled = true
region_rect = Rect2(44, 479, 356, 503)
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_gcgfd")]
position = Vector2(0, -172)
_outlineMaterial = ExtResource("3_ic616")
_spriteToOutline = NodePath("..")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = SubResource("AudioStreamRandomizer_dich4")
bus = &"SFX"
playback_type = 2
script = ExtResource("13_wswkg")
[connection signal="Interacted" from="InteractionArea" to="." method="queue_free"]
[connection signal="Interacted" from="InteractionArea" to="AudioStreamPlayer2D" method="PlayOneShot"]
+1
View File
@@ -458,6 +458,7 @@ expand_mode = 1
[node name="QuestLogRoot" parent="." instance=ExtResource("7_vvo7l")] [node name="QuestLogRoot" parent="." instance=ExtResource("7_vvo7l")]
[node name="Control" type="Control" parent="."] [node name="Control" type="Control" parent="."]
visible = false
layout_mode = 3 layout_mode = 3
anchors_preset = 2 anchors_preset = 2
anchor_top = 1.0 anchor_top = 1.0
+6 -13
View File
@@ -1,10 +1,11 @@
[gd_scene load_steps=8 format=3 uid="uid://ddpl8cbck7e6s"] [gd_scene load_steps=9 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="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="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="Texture2D" uid="uid://bgba1uv0muxat" path="res://art/characters/chugeist_tmp.png" id="3_42og6"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="3_kd44q"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="43_xooq4"] [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"] [ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_v6w16"]
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"] [sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
resource_local_to_scene = true resource_local_to_scene = true
@@ -20,24 +21,16 @@ z_index = 1
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_xix7p") script = ExtResource("1_xix7p")
[node name="InteractionArea" parent="." instance=ExtResource("2_udjjv")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_udjjv")]
position = Vector2(0, -450) position = Vector2(0, -450)
scale = Vector2(2.805, 2.805) scale = Vector2(2.805, 2.805)
_outlineMaterial = ExtResource("3_kd44q")
_spriteToOutline = NodePath("../TalkingControl/Visual")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
position = Vector2(-4.99109, 63.4581) position = Vector2(-4.99109, 63.4581)
shape = SubResource("CircleShape2D_at1n1") 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="TalkingControl" type="Node2D" parent="."]
[node name="Visual" type="Sprite2D" parent="TalkingControl"] [node name="Visual" type="Sprite2D" parent="TalkingControl"]
+7 -2
View File
@@ -471,7 +471,7 @@
[ext_resource type="Texture2D" uid="uid://3pj2q7wtuion" path="res://art/farm/farming/farmobjekte/hoe.png" id="815_1ia2b"] [ext_resource type="Texture2D" uid="uid://3pj2q7wtuion" path="res://art/farm/farming/farmobjekte/hoe.png" id="815_1ia2b"]
[ext_resource type="Texture2D" uid="uid://x8hr8287ff2n" path="res://art/farm/farming/farmobjekte/tools atlas.png" id="816_1a3c1"] [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="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="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/tomato_field.tscn" id="818_16w6h"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"] [ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"] [sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"]
@@ -2065,7 +2065,7 @@ animations = [{
"speed": 11.0 "speed": 11.0
}] }]
[node name="Player2d" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d")] [node name="Vesna" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d")]
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_yd5ep") script = ExtResource("1_yd5ep")
_farmingControls = NodePath("FarmingControls") _farmingControls = NodePath("FarmingControls")
@@ -2193,6 +2193,11 @@ scale_amount_max = 0.8
color = Color(0.400601, 0.62444, 0.791217, 1) color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4 hue_variation_max = 0.4
[node name="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")]
scale = Vector2(0.7, 0.7)
script = ExtResource("819_4na52")
itemToToggle = NodePath("../CharacterBody2D/visuals/Animated Sprites")
[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"] [connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"]
[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"] [connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"] [connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
+7 -10
View File
@@ -192,22 +192,14 @@ y_sort_enabled = true
script = ExtResource("1_hn8at") script = ExtResource("1_hn8at")
_sprite = NodePath("TalkingControl/AnimatedSprite") _sprite = NodePath("TalkingControl/AnimatedSprite")
[node name="InteractionArea" parent="." instance=ExtResource("42_ahrat")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("42_ahrat")]
position = Vector2(0, -450) position = Vector2(0, -450)
scale = Vector2(2.805, 2.805) scale = Vector2(2.805, 2.805)
_spriteToOutline = NodePath("../TalkingControl/AnimatedSprite")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_at1n1") shape = SubResource("CircleShape2D_at1n1")
[node name="Label" parent="InteractionArea" index="1"]
custom_minimum_size = Vector2(10, 10)
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 name="TalkingControl" type="Node2D" parent="."]
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"] [node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"]
@@ -230,6 +222,11 @@ position = Vector2(0, -172)
position = Vector2(0, 94) position = Vector2(0, 94)
shape = SubResource("CapsuleShape2D_aqu1t") shape = SubResource("CapsuleShape2D_aqu1t")
[node name="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")]
scale = Vector2(0.7, 0.7)
script = ExtResource("44_aqu1t")
itemToToggle = NodePath("../TalkingControl/AnimatedSprite")
[connection signal="Talking" from="." to="Dialogic starter" method="open"] [connection signal="Talking" from="." to="Dialogic starter" method="open"]
[connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"] [connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"]
[connection signal="timelineEnded" from="Dialogic starter/DialogicToggle" to="." method="ToggleTalking"] [connection signal="timelineEnded" from="Dialogic starter/DialogicToggle" to="." method="ToggleTalking"]
-69
View File
@@ -1,69 +0,0 @@
[gd_scene load_steps=11 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"]
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_cus02"]
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_msuq8"]
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_21et0"]
[ext_resource type="PackedScene" uid="uid://c3hwbwo423nbm" path="res://prefabs/farm/base_plant_2d.tscn" id="5_femni"]
[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="6_4k6eh"]
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_rrmd3"]
[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 = 194.926
[node name="BaseField" type="Node2D"]
[node name="InteractionArea2" parent="." instance=ExtResource("1_femni")]
visible = false
z_index = 1
scale = Vector2(2.225, 2.225)
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
z_index = -1
scale = Vector2(0.9, 1)
script = ExtResource("2_femni")
_fieldSprite = NodePath("MaskedField/FieldTexture")
_maskSprite = NodePath("MaskedField")
_maskTexture = Array[Texture2D]([ExtResource("3_cus02"), ExtResource("4_msuq8"), ExtResource("5_21et0")])
Tilled = ExtResource("6_4k6eh")
Watered = ExtResource("7_rrmd3")
_growingCollider = NodePath("BasePlant/InteractionArea")
[node name="BasePlant" parent="FieldBehaviour" node_paths=PackedStringArray("_field") instance=ExtResource("5_femni")]
_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="ReadyPlant" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem" index="5"]
position = Vector2(0, -291.3)
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
clip_children = 1
scale = Vector2(1.5, 1.5)
texture = ExtResource("4_msuq8")
[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"]
texture = ExtResource("6_4k6eh")
[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"]
+90
View File
@@ -0,0 +1,90 @@
[gd_scene load_steps=14 format=3 uid="uid://d4m5iy5mwqpq3"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_tp1yj"]
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_c6u1a"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="2_pdgar"]
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_b5av1"]
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_yav45"]
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_pdgar"]
[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="6_a35l4"]
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_us3kg"]
[ext_resource type="PackedScene" uid="uid://c3hwbwo423nbm" path="res://prefabs/farm/beet_plant.tscn" id="8_tgwxi"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="9_b5av1"]
[ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="10_yav45"]
[ext_resource type="Script" uid="uid://drle5aies8ye4" path="res://scripts/GdScript/dialogic_event_forward.gd" id="11_yav45"]
[sub_resource type="CircleShape2D" id="CircleShape2D_a35l4"]
resource_local_to_scene = true
radius = 300.0
[node name="BaseField" type="Node2D"]
[node name="InteractionArea2" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("1_tp1yj")]
visible = false
z_index = 1
scale = Vector2(2.225, 2.225)
_outlineMaterial = ExtResource("2_pdgar")
_spriteToOutline = NodePath("../FieldBehaviour/MaskedField")
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
z_index = -1
scale = Vector2(0.9, 1)
script = ExtResource("2_c6u1a")
_fieldSprite = NodePath("MaskedField/FieldTexture")
_maskSprite = NodePath("MaskedField")
_maskTexture = Array[Texture2D]([ExtResource("3_b5av1"), ExtResource("4_yav45"), ExtResource("5_pdgar")])
Tilled = ExtResource("6_a35l4")
Watered = ExtResource("7_us3kg")
_growingCollider = NodePath("../InteractionArea2")
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
clip_children = 1
scale = Vector2(1.5, 1.5)
texture = ExtResource("4_yav45")
[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"]
texture = ExtResource("6_a35l4")
[node name="BeetRoot" parent="FieldBehaviour" node_paths=PackedStringArray("_smallPlants", "_field") groups=["PlantGrowing"] instance=ExtResource("8_tgwxi")]
_smallPlants = [NodePath("SmallPlant/01"), NodePath("SmallPlant/02"), null, null]
_state = 2
_field = NodePath("..")
[node name="01" parent="FieldBehaviour/BeetRoot/BigPlant" index="0"]
visible = true
[node name="CollisionShape3D" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_a35l4")
[node name="01" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="0"]
scale = Vector2(3, 3)
[node name="02" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="1"]
scale = Vector2(3, 3)
[node name="03" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="2"]
scale = Vector2(3, 3)
[node name="04" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="3"]
scale = Vector2(3, 3)
[node name="dialogic-starter" type="Node2D" parent="."]
script = ExtResource("9_b5av1")
[node name="DialogicOverlay" type="Node2D" parent="dialogic-starter"]
script = ExtResource("10_yav45")
_timelinesToPlay = PackedStringArray("talk_to_plant")
_startOnReady = false
[node name="DialogicEventListener" type="Node" parent="dialogic-starter"]
script = ExtResource("11_yav45")
eventName = "MagicWord"
[connection signal="Interacted" from="InteractionArea2" to="dialogic-starter/DialogicOverlay" method="ToggleDialogue"]
[connection signal="Interacted" from="InteractionArea2" to="dialogic-starter/DialogicEventListener" method="_register"]
[connection signal="Dialogue" from="dialogic-starter/DialogicOverlay" to="dialogic-starter" method="open"]
[connection signal="dialogicEventTriggered" from="dialogic-starter/DialogicEventListener" to="FieldBehaviour/BeetRoot" method="SayMagicWord"]
[editable path="FieldBehaviour/BeetRoot"]
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem"]
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/PickupInteractionArea"]
+207
View File
@@ -0,0 +1,207 @@
[gd_scene load_steps=10 format=3 uid="uid://c3hwbwo423nbm"]
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_0kfos"]
[ext_resource type="Texture2D" uid="uid://xtci0n8tquc0" path="res://art/farm/farming/farmobjekte/beetroot_00.png" id="2_rvwu0"]
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="3_up8td"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_cfgyx"]
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="5_25lcb"]
[ext_resource type="Resource" uid="uid://blr8tine5m0ma" path="res://resources/items/tomato.tres" id="6_aml5p"]
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="7_rvwu0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u4cty"]
shader = ExtResource("3_up8td")
shader_parameter/speed = 3.0
shader_parameter/minStrength = 0.05
shader_parameter/maxStrength = 0.36
shader_parameter/strengthScale = 100.0
shader_parameter/interval = 3.5
shader_parameter/detail = 1.0
shader_parameter/distortion = 0.0
shader_parameter/heightOffset = 0.635
shader_parameter/offset = 0.0
[sub_resource type="CircleShape2D" id="CircleShape2D_rvwu0"]
resource_local_to_scene = true
radius = 300.0
[node name="BeetRoot" type="Node2D" node_paths=PackedStringArray("_seeds", "_smallPlants", "_bigPlants", "_readyPlants", "_harvestablePlant", "_magicEffect")]
z_index = 1
y_sort_enabled = true
script = ExtResource("1_0kfos")
_seeds = [NodePath("Seeds/BeetSeet"), NodePath("Seeds/BeetSeet2"), NodePath("Seeds/BeetSeet3")]
_smallPlants = [NodePath("SmallPlant/01"), NodePath("SmallPlant/02"), null, null]
_bigPlants = [NodePath("BigPlant/01"), NodePath("BigPlant/02"), NodePath("BigPlant/03"), NodePath("BigPlant/04")]
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03"), NodePath("ReadyPlantInventoryItem/ReadyPlant/04")]
_harvestablePlant = NodePath("ReadyPlantInventoryItem")
_magicEffect = NodePath("magic vfx")
[node name="Seeds" type="Node2D" parent="."]
position = Vector2(0, 0.5)
[node name="BeetSeet" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
flip_v = true
region_enabled = true
region_rect = Rect2(166, 289, 28, 38)
[node name="BeetSeet2" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
flip_v = true
region_enabled = true
region_rect = Rect2(166, 289, 28, 38)
[node name="BeetSeet3" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
flip_v = true
region_enabled = true
region_rect = Rect2(243, 207, 35, 69)
[node name="SmallPlant" type="Node2D" parent="."]
position = Vector2(0, 0.5)
[node name="01" type="Sprite2D" parent="SmallPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(37, 178, 72, 116)
[node name="02" type="Sprite2D" parent="SmallPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(313, 179, 73, 115)
[node name="BigPlant" type="Node2D" parent="."]
position = Vector2(0, 2)
[node name="01" type="Sprite2D" parent="BigPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(6, 5, 136, 151)
[node name="02" type="Sprite2D" parent="BigPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(148, 58, 111, 140)
[node name="03" type="Sprite2D" parent="BigPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(264, 4, 131, 152)
[node name="04" type="Sprite2D" parent="BigPlant"]
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(18, 311, 129, 142)
[node name="InteractionArea" parent="." instance=ExtResource("4_cfgyx")]
position = Vector2(0, 2.3)
_useOutline = false
_useSprite = false
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("5_25lcb")]
position = Vector2(0, 2.3)
IsActive = false
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
_blueprint = ExtResource("6_aml5p")
[node name="ItemLabel" parent="ReadyPlantInventoryItem" index="1"]
visible = false
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
visible = false
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_rvwu0")
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
visible = false
[node name="ReadyPlant" type="Node2D" parent="ReadyPlantInventoryItem"]
[node name="01" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(18, 311, 129, 142)
[node name="02" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(6, 5, 136, 151)
[node name="03" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(264, 4, 131, 152)
[node name="04" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(148, 58, 111, 140)
[node name="magic vfx" type="CPUParticles2D" parent="."]
position = Vector2(-133, -347)
rotation = -0.333807
emitting = false
amount = 20
texture = ExtResource("7_rvwu0")
lifetime = 0.5
randomness = 1.0
local_coords = true
draw_order = 1
emission_shape = 2
emission_sphere_radius = 128.0
linear_accel_min = 44.07
linear_accel_max = 78.81
scale_amount_min = 0.01
scale_amount_max = 0.1
color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4
[connection signal="Interacted" from="InteractionArea" to="." method="Grow"]
[editable path="ReadyPlantInventoryItem"]
[editable path="ReadyPlantInventoryItem/PickupInteractionArea"]
+50 -64
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=23 format=3 uid="uid://muuxxgvx33fp"] [gd_scene load_steps=25 format=3 uid="uid://muuxxgvx33fp"]
[ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"] [ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"]
[ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"] [ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"]
@@ -16,6 +16,7 @@
[ext_resource type="Animation" uid="uid://b3dwd88uvfk1k" path="res://art/animals/duck_flapFlap.res" id="14_uo3dh"] [ext_resource type="Animation" uid="uid://b3dwd88uvfk1k" path="res://art/animals/duck_flapFlap.res" id="14_uo3dh"]
[ext_resource type="AudioStream" uid="uid://bsr5m8u2sle5k" path="res://audio/sfx/Animals/SFX_Duck_Wings_07.wav" id="14_xhefb"] [ext_resource type="AudioStream" uid="uid://bsr5m8u2sle5k" path="res://audio/sfx/Animals/SFX_Duck_Wings_07.wav" id="14_xhefb"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="15_uo3dh"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="15_uo3dh"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="16_nxoeu"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sot7i"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sot7i"]
streams_count = 4 streams_count = 4
@@ -39,7 +40,7 @@ length = 0.001
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("bodyLookingRight/wingR:rotation") tracks/0/path = NodePath("SubViewport/bodyLookingRight/wingR:rotation")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
@@ -51,7 +52,7 @@ tracks/0/keys = {
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath("bodyLookingRight/wingL:rotation") tracks/1/path = NodePath("SubViewport/bodyLookingRight/wingL:rotation")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
@@ -63,7 +64,7 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("bodyLookingRight/head:rotation") tracks/2/path = NodePath("SubViewport/bodyLookingRight/head:rotation")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
@@ -75,7 +76,7 @@ tracks/2/keys = {
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/path = NodePath("bodyLookingRight/head/beak upper:rotation") tracks/3/path = NodePath("SubViewport/bodyLookingRight/head/beak upper:rotation")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
@@ -87,7 +88,7 @@ tracks/3/keys = {
tracks/4/type = "value" tracks/4/type = "value"
tracks/4/imported = false tracks/4/imported = false
tracks/4/enabled = true tracks/4/enabled = true
tracks/4/path = NodePath("bodyLookingRight/head/beak lower:rotation") tracks/4/path = NodePath("SubViewport/bodyLookingRight/head/beak lower:rotation")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
@@ -135,6 +136,9 @@ _data = {
resource_local_to_scene = true resource_local_to_scene = true
radius = 443.041 radius = 443.041
[sub_resource type="ViewportTexture" id="ViewportTexture_4830j"]
viewport_path = NodePath("SubViewport")
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")] [node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
@@ -157,16 +161,28 @@ libraries = {
&"": SubResource("AnimationLibrary_54k4r") &"": SubResource("AnimationLibrary_54k4r")
} }
[node name="bodyLookingRight" type="Node2D" parent="."] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("15_uo3dh")]
z_index = 1 position = Vector2(18, -250)
y_sort_enabled = true _outlineMaterial = ExtResource("16_nxoeu")
position = Vector2(-5, -537) _spriteToOutline = NodePath("../Duck rendered")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_uo3dh")
[node name="Duck rendered" type="Sprite2D" parent="."]
position = Vector2(0, -250)
texture = SubResource("ViewportTexture_4830j")
[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(400, 600)
[node name="bodyLookingRight" type="Node2D" parent="SubViewport"]
position = Vector2(200, 550)
rotation = 0.0135349 rotation = 0.0135349
[node name="head" type="Sprite2D" parent="bodyLookingRight"] [node name="head" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
z_index = 1 position = Vector2(45.706, -451.714)
y_sort_enabled = true
position = Vector2(46.9624, 76.1606)
rotation = 0.284615 rotation = 0.284615
scale = Vector2(1, 0.997) scale = Vector2(1, 0.997)
skew = 0.024546 skew = 0.024546
@@ -175,9 +191,8 @@ offset = Vector2(25.2328, -23.0689)
region_enabled = true region_enabled = true
region_rect = Rect2(45, 24, 87, 82) region_rect = Rect2(45, 24, 87, 82)
[node name="beak upper" type="Sprite2D" parent="bodyLookingRight/head"] [node name="beak upper" type="Sprite2D" parent="SubViewport/bodyLookingRight/head"]
z_index = 1 z_index = 1
y_sort_enabled = true
position = Vector2(50.669, -7.16257) position = Vector2(50.669, -7.16257)
rotation = -0.0427724 rotation = -0.0427724
scale = Vector2(0.62715, 0.62715) scale = Vector2(0.62715, 0.62715)
@@ -186,9 +201,7 @@ offset = Vector2(57.1263, -7.47815)
region_enabled = true region_enabled = true
region_rect = Rect2(292, 37, 152, 98) region_rect = Rect2(292, 37, 152, 98)
[node name="beak lower" type="Sprite2D" parent="bodyLookingRight/head"] [node name="beak lower" type="Sprite2D" parent="SubViewport/bodyLookingRight/head"]
z_index = 1
y_sort_enabled = true
position = Vector2(47.9076, -15.7341) position = Vector2(47.9076, -15.7341)
rotation = 0.0364142 rotation = 0.0364142
scale = Vector2(0.58615, 0.58615) scale = Vector2(0.58615, 0.58615)
@@ -197,30 +210,24 @@ offset = Vector2(60.4601, 37.8134)
region_enabled = true region_enabled = true
region_rect = Rect2(295, 170, 145, 39) region_rect = Rect2(295, 170, 145, 39)
[node name="torso" type="Sprite2D" parent="bodyLookingRight"] [node name="torso" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
z_index = 1 position = Vector2(4.65357, -172.523)
y_sort_enabled = true
position = Vector2(5.90997, 355.352)
scale = Vector2(1.07526, 1.01724) scale = Vector2(1.07526, 1.01724)
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(2.87376, -131.092) offset = Vector2(2.87376, -131.092)
region_enabled = true region_enabled = true
region_rect = Rect2(30, 168, 125, 326) region_rect = Rect2(30, 168, 125, 326)
[node name="wingR" type="Sprite2D" parent="bodyLookingRight"] [node name="wingR" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
z_index = 1 position = Vector2(-29.2564, -265.875)
y_sort_enabled = true
position = Vector2(-28, 262)
rotation = -0.371117 rotation = -0.371117
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(-50, 50) offset = Vector2(-50, 50)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="wingL" type="Sprite2D" parent="bodyLookingRight"] [node name="wingL" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
z_index = 1 position = Vector2(45.8131, -281.97)
y_sort_enabled = true
position = Vector2(47.0695, 245.905)
rotation = -0.0925884 rotation = -0.0925884
skew = -0.0345086 skew = -0.0345086
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
@@ -228,10 +235,8 @@ offset = Vector2(-59.5924, 55.37)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="underbelly" type="Sprite2D" parent="bodyLookingRight"] [node name="underbelly" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
z_index = 1 position = Vector2(-12.6602, -88.6718)
y_sort_enabled = true
position = Vector2(-11.4038, 439.203)
rotation = -2.98225 rotation = -2.98225
scale = Vector2(0.672245, 0.955267) scale = Vector2(0.672245, 0.955267)
skew = 0.0185422 skew = 0.0185422
@@ -240,8 +245,8 @@ offset = Vector2(26.4135, 70.6083)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="leg left" type="Sprite2D" parent="bodyLookingRight"] [node name="leg left" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
position = Vector2(36.2887, 300.645) position = Vector2(35.0323, -227.23)
rotation = 2.42655 rotation = 2.42655
scale = Vector2(1.05221, 1.04106) scale = Vector2(1.05221, 1.04106)
skew = -0.0544101 skew = -0.0544101
@@ -249,7 +254,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 177, 161) region_rect = Rect2(196, 231, 177, 161)
[node name="left thigh" type="Sprite2D" parent="bodyLookingRight/leg left"] [node name="left thigh" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(73.353, -69.771) position = Vector2(73.353, -69.771)
@@ -259,7 +264,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(368, 263, 81, 89) region_rect = Rect2(368, 263, 81, 89)
[node name="left shin" type="Sprite2D" parent="bodyLookingRight/leg left/left thigh"] [node name="left shin" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left/left thigh"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-5.71882, 19.9984) position = Vector2(-5.71882, 19.9984)
@@ -271,7 +276,7 @@ offset = Vector2(10, -50)
region_enabled = true region_enabled = true
region_rect = Rect2(360, 361, 68, 126) region_rect = Rect2(360, 361, 68, 126)
[node name="left foot" type="Sprite2D" parent="bodyLookingRight/leg left/left thigh/left shin"] [node name="left foot" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left/left thigh/left shin"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(15.1289, -77.6075) position = Vector2(15.1289, -77.6075)
@@ -282,19 +287,15 @@ offset = Vector2(40, 40)
region_enabled = true region_enabled = true
region_rect = Rect2(246, 393, 111, 111) region_rect = Rect2(246, 393, 111, 111)
[node name="right leg" type="Sprite2D" parent="bodyLookingRight"] [node name="right leg" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
z_index = 1 position = Vector2(-25.2564, -163.875)
y_sort_enabled = true
position = Vector2(-24, 364)
rotation = -0.463741 rotation = -0.463741
scale = Vector2(1.07492, 1.01762) scale = Vector2(1.07492, 1.01762)
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 177, 161) region_rect = Rect2(196, 231, 177, 161)
[node name="right thigh" type="Sprite2D" parent="bodyLookingRight/right leg"] [node name="right thigh" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg"]
z_index = 1
y_sort_enabled = true
position = Vector2(-29.7603, 44.2374) position = Vector2(-29.7603, 44.2374)
rotation = 0.249342 rotation = 0.249342
scale = Vector2(0.625107, 0.655894) scale = Vector2(0.625107, 0.655894)
@@ -303,9 +304,7 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(368, 263, 81, 89) region_rect = Rect2(368, 263, 81, 89)
[node name="right shin" type="Sprite2D" parent="bodyLookingRight/right leg/right thigh"] [node name="right shin" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg/right thigh"]
z_index = 1
y_sort_enabled = true
position = Vector2(-2.78734, 11.5692) position = Vector2(-2.78734, 11.5692)
rotation = 0.0689206 rotation = 0.0689206
scale = Vector2(1.12016, 1.07128) scale = Vector2(1.12016, 1.07128)
@@ -315,9 +314,7 @@ offset = Vector2(-14.163, 37.0936)
region_enabled = true region_enabled = true
region_rect = Rect2(360, 361, 68, 126) region_rect = Rect2(360, 361, 68, 126)
[node name="right foot" type="Sprite2D" parent="bodyLookingRight/right leg/right thigh/right shin"] [node name="right foot" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg/right thigh/right shin"]
z_index = 1
y_sort_enabled = true
position = Vector2(-20.0986, 67.7507) position = Vector2(-20.0986, 67.7507)
rotation = 0.14855 rotation = 0.14855
scale = Vector2(1.212, 1.212) scale = Vector2(1.212, 1.212)
@@ -326,17 +323,6 @@ offset = Vector2(40, 40)
region_enabled = true region_enabled = true
region_rect = Rect2(246, 393, 111, 111) region_rect = Rect2(246, 393, 111, 111)
[node name="InteractionArea" parent="." instance=ExtResource("15_uo3dh")]
position = Vector2(-3, -274)
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_uo3dh")
[node name="Label" parent="InteractionArea" index="1"]
modulate = Color(0, 0, 0, 1)
z_index = 1
y_sort_enabled = true
[connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"] [connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"]
[connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"] [connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"]
+54
View File
@@ -0,0 +1,54 @@
[gd_scene load_steps=10 format=3 uid="uid://b1d2e7ely6hyw"]
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_vl3uw"]
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_uqkef"]
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_di17a"]
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_4a8nv"]
[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="6_l7j4c"]
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_f504p"]
[ext_resource type="PackedScene" uid="uid://gishbn0a8eke" path="res://prefabs/farm/tomato_plant.tscn" id="8_jrdc4"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jrdc4"]
resource_local_to_scene = true
radius = 300.0
[sub_resource type="CircleShape2D" id="CircleShape2D_l0vvv"]
resource_local_to_scene = true
radius = 300.0
[node name="BaseField" type="Node2D"]
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
z_index = -1
scale = Vector2(0.9, 1)
script = ExtResource("2_vl3uw")
_fieldSprite = NodePath("MaskedField/FieldTexture")
_maskSprite = NodePath("MaskedField")
_maskTexture = Array[Texture2D]([ExtResource("3_uqkef"), ExtResource("4_di17a"), ExtResource("5_4a8nv")])
Tilled = ExtResource("6_l7j4c")
Watered = ExtResource("7_f504p")
_growingCollider = NodePath("BasePlant2/GrowingInteractionArea")
[node name="BasePlant2" parent="FieldBehaviour" node_paths=PackedStringArray("_field") groups=["PlantGrowing"] instance=ExtResource("8_jrdc4")]
visible = false
_field = NodePath("..")
_magicWordNeeded = false
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant2/GrowingInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_jrdc4")
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_l0vvv")
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
clip_children = 1
scale = Vector2(1.5, 1.5)
texture = ExtResource("4_di17a")
[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"]
texture = ExtResource("6_l7j4c")
[editable path="FieldBehaviour/BasePlant2"]
[editable path="FieldBehaviour/BasePlant2/GrowingInteractionArea"]
[editable path="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem"]
[editable path="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem/PickupInteractionArea"]
@@ -1,16 +1,17 @@
[gd_scene load_steps=11 format=3 uid="uid://c3hwbwo423nbm"] [gd_scene load_steps=13 format=3 uid="uid://gishbn0a8eke"]
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_tikj4"] [ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_66p1c"]
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="2_goh03"] [ext_resource type="Texture2D" uid="uid://dtr4uga5uspg" path="res://art/farm/farming/farmobjekte/tomaten/tomaten baby.png" id="2_vjw4j"]
[ext_resource type="Texture2D" uid="uid://dtr4uga5uspg" path="res://art/farm/farming/farmobjekte/tomaten/tomaten baby.png" id="2_rmjrk"] [ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="3_7hdur"]
[ext_resource type="Texture2D" uid="uid://b2gu6ur2xc7s4" path="res://art/farm/farming/farmobjekte/tomaten/tomaten blume.png" id="3_goh03"] [ext_resource type="Texture2D" uid="uid://b2gu6ur2xc7s4" path="res://art/farm/farming/farmobjekte/tomaten/tomaten blume.png" id="4_hmj2d"]
[ext_resource type="Texture2D" uid="uid://cnwd3mb3jnuxm" path="res://art/farm/farming/farmobjekte/tomaten/teen adulte tomaten.png" id="4_u4cty"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="5_3j24b"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="5_tikj4"] [ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="6_gdrin"]
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="6_u4cty"] [ext_resource type="Resource" uid="uid://blr8tine5m0ma" path="res://resources/items/tomato.tres" id="7_di4m0"]
[ext_resource type="Resource" uid="uid://blr8tine5m0ma" path="res://resources/items/tomato.tres" id="7_yntkb"] [ext_resource type="Texture2D" uid="uid://cnwd3mb3jnuxm" path="res://art/farm/farming/farmobjekte/tomaten/teen adulte tomaten.png" id="8_evgr8"]
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="9_vjw4j"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u4cty"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_u4cty"]
shader = ExtResource("2_goh03") shader = ExtResource("3_7hdur")
shader_parameter/speed = 3.0 shader_parameter/speed = 3.0
shader_parameter/minStrength = 0.05 shader_parameter/minStrength = 0.05
shader_parameter/maxStrength = 0.36 shader_parameter/maxStrength = 0.36
@@ -21,19 +22,24 @@ shader_parameter/distortion = 0.0
shader_parameter/heightOffset = 0.635 shader_parameter/heightOffset = 0.635
shader_parameter/offset = 0.0 shader_parameter/offset = 0.0
[sub_resource type="CircleShape2D" id="CircleShape2D_2tt5u"] [sub_resource type="CircleShape2D" id="CircleShape2D_vjw4j"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
[node name="BasePlant" type="Node2D" node_paths=PackedStringArray("_seeds", "_smallPlants", "_bigPlants", "_readyPlants", "_harvestablePlant")] [sub_resource type="CircleShape2D" id="CircleShape2D_7hdur"]
resource_local_to_scene = true
radius = 300.0
[node name="BasePlant" type="Node2D" node_paths=PackedStringArray("_seeds", "_smallPlants", "_bigPlants", "_readyPlants", "_harvestablePlant", "_magicEffect")]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_tikj4") script = ExtResource("1_66p1c")
_seeds = [NodePath("Seeds/TomatoSeed"), NodePath("Seeds/TomatoSeed2"), NodePath("Seeds/TomatoSeed3")] _seeds = [NodePath("Seeds/TomatoSeed"), NodePath("Seeds/TomatoSeed2"), NodePath("Seeds/TomatoSeed3")]
_smallPlants = [NodePath("SmallPlant/01"), NodePath("SmallPlant/02"), NodePath("SmallPlant/03"), NodePath("SmallPlant/04")] _smallPlants = [NodePath("SmallPlant/01"), NodePath("SmallPlant/02"), NodePath("SmallPlant/03"), NodePath("SmallPlant/04")]
_bigPlants = [NodePath("BigPlant/01"), NodePath("BigPlant/02"), NodePath("BigPlant/03"), NodePath("BigPlant/04")] _bigPlants = [NodePath("BigPlant/01"), NodePath("BigPlant/02"), NodePath("BigPlant/03"), NodePath("BigPlant/04")]
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03"), NodePath("ReadyPlantInventoryItem/ReadyPlant/04")] _readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03"), NodePath("ReadyPlantInventoryItem/ReadyPlant/04")]
_harvestablePlant = NodePath("ReadyPlantInventoryItem") _harvestablePlant = NodePath("ReadyPlantInventoryItem")
_magicEffect = NodePath("magic vfx")
[node name="Seeds" type="Node2D" parent="."] [node name="Seeds" type="Node2D" parent="."]
position = Vector2(0, 0.5) position = Vector2(0, 0.5)
@@ -41,7 +47,7 @@ position = Vector2(0, 0.5)
[node name="TomatoSeed" type="Sprite2D" parent="Seeds"] [node name="TomatoSeed" type="Sprite2D" parent="Seeds"]
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
flip_v = true flip_v = true
region_enabled = true region_enabled = true
region_rect = Rect2(-2, 15, 85, 81) region_rect = Rect2(-2, 15, 85, 81)
@@ -49,7 +55,7 @@ region_rect = Rect2(-2, 15, 85, 81)
[node name="TomatoSeed2" type="Sprite2D" parent="Seeds"] [node name="TomatoSeed2" type="Sprite2D" parent="Seeds"]
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
flip_v = true flip_v = true
region_enabled = true region_enabled = true
region_rect = Rect2(15, 177, 84, 108) region_rect = Rect2(15, 177, 84, 108)
@@ -57,7 +63,7 @@ region_rect = Rect2(15, 177, 84, 108)
[node name="TomatoSeed3" type="Sprite2D" parent="Seeds"] [node name="TomatoSeed3" type="Sprite2D" parent="Seeds"]
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
flip_v = true flip_v = true
region_enabled = true region_enabled = true
region_rect = Rect2(3, 337, 85, 82) region_rect = Rect2(3, 337, 85, 82)
@@ -69,7 +75,7 @@ position = Vector2(0, 0.5)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
region_enabled = true region_enabled = true
region_rect = Rect2(203, 1, 128, 164) region_rect = Rect2(203, 1, 128, 164)
@@ -77,7 +83,7 @@ region_rect = Rect2(203, 1, 128, 164)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
region_enabled = true region_enabled = true
region_rect = Rect2(218, 204, 112, 130) region_rect = Rect2(218, 204, 112, 130)
@@ -85,7 +91,7 @@ region_rect = Rect2(218, 204, 112, 130)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
region_enabled = true region_enabled = true
region_rect = Rect2(224, 399, 105, 105) region_rect = Rect2(224, 399, 105, 105)
@@ -93,18 +99,18 @@ region_rect = Rect2(224, 399, 105, 105)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rmjrk") texture = ExtResource("2_vjw4j")
region_enabled = true region_enabled = true
region_rect = Rect2(228, 600, 85, 92) region_rect = Rect2(228, 600, 85, 92)
[node name="BigPlant" type="Node2D" parent="."] [node name="BigPlant" type="Node2D" parent="."]
position = Vector2(0, 2) position = Vector2(0, -300)
[node name="01" type="Sprite2D" parent="BigPlant"] [node name="01" type="Sprite2D" parent="BigPlant"]
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("3_goh03") texture = ExtResource("4_hmj2d")
region_enabled = true region_enabled = true
region_rect = Rect2(-8, 1, 498, 682) region_rect = Rect2(-8, 1, 498, 682)
@@ -112,7 +118,7 @@ region_rect = Rect2(-8, 1, 498, 682)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("3_goh03") texture = ExtResource("4_hmj2d")
region_enabled = true region_enabled = true
region_rect = Rect2(575, 82, 516, 591) region_rect = Rect2(575, 82, 516, 591)
@@ -120,7 +126,7 @@ region_rect = Rect2(575, 82, 516, 591)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("3_goh03") texture = ExtResource("4_hmj2d")
region_enabled = true region_enabled = true
region_rect = Rect2(-25, 694, 521, 687) region_rect = Rect2(-25, 694, 521, 687)
@@ -128,39 +134,50 @@ region_rect = Rect2(-25, 694, 521, 687)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("3_goh03") texture = ExtResource("4_hmj2d")
region_enabled = true region_enabled = true
region_rect = Rect2(546, 697, 535, 687) region_rect = Rect2(546, 697, 535, 687)
[node name="InteractionArea" parent="." instance=ExtResource("5_tikj4")] [node name="GrowingInteractionArea" parent="." instance=ExtResource("5_3j24b")]
position = Vector2(0, 2.3) position = Vector2(0, 2.3)
_useOutline = false
_useSprite = false
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_u4cty")] [node name="CollisionShape3D" parent="GrowingInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_vjw4j")
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")]
position = Vector2(0, 2.3) position = Vector2(0, 2.3)
IsActive = false IsActive = false
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"] [node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
_blueprint = ExtResource("7_yntkb") _blueprint = ExtResource("7_di4m0")
[node name="ItemLabel" parent="ReadyPlantInventoryItem" index="1"] [node name="ItemLabel" parent="ReadyPlantInventoryItem" index="1"]
visible = false visible = false
z_index = 100
text = "[E] harvest"
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"] [node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
visible = false visible = false
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"] [node name="PickupInteractionArea" parent="ReadyPlantInventoryItem" index="3"]
shape = SubResource("CircleShape2D_2tt5u") visible = false
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_7hdur")
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"] [node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
visible = false visible = false
[node name="ReadyPlant" type="Node2D" parent="ReadyPlantInventoryItem"] [node name="ReadyPlant" type="Node2D" parent="ReadyPlantInventoryItem"]
position = Vector2(0, -400)
[node name="01" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"] [node name="01" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("4_u4cty") texture = ExtResource("8_evgr8")
region_enabled = true region_enabled = true
region_rect = Rect2(399, 3, 679, 808) region_rect = Rect2(399, 3, 679, 808)
@@ -168,7 +185,7 @@ region_rect = Rect2(399, 3, 679, 808)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("4_u4cty") texture = ExtResource("8_evgr8")
region_enabled = true region_enabled = true
region_rect = Rect2(1077, 109, 633, 695) region_rect = Rect2(1077, 109, 633, 695)
@@ -176,7 +193,7 @@ region_rect = Rect2(1077, 109, 633, 695)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("4_u4cty") texture = ExtResource("8_evgr8")
region_enabled = true region_enabled = true
region_rect = Rect2(415, 838, 639, 817) region_rect = Rect2(415, 838, 639, 817)
@@ -184,11 +201,31 @@ region_rect = Rect2(415, 838, 639, 817)
visible = false visible = false
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty") material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("4_u4cty") texture = ExtResource("8_evgr8")
region_enabled = true region_enabled = true
region_rect = Rect2(1167, 863, 528, 785) region_rect = Rect2(1167, 863, 528, 785)
[connection signal="Interacted" from="InteractionArea" to="." method="Grow"] [node name="magic vfx" type="CPUParticles2D" parent="."]
position = Vector2(-133, -347)
rotation = -0.333807
emitting = false
amount = 20
texture = ExtResource("9_vjw4j")
lifetime = 0.5
randomness = 1.0
local_coords = true
draw_order = 1
emission_shape = 2
emission_sphere_radius = 128.0
linear_accel_min = 44.07
linear_accel_max = 78.81
scale_amount_min = 0.01
scale_amount_max = 0.1
color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4
[connection signal="Interacted" from="GrowingInteractionArea" to="." method="Grow"]
[editable path="GrowingInteractionArea"]
[editable path="ReadyPlantInventoryItem"] [editable path="ReadyPlantInventoryItem"]
[editable path="ReadyPlantInventoryItem/InteractionArea2"] [editable path="ReadyPlantInventoryItem/PickupInteractionArea"]
@@ -2,6 +2,7 @@
[ext_resource type="Script" uid="uid://btusf04xnywhm" path="res://scripts/CSharp/Common/Inventory/ItemOnGround2D.cs" id="1_tlhp6"] [ext_resource type="Script" uid="uid://btusf04xnywhm" path="res://scripts/CSharp/Common/Inventory/ItemOnGround2D.cs" id="1_tlhp6"]
[ext_resource type="Script" uid="uid://c8suoi3i6kqai" path="res://scripts/CSharp/Common/Inventory/ItemOnGroundSpawnWith.cs" id="3_xu8me"] [ext_resource type="Script" uid="uid://c8suoi3i6kqai" path="res://scripts/CSharp/Common/Inventory/ItemOnGroundSpawnWith.cs" id="3_xu8me"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="4_harr4"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_xu8me"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_xu8me"]
[ext_resource type="Texture2D" uid="uid://cfxibry711o16" path="res://art/ui/UI/icons/icon-scythe.png" id="5_harr4"] [ext_resource type="Texture2D" uid="uid://cfxibry711o16" path="res://art/ui/UI/icons/icon-scythe.png" id="5_harr4"]
@@ -15,9 +16,6 @@ default_font_size = 40
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
[sub_resource type="Theme" id="Theme_xu8me"]
default_font_size = 75
[node name="GenericItemOnGround" type="Node2D"] [node name="GenericItemOnGround" type="Node2D"]
script = ExtResource("1_tlhp6") script = ExtResource("1_tlhp6")
@@ -43,25 +41,18 @@ theme = SubResource("Theme_harr4")
text = "thewe waf a pwoblem wiph picking up te item UWU" text = "thewe waf a pwoblem wiph picking up te item UWU"
autowrap_mode = 3 autowrap_mode = 3
[node name="InteractionArea2" parent="." instance=ExtResource("4_xu8me")] [node name="PickupInteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("4_xu8me")]
_outlineMaterial = ExtResource("4_harr4")
_spriteToOutline = NodePath("../Icon")
[node name="CollisionShape3D" parent="InteractionArea2/Area2D" index="0"] [node name="CollisionShape3D" parent="PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_tlhp6") shape = SubResource("CircleShape2D_tlhp6")
[node name="Label" parent="InteractionArea2" index="1"]
z_index = 5
offset_left = -68.0
offset_top = -111.0
offset_right = 75.0
offset_bottom = -3.0
theme = SubResource("Theme_xu8me")
vertical_alignment = 1
[node name="Icon" type="Sprite2D" parent="."] [node name="Icon" type="Sprite2D" parent="."]
position = Vector2(5, -300) position = Vector2(5, -300)
scale = Vector2(0.868852, 0.868852) scale = Vector2(0.868852, 0.868852)
texture = ExtResource("5_harr4") texture = ExtResource("5_harr4")
[connection signal="Interacted" from="InteractionArea2" to="." method="TryPickUp"] [connection signal="Interacted" from="PickupInteractionArea" to="." method="TryPickUp"]
[editable path="InteractionArea2"] [editable path="PickupInteractionArea"]
+28 -9
View File
@@ -1,18 +1,20 @@
[gd_scene load_steps=4 format=3 uid="uid://cqc72e4hq6bcd"] [gd_scene load_steps=5 format=3 uid="uid://cqc72e4hq6bcd"]
[ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"] [ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="2_qoey7"]
[sub_resource type="CircleShape2D" id="CircleShape2D_npluf"] [sub_resource type="CircleShape2D" id="CircleShape2D_npluf"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
[sub_resource type="Theme" id="Theme_5ajrf"] [sub_resource type="Theme" id="Theme_5ajrf"]
default_font_size = 75 default_font_size = 30
[node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")] [node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")]
script = ExtResource("1_5ajrf") script = ExtResource("1_5ajrf")
_area = NodePath("Area2D") _area = NodePath("Area2D")
_label = NodePath("Label") _label = NodePath("Area2D/CanvasLayer/MarginContainer/Label")
_outlineMaterial = ExtResource("2_qoey7")
[node name="Area2D" type="Area2D" parent="."] [node name="Area2D" type="Area2D" parent="."]
collision_mask = 4 collision_mask = 4
@@ -20,15 +22,32 @@ collision_mask = 4
[node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"] [node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_npluf") shape = SubResource("CircleShape2D_npluf")
[node name="Label" type="Label" parent="."] [node name="CanvasLayer" type="CanvasLayer" parent="Area2D"]
[node name="MarginContainer" type="MarginContainer" parent="Area2D/CanvasLayer"]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -88.0
offset_top = -100.0
offset_right = 3.0
offset_bottom = 3.0
grow_horizontal = 0
grow_vertical = 0
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 20
[node name="Label" type="Label" parent="Area2D/CanvasLayer/MarginContainer"]
visible = false visible = false
offset_left = -46.0 layout_mode = 2
offset_top = -55.0 size_flags_horizontal = 8
offset_right = 45.0 size_flags_vertical = 8
offset_bottom = 48.0
theme = SubResource("Theme_5ajrf") theme = SubResource("Theme_5ajrf")
text = "[E]" text = "[E]"
horizontal_alignment = 1 horizontal_alignment = 2
vertical_alignment = 2
[connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"] [connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"]
[connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"] [connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"]
+29 -29
View File
@@ -24,47 +24,48 @@ buses/default_bus_layout="uid://b6dwkmkyb0axk"
[autoload] [autoload]
SceneTransition="*res://scenes/SceneTransition.tscn"
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd" Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs" InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
QuestManager="*res://scripts/CSharp/Common/Quest/QuestManager.cs" QuestManager="*res://scripts/CSharp/Common/Quest/QuestManager.cs"
FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn" FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn"
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
SceneTransition="*res://scenes/SceneTransition.tscn"
[dialogic] [dialogic]
directories/dch_directory={ directories/dch_directory={
"Chuga": "res://dialog/Chuga.dch", "Chuga": "res://dialog/Characters/Chuga.dch",
"Domovoi": "res://dialog/Domovoi.dch", "Domovoi": "res://dialog/Characters/Domovoi.dch",
"Everyone": "res://dialog/Everyone.dch", "Everyone": "res://dialog/Characters/Everyone.dch",
"Vesna2": "res://dialog/Vesna2.dch", "Yeli": "res://dialog/Characters/Yeli.dch",
"Yeli": "res://dialog/Yeli.dch", "defaulty_the_default_character": "res://dialog/Characters/defaulty_the_default_character.dch",
"defaulty_the_default_character": "res://dialog/defaulty_the_default_character.dch", "semi_cat": "res://dialog/Characters/semi_cat.dch",
"semi_cat": "res://dialog/semi_cat.dch", "vesna": "res://dialog/Characters/vesna.dch"
"vesna": "res://dialog/vesna.dch"
} }
directories/dtl_directory={ directories/dtl_directory={
"disclaimer": "res://dialog/disclaimer.dtl", "disclaimer": "res://dialog/disclaimer.dtl",
"quest1_ducks_end": "res://dialog/quest1_ducks_end.dtl", "quest1_ducks_end": "res://dialog/quests/ducks/quest1_ducks_end.dtl",
"quest1_ducks_start": "res://dialog/quest1_ducks_start.dtl", "quest1_ducks_start": "res://dialog/quests/ducks/quest1_ducks_start.dtl",
"quest2_tomatoes_end": "res://dialog/quest2_tomatoes_end.dtl", "quest2_tomatoes_end": "res://dialog/quests/tomatoes/quest2_tomatoes_end.dtl",
"quest2_tomatoes_interim": "res://dialog/quest2_tomatoes_interim.dtl", "quest2_tomatoes_interim": "res://dialog/quests/tomatoes/quest2_tomatoes_interim.dtl",
"quest2_tomatoes_start": "res://dialog/quest2_tomatoes_start.dtl", "quest2_tomatoes_start": "res://dialog/quests/tomatoes/quest2_tomatoes_start.dtl",
"quest3_beets_end": "res://dialog/quest3_beets_end.dtl", "quest3_beets_end": "res://dialog/quests/beetroot/quest3_beets_end.dtl",
"quest3_beets_interim": "res://dialog/quest3_beets_interim.dtl", "quest3_beets_interim": "res://dialog/quests/beetroot/quest3_beets_interim.dtl",
"quest3_beets_start": "res://dialog/quest3_beets_start.dtl", "quest3_beets_start": "res://dialog/quests/beetroot/quest3_beets_start.dtl",
"quest4_dinner": "res://dialog/quest4_dinner.dtl", "quest4_dinner": "res://dialog/Scene2_farm_inside/quest4_dinner.dtl",
"quest5_forest_end": "res://dialog/quest5_forest_end.dtl", "quest5_forest_end": "res://dialog/quests/forest/quest5_forest_end.dtl",
"quest5_forest_start": "res://dialog/quest5_forest_start.dtl", "quest5_forest_start": "res://dialog/quests/forest/quest5_forest_start.dtl",
"semi_cat": "res://dialog/semi_cat.dtl", "semi_cat": "res://dialog/semi_cat.dtl",
"talk_to_plant": "res://dialog/talk_to_plant.dtl",
"test_time_line": "res://dialog/test_time_line.dtl", "test_time_line": "res://dialog/test_time_line.dtl",
"yeli_intro_01": "res://dialog/yeli_intro_01.dtl", "yeli_intro_01": "res://dialog/Scene1_farm_outside/yeli_intro_01.dtl",
"yeli_intro_02": "res://dialog/yeli_intro_02.dtl", "yeli_intro_02": "res://dialog/Scene1_farm_outside/yeli_intro_02.dtl",
"yeli_intro_03": "res://dialog/yeli_intro_03.dtl", "yeli_intro_03": "res://dialog/Scene1_farm_outside/yeli_intro_03.dtl",
"yeli_intro_04": "res://dialog/yeli_intro_04.dtl", "yeli_intro_04": "res://dialog/Scene1_farm_outside/yeli_intro_04.dtl",
"yeli_intro_05": "res://dialog/yeli_intro_05.dtl" "yeli_intro_05": "res://dialog/Scene1_farm_outside/yeli_intro_05.dtl"
} }
variables={ variables={
"MAGICWORD": "Hokus Pokus!s",
"PLAYERMOOD": "Good", "PLAYERMOOD": "Good",
"SHOW": "IGF" "SHOW": "IGF"
} }
@@ -106,9 +107,8 @@ glossary/glossary_files=["res://dialog/farming_equipment_glossary.tres"]
[display] [display]
window/size/viewport_width=2000 window/size/viewport_width=1980
window/size/viewport_height=1000 window/size/viewport_height=1020
window/size/always_on_top=true
window/stretch/mode="viewport" window/stretch/mode="viewport"
window/stretch/aspect="keep_height" window/stretch/aspect="keep_height"
+12
View File
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="ItemResource" load_steps=3 format=3 uid="uid://0mnsr4anoaiq"]
[ext_resource type="Texture2D" uid="uid://b5ade1s2ijunu" path="res://art/farm/farming/farmobjekte/beetroot/beetroot_icon.png" id="1_wddc8"]
[ext_resource type="Script" uid="uid://cbskymrxs6ksu" path="res://scripts/CSharp/Common/Inventory/ItemResource.cs" id="2_5t85d"]
[resource]
script = ExtResource("2_5t85d")
name = "Tomato"
color = Color(0.451671, 0.0462732, 0.396459, 1)
icon = ExtResource("1_wddc8")
maxStack = 20
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
+1 -1
View File
@@ -5,6 +5,6 @@
[node name="BabushkaSceneBootstrap" type="Node2D"] [node name="BabushkaSceneBootstrap" type="Node2D"]
[node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")] [node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_disclaimer.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn")
[node name="SceneParent" type="Node" parent="."] [node name="SceneParent" type="Node" parent="."]
+17 -1
View File
@@ -1,5 +1,6 @@
[gd_scene load_steps=8 format=3 uid="uid://c52tlxxc480dv"] [gd_scene load_steps=9 format=3 uid="uid://cmpw8lhwnwuo6"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_f5860"]
[ext_resource type="Texture2D" uid="uid://c7atj6ohlmir3" path="res://art/ui/StartScreen/titlescreen.png" id="1_kesja"] [ext_resource type="Texture2D" uid="uid://c7atj6ohlmir3" path="res://art/ui/StartScreen/titlescreen.png" id="1_kesja"]
[ext_resource type="Texture2D" uid="uid://du612t3xytly3" path="res://art/ui/StartScreen/babushkalog_white.png" id="2_f5860"] [ext_resource type="Texture2D" uid="uid://du612t3xytly3" path="res://art/ui/StartScreen/babushkalog_white.png" id="2_f5860"]
[ext_resource type="Texture2D" uid="uid://cfrhmcyhs2i53" path="res://art/ui/UI/WhiteWashBackground.png" id="3_dvwtm"] [ext_resource type="Texture2D" uid="uid://cfrhmcyhs2i53" path="res://art/ui/UI/WhiteWashBackground.png" id="3_dvwtm"]
@@ -9,6 +10,8 @@
[ext_resource type="Texture2D" uid="uid://cwbv2i8ntq15d" path="res://art/logos/FS_Logo_2zeilig_rot.png" id="7_03xwf"] [ext_resource type="Texture2D" uid="uid://cwbv2i8ntq15d" path="res://art/logos/FS_Logo_2zeilig_rot.png" id="7_03xwf"]
[node name="BabushkaSceneCredits" type="Node2D"] [node name="BabushkaSceneCredits" type="Node2D"]
script = ExtResource("1_f5860")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_startMenu.tscn")
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(1030, 483) position = Vector2(1030, 483)
@@ -427,3 +430,16 @@ texture = ExtResource("6_l0rmr")
position = Vector2(1751, 917) position = Vector2(1751, 917)
scale = Vector2(0.496692, 0.496693) scale = Vector2(0.496692, 0.496693)
texture = ExtResource("7_03xwf") texture = ExtResource("7_03xwf")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="Button" type="Button" parent="CanvasLayer"]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -75.0
offset_bottom = 71.0
grow_horizontal = 0
alignment = 2
[connection signal="pressed" from="CanvasLayer/Button" to="." method="LoadScene"]
+150 -30
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=98 format=3 uid="uid://gigb28qk8t12"] [gd_scene load_steps=107 format=3 uid="uid://gigb28qk8t12"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="1_7wfwe"] [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"] [ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"]
@@ -37,6 +37,7 @@
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="28_ipqaa"] [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="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="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="32_2nee2"]
[ext_resource type="Script" uid="uid://boehox1ydbcnx" path="res://scripts/CSharp/Common/Farming/WellBehaviour.cs" id="32_lbnqo"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="34_e5b7x"] [ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="34_e5b7x"]
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"] [ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
[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://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
@@ -44,6 +45,7 @@
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"] [ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
[ext_resource type="Texture2D" uid="uid://bq2wojyy4ptva" path="res://art/nature/baum märz 2025/sonnenblume7.png" id="38_2rjny"] [ext_resource type="Texture2D" uid="uid://bq2wojyy4ptva" path="res://art/nature/baum märz 2025/sonnenblume7.png" id="38_2rjny"]
[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://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="39_di1ed"]
[ext_resource type="Texture2D" uid="uid://ccy6bwunhfvrf" path="res://art/farm/Babushka_house_frontDoor.png" id="39_lbnqo"]
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="40_ceriq"] [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"] [ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="40_w3jkj"]
[ext_resource type="Texture2D" uid="uid://dgavbfci8x178" path="res://art/nature/grass/grass-1.png" id="41_apj51"] [ext_resource type="Texture2D" uid="uid://dgavbfci8x178" path="res://art/nature/grass/grass-1.png" id="41_apj51"]
@@ -60,6 +62,10 @@
[ext_resource type="Texture2D" uid="uid://lvhbicmwqab5" path="res://art/farm/tilable grounds/böden/fruchtbarer wilder trockender boden.png" id="47_loeum"] [ext_resource type="Texture2D" uid="uid://lvhbicmwqab5" path="res://art/farm/tilable grounds/böden/fruchtbarer wilder trockender boden.png" id="47_loeum"]
[ext_resource type="AudioStream" uid="uid://c43a6x43jkikl" path="res://audio/sfx/Farming/SFX_GettingWater_Well_01_Reverb.wav" id="49_d77e7"] [ext_resource type="AudioStream" uid="uid://c43a6x43jkikl" path="res://audio/sfx/Farming/SFX_GettingWater_Well_01_Reverb.wav" id="49_d77e7"]
[ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="49_i36hd"] [ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="49_i36hd"]
[ext_resource type="Script" uid="uid://l6iq8rpym5io" path="res://scripts/CSharp/Common/Util/Counter.cs" id="49_uxa2m"]
[ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="51_uxa2m"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="52_lwk6t"]
[ext_resource type="PackedScene" uid="uid://sbf12hin4kes" path="res://prefabs/Interactables/trash_object.tscn" id="53_ycj14"]
[ext_resource type="PackedScene" uid="uid://muuxxgvx33fp" path="res://prefabs/farm/duck.tscn" id="62_i36hd"] [ext_resource type="PackedScene" uid="uid://muuxxgvx33fp" path="res://prefabs/farm/duck.tscn" id="62_i36hd"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
@@ -149,11 +155,23 @@ size = Vector2(1041, 368)
resource_local_to_scene = true resource_local_to_scene = true
radius = 371.058 radius = 371.058
[sub_resource type="CircleShape2D" id="CircleShape2D_2nee2"] [sub_resource type="CircleShape2D" id="CircleShape2D_ycj14"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
[sub_resource type="CircleShape2D" id="CircleShape2D_ipqaa"] [sub_resource type="CircleShape2D" id="CircleShape2D_2065p"]
resource_local_to_scene = true
radius = 300.0
[sub_resource type="CircleShape2D" id="CircleShape2D_tm0yg"]
resource_local_to_scene = true
radius = 300.0
[sub_resource type="CircleShape2D" id="CircleShape2D_lbnqo"]
resource_local_to_scene = true
radius = 300.0
[sub_resource type="CircleShape2D" id="CircleShape2D_l4wxt"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
@@ -1003,11 +1021,11 @@ y_sort_enabled = true
[node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")] [node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")]
position = Vector2(6403, 3362) position = Vector2(6403, 3362)
_timelinesToPlay = PackedStringArray("quest1_ducks_start", "quest1_ducks_end", "quest2_tomatoes_start", "quest2_tomatoes_interim", "quest2_tomatoes_end") _timelinesToPlay = PackedStringArray("quest1_ducks_start", "quest2_tomatoes_start", "quest2_tomatoes_interim", "quest2_tomatoes_end")
[node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")] [node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")]
z_index = 1 z_index = 1
position = Vector2(-2031, 2949) position = Vector2(9322, 2018)
_fieldParent = NodePath("../Farm visuals/FieldParent") _fieldParent = NodePath("../Farm visuals/FieldParent")
_hoe = ExtResource("28_6b2nr") _hoe = ExtResource("28_6b2nr")
_wateringCan = ExtResource("28_ipqaa") _wateringCan = ExtResource("28_ipqaa")
@@ -1015,7 +1033,7 @@ _wateringCan = ExtResource("28_ipqaa")
[node name="FarmingControls" parent="YSorted/Vesna" index="1" node_paths=PackedStringArray("_camera")] [node name="FarmingControls" parent="YSorted/Vesna" index="1" node_paths=PackedStringArray("_camera")]
_camera = NodePath("../../../Camera2D") _camera = NodePath("../../../Camera2D")
[node name="Brünnen" type="Sprite2D" parent="YSorted"] [node name="Brünnen" type="Sprite2D" parent="YSorted" node_paths=PackedStringArray("_interactionArea")]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_2vojv") material = SubResource("ShaderMaterial_2vojv")
@@ -1024,6 +1042,8 @@ texture = ExtResource("21_ualyd")
offset = Vector2(0, -800) offset = Vector2(0, -800)
region_enabled = true region_enabled = true
region_rect = Rect2(0, 0, 1504, 1686) region_rect = Rect2(0, 0, 1504, 1686)
script = ExtResource("32_lbnqo")
_interactionArea = NodePath("InteractionArea")
[node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Brünnen"] [node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Brünnen"]
collision_mask = 4 collision_mask = 4
@@ -1032,7 +1052,9 @@ collision_mask = 4
position = Vector2(145.5, -224) position = Vector2(145.5, -224)
shape = SubResource("RectangleShape2D_0sfl7") shape = SubResource("RectangleShape2D_0sfl7")
[node name="InteractionArea" parent="YSorted/Brünnen" instance=ExtResource("27_klb81")] [node name="InteractionArea" parent="YSorted/Brünnen" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("27_klb81")]
_active = false
_spriteToOutline = NodePath("..")
_id = 1 _id = 1
[node name="CollisionShape3D" parent="YSorted/Brünnen/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Brünnen/InteractionArea/Area2D" index="0"]
@@ -1046,8 +1068,8 @@ position = Vector2(6095, 2087)
[node name="SpawnWithItem" parent="YSorted/HoeGenericPickup" index="0"] [node name="SpawnWithItem" parent="YSorted/HoeGenericPickup" index="0"]
_blueprint = ExtResource("26_ipqaa") _blueprint = ExtResource("26_ipqaa")
[node name="CollisionShape3D" parent="YSorted/HoeGenericPickup/InteractionArea2/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/HoeGenericPickup/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_2nee2") shape = SubResource("CircleShape2D_ycj14")
[node name="CanGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")] [node name="CanGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
position = Vector2(8192, 3507) position = Vector2(8192, 3507)
@@ -1055,11 +1077,8 @@ position = Vector2(8192, 3507)
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"] [node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
_blueprint = ExtResource("28_ipqaa") _blueprint = ExtResource("28_ipqaa")
[node name="InteractionArea2" parent="YSorted/CanGenericPickup" index="3"] [node name="CollisionShape3D" parent="YSorted/CanGenericPickup/PickupInteractionArea/Area2D" index="0"]
position = Vector2(0, -159) shape = SubResource("CircleShape2D_2065p")
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/InteractionArea2/Area2D" index="0"]
shape = SubResource("CircleShape2D_ipqaa")
[node name="RakeGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")] [node name="RakeGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
position = Vector2(8391, 2060) position = Vector2(8391, 2060)
@@ -1067,8 +1086,8 @@ position = Vector2(8391, 2060)
[node name="SpawnWithItem" parent="YSorted/RakeGenericPickup" index="0"] [node name="SpawnWithItem" parent="YSorted/RakeGenericPickup" index="0"]
_blueprint = ExtResource("28_6b2nr") _blueprint = ExtResource("28_6b2nr")
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/InteractionArea2/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_ipqaa") shape = SubResource("CircleShape2D_tm0yg")
[node name="ScytheGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")] [node name="ScytheGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
visible = false visible = false
@@ -1077,8 +1096,8 @@ position = Vector2(15642, 2158)
[node name="SpawnWithItem" parent="YSorted/ScytheGenericPickup" index="0"] [node name="SpawnWithItem" parent="YSorted/ScytheGenericPickup" index="0"]
_blueprint = ExtResource("29_wtdui") _blueprint = ExtResource("29_wtdui")
[node name="CollisionShape3D" parent="YSorted/ScytheGenericPickup/InteractionArea2/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/ScytheGenericPickup/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_ipqaa") shape = SubResource("CircleShape2D_lbnqo")
[node name="ShovelGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")] [node name="ShovelGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
visible = false visible = false
@@ -1087,8 +1106,8 @@ position = Vector2(5454, 2049)
[node name="SpawnWithItem" parent="YSorted/ShovelGenericPickup" index="0"] [node name="SpawnWithItem" parent="YSorted/ShovelGenericPickup" index="0"]
_blueprint = ExtResource("27_ipqaa") _blueprint = ExtResource("27_ipqaa")
[node name="CollisionShape3D" parent="YSorted/ShovelGenericPickup/InteractionArea2/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/ShovelGenericPickup/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_ipqaa") shape = SubResource("CircleShape2D_l4wxt")
[node name="Farm visuals" type="Node2D" parent="YSorted"] [node name="Farm visuals" type="Node2D" parent="YSorted"]
position = Vector2(-60, 122) position = Vector2(-60, 122)
@@ -1111,11 +1130,17 @@ collision_mask = 6
position = Vector2(-252.56, 231.32) position = Vector2(-252.56, 231.32)
polygon = PackedVector2Array(247.227, 43.5123, 44.7822, 43.5123, -87.2178, 45.123, -104.329, -55.2797, -154.107, -73.5347, -160.107, -380.38, -175.44, -400.783, -63.44, -512.461, 97.8934, -541.991, 261.671, -599.172, 374.782, -526.421, 502.338, -526.421, 637.893, -396.488, 598.56, -360.783, 596.338, -58.2327, 528.782, -58.2327, 501.449, 45.9283) polygon = PackedVector2Array(247.227, 43.5123, 44.7822, 43.5123, -87.2178, 45.123, -104.329, -55.2797, -154.107, -73.5347, -160.107, -380.38, -175.44, -400.783, -63.44, -512.461, 97.8934, -541.991, 261.671, -599.172, 374.782, -526.421, 502.338, -526.421, 637.893, -396.488, 598.56, -360.783, 596.338, -58.2327, 528.782, -58.2327, 501.449, 45.9283)
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")] [node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("27_klb81")]
position = Vector2(5839, 2349) position = Vector2(5839, 2349)
scale = Vector2(2.425, 2.425) scale = Vector2(2.425, 2.425)
_spriteToOutline = NodePath("DoorSprite")
_id = 0 _id = 0
[node name="DoorSprite" type="Sprite2D" parent="YSorted/Farm visuals/Static/EnterHouseInteraction"]
position = Vector2(0.412364, -33.1959)
scale = Vector2(1.8649, 1.54554)
texture = ExtResource("39_lbnqo")
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"] [node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"] [node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
@@ -2067,10 +2092,12 @@ rotation = 1.5708
scale = Vector2(0.1, 10.8) scale = Vector2(0.1, 10.8)
texture = ExtResource("21_if5vh") texture = ExtResource("21_if5vh")
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"] [node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals" node_paths=PackedStringArray("fields", "_allowedArea")]
position = Vector2(53, 20) position = Vector2(53, 20)
scale = Vector2(1, 0.993819) scale = Vector2(1, 0.993819)
script = ExtResource("25_0qu0h") script = ExtResource("25_0qu0h")
fields = {}
_allowedArea = NodePath("Area2D")
metadata/_custom_type_script = "uid://dhxtdhfqx3bte" metadata/_custom_type_script = "uid://dhxtdhfqx3bte"
[node name="Area2D" type="Area2D" parent="YSorted/Farm visuals/FieldParent"] [node name="Area2D" type="Area2D" parent="YSorted/Farm visuals/FieldParent"]
@@ -2119,37 +2146,61 @@ position = Vector2(-106.663, 182.891)
shape = SubResource("RectangleShape2D_ycj14") shape = SubResource("RectangleShape2D_ycj14")
[node name="ducks" type="Node2D" parent="YSorted"] [node name="ducks" type="Node2D" parent="YSorted"]
z_index = 1
y_sort_enabled = true
script = ExtResource("49_uxa2m")
_goal = 6
[node name="Duck2" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")] [node name="Duck2" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
z_index = 0
y_sort_enabled = false
position = Vector2(4374, 2652) position = Vector2(4374, 2652)
_penTarget = NodePath("../../pen/penSlot1") _penTarget = NodePath("../../pen/penSlot1")
[node name="Duck3" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")] [node name="Duck3" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
z_index = 0
y_sort_enabled = false
position = Vector2(9259, 3194) position = Vector2(9259, 3194)
_penTarget = NodePath("../../pen/penSlot2") _penTarget = NodePath("../../pen/penSlot2")
[node name="Duck4" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")] [node name="Duck4" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
z_index = 0
y_sort_enabled = false
position = Vector2(13441, 3612) position = Vector2(13441, 3612)
rotation = 3.14159 rotation = 3.14159
scale = Vector2(1, -1) scale = Vector2(1, -1)
_penTarget = NodePath("../../pen/penSlot3") _penTarget = NodePath("../../pen/penSlot3")
[node name="Duck5" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")] [node name="Duck5" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
z_index = 0
y_sort_enabled = false
position = Vector2(15330, 2487) position = Vector2(15330, 2487)
rotation = 3.14159 rotation = 3.14159
scale = Vector2(1, -1) scale = Vector2(1, -1)
_penTarget = NodePath("../../pen/penSlot4") _penTarget = NodePath("../../pen/penSlot4")
[node name="Duck6" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")] [node name="Duck6" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
z_index = 0
y_sort_enabled = false
position = Vector2(232, 2862) position = Vector2(232, 2862)
_penTarget = NodePath("../../pen/penSlot5") _penTarget = NodePath("../../pen/penSlot5")
[node name="Duck7" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")] [node name="Duck7" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
z_index = 0
y_sort_enabled = false
position = Vector2(2409, 3958) position = Vector2(2409, 3958)
rotation = 3.14159 rotation = 3.14159
scale = Vector2(1, -1) scale = Vector2(1, -1)
_penTarget = NodePath("../../pen/penSlot6") _penTarget = NodePath("../../pen/penSlot6")
[node name="DialogicToggle" type="Node2D" parent="YSorted/ducks"]
script = ExtResource("51_uxa2m")
_timelinesToPlay = PackedStringArray("quest1_ducks_end")
_startOnReady = false
[node name="dialogic starter" type="Node2D" parent="YSorted/ducks"]
script = ExtResource("52_lwk6t")
[node name="pen" type="Node2D" parent="YSorted"] [node name="pen" type="Node2D" parent="YSorted"]
[node name="penSlot1" type="Node2D" parent="YSorted/pen"] [node name="penSlot1" type="Node2D" parent="YSorted/pen"]
@@ -2170,6 +2221,70 @@ position = Vector2(-4659, 2897)
[node name="penSlot6" type="Node2D" parent="YSorted/pen"] [node name="penSlot6" type="Node2D" parent="YSorted/pen"]
position = Vector2(-5016, 3361) position = Vector2(-5016, 3361)
[node name="trash" type="Node2D" parent="YSorted"]
z_index = 1
y_sort_enabled = true
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(1269, 3170)
[node name="trashObject2" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(3183, 2369)
offset = Vector2(1, -50)
region_rect = Rect2(207, 1184, 149, 142)
[node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(4724, 3519)
offset = Vector2(1, -50)
region_rect = Rect2(400, 1053, 163, 141)
[node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(5385, 3391)
offset = Vector2(1, -50)
region_rect = Rect2(1048, 1092, 348, 106)
[node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(8051, 2541)
offset = Vector2(1, -50)
region_rect = Rect2(531, 1207, 176, 167)
[node name="trashObject6" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(9629, 3312)
offset = Vector2(1, -50)
region_rect = Rect2(207, 1184, 149, 142)
[node name="trashObject7" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(12050, 3391)
[node name="trashObject8" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(14589, 2505)
rotation = 1.77025
region_rect = Rect2(629, 81, 227, 829)
[node name="trashObject9" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
z_index = 0
y_sort_enabled = false
position = Vector2(15322, 3472)
rotation = 1.77025
offset = Vector2(0, 0)
region_rect = Rect2(1048, 1092, 348, 106)
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")] [node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]
[node name="Inventory" parent="CanvasLayer" index="1"] [node name="Inventory" parent="CanvasLayer" index="1"]
@@ -2191,9 +2306,6 @@ offset_top = 0.228533
offset_right = -456.339 offset_right = -456.339
offset_bottom = 30.2285 offset_bottom = 30.2285
[node name="Control" parent="CanvasLayer" index="3"]
visible = false
[node name="Audio" type="Node" parent="."] [node name="Audio" type="Node" parent="."]
[node name="Background Music Ramp up" type="AudioStreamPlayer2D" parent="Audio"] [node name="Background Music Ramp up" type="AudioStreamPlayer2D" parent="Audio"]
@@ -2243,18 +2355,26 @@ script = ExtResource("40_w3jkj")
[connection signal="InteractedTool" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadSceneAtIndex"] [connection signal="InteractedTool" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadSceneAtIndex"]
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"] [connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
[connection signal="input_event" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Vesna/FarmingControls" method="InputEventPressedOn"] [connection signal="input_event" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Vesna/FarmingControls" method="InputEventPressedOn"]
[connection signal="GoalReached" from="YSorted/ducks" to="YSorted/ducks/DialogicToggle" method="ToggleDialogue"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck2" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck3" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck4" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck5" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck6" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck7" to="YSorted/ducks" method="Increment"]
[connection signal="Dialogue" from="YSorted/ducks/DialogicToggle" to="YSorted/ducks/dialogic starter" method="open"]
[connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"] [connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"]
[editable path="YSorted/Vesna"] [editable path="YSorted/Vesna"]
[editable path="YSorted/Brünnen/InteractionArea"] [editable path="YSorted/Brünnen/InteractionArea"]
[editable path="YSorted/HoeGenericPickup"] [editable path="YSorted/HoeGenericPickup"]
[editable path="YSorted/HoeGenericPickup/InteractionArea2"] [editable path="YSorted/HoeGenericPickup/PickupInteractionArea"]
[editable path="YSorted/CanGenericPickup"] [editable path="YSorted/CanGenericPickup"]
[editable path="YSorted/CanGenericPickup/InteractionArea2"] [editable path="YSorted/CanGenericPickup/PickupInteractionArea"]
[editable path="YSorted/RakeGenericPickup"] [editable path="YSorted/RakeGenericPickup"]
[editable path="YSorted/RakeGenericPickup/InteractionArea2"] [editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
[editable path="YSorted/ScytheGenericPickup"] [editable path="YSorted/ScytheGenericPickup"]
[editable path="YSorted/ScytheGenericPickup/InteractionArea2"] [editable path="YSorted/ScytheGenericPickup/PickupInteractionArea"]
[editable path="YSorted/ShovelGenericPickup"] [editable path="YSorted/ShovelGenericPickup"]
[editable path="YSorted/ShovelGenericPickup/InteractionArea2"] [editable path="YSorted/ShovelGenericPickup/PickupInteractionArea"]
[editable path="CanvasLayer"] [editable path="CanvasLayer"]
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=70 format=3 uid="uid://dfyb4dckoltpw"] [gd_scene load_steps=70 format=3 uid="uid://bb6r385qvyoba"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_vl6d5"] [ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_vl6d5"]
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="3_jrqoq"] [ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="3_jrqoq"]
@@ -28,7 +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://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://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://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" 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="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://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"] [ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="31_c2gvt"]
+66 -33
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=32 format=3 uid="uid://bm21nqepnwaik"] [gd_scene load_steps=41 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"]
@@ -7,6 +7,7 @@
[ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="5_sndxu"] [ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="5_sndxu"]
[ext_resource type="Texture2D" uid="uid://bqwhptcgg5ons" path="res://art/indoor/room export/Room_01_dorr_R.png" id="6_blyw3"] [ext_resource type="Texture2D" uid="uid://bqwhptcgg5ons" path="res://art/indoor/room export/Room_01_dorr_R.png" id="6_blyw3"]
[ext_resource type="Texture2D" uid="uid://vyk63d0pgqm5" path="res://art/indoor/room export/Room_01_dioor L.png" id="7_yd2gv"] [ext_resource type="Texture2D" uid="uid://vyk63d0pgqm5" path="res://art/indoor/room export/Room_01_dioor L.png" id="7_yd2gv"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/intaractable_outline.tres" id="8_7a68a"]
[ext_resource type="Texture2D" uid="uid://b2rj7wkyu6ehy" path="res://art/indoor/room export/Room_01_pechka.png" id="8_ofqcg"] [ext_resource type="Texture2D" uid="uid://b2rj7wkyu6ehy" path="res://art/indoor/room export/Room_01_pechka.png" id="8_ofqcg"]
[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"]
@@ -18,10 +19,17 @@
[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="Script" uid="uid://31p67cdowuw4" path="res://scripts/CSharp/Common/Animation/AnimationStarter.cs" id="15_27bwy"]
[ext_resource type="Texture2D" uid="uid://c4q12jiligcl7" path="res://art/animals/katze.png" id="15_sndxu"] [ext_resource type="Texture2D" uid="uid://c4q12jiligcl7" path="res://art/animals/katze.png" id="15_sndxu"]
[ext_resource type="AudioStream" uid="uid://cohyenfo1rtxh" path="res://audio/sfx/Animals/SFX_Cat_Meow_01.wav" id="16_d7yky"]
[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="AudioStream" uid="uid://b2cmf5ie7cwka" path="res://audio/sfx/Animals/SFX_Cat_Meow_02.wav" id="17_7a68a"]
[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="AudioStream" uid="uid://cttisejnt2l8f" path="res://audio/sfx/Animals/SFX_Cat_Meow_03.wav" id="18_dhsxs"]
[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"]
[ext_resource type="AudioStream" uid="uid://cbmagiou0n0t3" path="res://audio/sfx/Animals/SFX_Cat_Meow_04.wav" id="19_k0k8c"]
[ext_resource type="AudioStream" uid="uid://bk1bj01fokjp7" path="res://audio/sfx/Animals/SFX_Cat_Meow_05.wav" id="20_dw4nn"]
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="21_blyw3"] [ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="21_blyw3"]
[ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="21_ytap8"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="22_tggq2"]
[ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"] [ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"]
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_yd2gv"] [ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_yd2gv"]
@@ -29,10 +37,23 @@
resource_local_to_scene = true resource_local_to_scene = true
size = Vector2(3836, 1086) size = Vector2(3836, 1086)
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
resource_local_to_scene = true
radius = 472.086
[sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"] [sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 300.0
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_b6vf7"]
streams_count = 6
stream_0/stream = ExtResource("16_d7yky")
stream_1/stream = ExtResource("17_7a68a")
stream_2/stream = ExtResource("18_dhsxs")
stream_3/stream = ExtResource("19_k0k8c")
stream_4/stream = ExtResource("20_dw4nn")
stream_5/stream = ExtResource("21_ytap8")
[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"
@@ -192,16 +213,13 @@ _data = {
[sub_resource type="CircleShape2D" id="CircleShape2D_wuntg"] [sub_resource type="CircleShape2D" id="CircleShape2D_wuntg"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 300.0 radius = 209.703
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
resource_local_to_scene = true
radius = 472.086
[node name="IndoorTest" type="Node2D"] [node name="IndoorTest" type="Node2D"]
z_index = 1
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_3vr4f") script = ExtResource("1_3vr4f")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_farm_outside_2d.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_farm_outside_2d_ducksCollected.tscn")
[node name="Foreground" type="Node" parent="."] [node name="Foreground" type="Node" parent="."]
@@ -292,13 +310,28 @@ texture = ExtResource("6_blyw3")
region_enabled = true region_enabled = true
region_rect = Rect2(3161, 313, 679, 1050) region_rect = Rect2(3161, 313, 679, 1050)
[node name="Room01DioorL" type="Sprite2D" parent="BackWall"] [node name="OutsideDoor" parent="BackWall/Room01DorrR" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
position = Vector2(-7, 248)
_outlineMaterial = ExtResource("8_7a68a")
_spriteToOutline = NodePath("..")
_id = 1
[node name="Room01DoorL" type="Sprite2D" parent="BackWall"]
z_index = -50 z_index = -50
position = Vector2(-3296, 48) position = Vector2(-3296, 48)
texture = ExtResource("7_yd2gv") texture = ExtResource("7_yd2gv")
region_enabled = true region_enabled = true
region_rect = Rect2(0, 0, 3840, 2160) region_rect = Rect2(0, 0, 3840, 2160)
[node name="VesnasRoomDoor" parent="BackWall/Room01DoorL" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
position = Vector2(-1559, -16)
_outlineMaterial = ExtResource("8_7a68a")
_spriteToOutline = NodePath("..")
_id = 0
[node name="CollisionShape3D" parent="BackWall/Room01DoorL/VesnasRoomDoor/Area2D" index="0"]
shape = SubResource("CircleShape2D_yd2gv")
[node name="Room01Pechka" type="Sprite2D" parent="BackWall"] [node name="Room01Pechka" type="Sprite2D" parent="BackWall"]
z_index = -80 z_index = -80
position = Vector2(-224, -392) position = Vector2(-224, -392)
@@ -327,8 +360,10 @@ 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")] [node name="InteractionArea" parent="BackWall/Room01PechkaDoor" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
scale = Vector2(1.8, 1.96) scale = Vector2(1.8, 1.96)
_outlineMaterial = ExtResource("8_7a68a")
_spriteToOutline = NodePath("..")
[node name="CollisionShape3D" parent="BackWall/Room01PechkaDoor/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="BackWall/Room01PechkaDoor/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_gpagp") shape = SubResource("CircleShape2D_gpagp")
@@ -370,6 +405,17 @@ scale = Vector2(2, 2)
texture = ExtResource("15_sndxu") texture = ExtResource("15_sndxu")
offset = Vector2(-8, -126) offset = Vector2(-8, -126)
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="BackWall/Katze"]
stream = SubResource("AudioStreamRandomizer_b6vf7")
bus = &"SFX"
script = ExtResource("22_tggq2")
[node name="InteractionArea" parent="BackWall/Katze" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
position = Vector2(-6.5, -44)
scale = Vector2(0.5, 0.5)
_outlineMaterial = ExtResource("8_7a68a")
_spriteToOutline = NodePath("..")
[node name="Room assets" type="Node" parent="BackWall"] [node name="Room assets" type="Node" parent="BackWall"]
[node name="wood" type="Sprite2D" parent="BackWall/Room assets"] [node name="wood" type="Sprite2D" parent="BackWall/Room assets"]
@@ -491,22 +537,19 @@ region_enabled = true
region_rect = Rect2(2576, 802, 219, 64) region_rect = Rect2(2576, 802, 219, 64)
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")] [node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
position = Vector2(-1464, 136) y_sort_enabled = false
position = Vector2(-920, 319)
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")] [node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
position = Vector2(-2912, 432) z_index = 0
_timelinesToPlay = PackedStringArray("quest3_beets_start") y_sort_enabled = false
position = Vector2(-1395, 16)
_timelinesToPlay = PackedStringArray("yeli_intro_05")
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
position = Vector2(-205.348, 131.907) position = Vector2(-207.487, 136.185)
shape = SubResource("CircleShape2D_wuntg") shape = SubResource("CircleShape2D_wuntg")
[node name="Label" parent="Yeli/InteractionArea" index="1"]
offset_left = -332.62
offset_top = -99.8217
offset_right = -85.6204
offset_bottom = 3.17825
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"] [node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
position = Vector2(-576, 368) position = Vector2(-576, 368)
@@ -537,25 +580,15 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")] [node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
[node name="VesnasRoomDoor" parent="." instance=ExtResource("11_gpagp")] [connection signal="InteractedTool" from="BackWall/Room01DorrR/OutsideDoor" to="." method="LoadSceneAtIndex"]
position = Vector2(-4855, 32) [connection signal="InteractedTool" from="BackWall/Room01DoorL/VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
_id = 0
[node name="CollisionShape3D" parent="VesnasRoomDoor/Area2D" index="0"]
shape = SubResource("CircleShape2D_yd2gv")
[node name="OutsideDoor" parent="." instance=ExtResource("11_gpagp")]
position = Vector2(929, 32)
_id = 1
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room01PechkaDoor/InteractionArea" method="ToggleActive"] [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="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room assets/hand" method="PlayAnimation"]
[connection signal="Interacted" from="BackWall/Katze/InteractionArea" to="BackWall/Katze/AudioStreamPlayer2D" method="PlayOneShot"]
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="Yeli/Beetroot Quest trigger" method="Trigger"] [connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="Yeli/Beetroot Quest trigger" method="Trigger"]
[connection signal="InteractedTool" from="VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
[connection signal="InteractedTool" from="OutsideDoor" to="." method="LoadSceneAtIndex"]
[editable path="BackWall/Room01DoorL/VesnasRoomDoor"]
[editable path="BackWall/Room01PechkaDoor/InteractionArea"] [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"]
[editable path="VesnasRoomDoor"]
@@ -22,7 +22,7 @@ radius = 509.071
[node name="VesnasRoom" type="Node2D"] [node name="VesnasRoom" type="Node2D"]
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_c6eln") script = ExtResource("1_c6eln")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_common_room.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_common_room.tscn", "res://scenes/Babushka_scene_forest_fight_1_2d.tscn")
[node name="Colliders" type="Node2D" parent="."] [node name="Colliders" type="Node2D" parent="."]
position = Vector2(1297, 5292) position = Vector2(1297, 5292)
@@ -96,14 +96,20 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
[node name="BedInteraction" parent="." instance=ExtResource("8_phqdf")] [node name="BedInteraction" parent="." instance=ExtResource("8_phqdf")]
position = Vector2(-1429, 487) position = Vector2(-1429, 487)
_useOutline = false
_useSprite = false
_id = 1
[node name="DoorInteraction" parent="." instance=ExtResource("8_phqdf")] [node name="DoorInteraction" parent="." instance=ExtResource("8_phqdf")]
position = Vector2(777, 201) position = Vector2(777, 201)
_useOutline = false
_useSprite = false
_id = 0 _id = 0
[node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"] [node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"]
shape = SubResource("CircleShape2D_2spkc") shape = SubResource("CircleShape2D_2spkc")
[connection signal="InteractedTool" from="BedInteraction" to="." method="LoadSceneAtIndex"]
[connection signal="Interacted" from="DoorInteraction" to="." method="LoadScene"] [connection signal="Interacted" from="DoorInteraction" to="." method="LoadScene"]
[editable path="Vesna"] [editable path="Vesna"]
File diff suppressed because it is too large Load Diff
+1
View File
@@ -6,6 +6,7 @@
[node name="BabushkaSceneStartMenu" type="Node2D"] [node name="BabushkaSceneStartMenu" type="Node2D"]
script = ExtResource("1_fj2fh") script = ExtResource("1_fj2fh")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_disclaimer.tscn")
[node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="CanvasLayer" type="CanvasLayer" parent="."]
@@ -1,5 +1,6 @@
using Godot; using Godot;
using System;
namespace Babushka.scripts.CSharp.Common.Animation;
public partial class AnimationStarter : Node2D public partial class AnimationStarter : Node2D
{ {
@@ -21,4 +22,4 @@ public partial class AnimationStarter : Node2D
_played = true; _played = true;
} }
} }
@@ -1,3 +1,4 @@
using System;
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.CharacterControls; namespace Babushka.scripts.CSharp.Common.CharacterControls;
@@ -6,59 +7,99 @@ public partial class InteractionArea2D : Node2D
{ {
[Export] private Area2D _area; [Export] private Area2D _area;
[Export] private Label _label; [Export] private Label _label;
[Export] private SpriteSwitcher2D _sprites; // TODO: remove [Export] private bool _active = true;
[Export] private bool _useOutline = true;
[Export] private ShaderMaterial _outlineMaterial;
[Export] private bool _useSprite = true;
[Export] private CanvasItem _spriteToOutline;
[Export] private bool _showLabel = true; [Export] private bool _showLabel = true;
[Export] private int _id = -1; // TODO: remove [Export] private int _id = -1; // TODO: remove
private Material _backupMaterial;
[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 bool IsActive
{
get => _active;
set => _active = value;
}
public override void _Ready()
{
if (_useSprite && _useOutline)
{
try
{
_backupMaterial = _spriteToOutline.Material;
}
catch(Exception exception)
{
GD.PrintErr($"No sprite to outline found on: {GetParent().Name}" + exception.Message);
}
}
}
public void OnPlayerEntered(Node2D player) public void OnPlayerEntered(Node2D player)
{ {
if (!IsActive) if (!_active)
return; return;
if(_showLabel) if(_showLabel)
_label.Show(); _label.Show();
if (!_useSprite || !_useOutline)
return;
_spriteToOutline.Material = _outlineMaterial;
} }
public void OnPlayerExited(Node2D player) public void OnPlayerExited(Node2D player)
{ {
if (!IsActive) if (!_active)
return; return;
_label.Hide(); _label.Hide();
if (!_useSprite || !_useOutline)
return;
_spriteToOutline.Material = _backupMaterial;
} }
public override void _Input(InputEvent @event) public override void _Input(InputEvent @event)
{ {
if (!IsActive) if (!_active)
return; return;
if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies()) if (@event.IsAction("interact") && @event.IsPressed())
{ {
_label.Hide(); if (_area.HasOverlappingBodies())
EmitSignal(SignalName.InteractedTool, _id); {
EmitSignal(SignalName.Interacted); _label.Hide();
if (_useSprite && _useOutline)
_spriteToOutline.Material = _backupMaterial;
EmitSignal(SignalName.InteractedTool, _id);
EmitSignal(SignalName.Interacted);
}
} }
} }
public void SetSpriteActiveState(bool success, int id) // TODO: remove public void SetSpriteActiveState(bool success, int id) // TODO: remove
{ {
if(!IsActive) GD.PrintErr("SetSpriteActiveState is being called.");
if(!_active)
return; return;
if (_id == id)
{
_sprites.SwitchState(!success);
}
} }
public void ToggleActive() public void ToggleActive()
{ {
IsActive = !IsActive; _active = !_active;
_label.Hide(); _label.Hide();
} }
} }
@@ -4,15 +4,6 @@ using Godot;
namespace Babushka.scripts.CSharp.Common.Farming; namespace Babushka.scripts.CSharp.Common.Farming;
public enum FieldState
{
Empty = 0,
Tilled = 1,
Planted = 2,
Watered = 3,
NotFound = 99
}
[GlobalClass] [GlobalClass]
public partial class FieldBehaviour2D : Sprite2D public partial class FieldBehaviour2D : Sprite2D
{ {
@@ -63,8 +54,7 @@ public partial class FieldBehaviour2D : Sprite2D
public void Water() public void Water()
{ {
FieldState = FieldState.Watered; UpdateFieldState(FieldState.Watered);
_fieldSprite.Texture = Watered;
} }
/// <summary> /// <summary>
@@ -6,7 +6,7 @@ namespace Babushka.scripts.CSharp.Common.Farming;
[GlobalClass] [GlobalClass]
public partial class FieldService2D : Node2D public partial class FieldService2D : Node2D
{ {
[Export] private Dictionary<Vector2I, FieldBehaviour2D> fields = new Dictionary<Vector2I, FieldBehaviour2D>(); [Export] private Dictionary<Vector2I, FieldBehaviour2D> fields;
[Export] private Area2D _allowedArea; [Export] private Area2D _allowedArea;
@@ -0,0 +1,13 @@
namespace Babushka.scripts.CSharp.Common.Farming;
/// <summary>
/// State of a farm field.
/// </summary>
public enum FieldState
{
Empty = 0,
Tilled = 1,
Planted = 2,
Watered = 3,
NotFound = 99
}
@@ -0,0 +1 @@
uid://cqtlic8xxtvkc
@@ -5,14 +5,7 @@ using Godot;
namespace Babushka.scripts.CSharp.Common.Farming; namespace Babushka.scripts.CSharp.Common.Farming;
public enum PlantState
{
None = 0,
Planted = 1,
SmallPlant = 2,
BigPlant = 3,
Ready = 4
}
/// <summary> /// <summary>
/// Determines the behaviour of a plant in Babushka. /// Determines the behaviour of a plant in Babushka.
@@ -26,8 +19,12 @@ public partial class PlantBehaviour2D : Node2D
[Export] private PlantState _state = PlantState.None; [Export] private PlantState _state = PlantState.None;
[Export] private FieldBehaviour2D _field; [Export] private FieldBehaviour2D _field;
[Export] private ItemOnGround2D _harvestablePlant; [Export] private ItemOnGround2D _harvestablePlant;
[Export] private CpuParticles2D _magicEffect;
[Export] private bool _magicWordNeeded = true;
private string _magicWordDialogicEventName = "MagicWord";
private Sprite2D _currentPlantSprite = null; private Sprite2D _currentPlantSprite = null;
private bool _magicWordSaid = false;
/// <summary> /// <summary>
@@ -35,11 +32,12 @@ public partial class PlantBehaviour2D : Node2D
/// </summary> /// </summary>
public void Grow() public void Grow()
{ {
if (_field.FieldState != FieldState.Watered) if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
return; return;
GetTree().CallGroup("PlantGrowing", Player2D.MethodName.PlayFarmingAnimation); GetTree().CallGroup("PlantGrowing", Player2D.MethodName.PlayFarmingAnimation);
// todo:
// find out why the last plant stage is being skipped the second time around
switch (_state) switch (_state)
{ {
case PlantState.None: case PlantState.None:
@@ -63,19 +61,21 @@ public partial class PlantBehaviour2D : Node2D
_state = PlantState.Ready; _state = PlantState.Ready;
_currentPlantSprite.Visible = false; _currentPlantSprite.Visible = false;
_currentPlantSprite = GetRandomSprite(_readyPlants); _currentPlantSprite = GetRandomSprite(_readyPlants);
_harvestablePlant.IsActive = true;
_currentPlantSprite.Visible = true; _currentPlantSprite.Visible = true;
ActivatePickupAfterDelay(true);
break; break;
case PlantState.Ready: case PlantState.Ready:
_state = PlantState.None; _state = PlantState.None;
_currentPlantSprite.Visible = false; _currentPlantSprite.Visible = false;
_currentPlantSprite = null; _currentPlantSprite = null;
ActivatePickupAfterDelay(false);
break; break;
default: default:
break; break;
} }
_field.UpdateFieldState(FieldState.Tilled); _field.UpdateFieldState(FieldState.Tilled);
_magicWordSaid = false;
} }
private Sprite2D GetRandomSprite(Sprite2D[] sprites) private Sprite2D GetRandomSprite(Sprite2D[] sprites)
@@ -83,4 +83,27 @@ public partial class PlantBehaviour2D : Node2D
Random rand = new Random(); Random rand = new Random();
return sprites[rand.Next(sprites.Length)]; return sprites[rand.Next(sprites.Length)];
} }
public async void ActivatePickupAfterDelay(bool activate)
{
await ToSignal(GetTree().CreateTimer(1.0f), "timeout");
SetActiveHarvestablePlant(activate);
}
private void SetActiveHarvestablePlant(bool active)
{
_harvestablePlant.IsActive = active;
_harvestablePlant.UpdateVisuals();
}
public void SayMagicWord(string wordEvent)
{
if (_magicWordDialogicEventName != wordEvent)
return;
_magicEffect.Emitting = true;
_magicEffect.OneShot = true;
_magicWordSaid = true;
Grow();
}
} }
@@ -0,0 +1,13 @@
namespace Babushka.scripts.CSharp.Common.Farming;
/// <summary>
/// State of a harvestable plant. Used in farming.
/// </summary>
public enum PlantState
{
None = 0,
Planted = 1,
SmallPlant = 2,
BigPlant = 3,
Ready = 4
}
@@ -0,0 +1 @@
uid://dw5dl5yscbyaw
@@ -23,6 +23,10 @@ public static class WateringCanState
/// Triggers animations and ui. /// Triggers animations and ui.
/// </summary> /// </summary>
public static bool Active = false; public static bool Active = false;
public delegate void WateringCanDelegate(bool state);
public static event WateringCanDelegate WateringCanActiveStateChanged;
/// <summary> /// <summary>
@@ -65,6 +69,8 @@ public static class WateringCanState
/// <param name="active"></param> /// <param name="active"></param>
public static void SetActive(bool active) public static void SetActive(bool active)
{ {
if(active != Active)
WateringCanActiveStateChanged?.Invoke(active);
Active = active; Active = active;
} }
} }

Some files were not shown because too many files have changed in this diff Show More