Compare commits
89 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ba7d550c3f | |||
| b65a3bbd6d | |||
| bcbc074c86 | |||
| 745f54b375 | |||
| 59d313d97d | |||
| 9032272599 | |||
| a2ef3bfaf0 | |||
| 1ab1071246 | |||
| e5b2b8b8ab | |||
| 2fa8aa9fbc | |||
| 6deb6e29fd | |||
| edc133749f | |||
| 5f75bde317 | |||
| 7310bfbf6e | |||
| fef8380a57 | |||
| f42c2c86b1 | |||
| 2ed9dbbc52 | |||
| 6375383373 | |||
| b810ea1d9f | |||
| 3d19509826 | |||
| 113dd0820f | |||
| 7e148cd9fe | |||
| 59489e4a17 | |||
| fc00559483 | |||
| 982178d89a | |||
| 09f55d3aa7 | |||
| c89685c936 | |||
| 79108fbe15 | |||
| 0434667c22 | |||
| a736adaafb | |||
| bef54420e4 | |||
| 9267278ce8 | |||
| 9ba83dfddd | |||
| 7c5ba2d6bb | |||
| 0c5fc26d2f | |||
| e51e0a24d2 | |||
| 7bb523f9e7 | |||
| a3651d6268 | |||
| 0892a13e66 | |||
| 61caa6eea6 | |||
| 2ec693eed2 | |||
| b7d1f9d8d5 | |||
| 12bf632932 | |||
| 0d985e5bf6 | |||
| e86b3e81dd | |||
| 14a73daa75 | |||
| 996470f5e6 | |||
| 1dd4a694d0 | |||
| 9b8933e698 | |||
| 9f4cda0e6d | |||
| 1c865730a3 | |||
| aa4f1c55b5 | |||
| aad6c44567 | |||
| 8e9359d6f8 | |||
| 7696271727 | |||
| 229dd04bc1 | |||
| 8407ce4c1f | |||
| b9a52dadcc | |||
| 0ecae5a4d9 | |||
| c288af296c | |||
| e65330786e | |||
| c7a4aea70b | |||
| b6caf4dbed | |||
| 51a145a994 | |||
| 41b30a4274 | |||
| a1fb71119f | |||
| 67d5b67c21 | |||
| 684131f495 | |||
| f32033cb5f | |||
| 1ad463ccb0 | |||
| 451ea82706 | |||
| 75e4bdd7fd | |||
| f37f7c7ceb | |||
| 70383fc16e | |||
| 88f3c90eec | |||
| 9d818e5079 | |||
| e9cd4ce276 | |||
| 638ebaff46 | |||
| b4013b1ff2 | |||
| c695115a4a | |||
| c68727aebe | |||
| bee6249c6f | |||
| fda2b95b38 | |||
| 4bbaab1a2a | |||
| 4ed6f4e7d9 | |||
| ce29711614 | |||
| 2947011a1a | |||
| 2a4425b9db | |||
| 72079044bd |
@@ -8,4 +8,7 @@
|
|||||||
<Folder Include="prefabs\UI\Inventory\" />
|
<Folder Include="prefabs\UI\Inventory\" />
|
||||||
<Folder Include="scripts\CSharp\Low Code\Randomizer\" />
|
<Folder Include="scripts\CSharp\Low Code\Randomizer\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://ccrnmx6bd842k"
|
uid="uid://ccrnmx6bd842k"
|
||||||
path="res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.ctex"
|
path.s3tc="res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://art/characters/farm fäulnis blobs.png"
|
source_file="res://art/characters/farm fäulnis blobs.png"
|
||||||
dest_files=["res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.ctex"]
|
dest_files=["res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,4 +38,4 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 741 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://da67c7avarwq2"
|
||||||
|
path="res://.godot/imported/kitchen_bgAssets.png-26f2820caaada75bd252a5f0e781a1f7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/indoor/kitchen_bgAssets.png"
|
||||||
|
dest_files=["res://.godot/imported/kitchen_bgAssets.png-26f2820caaada75bd252a5f0e781a1f7.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
@@ -4,19 +4,22 @@ importer="scene"
|
|||||||
importer_version=1
|
importer_version=1
|
||||||
type="PackedScene"
|
type="PackedScene"
|
||||||
uid="uid://b3kyrsoobmkhp"
|
uid="uid://b3kyrsoobmkhp"
|
||||||
valid=false
|
path="res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"
|
||||||
|
|
||||||
[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]
|
||||||
|
|
||||||
nodes/root_type=""
|
nodes/root_type=""
|
||||||
nodes/root_name=""
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
nodes/apply_root_scale=true
|
nodes/apply_root_scale=true
|
||||||
nodes/root_scale=1.0
|
nodes/root_scale=1.0
|
||||||
nodes/import_as_skeleton_bones=false
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
nodes/use_node_type_suffixes=true
|
nodes/use_node_type_suffixes=true
|
||||||
meshes/ensure_tangents=true
|
meshes/ensure_tangents=true
|
||||||
meshes/generate_lods=true
|
meshes/generate_lods=true
|
||||||
@@ -31,6 +34,9 @@ animation/trimming=false
|
|||||||
animation/remove_immutable_tracks=true
|
animation/remove_immutable_tracks=true
|
||||||
animation/import_rest_as_RESET=false
|
animation/import_rest_as_RESET=false
|
||||||
import_script/path=""
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
_subresources={}
|
_subresources={}
|
||||||
blender/nodes/visible=0
|
blender/nodes/visible=0
|
||||||
blender/nodes/active_collection_only=false
|
blender/nodes/active_collection_only=false
|
||||||
@@ -50,3 +56,4 @@ blender/materials/export_materials=1
|
|||||||
blender/animation/limit_playback=true
|
blender/animation/limit_playback=true
|
||||||
blender/animation/always_sample=true
|
blender/animation/always_sample=true
|
||||||
blender/animation/group_tracks=true
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=0
|
||||||
|
|||||||
@@ -26,6 +26,15 @@
|
|||||||
&"nicknames": ["vesna"],
|
&"nicknames": ["vesna"],
|
||||||
&"offset": Vector2(-300, 0),
|
&"offset": Vector2(-300, 0),
|
||||||
&"portraits": {
|
&"portraits": {
|
||||||
|
"angry": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/angry.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
"front": {
|
"front": {
|
||||||
"export_overrides": {
|
"export_overrides": {
|
||||||
"image": "\"res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0001.png\""
|
"image": "\"res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0001.png\""
|
||||||
@@ -52,6 +61,42 @@
|
|||||||
"offset": Vector2(0, 0),
|
"offset": Vector2(0, 0),
|
||||||
"scale": 1.0,
|
"scale": 1.0,
|
||||||
"scene": ""
|
"scene": ""
|
||||||
|
},
|
||||||
|
"sad": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/sad.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
|
"smile": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/smile.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
|
"surprise": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/surprise.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
|
"surprised": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/surprised.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
&"scale": 1.0
|
&"scale": 1.0
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[quest_complete quest_resource="res://resources/quests/demo/7_talk_yeli_inside_1.tres"]
|
[quest_complete quest_resource="res://resources/quests/demo/7_talk_yeli_inside_1.tres"]
|
||||||
join Yeli right
|
join Yeli right
|
||||||
Yeli: Thank you for your help out there.
|
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: You must be tired. Please rest. I prepared a bed for you. It's the door in the middle.
|
||||||
Yeli: There is nothing interesting to see here.
|
Yeli: There is nothing interesting to see here.
|
||||||
leave Yeli
|
leave Yeli
|
||||||
[quest_activate quest_resource="res://resources/quests/demo/8_goto_bed.tres"]
|
[quest_activate quest_resource="res://resources/quests/demo/8_goto_bed.tres"]
|
||||||
|
|||||||
@@ -12,3 +12,4 @@ ifquest res://resources/quests/demo/2_collect_ducks.tres, 1:
|
|||||||
Yeli: Have you collected all the ducks yet?
|
Yeli: Have you collected all the ducks yet?
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
Yeli doesn't seem to have anything to say...
|
Yeli doesn't seem to have anything to say...
|
||||||
|
[end_timeline]
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ offset_right = 54.4142
|
|||||||
offset_bottom = 207.286
|
offset_bottom = 207.286
|
||||||
grow_horizontal = 0
|
grow_horizontal = 0
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
text = "[I]"
|
text = "[i]"
|
||||||
label_settings = SubResource("LabelSettings_l3npx")
|
label_settings = SubResource("LabelSettings_l3npx")
|
||||||
|
|
||||||
[node name="QuestLogRoot" parent="." instance=ExtResource("7_vvo7l")]
|
[node name="QuestLogRoot" parent="." instance=ExtResource("7_vvo7l")]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=485 format=3 uid="uid://c25udixd5m6l0"]
|
[gd_scene load_steps=489 format=3 uid="uid://c25udixd5m6l0"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"]
|
[ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"]
|
||||||
[ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/PlayerMovement.cs" id="2_1vqmv"]
|
[ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/PlayerMovement.cs" id="2_1vqmv"]
|
||||||
@@ -283,6 +283,7 @@
|
|||||||
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="471_83c4i"]
|
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="471_83c4i"]
|
||||||
[ext_resource type="AudioStream" uid="uid://fihv17va3r58" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_02_R.wav" id="471_e04c3"]
|
[ext_resource type="AudioStream" uid="uid://fihv17va3r58" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_02_R.wav" id="471_e04c3"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cvvjd2i6x047n" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_03_R.wav" id="472_g32y8"]
|
[ext_resource type="AudioStream" uid="uid://cvvjd2i6x047n" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_03_R.wav" id="472_g32y8"]
|
||||||
|
[ext_resource type="Script" uid="uid://dj1qjambsa4pg" path="res://scripts/CSharp/Common/Farming/WateringCanSaveHelper.cs" id="472_kduih"]
|
||||||
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
|
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dymoalptxmge" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_04_R.wav" id="473_8hbu5"]
|
[ext_resource type="AudioStream" uid="uid://dymoalptxmge" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_04_R.wav" id="473_8hbu5"]
|
||||||
[ext_resource type="AudioStream" uid="uid://4555a4w30tda" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_05_R.wav" id="474_t1d6r"]
|
[ext_resource type="AudioStream" uid="uid://4555a4w30tda" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_05_R.wav" id="474_t1d6r"]
|
||||||
@@ -294,8 +295,11 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://dqubvx1a08kn4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0002.png" id="478_5myrm"]
|
[ext_resource type="Texture2D" uid="uid://dqubvx1a08kn4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0002.png" id="478_5myrm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dystt4hyqad74" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0004.png" id="480_wnay3"]
|
[ext_resource type="Texture2D" uid="uid://dystt4hyqad74" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0004.png" id="480_wnay3"]
|
||||||
[ext_resource type="Resource" uid="uid://cmqapbvv0hev2" path="res://resources/low code/farming/event_watering.tres" id="481_t1d6r"]
|
[ext_resource type="Resource" uid="uid://cmqapbvv0hev2" path="res://resources/low code/farming/event_watering.tres" id="481_t1d6r"]
|
||||||
|
[ext_resource type="Script" uid="uid://d27xoo1reo5gu" path="res://scripts/CSharp/Low Code/Variables/SaveableVariableNode.cs" id="482_0ptfk"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bopxv06co1osl" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0006.png" id="482_wfdif"]
|
[ext_resource type="Texture2D" uid="uid://bopxv06co1osl" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0006.png" id="482_wfdif"]
|
||||||
|
[ext_resource type="Script" uid="uid://iquhbkr7pqeg" path="res://scripts/CSharp/Common/Savegame/SaveCheats.cs" id="483_kduih"]
|
||||||
[ext_resource type="Texture2D" uid="uid://coyggdfwgkeru" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0008.png" id="484_32thn"]
|
[ext_resource type="Texture2D" uid="uid://coyggdfwgkeru" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0008.png" id="484_32thn"]
|
||||||
|
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="484_upuan"]
|
||||||
[ext_resource type="Texture2D" uid="uid://du6x1h42smp6m" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0010.png" id="486_kobao"]
|
[ext_resource type="Texture2D" uid="uid://du6x1h42smp6m" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0010.png" id="486_kobao"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bras5gn8ov27l" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0012.png" id="488_ygjj5"]
|
[ext_resource type="Texture2D" uid="uid://bras5gn8ov27l" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0012.png" id="488_ygjj5"]
|
||||||
[ext_resource type="Texture2D" uid="uid://rjmsht4g8dvp" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0014.png" id="490_6603x"]
|
[ext_resource type="Texture2D" uid="uid://rjmsht4g8dvp" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0014.png" id="490_6603x"]
|
||||||
@@ -2119,28 +2123,6 @@ frame = 7
|
|||||||
frame_progress = 0.229832
|
frame_progress = 0.229832
|
||||||
offset = Vector2(0, -450)
|
offset = Vector2(0, -450)
|
||||||
|
|
||||||
[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_slider")]
|
|
||||||
position = Vector2(0, -929)
|
|
||||||
scale = Vector2(2, 2)
|
|
||||||
script = ExtResource("467_j4m0f")
|
|
||||||
_slider = NodePath("HSlider")
|
|
||||||
|
|
||||||
[node name="HSlider" type="HSlider" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
modulate = Color(0.3515, 0.780425, 0.95, 1)
|
|
||||||
custom_minimum_size = Vector2(150, 50)
|
|
||||||
anchors_preset = 5
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
offset_left = -43.0
|
|
||||||
offset_right = 57.0
|
|
||||||
offset_bottom = 64.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
max_value = 1.0
|
|
||||||
step = 0.0
|
|
||||||
editable = false
|
|
||||||
scrollable = false
|
|
||||||
|
|
||||||
[node name="DetectionCross" parent="CharacterBody2D" instance=ExtResource("466_e04c3")]
|
[node name="DetectionCross" parent="CharacterBody2D" instance=ExtResource("466_e04c3")]
|
||||||
position = Vector2(0, -200)
|
position = Vector2(0, -200)
|
||||||
|
|
||||||
@@ -2152,6 +2134,47 @@ _eventResources = Array[Object]([ExtResource("468_t1d6r")])
|
|||||||
script = ExtResource("467_8hbu5")
|
script = ExtResource("467_8hbu5")
|
||||||
_eventResources = Array[Object]([ExtResource("469_t1d6r")])
|
_eventResources = Array[Object]([ExtResource("469_t1d6r")])
|
||||||
|
|
||||||
|
[node name="WateringCan" type="Node2D" parent="CharacterBody2D"]
|
||||||
|
|
||||||
|
[node name="WateringCanFillState" type="Node" parent="CharacterBody2D/WateringCan" groups=["Saveable"]]
|
||||||
|
script = ExtResource("482_0ptfk")
|
||||||
|
Payload = 0
|
||||||
|
metadata/SaveID = "2d2f153b-8a09-45a9-b114-79259c833f9f"
|
||||||
|
|
||||||
|
[node name="WateringEventListener" type="Node" parent="CharacterBody2D/WateringCan"]
|
||||||
|
script = ExtResource("467_8hbu5")
|
||||||
|
_eventResources = Array[Object]([ExtResource("481_t1d6r")])
|
||||||
|
|
||||||
|
[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D/WateringCan" node_paths=PackedStringArray("_slider")]
|
||||||
|
position = Vector2(0, -939)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
script = ExtResource("467_j4m0f")
|
||||||
|
_slider = NodePath("HSlider")
|
||||||
|
|
||||||
|
[node name="HSlider" type="HSlider" parent="CharacterBody2D/WateringCan/WateringCanUI"]
|
||||||
|
visible = false
|
||||||
|
modulate = Color(0.3515, 0.780425, 0.95, 1)
|
||||||
|
custom_minimum_size = Vector2(150, 50)
|
||||||
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
offset_left = -115.0
|
||||||
|
offset_top = -33.999996
|
||||||
|
offset_right = 35.0
|
||||||
|
offset_bottom = 30.000004
|
||||||
|
grow_horizontal = 2
|
||||||
|
scale = Vector2(1.4200003, 2.5611823)
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 2
|
||||||
|
max_value = 1.0
|
||||||
|
step = 0.0
|
||||||
|
editable = false
|
||||||
|
scrollable = false
|
||||||
|
|
||||||
|
[node name="WateringCanSaveHelper" type="Node" parent="CharacterBody2D/WateringCan" node_paths=PackedStringArray("_wateringCanFillStateNode")]
|
||||||
|
script = ExtResource("472_kduih")
|
||||||
|
_wateringCanFillStateNode = NodePath("../WateringCanFillState")
|
||||||
|
|
||||||
[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer")]
|
[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer")]
|
||||||
script = ExtResource("817_6nrw3")
|
script = ExtResource("817_6nrw3")
|
||||||
_sceneKeyProvider = ExtResource("471_83c4i")
|
_sceneKeyProvider = ExtResource("471_83c4i")
|
||||||
@@ -2174,18 +2197,23 @@ script = ExtResource("471_2f15g")
|
|||||||
[node name="Timer" type="Timer" parent="SFX/FootstepsAudio"]
|
[node name="Timer" type="Timer" parent="SFX/FootstepsAudio"]
|
||||||
wait_time = 0.5
|
wait_time = 0.5
|
||||||
|
|
||||||
[node name="WateringEventListener" type="Node" parent="."]
|
[node name="SaveSystem" type="Node" parent="."]
|
||||||
script = ExtResource("467_8hbu5")
|
|
||||||
_eventResources = Array[Object]([ExtResource("481_t1d6r")])
|
|
||||||
|
|
||||||
[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"]
|
[node name="SaveGameCheat" type="Node" parent="SaveSystem"]
|
||||||
[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
script = ExtResource("483_kduih")
|
||||||
|
|
||||||
|
[node name="SaveIDProvider" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("484_upuan")
|
||||||
|
|
||||||
|
[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCan/WateringCanUI" method="Refill"]
|
||||||
|
[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCan/WateringCanUI" method="IsWateringCanActive"]
|
||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D/visuals" method="ActivateTool"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D/visuals" method="ActivateTool"]
|
||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCan/WateringCanUI" method="IsWateringCanActive"]
|
||||||
[connection signal="LookDirection" from="CharacterBody2D/visuals" to="CharacterBody2D/DetectionCross" method="SetDirection"]
|
[connection signal="LookDirection" from="CharacterBody2D/visuals" to="CharacterBody2D/DetectionCross" method="SetDirection"]
|
||||||
[connection signal="EventRaised" from="CharacterBody2D/PlantCreatedEventListener" to="CharacterBody2D/visuals" method="PlayFarmingAnimation"]
|
[connection signal="EventRaised" from="CharacterBody2D/PlantCreatedEventListener" to="CharacterBody2D/visuals" method="PlayFarmingAnimation"]
|
||||||
[connection signal="EventRaised" from="CharacterBody2D/PickedUpInteractableListener" to="CharacterBody2D/visuals" method="PlayPickUpAnimation"]
|
[connection signal="EventRaised" from="CharacterBody2D/PickedUpInteractableListener" to="CharacterBody2D/visuals" method="PlayPickUpAnimation"]
|
||||||
|
[connection signal="OnLoadingComplete" from="CharacterBody2D/WateringCan/WateringCanFillState" to="CharacterBody2D/WateringCan/WateringCanSaveHelper" method="OnLoad"]
|
||||||
|
[connection signal="EventRaised" from="CharacterBody2D/WateringCan/WateringEventListener" to="CharacterBody2D/visuals" method="PlayWateringAnimation"]
|
||||||
|
[connection signal="EventRaised" from="CharacterBody2D/WateringCan/WateringEventListener" to="CharacterBody2D/WateringCan/WateringCanUI" method="Water"]
|
||||||
[connection signal="timelineStarted" from="DialogicToggle" to="SFX/FootstepsAudio/Timer" method="stop"]
|
[connection signal="timelineStarted" from="DialogicToggle" to="SFX/FootstepsAudio/Timer" method="stop"]
|
||||||
[connection signal="timeout" from="SFX/FootstepsAudio/Timer" to="SFX/FootstepsAudio" method="PlayOneShot"]
|
[connection signal="timeout" from="SFX/FootstepsAudio/Timer" to="SFX/FootstepsAudio" method="PlayOneShot"]
|
||||||
[connection signal="EventRaised" from="WateringEventListener" to="CharacterBody2D/visuals" method="PlayWateringAnimation"]
|
|
||||||
[connection signal="EventRaised" from="WateringEventListener" to="CharacterBody2D/WateringCanUI" method="Water"]
|
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 500.0
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id="SpriteFrames_f6hss"]
|
[sub_resource type="SpriteFrames" id="SpriteFrames_f6hss"]
|
||||||
animations = [{
|
animations = [{
|
||||||
@@ -205,6 +205,7 @@ z_index = 1
|
|||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_hn8at")
|
script = ExtResource("1_hn8at")
|
||||||
_sprite = NodePath("TalkingControl/AnimatedSprite")
|
_sprite = NodePath("TalkingControl/AnimatedSprite")
|
||||||
|
_retriggerSameTimeline = true
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("42_ahrat")]
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("42_ahrat")]
|
||||||
position = Vector2(0, -450)
|
position = Vector2(0, -450)
|
||||||
@@ -244,9 +245,11 @@ stream = SubResource("AudioStreamRandomizer_ngji7")
|
|||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("50_a7v1a")
|
script = ExtResource("50_a7v1a")
|
||||||
|
|
||||||
[connection signal="FinishedTalking" from="." to="InteractionArea" method="SetActiveInverse"]
|
|
||||||
[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="StartTalking"]
|
||||||
|
[connection signal="Interacted" from="InteractionArea" to="InteractionArea" method="ToggleActive"]
|
||||||
|
[connection signal="timelineEnded" from="Dialogic starter" to="." method="StopTalking"]
|
||||||
|
[connection signal="timelineEnded" from="Dialogic starter" to="InteractionArea" method="ToggleActive"]
|
||||||
[connection signal="timelineEnded" from="DialogicToggle" to="." method="ToggleTalking"]
|
[connection signal="timelineEnded" from="DialogicToggle" to="." method="ToggleTalking"]
|
||||||
[connection signal="timelineStarted" from="DialogicToggle" to="SFX/AudioStreamPlayer" method="PlayOneShot"]
|
[connection signal="timelineStarted" from="DialogicToggle" to="SFX/AudioStreamPlayer" method="PlayOneShot"]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cqy831wnquvpc"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://d27xoo1reo5gu" path="res://scripts/CSharp/Low Code/Variables/SaveableVariableNode.cs" id="1_386s0"]
|
||||||
|
[ext_resource type="Script" uid="uid://du5facslfvg77" path="res://scripts/CSharp/Common/DayAndNight/CalendarController.cs" id="2_bl8tj"]
|
||||||
|
|
||||||
|
[node name="Day and Night" type="Node"]
|
||||||
|
|
||||||
|
[node name="Controller" type="Node" parent="." node_paths=PackedStringArray("_dayCounter")]
|
||||||
|
script = ExtResource("2_bl8tj")
|
||||||
|
_dayCounter = NodePath("../DayCounter")
|
||||||
|
|
||||||
|
[node name="DayCounter" type="Node" parent="." groups=["Saveable"]]
|
||||||
|
script = ExtResource("1_386s0")
|
||||||
|
Payload = 0
|
||||||
|
metadata/SaveID = "12c6da2e-fc71-4281-a04a-dfd3c7943975"
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://hdfejdnmp8sl"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://umop2b1m1qm8" path="res://scripts/CSharp/GameEntity/Management/EntityManager.cs" id="1_2bwns"]
|
||||||
|
[ext_resource type="Script" uid="uid://bogqp274y1pgr" path="res://scripts/CSharp/GameEntity/Management/EntityNodeCreator.cs" id="2_8m173"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://sbf12hin4kes" path="res://prefabs/Interactables/trash_object.tscn" id="3_v3vdc"]
|
||||||
|
|
||||||
|
[node name="EntityManager" type="Node" node_paths=PackedStringArray("_nodeCreator")]
|
||||||
|
script = ExtResource("1_2bwns")
|
||||||
|
_nodeCreator = NodePath("EntityCreator")
|
||||||
|
|
||||||
|
[node name="EntityCreator" type="Node" parent="."]
|
||||||
|
script = ExtResource("2_8m173")
|
||||||
|
_entityPrefabs = Dictionary[String, PackedScene]({
|
||||||
|
"TrashEntity": ExtResource("3_v3vdc")
|
||||||
|
})
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=24 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"]
|
||||||
|
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="2_fdf3t"]
|
||||||
[ext_resource type="AudioStream" uid="uid://qv0aubjeyi0u" path="res://audio/sfx/Animals/SFX_Duck_Quack_01.wav" id="3_kjie1"]
|
[ext_resource type="AudioStream" uid="uid://qv0aubjeyi0u" path="res://audio/sfx/Animals/SFX_Duck_Quack_01.wav" id="3_kjie1"]
|
||||||
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="3_rdn2q"]
|
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="3_rdn2q"]
|
||||||
[ext_resource type="AudioStream" uid="uid://da84l8e44scwh" path="res://audio/sfx/Animals/SFX_Duck_Quack_02.wav" id="4_54k4r"]
|
[ext_resource type="AudioStream" uid="uid://da84l8e44scwh" path="res://audio/sfx/Animals/SFX_Duck_Quack_02.wav" id="4_54k4r"]
|
||||||
@@ -138,10 +139,11 @@ radius = 200.0
|
|||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_4830j"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_4830j"]
|
||||||
viewport_path = NodePath("SubViewport")
|
viewport_path = NodePath("SubViewport")
|
||||||
|
|
||||||
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")]
|
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer") groups=["Saveable"]]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_54k4r")
|
script = ExtResource("1_54k4r")
|
||||||
|
_sceneKeyProvider = ExtResource("2_fdf3t")
|
||||||
_transferDelayMs = 1000
|
_transferDelayMs = 1000
|
||||||
_animationPlayer = NodePath("AnimationPlayer")
|
_animationPlayer = NodePath("AnimationPlayer")
|
||||||
|
|
||||||
@@ -160,11 +162,11 @@ libraries = {
|
|||||||
&"": SubResource("AnimationLibrary_54k4r")
|
&"": SubResource("AnimationLibrary_54k4r")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("15_uo3dh")]
|
[node name="duck interaction" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("15_uo3dh")]
|
||||||
position = Vector2(18, -250)
|
position = Vector2(18, -250)
|
||||||
_spritesToOutline = [NodePath("../Duck rendered")]
|
_spritesToOutline = [NodePath("../Duck rendered")]
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="duck interaction/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_uo3dh")
|
shape = SubResource("CircleShape2D_uo3dh")
|
||||||
|
|
||||||
[node name="Duck rendered" type="Sprite2D" parent="."]
|
[node name="Duck rendered" type="Sprite2D" parent="."]
|
||||||
@@ -321,7 +323,7 @@ offset = Vector2(40, 40)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(246, 393, 111, 111)
|
region_rect = Rect2(246, 393, 111, 111)
|
||||||
|
|
||||||
[connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"]
|
[connection signal="Interacted" from="duck interaction" to="." method="TransferToTargetAfterDelay"]
|
||||||
[connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"]
|
[connection signal="Interacted" from="duck interaction" to="Audio/NakNak" method="PlayOneShot"]
|
||||||
|
|
||||||
[editable path="InteractionArea"]
|
[editable path="duck interaction"]
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 325.2599
|
radius = 325.2599
|
||||||
|
|
||||||
[node name="BaseField" type="Node2D"]
|
[node name="BaseField" type="Node2D" groups=["Saveable"]]
|
||||||
script = ExtResource("1_4mg73")
|
script = ExtResource("1_4mg73")
|
||||||
Payload = 0
|
Payload = 0
|
||||||
|
|
||||||
@@ -38,13 +38,14 @@ z_index = 1
|
|||||||
scale = Vector2(1.3499999, 1.5)
|
scale = Vector2(1.3499999, 1.5)
|
||||||
texture = ExtResource("9_wx561")
|
texture = ExtResource("9_wx561")
|
||||||
|
|
||||||
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "FieldInteractionArea", "PlantingPlaceholder", "_wateringParticles")]
|
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_saveIdHolder", "_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "FieldInteractionArea", "PlantingPlaceholder", "_wateringParticles")]
|
||||||
visible = false
|
visible = false
|
||||||
z_index = -1
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
scale = Vector2(0.9, 1)
|
scale = Vector2(0.9, 1)
|
||||||
script = ExtResource("1_qa01x")
|
script = ExtResource("1_qa01x")
|
||||||
SaveId = "field"
|
|
||||||
_fieldIndex = NodePath("..")
|
_fieldIndex = NodePath("..")
|
||||||
|
_saveIdHolder = NodePath("..")
|
||||||
_sceneKeyProvider = ExtResource("11_cjahb")
|
_sceneKeyProvider = ExtResource("11_cjahb")
|
||||||
FieldState = 0
|
FieldState = 0
|
||||||
_fieldSprite = NodePath("MaskedField/FieldTexture")
|
_fieldSprite = NodePath("MaskedField/FieldTexture")
|
||||||
@@ -70,6 +71,7 @@ texture = ExtResource("3_c014y")
|
|||||||
texture = ExtResource("5_wx561")
|
texture = ExtResource("5_wx561")
|
||||||
|
|
||||||
[node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"]
|
[node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"]
|
||||||
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="InteractionArea" parent="FieldBehaviour" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
|
[node name="InteractionArea" parent="FieldBehaviour" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
|
||||||
position = Vector2(-28.88889, -57)
|
position = Vector2(-28.88889, -57)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=3 uid="uid://gishbn0a8eke"]
|
[gd_scene load_steps=12 format=3 uid="uid://gishbn0a8eke"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_66p1c"]
|
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_66p1c"]
|
||||||
[ext_resource type="Texture2D" uid="uid://mrnc81ukugh6" path="res://art/farm/farming/farmobjekte/plant_template.png" id="2_oyl0t"]
|
[ext_resource type="Texture2D" uid="uid://mrnc81ukugh6" path="res://art/farm/farming/farmobjekte/plant_template.png" id="2_oyl0t"]
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
[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_3j24b"]
|
||||||
[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_gdrin"]
|
||||||
[ext_resource type="Resource" uid="uid://blr8tine5m0ma" path="res://resources/items/tomato.tres" id="7_vjw4j"]
|
[ext_resource type="Resource" uid="uid://blr8tine5m0ma" path="res://resources/items/tomato.tres" id="7_vjw4j"]
|
||||||
|
[ext_resource type="Script" uid="uid://j2mhvb45egej" path="res://scripts/CSharp/Low Code/Variables/VariableNode.cs" id="8_3og52"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="9_vjw4j"]
|
[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"]
|
||||||
@@ -28,7 +29,7 @@ radius = 300.0
|
|||||||
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", "_magicEffect")]
|
[node name="BasePlant" type="Node2D" node_paths=PackedStringArray("_seeds", "_smallPlants", "_bigPlants", "_readyPlants", "_harvestablePlant", "_magicEffect", "_lifecycle")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_66p1c")
|
script = ExtResource("1_66p1c")
|
||||||
@@ -38,6 +39,7 @@ _bigPlants = [NodePath("BigPlant/01"), NodePath("BigPlant/02"), NodePath("BigPla
|
|||||||
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03")]
|
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03")]
|
||||||
_harvestablePlant = NodePath("ReadyPlantInventoryItem")
|
_harvestablePlant = NodePath("ReadyPlantInventoryItem")
|
||||||
_magicEffect = NodePath("magic vfx")
|
_magicEffect = NodePath("magic vfx")
|
||||||
|
_lifecycle = NodePath("LifeCycle")
|
||||||
|
|
||||||
[node name="Seeds" type="Node2D" parent="."]
|
[node name="Seeds" type="Node2D" parent="."]
|
||||||
position = Vector2(0, 0.5)
|
position = Vector2(0, 0.5)
|
||||||
@@ -136,6 +138,7 @@ shape = SubResource("CircleShape2D_vjw4j")
|
|||||||
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")]
|
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")]
|
||||||
position = Vector2(0, 2.3)
|
position = Vector2(0, 2.3)
|
||||||
IsActive = false
|
IsActive = false
|
||||||
|
_saveToDisk = false
|
||||||
|
|
||||||
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
|
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
|
||||||
_blueprint = ExtResource("7_vjw4j")
|
_blueprint = ExtResource("7_vjw4j")
|
||||||
@@ -206,8 +209,13 @@ scale_amount_max = 0.1
|
|||||||
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="LifeCycle" type="Node" parent="."]
|
||||||
|
script = ExtResource("8_3og52")
|
||||||
|
Payload = 3
|
||||||
|
|
||||||
[connection signal="Interacted" from="GrowingInteractionArea" to="." method="Grow"]
|
[connection signal="Interacted" from="GrowingInteractionArea" to="." method="Grow"]
|
||||||
[connection signal="SuccessfulPickUp" from="ReadyPlantInventoryItem" to="." method="queue_free"]
|
[connection signal="SuccessfulPickUp" from="ReadyPlantInventoryItem" to="." method="queue_free"]
|
||||||
|
[connection signal="Interacted" from="ReadyPlantInventoryItem/PickupInteractionArea" to="." method="Harvest"]
|
||||||
|
|
||||||
[editable path="GrowingInteractionArea"]
|
[editable path="GrowingInteractionArea"]
|
||||||
[editable path="ReadyPlantInventoryItem"]
|
[editable path="ReadyPlantInventoryItem"]
|
||||||
|
|||||||
@@ -48,9 +48,6 @@ shape = SubResource("CircleShape2D_hiixr")
|
|||||||
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
|
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
|
||||||
_blueprint = ExtResource("3_agmuy")
|
_blueprint = ExtResource("3_agmuy")
|
||||||
|
|
||||||
[node name="PickupInteractionArea" parent="ReadyPlantInventoryItem" index="3"]
|
|
||||||
_active = false
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ae08q")
|
shape = SubResource("CircleShape2D_ae08q")
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,30 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://l1hdihubffeg"]
|
[gd_scene load_steps=3 format=3 uid="uid://l1hdihubffeg"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b5i41b6502xam" path="res://scripts/CSharp/Common/Fight/FighterDamageIndicatorFlyingNumber.cs" id="1_m0ub6"]
|
[ext_resource type="Script" uid="uid://b5i41b6502xam" path="res://scripts/CSharp/Common/Fight/FighterDamageIndicatorFlyingNumber.cs" id="1_m0ub6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://do0y56t1moi2" path="res://art/mockups/erdbeeren.png" id="2_ctnqp"]
|
||||||
|
|
||||||
[node name="DamageFlyingNuber" type="Node2D" node_paths=PackedStringArray("_label")]
|
[node name="DamageFlyingNuber" type="Node2D" node_paths=PackedStringArray("_label", "_sprite")]
|
||||||
script = ExtResource("1_m0ub6")
|
script = ExtResource("1_m0ub6")
|
||||||
_label = NodePath("Label")
|
_label = NodePath("Label")
|
||||||
|
_sprite = NodePath("TextureRect")
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -61.0
|
||||||
|
offset_top = -61.0
|
||||||
|
offset_right = 61.0
|
||||||
|
offset_bottom = 61.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
texture = ExtResource("2_ctnqp")
|
||||||
|
expand_mode = 1
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
custom_minimum_size = Vector2(200, 100)
|
custom_minimum_size = Vector2(200, 100)
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://n5cj71bxxjkk"]
|
[gd_scene load_steps=4 format=3 uid="uid://n5cj71bxxjkk"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dqe1i2qmpttwf" path="res://scripts/CSharp/Common/Fight/FightWorld.cs" id="1_tnyce"]
|
[ext_resource type="Script" uid="uid://dqe1i2qmpttwf" path="res://scripts/CSharp/Common/Fight/FightWorld.cs" id="1_tnyce"]
|
||||||
|
[ext_resource type="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="2_lxs0o"]
|
||||||
|
[ext_resource type="Resource" uid="uid://0mnsr4anoaiq" path="res://resources/items/beet.tres" id="3_008v8"]
|
||||||
|
|
||||||
[node name="FightWorldAutoload" type="Node2D"]
|
[node name="FightWorldAutoload" type="Node2D"]
|
||||||
script = ExtResource("1_tnyce")
|
script = ExtResource("1_tnyce")
|
||||||
|
_itemToDropByEnemyGroup = ExtResource("2_lxs0o")
|
||||||
|
itemBeetrootToEatForHealth = ExtResource("3_008v8")
|
||||||
|
|||||||
@@ -14,5 +14,9 @@ position = Vector2(23, -96)
|
|||||||
scale = Vector2(0.547474, 0.547474)
|
scale = Vector2(0.547474, 0.547474)
|
||||||
texture = SubResource("AtlasTexture_ane0o")
|
texture = SubResource("AtlasTexture_ane0o")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" parent="TargetSelection/Click" index="0"]
|
||||||
|
position = Vector2(25.215, -195)
|
||||||
|
scale = Vector2(0.72370636, 1)
|
||||||
|
|
||||||
[node name="Sprite2D" parent="TargetSelection/HoverIndicator" index="0"]
|
[node name="Sprite2D" parent="TargetSelection/HoverIndicator" index="0"]
|
||||||
position = Vector2(1, -126)
|
position = Vector2(0.84, -126)
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ stream_1/stream = ExtResource("7_edjam")
|
|||||||
stream_2/stream = ExtResource("8_kflfw")
|
stream_2/stream = ExtResource("8_kflfw")
|
||||||
stream_3/stream = ExtResource("9_dltn0")
|
stream_3/stream = ExtResource("9_dltn0")
|
||||||
|
|
||||||
[node name="GenericItemOnGround" type="Node2D"]
|
[node name="GenericItemOnGround" type="Node2D" groups=["Saveable"]]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_tlhp6")
|
script = ExtResource("1_tlhp6")
|
||||||
|
metadata/SaveID = ""
|
||||||
|
|
||||||
[node name="SpawnWithItem" type="Node" parent="."]
|
[node name="SpawnWithItem" type="Node" parent="."]
|
||||||
script = ExtResource("3_xu8me")
|
script = ExtResource("3_xu8me")
|
||||||
|
|||||||
+30
-4
@@ -25,15 +25,17 @@ buses/default_bus_layout="uid://b6dwkmkyb0axk"
|
|||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
SceneTransition="*res://scenes/SceneTransition.tscn"
|
SceneTransition="*res://prefabs/UI/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"
|
||||||
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
||||||
QuestManager="*res://prefabs/quests/quest_manager_autoload.tscn"
|
QuestManager="*res://prefabs/quests/quest_manager_autoload.tscn"
|
||||||
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
||||||
FightWorldAutoload="*res://prefabs/fight/fight_world_autoload.tscn"
|
FightWorldAutoload="*res://prefabs/fight/fight_world_autoload.tscn"
|
||||||
FieldService="*res://scripts/CSharp/Common/Farming/FieldService.cs"
|
|
||||||
SaveGameManager="*res://scripts/CSharp/Common/Savegame/SaveGameManager.cs"
|
SaveGameManager="*res://scripts/CSharp/Common/Savegame/SaveGameManager.cs"
|
||||||
|
SettingsSaveController="*res://scripts/CSharp/Common/Savegame/SettingsSaveController.cs"
|
||||||
|
DayAndNight="*res://prefabs/day_and_night/day_and_night.tscn"
|
||||||
|
EntityManager="*res://prefabs/entity_system/entity_manager.tscn"
|
||||||
|
|
||||||
[dialogic]
|
[dialogic]
|
||||||
|
|
||||||
@@ -185,8 +187,8 @@ directories/tres_directory={
|
|||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=1980
|
window/size/viewport_width=1920
|
||||||
window/size/viewport_height=1020
|
window/size/viewport_height=1080
|
||||||
window/stretch/mode="viewport"
|
window/stretch/mode="viewport"
|
||||||
window/stretch/aspect="keep_height"
|
window/stretch/aspect="keep_height"
|
||||||
|
|
||||||
@@ -220,6 +222,14 @@ folder_colors={
|
|||||||
"res://shader/": "pink"
|
"res://shader/": "pink"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[filesystem]
|
||||||
|
|
||||||
|
import/blender/enabled=false
|
||||||
|
|
||||||
|
[global_group]
|
||||||
|
|
||||||
|
Saveable=""
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
move_left={
|
move_left={
|
||||||
@@ -264,6 +274,7 @@ interact={
|
|||||||
ui_inventory_open_close={
|
ui_inventory_open_close={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":105,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":105,"location":0,"echo":false,"script":null)
|
||||||
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
ui_inventory_advance={
|
ui_inventory_advance={
|
||||||
@@ -296,6 +307,21 @@ ui_inventory_journal_open_close={
|
|||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":74,"key_label":0,"unicode":106,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":74,"key_label":0,"unicode":106,"location":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
NextDayCheat={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
DebugEntities={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":66,"key_label":0,"unicode":98,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
SaveGame={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194336,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[internationalization]
|
[internationalization]
|
||||||
|
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ name = "Hoe"
|
|||||||
color = Color(0.751421, 0.329615, 0.570911, 1)
|
color = Color(0.751421, 0.329615, 0.570911, 1)
|
||||||
icon = SubResource("AtlasTexture_i5wdx")
|
icon = SubResource("AtlasTexture_i5wdx")
|
||||||
maxStack = 1
|
maxStack = 1
|
||||||
|
isUnique = true
|
||||||
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
|
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ name = "Can"
|
|||||||
color = Color(0.336269, 0.489145, 0.825324, 1)
|
color = Color(0.336269, 0.489145, 0.825324, 1)
|
||||||
icon = SubResource("AtlasTexture_tqw18")
|
icon = SubResource("AtlasTexture_tqw18")
|
||||||
maxStack = 1
|
maxStack = 1
|
||||||
|
isUnique = true
|
||||||
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
|
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
|
||||||
|
|||||||
@@ -1,10 +1,23 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://bopv10dqm1knc"]
|
[gd_scene load_steps=5 format=3 uid="uid://bopv10dqm1knc"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c6wnoif01ltld" path="res://scenes/Babushka_scene_startMenu.tscn" id="1_15ton"]
|
[ext_resource type="PackedScene" uid="uid://c6wnoif01ltld" path="res://scenes/Babushka_scene_startMenu.tscn" id="1_15ton"]
|
||||||
|
[ext_resource type="Script" uid="uid://bbp0dyddwdbl8" path="res://scripts/CSharp/Common/Savegame/WindowSettingsSync.cs" id="2_d3jfo"]
|
||||||
|
[ext_resource type="Script" uid="uid://iquhbkr7pqeg" path="res://scripts/CSharp/Common/Savegame/SaveCheats.cs" id="4_ocsjo"]
|
||||||
|
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="5_iyo8m"]
|
||||||
|
|
||||||
[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_farm_outside_2d.tscn")
|
|
||||||
|
|
||||||
[node name="SceneParent" type="Node" parent="."]
|
[node name="SceneParent" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="WindowSettings" type="Node" parent="."]
|
||||||
|
script = ExtResource("2_d3jfo")
|
||||||
|
|
||||||
|
[node name="SaveSystem" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="SaveGameCheat" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("4_ocsjo")
|
||||||
|
|
||||||
|
[node name="SaveIDProvider" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("5_iyo8m")
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=116 format=3 uid="uid://gigb28qk8t12"]
|
[gd_scene load_steps=119 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/Vesna.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"]
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="3_p4qqi"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="3_p4qqi"]
|
||||||
[ext_resource type="Texture2D" uid="uid://be1nofeo7an0" path="res://art/mockups/Kenney_Backgrounds/PNG/cloud2.png" id="3_r34wi"]
|
[ext_resource type="Texture2D" uid="uid://be1nofeo7an0" path="res://art/mockups/Kenney_Backgrounds/PNG/cloud2.png" id="3_r34wi"]
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://dldk8n51ag8fh" path="res://art/nature/baum märz 2025/backtreebois team brandon.png" id="13_d53cn"]
|
[ext_resource type="Texture2D" uid="uid://dldk8n51ag8fh" path="res://art/nature/baum märz 2025/backtreebois team brandon.png" id="13_d53cn"]
|
||||||
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="13_kt1wx"]
|
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="13_kt1wx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bmjjfd5ngptxe" path="res://art/nature/baum märz 2025/backtreebois team kennedy.png" id="14_1uen0"]
|
[ext_resource type="Texture2D" uid="uid://bmjjfd5ngptxe" path="res://art/nature/baum märz 2025/backtreebois team kennedy.png" id="14_1uen0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dv2jepy2el544" path="res://art/mockups/Kenney_Backgrounds/PNG/Flat/tree11.png" id="14_d53cn"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://451bkvxcxab7" path="res://art/nature/baum märz 2025/gräser und büsche.png" id="14_mrwmr"]
|
[ext_resource type="Texture2D" uid="uid://451bkvxcxab7" path="res://art/nature/baum märz 2025/gräser und büsche.png" id="14_mrwmr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://btea6eyucsyxj" path="res://art/farm/farming/farmobjekte/zaun/tilable fence middle part.png" id="20_if5vh"]
|
[ext_resource type="Texture2D" uid="uid://btea6eyucsyxj" path="res://art/farm/farming/farmobjekte/zaun/tilable fence middle part.png" id="20_if5vh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://3ed3dgq3irn2" path="res://art/farm/farming/farmobjekte/zaun/tilable fence end part2.png" id="21_if5vh"]
|
[ext_resource type="Texture2D" uid="uid://3ed3dgq3irn2" path="res://art/farm/farming/farmobjekte/zaun/tilable fence end part2.png" id="21_if5vh"]
|
||||||
@@ -38,7 +37,7 @@
|
|||||||
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="35_64mdn"]
|
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="35_64mdn"]
|
||||||
[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="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="36_fv1t2"]
|
[ext_resource type="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="36_fv1t2"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cyyxqmphcrjj" path="res://art/farm/farming/farmobjekte/tomaten/tomaten_template.png" id="36_l7ekk"]
|
[ext_resource type="Resource" uid="uid://0mnsr4anoaiq" path="res://resources/items/beet.tres" id="36_q1g8e"]
|
||||||
[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"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
|
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
|
||||||
[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"]
|
||||||
@@ -79,15 +78,26 @@
|
|||||||
[ext_resource type="Script" uid="uid://dih1b0opgc3f7" path="res://scripts/GdScript/dialogic_start_specific.gd" id="77_l7ekk"]
|
[ext_resource type="Script" uid="uid://dih1b0opgc3f7" path="res://scripts/GdScript/dialogic_start_specific.gd" id="77_l7ekk"]
|
||||||
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="77_xcwle"]
|
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="77_xcwle"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field.tscn" id="78_xcwle"]
|
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field.tscn" id="78_xcwle"]
|
||||||
|
[ext_resource type="Script" uid="uid://iquhbkr7pqeg" path="res://scripts/CSharp/Common/Savegame/SaveCheats.cs" id="79_065st"]
|
||||||
|
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="80_w1kgo"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
|
||||||
|
resource_local_to_scene = true
|
||||||
shader = ExtResource("13_7p0hq")
|
shader = ExtResource("13_7p0hq")
|
||||||
shader_parameter/hue_shift = 0.0
|
shader_parameter/hue_shift = -0.25399996456499996
|
||||||
shader_parameter/saturation_mult = 0.603
|
shader_parameter/saturation_mult = 0.603
|
||||||
shader_parameter/value_mult = 1.0
|
shader_parameter/value_mult = 1.0
|
||||||
shader_parameter/brightness_add = 0.0
|
shader_parameter/brightness_add = 0.0
|
||||||
shader_parameter/contrast_mult = 1.0
|
shader_parameter/contrast_mult = 1.0
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_065st"]
|
||||||
|
shader = ExtResource("13_7p0hq")
|
||||||
|
shader_parameter/hue_shift = -0.18299996119249995
|
||||||
|
shader_parameter/saturation_mult = 0.8530000405175
|
||||||
|
shader_parameter/value_mult = 1.0
|
||||||
|
shader_parameter/brightness_add = 4.7499999933364734e-08
|
||||||
|
shader_parameter/contrast_mult = 0.9630000457425
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8ey8m"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8ey8m"]
|
||||||
shader = ExtResource("13_7p0hq")
|
shader = ExtResource("13_7p0hq")
|
||||||
shader_parameter/hue_shift = -0.076
|
shader_parameter/hue_shift = -0.076
|
||||||
@@ -287,6 +297,7 @@ _followNode = NodePath("../YSorted/Vesna/CharacterBody2D")
|
|||||||
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
||||||
|
|
||||||
[node name="background color layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background color layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -350
|
||||||
position = Vector2(0, -552)
|
position = Vector2(0, -552)
|
||||||
motion_scale = Vector2(0.1, 0.1)
|
motion_scale = Vector2(0.1, 0.1)
|
||||||
motion_mirroring = Vector2(2048, 0)
|
motion_mirroring = Vector2(2048, 0)
|
||||||
@@ -318,6 +329,7 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="clouds layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="clouds layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -300
|
||||||
position = Vector2(-7, -138)
|
position = Vector2(-7, -138)
|
||||||
motion_scale = Vector2(0.2, 0.2)
|
motion_scale = Vector2(0.2, 0.2)
|
||||||
motion_mirroring = Vector2(7000, 0)
|
motion_mirroring = Vector2(7000, 0)
|
||||||
@@ -355,11 +367,13 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -250
|
||||||
position = Vector2(18, -713)
|
position = Vector2(18, -713)
|
||||||
motion_scale = Vector2(0.25, 0.25)
|
motion_scale = Vector2(0.25, 0.25)
|
||||||
motion_mirroring = Vector2(5424, 0)
|
motion_mirroring = Vector2(5424, 0)
|
||||||
|
|
||||||
[node name="Kenney assets" type="Node2D" parent="ParallaxBackground/background layer 3"]
|
[node name="Kenney assets" type="Node2D" parent="ParallaxBackground/background layer 3"]
|
||||||
|
modulate = Color(0.56078434, 0.89411765, 0.8235294, 1)
|
||||||
position = Vector2(0, -39)
|
position = Vector2(0, -39)
|
||||||
scale = Vector2(1.2, 1.2)
|
scale = Vector2(1.2, 1.2)
|
||||||
|
|
||||||
@@ -472,123 +486,11 @@ scale = Vector2(3, 3.062)
|
|||||||
texture = ExtResource("11_vbdb2")
|
texture = ExtResource("11_vbdb2")
|
||||||
|
|
||||||
[node name="background layer 4" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background layer 4" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -200
|
||||||
position = Vector2(0, -82)
|
position = Vector2(0, -82)
|
||||||
motion_scale = Vector2(0.5, 0.5)
|
motion_scale = Vector2(0.5, 0.5)
|
||||||
motion_mirroring = Vector2(10480, 0)
|
motion_mirroring = Vector2(10480, 0)
|
||||||
|
|
||||||
[node name="Kenney Assets" type="Node2D" parent="ParallaxBackground/background layer 4"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="hills" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.525643, 0.556909, 0.560815, 1)
|
|
||||||
position = Vector2(0, 1420)
|
|
||||||
scale = Vector2(4, 4)
|
|
||||||
texture = ExtResource("7_sbyqw")
|
|
||||||
centered = false
|
|
||||||
offset = Vector2(-200, -80)
|
|
||||||
|
|
||||||
[node name="hills 1" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.525643, 0.556909, 0.560815, 1)
|
|
||||||
position = Vector2(3999, 1420)
|
|
||||||
scale = Vector2(4, 4)
|
|
||||||
texture = ExtResource("8_kt1wx")
|
|
||||||
centered = false
|
|
||||||
offset = Vector2(-200, -80)
|
|
||||||
|
|
||||||
[node name="tree" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(128, 784)
|
|
||||||
scale = Vector2(5.11066, 3.99823)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree2" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(976, 952)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree9" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(1160, 976)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree3" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(1368, 800)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree4" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(2328, 880)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree5" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(3112, 944)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree6" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(4248, 960)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree10" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(5376, 848)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree11" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(5624, 976)
|
|
||||||
scale = Vector2(2.93619, 1.96107)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree12" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(5856.97, 753.531)
|
|
||||||
scale = Vector2(3.3702, 3.05266)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree13" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(6888, 912)
|
|
||||||
scale = Vector2(3.3702, 3.05266)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree14" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(7088.48, 752.766)
|
|
||||||
scale = Vector2(3.69909, 3.46732)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree15" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(7224, 888)
|
|
||||||
scale = Vector2(3.1922, 3.25497)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree7" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(4392, 1152)
|
|
||||||
scale = Vector2(2.55123, 1.88928)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree8" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(2944, 992)
|
|
||||||
scale = Vector2(3.008, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 4"]
|
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 4"]
|
||||||
z_index = -200
|
z_index = -200
|
||||||
material = SubResource("ShaderMaterial_wtdui")
|
material = SubResource("ShaderMaterial_wtdui")
|
||||||
@@ -603,8 +505,31 @@ position = Vector2(7923, 727)
|
|||||||
scale = Vector2(2.75, 2.75)
|
scale = Vector2(2.75, 2.75)
|
||||||
texture = ExtResource("13_0qu0h")
|
texture = ExtResource("13_0qu0h")
|
||||||
|
|
||||||
|
[node name="background layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -200
|
||||||
|
position = Vector2(0, -82)
|
||||||
|
motion_scale = Vector2(0.5, 0.5)
|
||||||
|
motion_offset = Vector2(1000, 0)
|
||||||
|
motion_mirroring = Vector2(10480, 0)
|
||||||
|
|
||||||
|
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 5"]
|
||||||
|
z_index = -200
|
||||||
|
material = SubResource("ShaderMaterial_065st")
|
||||||
|
position = Vector2(2668, 726)
|
||||||
|
scale = Vector2(2.75, 2.75)
|
||||||
|
texture = ExtResource("13_0qu0h")
|
||||||
|
flip_h = true
|
||||||
|
|
||||||
|
[node name="JelenaMockupBg03" type="Sprite2D" parent="ParallaxBackground/background layer 5"]
|
||||||
|
z_index = -200
|
||||||
|
material = SubResource("ShaderMaterial_065st")
|
||||||
|
position = Vector2(7923, 727)
|
||||||
|
scale = Vector2(2.75, 2.75)
|
||||||
|
texture = ExtResource("13_0qu0h")
|
||||||
|
flip_h = true
|
||||||
|
|
||||||
[node name="back back trees layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="back back trees layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
visible = false
|
z_index = -150
|
||||||
position = Vector2(0, -256)
|
position = Vector2(0, -256)
|
||||||
motion_scale = Vector2(0.7, 0.7)
|
motion_scale = Vector2(0.7, 0.7)
|
||||||
motion_mirroring = Vector2(9965, 0)
|
motion_mirroring = Vector2(9965, 0)
|
||||||
@@ -761,7 +686,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(358, 523, 345, 289)
|
region_rect = Rect2(358, 523, 345, 289)
|
||||||
|
|
||||||
[node name="back tree bois layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="back tree bois layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
visible = false
|
z_index = -100
|
||||||
position = Vector2(28, -28)
|
position = Vector2(28, -28)
|
||||||
motion_mirroring = Vector2(10000, 0)
|
motion_mirroring = Vector2(10000, 0)
|
||||||
|
|
||||||
@@ -874,17 +799,20 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1834, -5, 733, 1360)
|
region_rect = Rect2(1834, -5, 733, 1360)
|
||||||
|
|
||||||
[node name="sunflower field" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="sunflower field" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -50
|
||||||
motion_mirroring = Vector2(3779, 0)
|
motion_mirroring = Vector2(3779, 0)
|
||||||
|
|
||||||
[node name="Sonnenblumeseamless" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
[node name="Sonnenblumeseamless" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
||||||
z_index = -50
|
modulate = Color(1, 1, 1, 0.7921569)
|
||||||
position = Vector2(1892, 1863)
|
position = Vector2(0, 1863)
|
||||||
texture = ExtResource("23_d77e7")
|
texture = ExtResource("23_d77e7")
|
||||||
|
offset = Vector2(1892, 0)
|
||||||
|
|
||||||
[node name="Sonnenblumeseamless2" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
[node name="Sonnenblumeseamless2" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
||||||
z_index = -50
|
modulate = Color(1, 1, 1, 0.7921569)
|
||||||
position = Vector2(9411, 1863)
|
position = Vector2(0, 1863)
|
||||||
texture = ExtResource("23_d77e7")
|
texture = ExtResource("23_d77e7")
|
||||||
|
offset = Vector2(9450, 0)
|
||||||
|
|
||||||
[node name="ground layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="ground layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
position = Vector2(80, 208)
|
position = Vector2(80, 208)
|
||||||
@@ -1029,7 +957,6 @@ 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("yeli_quest_select")
|
_timelinesToPlay = PackedStringArray("yeli_quest_select")
|
||||||
_retriggerSameTimeline = true
|
|
||||||
|
|
||||||
[node name="Vesna" parent="YSorted" instance=ExtResource("1_7wfwe")]
|
[node name="Vesna" parent="YSorted" instance=ExtResource("1_7wfwe")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
@@ -1059,9 +986,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/Well" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("27_klb81")]
|
[node name="InteractionArea" parent="YSorted/Well" instance=ExtResource("27_klb81")]
|
||||||
_spritesToOutline = [NodePath("..")]
|
|
||||||
_id = 1
|
_id = 1
|
||||||
|
metadata/SaveID = "b8f7b7fe-e057-4974-ba12-9134722998de"
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/Well/InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/Well/InteractionArea/Area2D" index="0"]
|
||||||
position = Vector2(146, -130)
|
position = Vector2(146, -130)
|
||||||
@@ -1069,10 +996,16 @@ shape = SubResource("CircleShape2D_p6n74")
|
|||||||
|
|
||||||
[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)
|
||||||
|
metadata/SaveID = "5a823507-8107-40ce-8b32-6d0f81a3c44e"
|
||||||
|
|
||||||
[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="PickupInteractionArea" parent="YSorted/CanGenericPickup" index="3" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
|
_outlineMaterial = null
|
||||||
|
_spritesToOutline = []
|
||||||
|
metadata/SaveID = "0c006f5c-c472-4f89-908b-d8f34503ba37"
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_2065p")
|
shape = SubResource("CircleShape2D_2065p")
|
||||||
|
|
||||||
@@ -1081,34 +1014,65 @@ offset = Vector2(0, -50)
|
|||||||
|
|
||||||
[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)
|
||||||
|
metadata/SaveID = "e13886b1-2131-4072-bc06-7d8abb19357b"
|
||||||
|
|
||||||
[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="PickupInteractionArea" parent="YSorted/RakeGenericPickup" index="3" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
|
_outlineMaterial = null
|
||||||
|
_spritesToOutline = []
|
||||||
|
metadata/SaveID = "c148aa78-114b-4770-a040-8498483edb1d"
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_tm0yg")
|
shape = SubResource("CircleShape2D_tm0yg")
|
||||||
|
|
||||||
[node name="SeedPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="SeedPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
position = Vector2(9927, 2257)
|
position = Vector2(9927, 2257)
|
||||||
_infiniteSupply = true
|
|
||||||
_finiteSupply = 3
|
_finiteSupply = 3
|
||||||
|
metadata/SaveID = "e1bbe13f-0622-42b8-97f3-87a8af369dc0"
|
||||||
|
|
||||||
[node name="SpawnWithItem" parent="YSorted/SeedPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/SeedPickup" index="0"]
|
||||||
_blueprint = ExtResource("35_64mdn")
|
_blueprint = ExtResource("35_64mdn")
|
||||||
|
|
||||||
|
[node name="PickupInteractionArea" parent="YSorted/SeedPickup" index="3"]
|
||||||
|
metadata/SaveID = "ad152c51-3631-42c1-9aa4-4df896b35d8c"
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/SeedPickup/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/SeedPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_tm0yg")
|
shape = SubResource("CircleShape2D_tm0yg")
|
||||||
|
|
||||||
[node name="Icon" parent="YSorted/SeedPickup" index="4"]
|
[node name="Icon" parent="YSorted/SeedPickup" index="4"]
|
||||||
scale = Vector2(1, 1)
|
scale = Vector2(1, 1)
|
||||||
|
|
||||||
|
[node name="BeetPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
|
position = Vector2(5787, 2269)
|
||||||
|
_finiteSupply = 3
|
||||||
|
metadata/SaveID = "e1bbe13f-0622-42b8-97f3-87a8af369dc0"
|
||||||
|
|
||||||
|
[node name="SpawnWithItem" parent="YSorted/BeetPickup" index="0"]
|
||||||
|
_blueprint = ExtResource("36_q1g8e")
|
||||||
|
|
||||||
|
[node name="PickupInteractionArea" parent="YSorted/BeetPickup" index="3" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
|
_spritesToOutline = [NodePath("../../SeedPickup/Icon")]
|
||||||
|
metadata/SaveID = "ad152c51-3631-42c1-9aa4-4df896b35d8c"
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="YSorted/BeetPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_tm0yg")
|
||||||
|
|
||||||
|
[node name="Icon" parent="YSorted/BeetPickup" index="4"]
|
||||||
|
scale = Vector2(1, 1)
|
||||||
|
|
||||||
[node name="SeedPickup2" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="SeedPickup2" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
position = Vector2(10705, 2257)
|
position = Vector2(10705, 2257)
|
||||||
_finiteSupply = 3
|
_finiteSupply = 3
|
||||||
|
metadata/SaveID = "77972c50-63a7-461a-bc7d-6fa46333bc5c"
|
||||||
|
|
||||||
[node name="SpawnWithItem" parent="YSorted/SeedPickup2" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/SeedPickup2" index="0"]
|
||||||
_blueprint = ExtResource("36_fv1t2")
|
_blueprint = ExtResource("36_fv1t2")
|
||||||
|
|
||||||
|
[node name="PickupInteractionArea" parent="YSorted/SeedPickup2" index="3"]
|
||||||
|
metadata/SaveID = "09e115e7-1d21-485a-be3e-b3fff9c83e78"
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/SeedPickup2/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/SeedPickup2/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_tm0yg")
|
shape = SubResource("CircleShape2D_tm0yg")
|
||||||
|
|
||||||
@@ -1122,58 +1086,72 @@ position = Vector2(0, -200)
|
|||||||
|
|
||||||
[node name="BaseField" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(8807, 3061)
|
position = Vector2(8807, 3061)
|
||||||
|
metadata/SaveID = "533e356b-386b-49c9-beb1-4484f2a5164f"
|
||||||
|
|
||||||
[node name="BaseField2" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField2" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(9335, 3562)
|
position = Vector2(9335, 3562)
|
||||||
Payload = 1
|
Payload = 1
|
||||||
|
metadata/SaveID = "79084490-9e12-4153-9ae8-6162b5348c37"
|
||||||
|
|
||||||
[node name="BaseField3" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField3" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(9854, 3071)
|
position = Vector2(9854, 3071)
|
||||||
Payload = 2
|
Payload = 2
|
||||||
|
metadata/SaveID = "7332aadf-2583-468b-889c-ccbad96137f8"
|
||||||
|
|
||||||
[node name="BaseField4" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField4" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(10361, 3536)
|
position = Vector2(10361, 3536)
|
||||||
Payload = 3
|
Payload = 3
|
||||||
|
metadata/SaveID = "493f7b1f-3d01-4d66-b668-6014ef9b3c15"
|
||||||
|
|
||||||
[node name="BaseField5" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField5" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(10948, 3025)
|
position = Vector2(10948, 3025)
|
||||||
Payload = 4
|
Payload = 4
|
||||||
|
metadata/SaveID = "ba9d21eb-7c31-4459-bd90-ae23e9a09eb1"
|
||||||
|
|
||||||
[node name="BaseField6" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField6" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(11296, 3607)
|
position = Vector2(11296, 3607)
|
||||||
Payload = 5
|
Payload = 5
|
||||||
|
metadata/SaveID = "e6a3367e-afe1-4c5d-abd9-153cc365dce0"
|
||||||
|
|
||||||
[node name="BaseField7" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField7" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(11869, 3026)
|
position = Vector2(11869, 3026)
|
||||||
Payload = 6
|
Payload = 6
|
||||||
|
metadata/SaveID = "08de526f-e22f-42a4-a3f9-549d2dc15b5d"
|
||||||
|
|
||||||
[node name="BaseField8" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField8" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(12353, 3554)
|
position = Vector2(12353, 3554)
|
||||||
Payload = 7
|
Payload = 7
|
||||||
|
metadata/SaveID = "9fd46633-8028-48e6-9176-ffe8c7a26a2e"
|
||||||
|
|
||||||
[node name="BaseField9" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField9" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(12828, 2999)
|
position = Vector2(12828, 2999)
|
||||||
Payload = 8
|
Payload = 8
|
||||||
|
metadata/SaveID = "82e139eb-47f4-4ce4-962f-f72d22f9fe45"
|
||||||
|
|
||||||
[node name="BaseField10" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField10" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(13285, 3536)
|
position = Vector2(13285, 3536)
|
||||||
Payload = 9
|
Payload = 9
|
||||||
|
metadata/SaveID = "03ff923a-614a-4fc9-8865-f5290ec16169"
|
||||||
|
|
||||||
[node name="BaseField11" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField11" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(13733, 2990)
|
position = Vector2(13733, 2990)
|
||||||
Payload = 10
|
Payload = 10
|
||||||
|
metadata/SaveID = "1347c031-e8c0-44f9-9d42-80084ae9bc29"
|
||||||
|
|
||||||
[node name="BaseField12" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField12" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(14261, 3474)
|
position = Vector2(14261, 3474)
|
||||||
Payload = 11
|
Payload = 11
|
||||||
|
metadata/SaveID = "c0b02859-bd5c-4780-8ca7-80b4234ee1d7"
|
||||||
|
|
||||||
[node name="BaseField13" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField13" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(14753, 2982)
|
position = Vector2(14753, 2982)
|
||||||
Payload = 12
|
Payload = 12
|
||||||
|
metadata/SaveID = "bee82b2a-a437-4d3a-b003-dac55dfd24aa"
|
||||||
|
|
||||||
[node name="BaseField14" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
[node name="BaseField14" parent="YSorted/FieldParent/right" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(15201, 3519)
|
position = Vector2(15201, 3519)
|
||||||
Payload = 13
|
Payload = 13
|
||||||
|
metadata/SaveID = "4750a191-6902-46d4-9b2e-964c1aa0a29c"
|
||||||
|
|
||||||
[node name="left" type="Node2D" parent="YSorted/FieldParent"]
|
[node name="left" type="Node2D" parent="YSorted/FieldParent"]
|
||||||
position = Vector2(-8661, -143)
|
position = Vector2(-8661, -143)
|
||||||
@@ -1181,50 +1159,62 @@ position = Vector2(-8661, -143)
|
|||||||
[node name="BaseField" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(8807, 3061)
|
position = Vector2(8807, 3061)
|
||||||
Payload = 14
|
Payload = 14
|
||||||
|
metadata/SaveID = "b44ef2e7-898a-40d0-975b-ba75d7df4601"
|
||||||
|
|
||||||
[node name="BaseField2" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField2" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(9227, 3562)
|
position = Vector2(9227, 3562)
|
||||||
Payload = 15
|
Payload = 15
|
||||||
|
metadata/SaveID = "5705ba02-f444-4f2b-b527-b95578132b87"
|
||||||
|
|
||||||
[node name="BaseField3" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField3" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(9756, 3111)
|
position = Vector2(9756, 3111)
|
||||||
Payload = 16
|
Payload = 16
|
||||||
|
metadata/SaveID = "bca9073b-0b2f-4371-a645-a37aa04f4e23"
|
||||||
|
|
||||||
[node name="BaseField4" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField4" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(10322, 3536)
|
position = Vector2(10322, 3536)
|
||||||
Payload = 17
|
Payload = 17
|
||||||
|
metadata/SaveID = "f636a1ef-016d-4361-9b6e-1d59262a8c04"
|
||||||
|
|
||||||
[node name="BaseField5" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField5" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(10810, 3055)
|
position = Vector2(10810, 3055)
|
||||||
Payload = 18
|
Payload = 18
|
||||||
|
metadata/SaveID = "d074a30d-3f52-4788-879a-4ea8c5818c32"
|
||||||
|
|
||||||
[node name="BaseField6" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField6" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(11266, 3607)
|
position = Vector2(11266, 3607)
|
||||||
Payload = 19
|
Payload = 19
|
||||||
|
metadata/SaveID = "8296a15c-be4a-4127-b0f7-8a330dd2a843"
|
||||||
|
|
||||||
[node name="BaseField7" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField7" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(11741, 3026)
|
position = Vector2(11741, 3026)
|
||||||
Payload = 20
|
Payload = 20
|
||||||
|
metadata/SaveID = "02468d9f-0120-42ff-806d-0aaa351f055c"
|
||||||
|
|
||||||
[node name="BaseField8" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField8" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(12255, 3593)
|
position = Vector2(12255, 3593)
|
||||||
Payload = 21
|
Payload = 21
|
||||||
|
metadata/SaveID = "803f7df5-23a8-424a-8389-08371ea80101"
|
||||||
|
|
||||||
[node name="BaseField9" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField9" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(12690, 3019)
|
position = Vector2(12690, 3019)
|
||||||
Payload = 22
|
Payload = 22
|
||||||
|
metadata/SaveID = "88efb617-5e57-4b16-8ceb-c45c56463690"
|
||||||
|
|
||||||
[node name="BaseField10" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField10" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(13216, 3556)
|
position = Vector2(13216, 3556)
|
||||||
Payload = 23
|
Payload = 23
|
||||||
|
metadata/SaveID = "ca6c1e3d-2c4e-4977-a89e-55d265f65faf"
|
||||||
|
|
||||||
[node name="BaseField11" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField11" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(13684, 3000)
|
position = Vector2(13684, 3000)
|
||||||
Payload = 24
|
Payload = 24
|
||||||
|
metadata/SaveID = "262fbec5-597d-432e-8dd0-50d53fd51b59"
|
||||||
|
|
||||||
[node name="BaseField12" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
[node name="BaseField12" parent="YSorted/FieldParent/left" instance=ExtResource("78_xcwle")]
|
||||||
position = Vector2(14143, 3523)
|
position = Vector2(14143, 3523)
|
||||||
Payload = 25
|
Payload = 25
|
||||||
|
metadata/SaveID = "05389ea3-d19b-42fc-8bf0-b0755437ec10"
|
||||||
|
|
||||||
[node name="Farm visuals" type="Node2D" parent="YSorted"]
|
[node name="Farm visuals" type="Node2D" parent="YSorted"]
|
||||||
position = Vector2(-60, 122)
|
position = Vector2(-60, 122)
|
||||||
@@ -1247,11 +1237,11 @@ 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" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("27_klb81")]
|
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")]
|
||||||
position = Vector2(5834, 2354)
|
position = Vector2(5834, 2354)
|
||||||
scale = Vector2(2.425, 2.425)
|
scale = Vector2(2.425, 2.425)
|
||||||
_spritesToOutline = [NodePath("DoorSprite")]
|
|
||||||
_id = 0
|
_id = 0
|
||||||
|
metadata/SaveID = "5a93071f-c1ab-4b4b-b74e-a6324d44ddf8"
|
||||||
|
|
||||||
[node name="DoorSprite" type="Sprite2D" parent="YSorted/Farm visuals/Static/EnterHouseInteraction"]
|
[node name="DoorSprite" type="Sprite2D" parent="YSorted/Farm visuals/Static/EnterHouseInteraction"]
|
||||||
position = Vector2(0.412364, -33.1959)
|
position = Vector2(0.412364, -33.1959)
|
||||||
@@ -2223,6 +2213,7 @@ shape = SubResource("RectangleShape2D_ycj14")
|
|||||||
position = Vector2(11234, 1850)
|
position = Vector2(11234, 1850)
|
||||||
_spritesToOutline = [NodePath("Fence Door")]
|
_spritesToOutline = [NodePath("Fence Door")]
|
||||||
_id = 1
|
_id = 1
|
||||||
|
metadata/SaveID = "6ee77256-42af-49c9-a3f2-cf167853f6fb"
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/Blocker/InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/Blocker/InteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_l7ekk")
|
shape = SubResource("CircleShape2D_l7ekk")
|
||||||
@@ -2243,7 +2234,6 @@ position = Vector2(-113.561, 193.035)
|
|||||||
shape = SubResource("RectangleShape2D_2vojv")
|
shape = SubResource("RectangleShape2D_2vojv")
|
||||||
|
|
||||||
[node name="ducks" type="Node2D" parent="YSorted"]
|
[node name="ducks" type="Node2D" parent="YSorted"]
|
||||||
visible = false
|
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("49_uxa2m")
|
script = ExtResource("49_uxa2m")
|
||||||
@@ -2254,12 +2244,14 @@ z_index = 0
|
|||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(4374, 2652)
|
position = Vector2(4374, 2652)
|
||||||
_penTarget = NodePath("../../pen/penSlot1")
|
_penTarget = NodePath("../../pen/penSlot1")
|
||||||
|
metadata/SaveID = "348bd0e3-1da5-4f10-84ab-b0444e99d541"
|
||||||
|
|
||||||
[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
|
z_index = 0
|
||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(9259, 3194)
|
position = Vector2(9259, 3194)
|
||||||
_penTarget = NodePath("../../pen/penSlot2")
|
_penTarget = NodePath("../../pen/penSlot2")
|
||||||
|
metadata/SaveID = "94c8a740-2745-4162-91e7-66f36b8681e0"
|
||||||
|
|
||||||
[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
|
z_index = 0
|
||||||
@@ -2268,6 +2260,7 @@ 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")
|
||||||
|
metadata/SaveID = "b3508312-eb61-4520-8349-e49e0e5328d3"
|
||||||
|
|
||||||
[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
|
z_index = 0
|
||||||
@@ -2276,12 +2269,14 @@ 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")
|
||||||
|
metadata/SaveID = "b73895c2-6366-4c7e-b5e2-23f3dc9485f2"
|
||||||
|
|
||||||
[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
|
z_index = 0
|
||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(232, 2862)
|
position = Vector2(232, 2862)
|
||||||
_penTarget = NodePath("../../pen/penSlot5")
|
_penTarget = NodePath("../../pen/penSlot5")
|
||||||
|
metadata/SaveID = "a963b9d2-862f-458b-be2c-9a54ec1bde90"
|
||||||
|
|
||||||
[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
|
z_index = 0
|
||||||
@@ -2290,6 +2285,7 @@ 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")
|
||||||
|
metadata/SaveID = "748aff78-10eb-4a4e-bb6d-a8ee25d472d1"
|
||||||
|
|
||||||
[node name="DialogicToggle" type="Node2D" parent="YSorted/ducks"]
|
[node name="DialogicToggle" type="Node2D" parent="YSorted/ducks"]
|
||||||
script = ExtResource("51_uxa2m")
|
script = ExtResource("51_uxa2m")
|
||||||
@@ -2320,9 +2316,9 @@ position = Vector2(-4659, 2897)
|
|||||||
position = Vector2(-5016, 3361)
|
position = Vector2(-5016, 3361)
|
||||||
|
|
||||||
[node name="trash" type="Node2D" parent="YSorted"]
|
[node name="trash" type="Node2D" parent="YSorted"]
|
||||||
visible = false
|
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
position = Vector2(-569, -42)
|
||||||
|
|
||||||
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
@@ -2336,8 +2332,10 @@ position = Vector2(3183, 2369)
|
|||||||
offset = Vector2(1, -50)
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(207, 1184, 149, 142)
|
region_rect = Rect2(207, 1184, 149, 142)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="YSorted/trash/trashObject2" index="0"]
|
[node name="InteractionArea" parent="YSorted/trash/trashObject2" index="0" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
position = Vector2(-9, -46)
|
position = Vector2(-9, -46)
|
||||||
|
_spritesToOutline = []
|
||||||
|
metadata/SaveID = "549bbcf4-ea57-4b8f-80b1-b13ca648559b"
|
||||||
|
|
||||||
[node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
@@ -2346,8 +2344,10 @@ position = Vector2(4724, 3519)
|
|||||||
offset = Vector2(1, -50)
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(400, 1053, 163, 141)
|
region_rect = Rect2(400, 1053, 163, 141)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="YSorted/trash/trashObject3" index="0"]
|
[node name="InteractionArea" parent="YSorted/trash/trashObject3" index="0" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
position = Vector2(-13, -53)
|
position = Vector2(-13, -53)
|
||||||
|
_spritesToOutline = []
|
||||||
|
metadata/SaveID = "29874314-50c1-4a21-9494-18f936d6e097"
|
||||||
|
|
||||||
[node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
@@ -2356,8 +2356,10 @@ position = Vector2(5385, 3391)
|
|||||||
offset = Vector2(1, -50)
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(1048, 1092, 348, 106)
|
region_rect = Rect2(1048, 1092, 348, 106)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="YSorted/trash/trashObject4" index="0"]
|
[node name="InteractionArea" parent="YSorted/trash/trashObject4" index="0" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
position = Vector2(0, -59)
|
position = Vector2(0, -59)
|
||||||
|
_spritesToOutline = []
|
||||||
|
metadata/SaveID = "7ccaa831-5526-40ed-8ca3-31ba2ad929a6"
|
||||||
|
|
||||||
[node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
@@ -2393,8 +2395,10 @@ rotation = 1.77025
|
|||||||
offset = Vector2(0, 0)
|
offset = Vector2(0, 0)
|
||||||
region_rect = Rect2(1048, 1092, 348, 106)
|
region_rect = Rect2(1048, 1092, 348, 106)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="YSorted/trash/trashObject9" index="0"]
|
[node name="InteractionArea" parent="YSorted/trash/trashObject9" index="0" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
position = Vector2(22.40873, 25.05658)
|
position = Vector2(22.40873, 25.05658)
|
||||||
|
_spritesToOutline = []
|
||||||
|
metadata/SaveID = "7bf227d6-3844-41e9-a9cd-524052aced3b"
|
||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]
|
||||||
|
|
||||||
@@ -2509,11 +2513,20 @@ script = ExtResource("76_l7ekk")
|
|||||||
_variableResource = ExtResource("77_xcwle")
|
_variableResource = ExtResource("77_xcwle")
|
||||||
_payloadToSet = "farmOutside"
|
_payloadToSet = "farmOutside"
|
||||||
|
|
||||||
|
[node name="SaveSystem" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="SaveGameCheat" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("79_065st")
|
||||||
|
|
||||||
|
[node name="SaveIDProvider" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("80_w1kgo")
|
||||||
|
|
||||||
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
|
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
|
||||||
[connection signal="InteractedTool" from="YSorted/Well/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
|
[connection signal="InteractedTool" from="YSorted/Well/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
|
[connection signal="SuccessfulPickUp" from="YSorted/BeetPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup2" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup2" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[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="InteractedTool" from="YSorted/Blocker/InteractionArea" to="." method="LoadSceneAtIndex"]
|
[connection signal="InteractedTool" from="YSorted/Blocker/InteractionArea" to="." method="LoadSceneAtIndex"]
|
||||||
@@ -2538,6 +2551,8 @@ _payloadToSet = "farmOutside"
|
|||||||
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/SeedPickup"]
|
[editable path="YSorted/SeedPickup"]
|
||||||
[editable path="YSorted/SeedPickup/PickupInteractionArea"]
|
[editable path="YSorted/SeedPickup/PickupInteractionArea"]
|
||||||
|
[editable path="YSorted/BeetPickup"]
|
||||||
|
[editable path="YSorted/BeetPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/SeedPickup2"]
|
[editable path="YSorted/SeedPickup2"]
|
||||||
[editable path="YSorted/SeedPickup2/PickupInteractionArea"]
|
[editable path="YSorted/SeedPickup2/PickupInteractionArea"]
|
||||||
[editable path="YSorted/Blocker/InteractionArea"]
|
[editable path="YSorted/Blocker/InteractionArea"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://cjshlwk8ajpnp"]
|
[gd_scene load_steps=20 format=3 uid="uid://cjshlwk8ajpnp"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cnhpnn8o0gybd" path="res://scripts/CSharp/Common/Fight/FightHappeningSceneSetup.cs" id="1_fiutj"]
|
[ext_resource type="Script" uid="uid://cnhpnn8o0gybd" path="res://scripts/CSharp/Common/Fight/FightHappeningSceneSetup.cs" id="1_fiutj"]
|
||||||
[ext_resource type="Script" uid="uid://c76mhhqyk4lgh" path="res://scripts/CSharp/Common/Fight/FightHappening.cs" id="1_gsk03"]
|
[ext_resource type="Script" uid="uid://c76mhhqyk4lgh" path="res://scripts/CSharp/Common/Fight/FightHappening.cs" id="1_gsk03"]
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://dwsqst8fhhqlc" path="res://scripts/CSharp/Common/Fight/AllFightersVisual.cs" id="2_lu4y4"]
|
[ext_resource type="Script" uid="uid://dwsqst8fhhqlc" path="res://scripts/CSharp/Common/Fight/AllFightersVisual.cs" id="2_lu4y4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bcld43daavmrn" path="res://prefabs/fight/fight_scene_switcher.tscn" id="2_phrlx"]
|
[ext_resource type="PackedScene" uid="uid://bcld43daavmrn" path="res://prefabs/fight/fight_scene_switcher.tscn" id="2_phrlx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://7jsxokx67gpq" path="res://prefabs/fight/fighterVisuals/vesna_fighter_visual.tscn" id="4_qo0gi"]
|
[ext_resource type="PackedScene" uid="uid://7jsxokx67gpq" path="res://prefabs/fight/fighterVisuals/vesna_fighter_visual.tscn" id="4_qo0gi"]
|
||||||
|
[ext_resource type="Script" uid="uid://cdrjvgm82pxoj" path="res://scripts/CSharp/Common/Fight/FightHappeningAnimationContext.cs" id="4_v5rv6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://0vm3jb1hnkkb" path="res://prefabs/fight/fighterVisuals/blob_fighter_visual.tscn" id="4_vp8s0"]
|
[ext_resource type="PackedScene" uid="uid://0vm3jb1hnkkb" path="res://prefabs/fight/fighterVisuals/blob_fighter_visual.tscn" id="4_vp8s0"]
|
||||||
[ext_resource type="Script" uid="uid://buiwuf7pjfq8" path="res://scripts/CSharp/Common/Fight/FightHappeningStateReaction.cs" id="4_ydj1i"]
|
[ext_resource type="Script" uid="uid://buiwuf7pjfq8" path="res://scripts/CSharp/Common/Fight/FightHappeningStateReaction.cs" id="4_ydj1i"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bydwj3pbvqrhb" path="res://prefabs/minigame/minigame.tscn" id="8_2b3cf"]
|
[ext_resource type="PackedScene" uid="uid://bydwj3pbvqrhb" path="res://prefabs/minigame/minigame.tscn" id="8_2b3cf"]
|
||||||
@@ -13,20 +14,30 @@
|
|||||||
[ext_resource type="Script" uid="uid://bwm0nhvt1083k" path="res://scripts/CSharp/Common/Fight/FightMinigameHandler.cs" id="8_falfe"]
|
[ext_resource type="Script" uid="uid://bwm0nhvt1083k" path="res://scripts/CSharp/Common/Fight/FightMinigameHandler.cs" id="8_falfe"]
|
||||||
[ext_resource type="Script" uid="uid://d2ugtb3dalrg3" path="res://scripts/CSharp/Common/Fight/FightHappeningStateDebugger.cs" id="8_tv7cl"]
|
[ext_resource type="Script" uid="uid://d2ugtb3dalrg3" path="res://scripts/CSharp/Common/Fight/FightHappeningStateDebugger.cs" id="8_tv7cl"]
|
||||||
[ext_resource type="Script" uid="uid://2f7rqk50gtdg" path="res://scripts/CSharp/Common/Fight/SwitchSceneOnFightEnd.cs" id="10_qqd8u"]
|
[ext_resource type="Script" uid="uid://2f7rqk50gtdg" path="res://scripts/CSharp/Common/Fight/SwitchSceneOnFightEnd.cs" id="10_qqd8u"]
|
||||||
|
[ext_resource type="Script" uid="uid://6nniwfxye8ss" path="res://scripts/CSharp/Common/Fight/UsedItemIndicatorVisual.cs" id="14_b4ll5"]
|
||||||
|
[ext_resource type="Script" uid="uid://71mdwp2m4rta" path="res://scripts/CSharp/Common/Fight/UI/HealButtonVisual.cs" id="14_oy2wu"]
|
||||||
|
[ext_resource type="Resource" uid="uid://0mnsr4anoaiq" path="res://resources/items/beet.tres" id="15_k4fcr"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://l1hdihubffeg" path="res://prefabs/fight/damage_flying_nuber.tscn" id="15_oy2wu"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djewfwrdt4iv3" path="res://art/ui/UI/icons/icon-fruit-beetroot.png" id="16_k4fcr"]
|
||||||
|
|
||||||
[node name="BabushkaSceneFightHappening" type="Node2D"]
|
[node name="BabushkaSceneFightHappening" type="Node2D"]
|
||||||
|
|
||||||
[node name="FightHappening" type="Node" parent="."]
|
[node name="FightHappening" type="Node" parent="."]
|
||||||
script = ExtResource("1_gsk03")
|
script = ExtResource("1_gsk03")
|
||||||
|
|
||||||
[node name="ActionAnimationController" type="Node" parent="." node_paths=PackedStringArray("_allFightersVisual")]
|
[node name="ActionAnimationController" type="Node" parent="." node_paths=PackedStringArray("_allFightersVisual", "_animationContext")]
|
||||||
script = ExtResource("2_7kjgs")
|
script = ExtResource("2_7kjgs")
|
||||||
_allFightersVisual = NodePath("../FightVisuals")
|
_allFightersVisual = NodePath("../FightVisuals")
|
||||||
|
_animationContext = NodePath("AnimationContext")
|
||||||
|
|
||||||
[node name="StateReactionActionAnimation" type="Node" parent="ActionAnimationController"]
|
[node name="StateReactionActionAnimation" type="Node" parent="ActionAnimationController"]
|
||||||
script = ExtResource("4_ydj1i")
|
script = ExtResource("4_ydj1i")
|
||||||
_fightState = 10
|
_fightState = 10
|
||||||
|
|
||||||
|
[node name="AnimationContext" type="Node" parent="ActionAnimationController" node_paths=PackedStringArray("useHealItemIndicator")]
|
||||||
|
script = ExtResource("4_v5rv6")
|
||||||
|
useHealItemIndicator = NodePath("../../UseItemIndicator")
|
||||||
|
|
||||||
[node name="Camera2D" type="Camera2D" parent="."]
|
[node name="Camera2D" type="Camera2D" parent="."]
|
||||||
|
|
||||||
[node name="FightSetup" type="Node2D" parent="."]
|
[node name="FightSetup" type="Node2D" parent="."]
|
||||||
@@ -54,6 +65,7 @@ _minigameController = NodePath("Minigame")
|
|||||||
[node name="Minigame" parent="MinigameHandler" instance=ExtResource("8_2b3cf")]
|
[node name="Minigame" parent="MinigameHandler" instance=ExtResource("8_2b3cf")]
|
||||||
process_mode = 4
|
process_mode = 4
|
||||||
visible = false
|
visible = false
|
||||||
|
position = Vector2(23, -29)
|
||||||
|
|
||||||
[node name="SwitchSceneOnFightEnd" type="Node" parent="." node_paths=PackedStringArray("_fightSceneSwitcher")]
|
[node name="SwitchSceneOnFightEnd" type="Node" parent="." node_paths=PackedStringArray("_fightSceneSwitcher")]
|
||||||
script = ExtResource("10_qqd8u")
|
script = ExtResource("10_qqd8u")
|
||||||
@@ -145,7 +157,12 @@ theme_override_constants/margin_bottom = 10
|
|||||||
[node name="Talk Button" type="Button" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer3"]
|
[node name="Talk Button" type="Button" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer3"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 41
|
theme_override_font_sizes/font_size = 41
|
||||||
text = "Talk"
|
text = "x19 - Heal"
|
||||||
|
icon = ExtResource("16_k4fcr")
|
||||||
|
alignment = 0
|
||||||
|
expand_icon = true
|
||||||
|
script = ExtResource("14_oy2wu")
|
||||||
|
_healItemBlueprint = ExtResource("15_k4fcr")
|
||||||
|
|
||||||
[node name="MarginContainer4" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer"]
|
[node name="MarginContainer4" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -167,6 +184,7 @@ theme_override_constants/margin_left = 200
|
|||||||
theme_override_constants/margin_right = 200
|
theme_override_constants/margin_right = 200
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer2"]
|
[node name="MarginContainer" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer2"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/margin_left = 10
|
theme_override_constants/margin_left = 10
|
||||||
theme_override_constants/margin_top = 10
|
theme_override_constants/margin_top = 10
|
||||||
@@ -190,6 +208,7 @@ _label = NodePath("Label")
|
|||||||
_current = NodePath("Current")
|
_current = NodePath("Current")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="StateMachineDebugger"]
|
[node name="Label" type="Label" parent="StateMachineDebugger"]
|
||||||
|
visible = false
|
||||||
offset_left = -982.0
|
offset_left = -982.0
|
||||||
offset_top = -497.0
|
offset_top = -497.0
|
||||||
offset_right = -893.0
|
offset_right = -893.0
|
||||||
@@ -197,12 +216,19 @@ offset_bottom = -474.0
|
|||||||
text = "Hello world"
|
text = "Hello world"
|
||||||
|
|
||||||
[node name="Current" type="Label" parent="StateMachineDebugger"]
|
[node name="Current" type="Label" parent="StateMachineDebugger"]
|
||||||
|
visible = false
|
||||||
offset_left = 705.0
|
offset_left = 705.0
|
||||||
offset_top = -495.0
|
offset_top = -495.0
|
||||||
offset_right = 794.0
|
offset_right = 794.0
|
||||||
offset_bottom = -472.0
|
offset_bottom = -472.0
|
||||||
text = "Hello world"
|
text = "Hello world"
|
||||||
|
|
||||||
|
[node name="UseItemIndicator" type="Node2D" parent="."]
|
||||||
|
position = Vector2(214, 319)
|
||||||
|
script = ExtResource("14_b4ll5")
|
||||||
|
_flyingIndicatorPrefab = ExtResource("15_oy2wu")
|
||||||
|
_itemTexture = ExtResource("16_k4fcr")
|
||||||
|
|
||||||
[connection signal="SignalTransitionState" from="FightHappening" to="ActionAnimationController/StateReactionActionAnimation" method="FightHappeningStateTransitioned"]
|
[connection signal="SignalTransitionState" from="FightHappening" to="ActionAnimationController/StateReactionActionAnimation" method="FightHappeningStateTransitioned"]
|
||||||
[connection signal="SignalTransitionState" from="FightHappening" to="FightVisuals" method="FightHappeningStateChange"]
|
[connection signal="SignalTransitionState" from="FightHappening" to="FightVisuals" method="FightHappeningStateChange"]
|
||||||
[connection signal="SignalTransitionState" from="FightHappening" to="ActionSelect/StateReactionInputActionSelect" method="FightHappeningStateTransitioned"]
|
[connection signal="SignalTransitionState" from="FightHappening" to="ActionSelect/StateReactionInputActionSelect" method="FightHappeningStateTransitioned"]
|
||||||
@@ -217,4 +243,5 @@ text = "Hello world"
|
|||||||
[connection signal="pressed" from="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer4/Flee Button" to="ActionSelect" method="SelectAction" binds= [4]]
|
[connection signal="pressed" from="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer4/Flee Button" to="ActionSelect" method="SelectAction" binds= [4]]
|
||||||
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="show"]
|
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="show"]
|
||||||
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="StateEntered"]
|
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="StateEntered"]
|
||||||
|
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer3/Talk Button" method="UpdateText"]
|
||||||
[connection signal="OnStateExited" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="hide"]
|
[connection signal="OnStateExited" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="hide"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=53 format=3 uid="uid://cacnapfv7w567"]
|
[gd_scene load_steps=52 format=3 uid="uid://cacnapfv7w567"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="1_pi6ua"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="1_pi6ua"]
|
||||||
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_hqa4k"]
|
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_hqa4k"]
|
||||||
@@ -23,9 +23,8 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://bmjjfd5ngptxe" path="res://art/nature/baum märz 2025/backtreebois team kennedy.png" id="21_mlqvj"]
|
[ext_resource type="Texture2D" uid="uid://bmjjfd5ngptxe" path="res://art/nature/baum märz 2025/backtreebois team kennedy.png" id="21_mlqvj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bcw6oeovkmiup" path="res://art/nature/baum märz 2025/sonnenblumeseamless.png" id="22_22c4u"]
|
[ext_resource type="Texture2D" uid="uid://bcw6oeovkmiup" path="res://art/nature/baum märz 2025/sonnenblumeseamless.png" id="22_22c4u"]
|
||||||
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="23_2ouqg"]
|
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="23_2ouqg"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="24_ffcio"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="24_ffcio"]
|
||||||
[ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="25_3h260"]
|
[ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="25_3h260"]
|
||||||
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="26_1bhpp"]
|
|
||||||
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="27_txtka"]
|
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="27_txtka"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dgavbfci8x178" path="res://art/nature/grass/grass-1.png" id="28_ejigw"]
|
[ext_resource type="Texture2D" uid="uid://dgavbfci8x178" path="res://art/nature/grass/grass-1.png" id="28_ejigw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://h2b5aufaaw7w" path="res://art/nature/grass/grass-2.png" id="29_pjemw"]
|
[ext_resource type="Texture2D" uid="uid://h2b5aufaaw7w" path="res://art/nature/grass/grass-2.png" id="29_pjemw"]
|
||||||
@@ -41,14 +40,15 @@
|
|||||||
[ext_resource type="Script" uid="uid://dbu8afaiohpdh" path="res://scripts/CSharp/Common/Fight/FightRoomSceneSetup.cs" id="40_cvg1r"]
|
[ext_resource type="Script" uid="uid://dbu8afaiohpdh" path="res://scripts/CSharp/Common/Fight/FightRoomSceneSetup.cs" id="40_cvg1r"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bcld43daavmrn" path="res://prefabs/fight/fight_scene_switcher.tscn" id="40_elhbh"]
|
[ext_resource type="PackedScene" uid="uid://bcld43daavmrn" path="res://prefabs/fight/fight_scene_switcher.tscn" id="40_elhbh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://qfdiudt3vpai" path="res://prefabs/fight/roaming_enemy_group.tscn" id="41_cvg1r"]
|
[ext_resource type="PackedScene" uid="uid://qfdiudt3vpai" path="res://prefabs/fight/roaming_enemy_group.tscn" id="41_cvg1r"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="41_x3yi1"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ruj2u"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ruj2u"]
|
||||||
shader = ExtResource("16_0fard")
|
shader = ExtResource("16_0fard")
|
||||||
shader_parameter/hue_shift = 0.0
|
shader_parameter/hue_shift = 0.0
|
||||||
shader_parameter/saturation_mult = 0.603
|
shader_parameter/saturation_mult = 0.603
|
||||||
shader_parameter/value_mult = 1.0
|
shader_parameter/value_mult = 1.0
|
||||||
shader_parameter/brightness_add = 0.0
|
shader_parameter/brightness_add = -0.4369999732574999
|
||||||
shader_parameter/contrast_mult = 1.0
|
shader_parameter/contrast_mult = 1.138000054055
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_q1iw4"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_q1iw4"]
|
||||||
shader = ExtResource("16_0fard")
|
shader = ExtResource("16_0fard")
|
||||||
@@ -59,14 +59,15 @@ shader_parameter/brightness_add = 0.0
|
|||||||
shader_parameter/contrast_mult = 1.0
|
shader_parameter/contrast_mult = 1.0
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_663j1"]
|
[sub_resource type="Gradient" id="Gradient_663j1"]
|
||||||
colors = PackedColorArray(0.348791, 0.400092, 0.435264, 1, 0.219333, 0.251087, 0.329259, 1)
|
offsets = PackedFloat32Array(0, 0.994302)
|
||||||
|
colors = PackedColorArray(0.20454055, 0.23990041, 0.2641038, 1, 0.058763355, 0.07233205, 0.105805494, 1)
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_d5x6a"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_d5x6a"]
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_d53cn"]
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_d53cn"]
|
||||||
seamless = true
|
|
||||||
color_ramp = SubResource("Gradient_663j1")
|
|
||||||
noise = SubResource("FastNoiseLite_d5x6a")
|
noise = SubResource("FastNoiseLite_d5x6a")
|
||||||
|
color_ramp = SubResource("Gradient_663j1")
|
||||||
|
seamless = true
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_k0jkw"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_k0jkw"]
|
||||||
shader = ExtResource("23_2ouqg")
|
shader = ExtResource("23_2ouqg")
|
||||||
@@ -74,8 +75,7 @@ shader_parameter/tiling_scale = Vector2(7.79, 5.2)
|
|||||||
shader_parameter/noise = SubResource("NoiseTexture2D_d53cn")
|
shader_parameter/noise = SubResource("NoiseTexture2D_d53cn")
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_eryax"]
|
[sub_resource type="Gradient" id="Gradient_eryax"]
|
||||||
offsets = PackedFloat32Array(0, 0.743902, 1)
|
colors = PackedColorArray(0.10571728, 0.039839525, 0.07500812, 1, 0.2610917, 0.24536225, 0.33510962, 1)
|
||||||
colors = PackedColorArray(0.22, 0.1078, 0.16764, 1, 0.443137, 0.4, 0.360784, 1, 0.6, 0.4853, 0.414, 1)
|
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wgikv"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wgikv"]
|
||||||
frequency = 0.0296
|
frequency = 0.0296
|
||||||
@@ -84,9 +84,9 @@ fractal_gain = 0.795
|
|||||||
domain_warp_enabled = true
|
domain_warp_enabled = true
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_pjpt5"]
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_pjpt5"]
|
||||||
seamless = true
|
|
||||||
color_ramp = SubResource("Gradient_eryax")
|
|
||||||
noise = SubResource("FastNoiseLite_wgikv")
|
noise = SubResource("FastNoiseLite_wgikv")
|
||||||
|
color_ramp = SubResource("Gradient_eryax")
|
||||||
|
seamless = true
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yvxfs"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yvxfs"]
|
||||||
shader = ExtResource("27_txtka")
|
shader = ExtResource("27_txtka")
|
||||||
@@ -125,7 +125,7 @@ motion_scale = Vector2(0.1, 0.1)
|
|||||||
motion_mirroring = Vector2(2048, 0)
|
motion_mirroring = Vector2(2048, 0)
|
||||||
|
|
||||||
[node name="Sprite2D2" type="Sprite2D" parent="ParallaxBackground/background color layer"]
|
[node name="Sprite2D2" type="Sprite2D" parent="ParallaxBackground/background color layer"]
|
||||||
modulate = Color(0.5607, 0.89, 0.675955, 1)
|
modulate = Color(0.11449895, 0.25957486, 0.33625737, 1)
|
||||||
z_index = -500
|
z_index = -500
|
||||||
position = Vector2(4096, 0)
|
position = Vector2(4096, 0)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
@@ -134,7 +134,7 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="Sprite2D3" type="Sprite2D" parent="ParallaxBackground/background color layer"]
|
[node name="Sprite2D3" type="Sprite2D" parent="ParallaxBackground/background color layer"]
|
||||||
modulate = Color(0.5607, 0.89, 0.675955, 1)
|
modulate = Color(0.11449895, 0.25957486, 0.33625737, 1)
|
||||||
z_index = -500
|
z_index = -500
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("2_hqa4k")
|
texture = ExtResource("2_hqa4k")
|
||||||
@@ -142,7 +142,7 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="Sprite2D4" type="Sprite2D" parent="ParallaxBackground/background color layer"]
|
[node name="Sprite2D4" type="Sprite2D" parent="ParallaxBackground/background color layer"]
|
||||||
modulate = Color(0.5607, 0.89, 0.675955, 1)
|
modulate = Color(0.11449895, 0.25957486, 0.33625737, 1)
|
||||||
z_index = -500
|
z_index = -500
|
||||||
position = Vector2(8192, 0)
|
position = Vector2(8192, 0)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
@@ -151,6 +151,7 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="clouds layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="clouds layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
modulate = Color(0.26657522, 0.2665752, 0.2665752, 1)
|
||||||
position = Vector2(-7, -138)
|
position = Vector2(-7, -138)
|
||||||
motion_scale = Vector2(0.2, 0.2)
|
motion_scale = Vector2(0.2, 0.2)
|
||||||
motion_mirroring = Vector2(7000, 0)
|
motion_mirroring = Vector2(7000, 0)
|
||||||
@@ -188,6 +189,7 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
modulate = Color(0, 0.42227474, 0.4229499, 1)
|
||||||
position = Vector2(18, -713)
|
position = Vector2(18, -713)
|
||||||
motion_scale = Vector2(0.25, 0.25)
|
motion_scale = Vector2(0.25, 0.25)
|
||||||
motion_mirroring = Vector2(5424, 0)
|
motion_mirroring = Vector2(5424, 0)
|
||||||
@@ -442,7 +444,7 @@ motion_scale = Vector2(0.7, 0.7)
|
|||||||
motion_mirroring = Vector2(9965, 0)
|
motion_mirroring = Vector2(9965, 0)
|
||||||
|
|
||||||
[node name="hills" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="hills" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
modulate = Color(0.345703, 0.360648, 0.242876, 1)
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
position = Vector2(993, 1576)
|
position = Vector2(993, 1576)
|
||||||
scale = Vector2(5, 5)
|
scale = Vector2(5, 5)
|
||||||
texture = ExtResource("7_x3yi1")
|
texture = ExtResource("7_x3yi1")
|
||||||
@@ -450,7 +452,7 @@ centered = false
|
|||||||
offset = Vector2(-200, -80)
|
offset = Vector2(-200, -80)
|
||||||
|
|
||||||
[node name="hills 1" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="hills 1" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
modulate = Color(0.345703, 0.360648, 0.242876, 1)
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
position = Vector2(5961, 1582)
|
position = Vector2(5961, 1582)
|
||||||
scale = Vector2(5, 5)
|
scale = Vector2(5, 5)
|
||||||
texture = ExtResource("8_kcbkm")
|
texture = ExtResource("8_kcbkm")
|
||||||
@@ -458,6 +460,7 @@ centered = false
|
|||||||
offset = Vector2(-200, -80)
|
offset = Vector2(-200, -80)
|
||||||
|
|
||||||
[node name="tree" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(3017.3, 536.15)
|
position = Vector2(3017.3, 536.15)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -466,6 +469,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(770, 3, 304, 979)
|
region_rect = Rect2(770, 3, 304, 979)
|
||||||
|
|
||||||
[node name="tree2" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree2" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(1807.5, 1408)
|
position = Vector2(1807.5, 1408)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -474,6 +478,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(399, 420, 228, 493)
|
region_rect = Rect2(399, 420, 228, 493)
|
||||||
|
|
||||||
[node name="tree4" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree4" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(3321.3, 600.15)
|
position = Vector2(3321.3, 600.15)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -482,6 +487,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1770, -4, 289, 930)
|
region_rect = Rect2(1770, -4, 289, 930)
|
||||||
|
|
||||||
[node name="tree11" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree11" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(460, 622)
|
position = Vector2(460, 622)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -490,6 +496,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1770, -4, 289, 930)
|
region_rect = Rect2(1770, -4, 289, 930)
|
||||||
|
|
||||||
[node name="tree5" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree5" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(5081.3, 696.15)
|
position = Vector2(5081.3, 696.15)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -498,6 +505,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(2283, 2, 186, 840)
|
region_rect = Rect2(2283, 2, 186, 840)
|
||||||
|
|
||||||
[node name="tree10" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree10" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(8470, 694)
|
position = Vector2(8470, 694)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -506,6 +514,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(2283, 2, 186, 840)
|
region_rect = Rect2(2283, 2, 186, 840)
|
||||||
|
|
||||||
[node name="tree3" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree3" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(6596.8, 1566.35)
|
position = Vector2(6596.8, 1566.35)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -514,6 +523,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(399, 420, 228, 493)
|
region_rect = Rect2(399, 420, 228, 493)
|
||||||
|
|
||||||
[node name="tree8" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree8" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(8110.6, 758.5)
|
position = Vector2(8110.6, 758.5)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -522,6 +532,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1770, -4, 289, 930)
|
region_rect = Rect2(1770, -4, 289, 930)
|
||||||
|
|
||||||
[node name="tree9" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree9" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(10240, 850)
|
position = Vector2(10240, 850)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -530,6 +541,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(2283, 2, 186, 840)
|
region_rect = Rect2(2283, 2, 186, 840)
|
||||||
|
|
||||||
[node name="tree6" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree6" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(5641.3, 1168.15)
|
position = Vector2(5641.3, 1168.15)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -538,6 +550,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(2609, 434, 304, 467)
|
region_rect = Rect2(2609, 434, 304, 467)
|
||||||
|
|
||||||
[node name="tree7" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="tree7" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(5161.3, 608.15)
|
position = Vector2(5161.3, 608.15)
|
||||||
scale = Vector2(1.7, 1.7)
|
scale = Vector2(1.7, 1.7)
|
||||||
@@ -546,6 +559,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(3111, -4, 167, 949)
|
region_rect = Rect2(3111, -4, 167, 949)
|
||||||
|
|
||||||
[node name="bush" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="bush" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(3239.5, 1288)
|
position = Vector2(3239.5, 1288)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
@@ -553,6 +567,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(149, 15, 464, 478)
|
region_rect = Rect2(149, 15, 464, 478)
|
||||||
|
|
||||||
[node name="bush2" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="bush2" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(1791.5, 1448)
|
position = Vector2(1791.5, 1448)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
@@ -561,6 +576,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(130, 0, 201, 278)
|
region_rect = Rect2(130, 0, 201, 278)
|
||||||
|
|
||||||
[node name="bush3" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="bush3" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(1255.5, 1392)
|
position = Vector2(1255.5, 1392)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
@@ -569,6 +585,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(0, 604, 248, 228)
|
region_rect = Rect2(0, 604, 248, 228)
|
||||||
|
|
||||||
[node name="bush4" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="bush4" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(5471.5, 1432)
|
position = Vector2(5471.5, 1432)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
@@ -577,6 +594,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1837, 651, 139, 180)
|
region_rect = Rect2(1837, 651, 139, 180)
|
||||||
|
|
||||||
[node name="bush5" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="bush5" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(5007.5, 1312)
|
position = Vector2(5007.5, 1312)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
@@ -584,6 +602,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
[node name="bush6" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
[node name="bush6" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
|
||||||
|
modulate = Color(0.15348598, 0.1618683, 0.098344676, 1)
|
||||||
material = SubResource("ShaderMaterial_q1iw4")
|
material = SubResource("ShaderMaterial_q1iw4")
|
||||||
position = Vector2(3583.5, 1248)
|
position = Vector2(3583.5, 1248)
|
||||||
scale = Vector2(0.575, 0.575)
|
scale = Vector2(0.575, 0.575)
|
||||||
@@ -597,7 +616,7 @@ position = Vector2(28, -28)
|
|||||||
motion_mirroring = Vector2(10000, 0)
|
motion_mirroring = Vector2(10000, 0)
|
||||||
|
|
||||||
[node name="tree" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(1483.7, 800)
|
position = Vector2(1483.7, 800)
|
||||||
scale = Vector2(1.6, 1.6)
|
scale = Vector2(1.6, 1.6)
|
||||||
@@ -606,7 +625,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(-2, -5, 911, 1386)
|
region_rect = Rect2(-2, -5, 911, 1386)
|
||||||
|
|
||||||
[node name="tree2" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree2" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(771.7, 664)
|
position = Vector2(771.7, 664)
|
||||||
scale = Vector2(1.6, 1.6)
|
scale = Vector2(1.6, 1.6)
|
||||||
@@ -615,7 +634,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(0, 4, 604, 1363)
|
region_rect = Rect2(0, 4, 604, 1363)
|
||||||
|
|
||||||
[node name="tree3" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree3" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(1763.7, 728)
|
position = Vector2(1763.7, 728)
|
||||||
scale = Vector2(1.6, 1.6)
|
scale = Vector2(1.6, 1.6)
|
||||||
@@ -624,7 +643,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(626, -4, 711, 1519)
|
region_rect = Rect2(626, -4, 711, 1519)
|
||||||
|
|
||||||
[node name="tree12" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree12" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(9464, 731)
|
position = Vector2(9464, 731)
|
||||||
scale = Vector2(1.6, 1.6)
|
scale = Vector2(1.6, 1.6)
|
||||||
@@ -633,7 +652,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(626, -4, 711, 1519)
|
region_rect = Rect2(626, -4, 711, 1519)
|
||||||
|
|
||||||
[node name="tree4" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree4" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(2939.7, 752)
|
position = Vector2(2939.7, 752)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -642,7 +661,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1504, -2, 402, 1124)
|
region_rect = Rect2(1504, -2, 402, 1124)
|
||||||
|
|
||||||
[node name="tree5" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree5" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(3683.7, 800)
|
position = Vector2(3683.7, 800)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -651,7 +670,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(927, -1, 736, 1294)
|
region_rect = Rect2(927, -1, 736, 1294)
|
||||||
|
|
||||||
[node name="tree6" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree6" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(115.7, 608)
|
position = Vector2(115.7, 608)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -660,7 +679,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1834, -5, 733, 1360)
|
region_rect = Rect2(1834, -5, 733, 1360)
|
||||||
|
|
||||||
[node name="tree7" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree7" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(6259.7, 728)
|
position = Vector2(6259.7, 728)
|
||||||
scale = Vector2(1.6, 1.6)
|
scale = Vector2(1.6, 1.6)
|
||||||
@@ -669,7 +688,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(626, -4, 711, 1519)
|
region_rect = Rect2(626, -4, 711, 1519)
|
||||||
|
|
||||||
[node name="tree8" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree8" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(7435.7, 752)
|
position = Vector2(7435.7, 752)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -678,7 +697,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1504, -2, 402, 1124)
|
region_rect = Rect2(1504, -2, 402, 1124)
|
||||||
|
|
||||||
[node name="tree11" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree11" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(9092, 636)
|
position = Vector2(9092, 636)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -687,7 +706,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1504, -2, 402, 1124)
|
region_rect = Rect2(1504, -2, 402, 1124)
|
||||||
|
|
||||||
[node name="tree9" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree9" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(8179.7, 800)
|
position = Vector2(8179.7, 800)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -696,7 +715,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(927, -1, 736, 1294)
|
region_rect = Rect2(927, -1, 736, 1294)
|
||||||
|
|
||||||
[node name="tree10" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
[node name="tree10" type="Sprite2D" parent="ParallaxBackground/back tree bois layer 5"]
|
||||||
modulate = Color(0.674561, 0.721424, 0.744786, 1)
|
modulate = Color(0.2821873, 0.32191858, 0.34160244, 1)
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(4611.7, 608)
|
position = Vector2(4611.7, 608)
|
||||||
scale = Vector2(1.8, 1.8)
|
scale = Vector2(1.8, 1.8)
|
||||||
@@ -734,6 +753,7 @@ texture = SubResource("NoiseTexture2D_pjpt5")
|
|||||||
layer = 1
|
layer = 1
|
||||||
|
|
||||||
[node name="fg1" type="ParallaxLayer" parent="ParalaxForeground"]
|
[node name="fg1" type="ParallaxLayer" parent="ParalaxForeground"]
|
||||||
|
modulate = Color(0.12842685, 0.3583113, 0.5046753, 1)
|
||||||
position = Vector2(-897, -245)
|
position = Vector2(-897, -245)
|
||||||
motion_scale = Vector2(1.2, 1.2)
|
motion_scale = Vector2(1.2, 1.2)
|
||||||
motion_mirroring = Vector2(8192, 0)
|
motion_mirroring = Vector2(8192, 0)
|
||||||
@@ -759,13 +779,11 @@ region_enabled = true
|
|||||||
region_rect = Rect2(0, 0, 1405.76, 1244)
|
region_rect = Rect2(0, 0, 1405.76, 1244)
|
||||||
|
|
||||||
[node name="YSorted" type="Node2D" parent="."]
|
[node name="YSorted" type="Node2D" parent="."]
|
||||||
z_index = 1
|
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="Vesna" parent="YSorted" instance=ExtResource("24_ffcio")]
|
[node name="Vesna" parent="YSorted" instance=ExtResource("24_ffcio")]
|
||||||
position = Vector2(8202, 1950)
|
position = Vector2(8202, 1950)
|
||||||
_hoe = ExtResource("25_3h260")
|
_hoe = ExtResource("25_3h260")
|
||||||
_wateringCan = ExtResource("26_1bhpp")
|
|
||||||
|
|
||||||
[node name="CharacterBody2D" parent="YSorted/Vesna" index="0"]
|
[node name="CharacterBody2D" parent="YSorted/Vesna" index="0"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
@@ -776,12 +794,11 @@ y_sort_enabled = true
|
|||||||
[node name="Animated Sprites" parent="YSorted/Vesna/CharacterBody2D/visuals" index="0"]
|
[node name="Animated Sprites" parent="YSorted/Vesna/CharacterBody2D/visuals" index="0"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
animation = &"diagonal item"
|
animation = &"diagonal item"
|
||||||
|
frame = 0
|
||||||
frame_progress = 0.0
|
frame_progress = 0.0
|
||||||
|
|
||||||
[node name="WateringCanUI" parent="YSorted/Vesna/CharacterBody2D" index="2" node_paths=PackedStringArray("_stages")]
|
|
||||||
_stages = [null, null, null, null, null, null]
|
|
||||||
|
|
||||||
[node name="ForestVisuals" type="Node2D" parent="YSorted"]
|
[node name="ForestVisuals" type="Node2D" parent="YSorted"]
|
||||||
|
modulate = Color(0.44591373, 0.17877698, 0.19915006, 1)
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-60, -250)
|
position = Vector2(-60, -250)
|
||||||
|
|
||||||
@@ -864,10 +881,9 @@ region_rect = Rect2(1699, 76, 280, 230)
|
|||||||
[node name="bush4" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/left side"]
|
[node name="bush4" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/left side"]
|
||||||
modulate = Color(0.8428, 0.8771, 0.98, 1)
|
modulate = Color(0.8428, 0.8771, 0.98, 1)
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(16878, 2099)
|
position = Vector2(16912, 1803)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(0, 604, 248, 228)
|
region_rect = Rect2(0, 604, 248, 228)
|
||||||
|
|
||||||
@@ -1062,10 +1078,9 @@ position = Vector2(13188, 30)
|
|||||||
[node name="bush" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(4360, 2049)
|
position = Vector2(4383, 1691)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -237)
|
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(130, 0, 201, 278)
|
region_rect = Rect2(130, 0, 201, 278)
|
||||||
|
|
||||||
@@ -1093,10 +1108,10 @@ region_rect = Rect2(130, 0, 201, 278)
|
|||||||
[node name="bush7" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush7" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(5051, 2217)
|
position = Vector2(5060, 1855)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -237)
|
offset = Vector2(-4.5, -56)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
@@ -1104,20 +1119,20 @@ region_rect = Rect2(1368, 673, 186, 136)
|
|||||||
modulate = Color(0.8428, 0.8771, 0.98, 1)
|
modulate = Color(0.8428, 0.8771, 0.98, 1)
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(4008, 2250)
|
position = Vector2(4015, 1894)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -237)
|
offset = Vector2(-3.5, -59)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
[node name="bush9" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush9" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(5325, 2263)
|
position = Vector2(5324.6553, 1847.6593)
|
||||||
scale = Vector2(-1.86739, 2.34145)
|
scale = Vector2(-1.86739, 2.34145)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -237)
|
offset = Vector2(-0.18457031, -59.61389)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
@@ -1135,20 +1150,20 @@ region_rect = Rect2(1699, 76, 280, 230)
|
|||||||
[node name="bush4" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush4" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(7361, 2026)
|
position = Vector2(7369, 1881)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(-4, -99.5)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(0, 604, 248, 228)
|
region_rect = Rect2(0, 604, 248, 228)
|
||||||
|
|
||||||
[node name="bush10" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush10" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(7757, 2032)
|
position = Vector2(7747, 1840)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(5, -76)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1837, 651, 139, 180)
|
region_rect = Rect2(1837, 651, 139, 180)
|
||||||
|
|
||||||
@@ -1177,20 +1192,20 @@ region_rect = Rect2(1837, 651, 139, 180)
|
|||||||
[node name="bush11" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush11" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(8981, 2112)
|
position = Vector2(9010, 1845)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(-14.5, -38.5)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1464, 419, 144, 115)
|
region_rect = Rect2(1464, 419, 144, 115)
|
||||||
|
|
||||||
[node name="bush12" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush12" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(9208, 2026)
|
position = Vector2(9267, 1881)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(-29.5, -99.5)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1699, 76, 280, 230)
|
region_rect = Rect2(1699, 76, 280, 230)
|
||||||
|
|
||||||
@@ -1232,40 +1247,39 @@ region_rect = Rect2(130, 0, 201, 278)
|
|||||||
modulate = Color(0.8428, 0.8771, 0.98, 1)
|
modulate = Color(0.8428, 0.8771, 0.98, 1)
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(3348, 2074)
|
position = Vector2(3343, 1522.0002)
|
||||||
scale = Vector2(-2.40318, 3.59175)
|
scale = Vector2(-2.40318, 3.59175)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(130, 0, 201, 278)
|
region_rect = Rect2(130, 0, 201, 278)
|
||||||
|
|
||||||
[node name="bush17" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush17" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(9556, 2071)
|
position = Vector2(9542.094, 1883.9717)
|
||||||
scale = Vector2(-2.40318, 3.59175)
|
scale = Vector2(-2.40318, 3.59175)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(-5.786621, -119.928345)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(130, 0, 201, 278)
|
region_rect = Rect2(130, 0, 201, 278)
|
||||||
|
|
||||||
[node name="bush18" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush18" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(9887, 2216)
|
position = Vector2(9879.163, 1914.8691)
|
||||||
scale = Vector2(-1.87764, 2.59175)
|
scale = Vector2(-1.87764, 2.59175)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(-4.173828, -55.811768)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
[node name="bush19" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush19" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(10074, 2216)
|
position = Vector2(10073, 1998)
|
||||||
scale = Vector2(1.53273, 1.82378)
|
scale = Vector2(1.53273, 1.82378)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(0.65234375, -52.468018)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
@@ -1313,10 +1327,10 @@ region_rect = Rect2(1368, 673, 186, 136)
|
|||||||
[node name="bush26" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
[node name="bush26" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/right side"]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(10963, 3651)
|
position = Vector2(10960.999, 3436)
|
||||||
scale = Vector2(1.41694, 1.75208)
|
scale = Vector2(1.41694, 1.75208)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(1.4121094, -49.288696)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1368, 673, 186, 136)
|
region_rect = Rect2(1368, 673, 186, 136)
|
||||||
|
|
||||||
@@ -1335,10 +1349,10 @@ region_rect = Rect2(0, 604, 248, 228)
|
|||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_yvxfs")
|
material = SubResource("ShaderMaterial_yvxfs")
|
||||||
position = Vector2(10963, 3820)
|
position = Vector2(10960.506, 3678.0952)
|
||||||
scale = Vector2(-1.93815, 1.5875)
|
scale = Vector2(-1.93815, 1.5875)
|
||||||
texture = ExtResource("19_edja8")
|
texture = ExtResource("19_edja8")
|
||||||
offset = Vector2(0, -172)
|
offset = Vector2(-1.2871094, -82.611084)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1837, 651, 139, 180)
|
region_rect = Rect2(1837, 651, 139, 180)
|
||||||
|
|
||||||
@@ -1568,9 +1582,10 @@ region_rect = Rect2(332, 194, 179, 154)
|
|||||||
[node name="grass3" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/grass"]
|
[node name="grass3" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/grass"]
|
||||||
modulate = Color(0.954868, 0.882599, 0.798501, 1)
|
modulate = Color(0.954868, 0.882599, 0.798501, 1)
|
||||||
z_index = -5
|
z_index = -5
|
||||||
position = Vector2(18189, 1960)
|
position = Vector2(18274, 1857)
|
||||||
scale = Vector2(5.77602, 3.87779)
|
scale = Vector2(5.77602, 3.87779)
|
||||||
texture = ExtResource("30_cmmg6")
|
texture = ExtResource("30_cmmg6")
|
||||||
|
offset = Vector2(-14.715942, 26.561523)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(7, 4, 256, 220)
|
region_rect = Rect2(7, 4, 256, 220)
|
||||||
|
|
||||||
@@ -1670,10 +1685,11 @@ region_rect = Rect2(7, 4, 267, 239)
|
|||||||
|
|
||||||
[node name="grass40" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/grass"]
|
[node name="grass40" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/grass"]
|
||||||
z_index = -5
|
z_index = -5
|
||||||
position = Vector2(23915, 3644)
|
position = Vector2(24144.207, 3443.7068)
|
||||||
rotation = 3.40339
|
rotation = 3.40339
|
||||||
scale = Vector2(5.52625, 5.81879)
|
scale = Vector2(5.52625, 5.81879)
|
||||||
texture = ExtResource("29_pjemw")
|
texture = ExtResource("29_pjemw")
|
||||||
|
offset = Vector2(30.682373, -43.44397)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(317, 219, 185, 159)
|
region_rect = Rect2(317, 219, 185, 159)
|
||||||
|
|
||||||
@@ -1751,9 +1767,10 @@ region_rect = Rect2(29, 204, 219, 159)
|
|||||||
[node name="grass52" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/grass"]
|
[node name="grass52" type="Sprite2D" parent="YSorted/ForestVisuals/Static/greenery/grass"]
|
||||||
modulate = Color(0.856076, 0.855033, 0.937369, 1)
|
modulate = Color(0.856076, 0.855033, 0.937369, 1)
|
||||||
z_index = -5
|
z_index = -5
|
||||||
position = Vector2(23634, 2698)
|
position = Vector2(23751, 2994)
|
||||||
scale = Vector2(5.35495, 4.49236)
|
scale = Vector2(5.35495, 4.49236)
|
||||||
texture = ExtResource("29_pjemw")
|
texture = ExtResource("29_pjemw")
|
||||||
|
offset = Vector2(-21.848877, -65.88965)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(29, 204, 219, 159)
|
region_rect = Rect2(29, 204, 219, 159)
|
||||||
|
|
||||||
@@ -1981,6 +1998,7 @@ region_rect = Rect2(1483.92, 1280.2, 1139.55, 367.598)
|
|||||||
polygon = PackedVector2Array(6564, 1921, 8663, 1938, 15008, 1914, 15121, 2882, 15601, 3074, 15636, 3574, 14122, 3569, 12930, 3737, 11502, 3599, 9887, 3658, 7936, 3924, 7712, 2967, 6529, 2914, 4412, 2953, 3919, 4843, 7970, 4459, 16532, 4289, 16365, 821, 4540, 1141, 4392, 2845, 6329, 2832)
|
polygon = PackedVector2Array(6564, 1921, 8663, 1938, 15008, 1914, 15121, 2882, 15601, 3074, 15636, 3574, 14122, 3569, 12930, 3737, 11502, 3599, 9887, 3658, 7936, 3924, 7712, 2967, 6529, 2914, 4412, 2953, 3919, 4843, 7970, 4459, 16532, 4289, 16365, 821, 4540, 1141, 4392, 2845, 6329, 2832)
|
||||||
|
|
||||||
[node name="Paths" type="Node2D" parent="YSorted"]
|
[node name="Paths" type="Node2D" parent="YSorted"]
|
||||||
|
modulate = Color(0.3553136, 0.35531354, 0.35531357, 1)
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="Path0" type="Node2D" parent="YSorted/Paths" node_paths=PackedStringArray("closedVariant", "nextRoomVariant")]
|
[node name="Path0" type="Node2D" parent="YSorted/Paths" node_paths=PackedStringArray("closedVariant", "nextRoomVariant")]
|
||||||
@@ -2109,6 +2127,7 @@ polygon = PackedVector2Array(664, -692, -812, -717, -1033, 505, 380, 465)
|
|||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="Visuals" type="Node2D" parent="YSorted/Paths/Path1/PathVariants/OpenToFightRoom"]
|
[node name="Visuals" type="Node2D" parent="YSorted/Paths/Path1/PathVariants/OpenToFightRoom"]
|
||||||
|
modulate = Color(0.36281085, 0.22439209, 0.544261, 1)
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="bush14" type="Sprite2D" parent="YSorted/Paths/Path1/PathVariants/OpenToFightRoom/Visuals"]
|
[node name="bush14" type="Sprite2D" parent="YSorted/Paths/Path1/PathVariants/OpenToFightRoom/Visuals"]
|
||||||
@@ -2134,6 +2153,7 @@ position = Vector2(-335, 18)
|
|||||||
shape = SubResource("RectangleShape2D_ir2xa")
|
shape = SubResource("RectangleShape2D_ir2xa")
|
||||||
|
|
||||||
[node name="EnemyGroupSpawns" type="Node2D" parent="YSorted"]
|
[node name="EnemyGroupSpawns" type="Node2D" parent="YSorted"]
|
||||||
|
modulate = Color(0.3411854, 0.3401263, 0.29648906, 1)
|
||||||
position = Vector2(11116, 2546)
|
position = Vector2(11116, 2546)
|
||||||
|
|
||||||
[node name="Spawn1" type="Node2D" parent="YSorted/EnemyGroupSpawns"]
|
[node name="Spawn1" type="Node2D" parent="YSorted/EnemyGroupSpawns"]
|
||||||
@@ -2156,6 +2176,7 @@ _sceneRoot = NodePath("..")
|
|||||||
script = ExtResource("40_cvg1r")
|
script = ExtResource("40_cvg1r")
|
||||||
_enemyGroupSpawns = [NodePath("../YSorted/EnemyGroupSpawns/Spawn1"), NodePath("../YSorted/EnemyGroupSpawns/Spawn2"), NodePath("../YSorted/EnemyGroupSpawns/Spawn3"), NodePath("../YSorted/EnemyGroupSpawns/Spawn4")]
|
_enemyGroupSpawns = [NodePath("../YSorted/EnemyGroupSpawns/Spawn1"), NodePath("../YSorted/EnemyGroupSpawns/Spawn2"), NodePath("../YSorted/EnemyGroupSpawns/Spawn3"), NodePath("../YSorted/EnemyGroupSpawns/Spawn4")]
|
||||||
_roamingEnemyGroupPrefab = ExtResource("41_cvg1r")
|
_roamingEnemyGroupPrefab = ExtResource("41_cvg1r")
|
||||||
|
_itemOnGroundPrefab = ExtResource("41_x3yi1")
|
||||||
_fightSceneSwitcher = NodePath("../FightSceneSwitcher")
|
_fightSceneSwitcher = NodePath("../FightSceneSwitcher")
|
||||||
|
|
||||||
[editable path="YSorted/Vesna"]
|
[editable path="YSorted/Vesna"]
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://di0xxwfw43m0i" path="res://scripts/CSharp/Common/FightOld/FightStarter.cs" id="26_gg38r"]
|
[ext_resource type="Script" uid="uid://di0xxwfw43m0i" path="res://scripts/CSharp/Common/FightOld/FightStarter.cs" id="26_gg38r"]
|
||||||
[ext_resource type="PackedScene" uid="uid://hk8ahyp6dgl6" path="res://prefabs/fightOld/fight_base_scene.tscn" id="27_55b52"]
|
[ext_resource type="PackedScene" uid="uid://hk8ahyp6dgl6" path="res://prefabs/fightOld/fight_base_scene.tscn" id="27_55b52"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bp64p6y72j71w" path="res://prefabs/fightOld/fighters/enemy_blob_fighter.tscn" id="27_hfhye"]
|
[ext_resource type="PackedScene" uid="uid://bp64p6y72j71w" path="res://prefabs/fightOld/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/Vesna.tscn" id="29_3jjxs"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ddpl8cbck7e6s" path="res://prefabs/characters/Chugar.tscn" id="29_26tkn"]
|
[ext_resource type="PackedScene" uid="uid://ddpl8cbck7e6s" path="res://prefabs/characters/Chugar.tscn" id="29_26tkn"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cr66tpdr5rma5" path="res://prefabs/fightOld/fighters/enemy_mavkha_fighter.tscn" id="29_hfhye"]
|
[ext_resource type="PackedScene" uid="uid://cr66tpdr5rma5" path="res://prefabs/fightOld/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"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=40 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"]
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="12_bu2a1"]
|
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="12_bu2a1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://404glx32r1w8" path="res://art/indoor/room export/Room_01_bench.png" id="13_rongr"]
|
[ext_resource type="Texture2D" uid="uid://404glx32r1w8" path="res://art/indoor/room export/Room_01_bench.png" id="13_rongr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="14_d7yky"]
|
[ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="14_d7yky"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="15_7a68a"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.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="AudioStream" uid="uid://cohyenfo1rtxh" path="res://audio/sfx/Animals/SFX_Cat_Meow_01.wav" id="16_d7yky"]
|
||||||
@@ -30,16 +30,13 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="21_ytap8"]
|
[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/AudioPlayer2D.cs" id="22_tggq2"]
|
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.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="Texture2D" uid="uid://da67c7avarwq2" path="res://art/indoor/kitchen_bgAssets.png" id="23_d7yky"]
|
||||||
[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"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
|
||||||
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 = 300.0
|
|
||||||
|
|
||||||
[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
|
||||||
@@ -210,19 +207,24 @@ _data = {
|
|||||||
&"hand_stretch": SubResource("Animation_8o6or")
|
&"hand_stretch": SubResource("Animation_8o6or")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
[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 = 400.0
|
radius = 400.0
|
||||||
|
|
||||||
[node name="IndoorTest" type="Node2D"]
|
[node name="Common Room" type="Node2D"]
|
||||||
z_index = 1
|
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_ducksCollected.tscn")
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_indoor_kitchen.tscn", "res://scenes/Babushka_scene_farm_outside_2d.tscn")
|
||||||
|
|
||||||
[node name="Foreground" type="Node" parent="."]
|
[node name="Foreground" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="Table" type="Sprite2D" parent="Foreground"]
|
[node name="Table" type="Sprite2D" parent="Foreground"]
|
||||||
|
z_index = 2
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-1888, 1112)
|
position = Vector2(-1888, 1112)
|
||||||
texture = ExtResource("2_ubg3a")
|
texture = ExtResource("2_ubg3a")
|
||||||
@@ -231,6 +233,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1012, 1743, 1470, 417)
|
region_rect = Rect2(1012, 1743, 1470, 417)
|
||||||
|
|
||||||
[node name="Chair" type="Sprite2D" parent="Foreground"]
|
[node name="Chair" type="Sprite2D" parent="Foreground"]
|
||||||
|
z_index = 3
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-3032, 2096)
|
position = Vector2(-3032, 2096)
|
||||||
texture = ExtResource("3_gpagp")
|
texture = ExtResource("3_gpagp")
|
||||||
@@ -302,34 +305,6 @@ region_rect = Rect2(111, 292, 3323, 2160)
|
|||||||
position = Vector2(950, -419)
|
position = Vector2(950, -419)
|
||||||
shape = SubResource("RectangleShape2D_a2ood")
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
[node name="Room01DorrR" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -50
|
|
||||||
position = Vector2(936, -216)
|
|
||||||
texture = ExtResource("6_blyw3")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(3161, 313, 679, 1050)
|
|
||||||
|
|
||||||
[node name="OutsideDoor" parent="BackWall/Room01DorrR" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
|
||||||
position = Vector2(-7, 248)
|
|
||||||
scale = Vector2(1.5, 1.5)
|
|
||||||
_spritesToOutline = [NodePath("..")]
|
|
||||||
_id = 1
|
|
||||||
|
|
||||||
[node name="Room01DoorL" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -50
|
|
||||||
position = Vector2(-3296, 48)
|
|
||||||
texture = ExtResource("7_yd2gv")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(0, 0, 3840, 2160)
|
|
||||||
|
|
||||||
[node name="VesnasRoomDoor" parent="BackWall/Room01DoorL" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
|
||||||
position = Vector2(-1559, -16)
|
|
||||||
_spritesToOutline = [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)
|
||||||
@@ -339,14 +314,14 @@ region_rect = Rect2(2236, 0, 724, 1392)
|
|||||||
|
|
||||||
[node name="Room01Window2" type="Sprite2D" parent="BackWall"]
|
[node name="Room01Window2" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -50
|
z_index = -50
|
||||||
position = Vector2(-3192, -344)
|
position = Vector2(-5870, -408)
|
||||||
texture = ExtResource("9_aoesu")
|
texture = ExtResource("9_aoesu")
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1020, 338, 607, 757)
|
region_rect = Rect2(1020, 338, 607, 757)
|
||||||
|
|
||||||
[node name="Room01Window3" type="Sprite2D" parent="BackWall"]
|
[node name="Room01Window3" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -50
|
z_index = -50
|
||||||
position = Vector2(-1792, -336)
|
position = Vector2(-3931, -397)
|
||||||
texture = ExtResource("9_aoesu")
|
texture = ExtResource("9_aoesu")
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1020, 338, 607, 757)
|
region_rect = Rect2(1020, 338, 607, 757)
|
||||||
@@ -372,46 +347,39 @@ texture = ExtResource("11_as3nm")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(2469, 459, 247, 131)
|
region_rect = Rect2(2469, 459, 247, 131)
|
||||||
|
|
||||||
[node name="Room01Shelf" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -50
|
|
||||||
position = Vector2(-880, -416)
|
|
||||||
texture = ExtResource("12_bu2a1")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(1846, 471, 348, 490)
|
|
||||||
|
|
||||||
[node name="Bench" type="Sprite2D" parent="BackWall"]
|
[node name="Bench" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -10
|
z_index = -10
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-3240, 224)
|
position = Vector2(-5070, 1051)
|
||||||
texture = ExtResource("13_rongr")
|
texture = ExtResource("13_rongr")
|
||||||
flip_h = true
|
flip_h = true
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1156, 1185, 940, 189)
|
region_rect = Rect2(1156, 1185, 940, 189)
|
||||||
|
|
||||||
[node name="Bench2" type="Sprite2D" parent="BackWall"]
|
[node name="Katze" type="Sprite2D" parent="BackWall/Bench"]
|
||||||
z_index = -10
|
z_index = -10
|
||||||
position = Vector2(-1824, 224)
|
position = Vector2(61, -87)
|
||||||
texture = ExtResource("13_rongr")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(1156, 1185, 940, 189)
|
|
||||||
|
|
||||||
[node name="Katze" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -10
|
|
||||||
position = Vector2(-4051, 332)
|
|
||||||
scale = Vector2(2, 2)
|
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"]
|
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="BackWall/Bench/Katze"]
|
||||||
stream = SubResource("AudioStreamRandomizer_b6vf7")
|
stream = SubResource("AudioStreamRandomizer_b6vf7")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("22_tggq2")
|
script = ExtResource("22_tggq2")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="BackWall/Katze" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
[node name="InteractionArea" parent="BackWall/Bench/Katze" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
position = Vector2(-6.5, -44)
|
position = Vector2(-6.5, -44)
|
||||||
scale = Vector2(0.5, 0.5)
|
scale = Vector2(0.5, 0.5)
|
||||||
_spritesToOutline = [NodePath("..")]
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
|
||||||
|
[node name="Bench2" type="Sprite2D" parent="BackWall"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-2906, 243)
|
||||||
|
texture = ExtResource("13_rongr")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1156, 1185, 940, 189)
|
||||||
|
|
||||||
[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"]
|
||||||
@@ -432,19 +400,10 @@ offset = Vector2(-14.6475, -97.651)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(3157, 688, 118.519, 221)
|
region_rect = Rect2(3157, 688, 118.519, 221)
|
||||||
|
|
||||||
[node name="vase" type="Sprite2D" parent="BackWall/Room assets"]
|
|
||||||
z_index = -10
|
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-857, -37.5)
|
|
||||||
texture = ExtResource("4_27bwy")
|
|
||||||
offset = Vector2(0, -296)
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(2748, 432, 174, 191)
|
|
||||||
|
|
||||||
[node name="candle" type="Sprite2D" parent="BackWall/Room assets"]
|
[node name="candle" type="Sprite2D" parent="BackWall/Room assets"]
|
||||||
z_index = -10
|
z_index = -10
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-425, -77.5)
|
position = Vector2(-852, -187)
|
||||||
rotation = -0.0663225
|
rotation = -0.0663225
|
||||||
texture = ExtResource("4_27bwy")
|
texture = ExtResource("4_27bwy")
|
||||||
offset = Vector2(0, -296)
|
offset = Vector2(0, -296)
|
||||||
@@ -532,6 +491,66 @@ offset = Vector2(0, -296)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(2576, 802, 219, 64)
|
region_rect = Rect2(2576, 802, 219, 64)
|
||||||
|
|
||||||
|
[node name="Doors" type="Node2D" parent="BackWall"]
|
||||||
|
|
||||||
|
[node name="Door_Kitchen" type="Sprite2D" parent="BackWall/Doors"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(923, -221)
|
||||||
|
texture = ExtResource("6_blyw3")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3161, 313, 679, 1050)
|
||||||
|
|
||||||
|
[node name="KitchendoorInteraction" parent="BackWall/Doors/Door_Kitchen" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-7, 248)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 1
|
||||||
|
|
||||||
|
[node name="Door_Outside" type="Sprite2D" parent="BackWall/Doors"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-4917, -226)
|
||||||
|
texture = ExtResource("23_d7yky")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3009, 666, 679, 1050)
|
||||||
|
|
||||||
|
[node name="OutsideDoor" parent="BackWall/Doors/Door_Outside" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-7, 248)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 2
|
||||||
|
|
||||||
|
[node name="Door_Bedroom" type="Sprite2D" parent="BackWall/Doors"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-1620, -259)
|
||||||
|
texture = ExtResource("7_yd2gv")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 165, 763, 1224)
|
||||||
|
|
||||||
|
[node name="VesnasRoomDoor" parent="BackWall/Doors/Door_Bedroom" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(2, 233)
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="BackWall/Doors/Door_Bedroom/VesnasRoomDoor/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_yd2gv")
|
||||||
|
|
||||||
|
[node name="Shelf" type="Sprite2D" parent="BackWall"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-880, -416)
|
||||||
|
texture = ExtResource("12_bu2a1")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1846, 471, 348, 490)
|
||||||
|
|
||||||
|
[node name="vase" type="Sprite2D" parent="BackWall/Shelf"]
|
||||||
|
visible = false
|
||||||
|
z_index = -10
|
||||||
|
y_sort_enabled = true
|
||||||
|
position = Vector2(23, 378.5)
|
||||||
|
texture = ExtResource("4_27bwy")
|
||||||
|
offset = Vector2(0, -296)
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(2748, 432, 174, 191)
|
||||||
|
|
||||||
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
|
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
|
||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(-920, 319)
|
position = Vector2(-920, 319)
|
||||||
@@ -539,18 +558,18 @@ position = Vector2(-920, 319)
|
|||||||
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
|
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(-1395, 16)
|
position = Vector2(-2841, 198)
|
||||||
_timelinesToPlay = PackedStringArray("yeli_intro_05")
|
_timelinesToPlay = PackedStringArray("yeli_intro_05")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="Yeli" index="0"]
|
[node name="InteractionArea" parent="Yeli" index="0"]
|
||||||
position = Vector2(-373, -63)
|
position = Vector2(0, -63)
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
|
||||||
position = Vector2(-225.99994, 33)
|
position = Vector2(-225.99994, 33)
|
||||||
shape = SubResource("CircleShape2D_wuntg")
|
shape = SubResource("CircleShape2D_wuntg")
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
|
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
|
||||||
position = Vector2(-576, 368)
|
position = Vector2(-224, 373)
|
||||||
|
|
||||||
[node name="CollisionShape2D" parent="Yeli/AnimatableBody2D" index="0"]
|
[node name="CollisionShape2D" parent="Yeli/AnimatableBody2D" index="0"]
|
||||||
position = Vector2(-565, 464)
|
position = Vector2(-565, 464)
|
||||||
@@ -578,15 +597,16 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
|
|||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
|
||||||
|
|
||||||
[connection signal="InteractedTool" from="BackWall/Room01DorrR/OutsideDoor" to="." method="LoadSceneAtIndex"]
|
|
||||||
[connection signal="InteractedTool" from="BackWall/Room01DoorL/VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
|
|
||||||
[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="Interacted" from="BackWall/Bench/Katze/InteractionArea" to="BackWall/Bench/Katze/AudioStreamPlayer2D" method="PlayOneShot"]
|
||||||
|
[connection signal="InteractedTool" from="BackWall/Doors/Door_Kitchen/KitchendoorInteraction" to="." method="LoadSceneAtIndex"]
|
||||||
|
[connection signal="InteractedTool" from="BackWall/Doors/Door_Outside/OutsideDoor" to="." method="LoadSceneAtIndex"]
|
||||||
|
[connection signal="InteractedTool" from="BackWall/Doors/Door_Bedroom/VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
|
||||||
[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"]
|
||||||
|
|
||||||
[editable path="BackWall/Room01DoorL/VesnasRoomDoor"]
|
|
||||||
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
|
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
|
||||||
|
[editable path="BackWall/Doors/Door_Bedroom/VesnasRoomDoor"]
|
||||||
[editable path="Vesna"]
|
[editable path="Vesna"]
|
||||||
[editable path="Yeli"]
|
[editable path="Yeli"]
|
||||||
[editable path="Yeli/InteractionArea"]
|
[editable path="Yeli/InteractionArea"]
|
||||||
|
|||||||
@@ -0,0 +1,282 @@
|
|||||||
|
[gd_scene load_steps=10 format=3 uid="uid://bvp5ju36h1vl2"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_ftmt4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://da67c7avarwq2" path="res://art/indoor/kitchen_bgAssets.png" id="2_qsw8g"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://x7trh4dgsvoe" path="res://art/indoor/room export/Room_01_assets.png" id="5_3wvmt"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="7_6mpmc"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="25_58hm8"]
|
||||||
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="30_wqpex"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="31_jyyyu"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
size = Vector2(4757.2813, 1086)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[node name="Kitchen" type="Node2D"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
|
script = ExtResource("1_ftmt4")
|
||||||
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_common_room.tscn")
|
||||||
|
|
||||||
|
[node name="Foreground" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="FrontCollider" type="StaticBody2D" parent="Foreground"]
|
||||||
|
position = Vector2(-4344, 3056)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Foreground/FrontCollider"]
|
||||||
|
position = Vector2(950, -419)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="SideColliderLeft" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2(-4344, 3056)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="SideColliderLeft"]
|
||||||
|
position = Vector2(-2461.1406, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="SideColliderRight" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2(10992, 2856)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="SideColliderRight"]
|
||||||
|
position = Vector2(-2863.5, -1165)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="Background" type="Node2D" parent="."]
|
||||||
|
z_index = -100
|
||||||
|
|
||||||
|
[node name="Ceiling" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(-2453, -1419)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 1749.6222, 3840, 358.11316)
|
||||||
|
|
||||||
|
[node name="WallUpper" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(-2469, -969)
|
||||||
|
scale = Vector2(26, 2)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1405.1335, 120.67705, 306.53345, 90.03079)
|
||||||
|
|
||||||
|
[node name="Wall" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(-2460, -262)
|
||||||
|
scale = Vector2(31, 8)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1755, 119, 254, 160)
|
||||||
|
|
||||||
|
[node name="WallDecoration" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -20
|
||||||
|
position = Vector2(-4498, -300)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration2" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(356, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration3" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(732, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration4" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(1110.6666, -3.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration12" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-1123.3334, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration13" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-747.3334, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration14" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-368.66675, -3.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration5" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(1486.6666, -3.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration6" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(1854, 6)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration7" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(2230, 6)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration8" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(2608.6665, 2.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration9" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(2984.6665, 2.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration10" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(3333.9998, 2.6666667)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration11" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(3698, 2.6666667)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="Floor" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-2431, 670)
|
||||||
|
scale = Vector2(2, 1)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 2246, 3840, 912)
|
||||||
|
|
||||||
|
[node name="Room01DoorL" type="Sprite2D" parent="Background"]
|
||||||
|
position = Vector2(-4000, -221)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(92, 458, 641, 1050)
|
||||||
|
|
||||||
|
[node name="CommonRoomDoor" parent="Background/Room01DoorL" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_6mpmc")]
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="Background/Room01DoorL/CommonRoomDoor/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_yd2gv")
|
||||||
|
|
||||||
|
[node name="BackwallCollider" type="StaticBody2D" parent="Background"]
|
||||||
|
position = Vector2(-4368, 40)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Background/BackwallCollider"]
|
||||||
|
position = Vector2(950, -419)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="Vesna" parent="." instance=ExtResource("25_58hm8")]
|
||||||
|
y_sort_enabled = false
|
||||||
|
position = Vector2(-1971, 319)
|
||||||
|
|
||||||
|
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")]
|
||||||
|
position = Vector2(-1534, -29)
|
||||||
|
offset = Vector2(0, -200)
|
||||||
|
zoom = Vector2(0.5, 0.5)
|
||||||
|
limit_left = -4500
|
||||||
|
limit_top = -1050
|
||||||
|
limit_right = 500
|
||||||
|
limit_bottom = 1150
|
||||||
|
editor_draw_limits = true
|
||||||
|
script = ExtResource("30_wqpex")
|
||||||
|
_followNode = NodePath("../Vesna/CharacterBody2D")
|
||||||
|
|
||||||
|
[node name="CanvasLayer" parent="." instance=ExtResource("31_jyyyu")]
|
||||||
|
|
||||||
|
[node name="BackItems" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="cupboard" type="Sprite2D" parent="BackItems"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-2071, 114)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1359, 440, 1591, 401)
|
||||||
|
|
||||||
|
[node name="wallshelf" type="Sprite2D" parent="BackItems"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-1708, -335)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3037, 440, 701, 170)
|
||||||
|
|
||||||
|
[node name="wallshelf2" type="Sprite2D" parent="BackItems/wallshelf"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-700, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
flip_h = true
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3037, 440, 701, 170)
|
||||||
|
|
||||||
|
[node name="vase" type="Sprite2D" parent="BackItems/wallshelf"]
|
||||||
|
z_index = -10
|
||||||
|
y_sort_enabled = true
|
||||||
|
position = Vector2(42, 124)
|
||||||
|
texture = ExtResource("5_3wvmt")
|
||||||
|
offset = Vector2(0, -296)
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(2748, 432, 174, 191)
|
||||||
|
|
||||||
|
[node name="FrontItems" type="Node2D" parent="."]
|
||||||
|
z_index = 50
|
||||||
|
|
||||||
|
[node name="Stove" type="Sprite2D" parent="FrontItems"]
|
||||||
|
position = Vector2(-2482, 926)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(823, 1105, 734, 420)
|
||||||
|
|
||||||
|
[node name="Fireleft" type="Sprite2D" parent="FrontItems/Stove"]
|
||||||
|
position = Vector2(-189, -238)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(928.24866, 976.94073, 145.9801, 78.52728)
|
||||||
|
|
||||||
|
[node name="FireRight" type="Sprite2D" parent="FrontItems/Stove"]
|
||||||
|
position = Vector2(191, -240)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1278.6433, 986.7815, 213.37354, 67.61841)
|
||||||
|
|
||||||
|
[node name="Firetoggle" parent="FrontItems/Stove" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_6mpmc")]
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
|
||||||
|
[node name="Counter" type="Sprite2D" parent="FrontItems"]
|
||||||
|
position = Vector2(-1388, 921)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1599, 1107, 1351, 418)
|
||||||
|
|
||||||
|
[connection signal="InteractedTool" from="Background/Room01DoorL/CommonRoomDoor" to="." method="LoadSceneAtIndex"]
|
||||||
|
[connection signal="Interacted" from="FrontItems/Stove/Firetoggle" to="FrontItems/Stove/Fireleft" method="hide"]
|
||||||
|
[connection signal="Interacted" from="FrontItems/Stove/Firetoggle" to="FrontItems/Stove/FireRight" method="hide"]
|
||||||
|
|
||||||
|
[editable path="Background/Room01DoorL/CommonRoomDoor"]
|
||||||
|
[editable path="Vesna"]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=15 format=3 uid="uid://ceaa2qj2bmw43"]
|
[gd_scene load_steps=16 format=3 uid="uid://ceaa2qj2bmw43"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_c6eln"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_c6eln"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cugtxcfuds31r" path="res://art/indoor/Babushka_bg_01.png" id="2_j25a2"]
|
[ext_resource type="Texture2D" uid="uid://cugtxcfuds31r" path="res://art/indoor/Babushka_bg_01.png" id="2_j25a2"]
|
||||||
@@ -6,8 +6,9 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="8_phqdf"]
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="8_phqdf"]
|
||||||
[ext_resource type="Resource" uid="uid://csj15gnlx1jmx" path="res://resources/quests/demo/8_goto_bed.tres" id="9_heyef"]
|
[ext_resource type="Resource" uid="uid://csj15gnlx1jmx" path="res://resources/quests/demo/8_goto_bed.tres" id="9_heyef"]
|
||||||
[ext_resource type="Script" uid="uid://puw74w6lmcvl" path="res://scripts/CSharp/Common/Fight/NightStarter.cs" id="10_j25a2"]
|
[ext_resource type="Script" uid="uid://puw74w6lmcvl" path="res://scripts/CSharp/Common/Fight/NightStarter.cs" id="10_j25a2"]
|
||||||
|
[ext_resource type="Script" uid="uid://jg4jryfus3bw" path="res://scripts/CSharp/Common/DayAndNight/DayAndNightHelper.cs" id="11_heyef"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="13_11fdt"]
|
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="13_11fdt"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="18_3gevq"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="18_3gevq"]
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="23_408bg"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="23_408bg"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_xwo8y"]
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_xwo8y"]
|
||||||
|
|
||||||
@@ -125,8 +126,12 @@ shape = SubResource("CircleShape2D_2spkc")
|
|||||||
script = ExtResource("10_j25a2")
|
script = ExtResource("10_j25a2")
|
||||||
_sceneIndexToLoad = 1
|
_sceneIndexToLoad = 1
|
||||||
|
|
||||||
|
[node name="CountDayUp" type="Node" parent="NightStarter"]
|
||||||
|
script = ExtResource("11_heyef")
|
||||||
|
|
||||||
[connection signal="Interacted" from="BedInteraction" to="BedInteraction/QuestCompleter" method="Trigger"]
|
[connection signal="Interacted" from="BedInteraction" to="BedInteraction/QuestCompleter" method="Trigger"]
|
||||||
[connection signal="Interacted" from="BedInteraction" to="NightStarter" method="StartNight"]
|
[connection signal="Interacted" from="BedInteraction" to="NightStarter" method="StartNight"]
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="NightStarter/CountDayUp" method="IncreaseDayCount"]
|
||||||
[connection signal="Interacted" from="DoorInteraction" to="." method="LoadScene"]
|
[connection signal="Interacted" from="DoorInteraction" to="." method="LoadScene"]
|
||||||
[connection signal="LoadScene" from="NightStarter" to="." method="LoadSceneAtIndex"]
|
[connection signal="LoadScene" from="NightStarter" to="." method="LoadSceneAtIndex"]
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=96 format=3 uid="uid://b3ibx4resa1f3"]
|
[gd_scene load_steps=99 format=3 uid="uid://b3ibx4resa1f3"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_6krrk"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_6krrk"]
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_4ktoi"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_4ktoi"]
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="24_anpd4"]
|
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="24_anpd4"]
|
||||||
[ext_resource type="Texture2D" uid="uid://btea6eyucsyxj" path="res://art/farm/farming/farmobjekte/zaun/tilable fence middle part.png" id="25_8mej4"]
|
[ext_resource type="Texture2D" uid="uid://btea6eyucsyxj" path="res://art/farm/farming/farmobjekte/zaun/tilable fence middle part.png" id="25_8mej4"]
|
||||||
[ext_resource type="Texture2D" uid="uid://3ed3dgq3irn2" path="res://art/farm/farming/farmobjekte/zaun/tilable fence end part2.png" id="26_bwvai"]
|
[ext_resource type="Texture2D" uid="uid://3ed3dgq3irn2" path="res://art/farm/farming/farmobjekte/zaun/tilable fence end part2.png" id="26_bwvai"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="27_qtaxr"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="27_qtaxr"]
|
||||||
[ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="28_le48k"]
|
[ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="28_le48k"]
|
||||||
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="30_dr6bm"]
|
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="30_dr6bm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dg7rlugnq0t45" path="res://art/farm/farming/farmobjekte/brünnen.png" id="30_lgb3w"]
|
[ext_resource type="Texture2D" uid="uid://dg7rlugnq0t45" path="res://art/farm/farming/farmobjekte/brünnen.png" id="30_lgb3w"]
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="43_dr6bm"]
|
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="43_dr6bm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ct7ea8ikor5rf" path="res://art/nature/grass/grass-3.png" id="43_g8k4k"]
|
[ext_resource type="Texture2D" uid="uid://ct7ea8ikor5rf" path="res://art/nature/grass/grass-3.png" id="43_g8k4k"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3dwl6ph0pu1d" path="res://art/nature/grass/grass-6.png" id="44_jgrpl"]
|
[ext_resource type="Texture2D" uid="uid://d3dwl6ph0pu1d" path="res://art/nature/grass/grass-6.png" id="44_jgrpl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dmo21h14toxfu" path="res://art/indoor/indoor outdoor/domovoi.png" id="44_njxly"]
|
||||||
[ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="47_xfjh2"]
|
[ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="47_xfjh2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="52_gwhnv"]
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="52_gwhnv"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="53_2tfpr"]
|
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="53_2tfpr"]
|
||||||
@@ -52,7 +53,9 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://bxh5m04vdo0sr" path="res://audio/sfx/Farming/SFX_Harke_04_Solo.wav" id="57_euap5"]
|
[ext_resource type="AudioStream" uid="uid://bxh5m04vdo0sr" path="res://audio/sfx/Farming/SFX_Harke_04_Solo.wav" id="57_euap5"]
|
||||||
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="57_hpgl7"]
|
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="57_hpgl7"]
|
||||||
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="58_m3hs4"]
|
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="58_m3hs4"]
|
||||||
|
[ext_resource type="Script" uid="uid://iquhbkr7pqeg" path="res://scripts/CSharp/Common/Savegame/SaveCheats.cs" id="58_qavgq"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dapsknn486aee" path="res://audio/sfx/Farming/SFX_WateringPlants_01.wav" id="59_km2vg"]
|
[ext_resource type="AudioStream" uid="uid://dapsknn486aee" path="res://audio/sfx/Farming/SFX_WateringPlants_01.wav" id="59_km2vg"]
|
||||||
|
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="59_njxly"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dnyne8wov50so" path="res://audio/sfx/Farming/SFX_WateringPlants_02.wav" id="60_qi2gu"]
|
[ext_resource type="AudioStream" uid="uid://dnyne8wov50so" path="res://audio/sfx/Farming/SFX_WateringPlants_02.wav" id="60_qi2gu"]
|
||||||
[ext_resource type="AudioStream" uid="uid://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="61_wy1mx"]
|
[ext_resource type="AudioStream" uid="uid://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="61_wy1mx"]
|
||||||
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="62_kmjnt"]
|
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="62_kmjnt"]
|
||||||
@@ -123,10 +126,6 @@ shader_parameter/tiling_scale = Vector2(10, 1)
|
|||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0qu0h"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0qu0h"]
|
||||||
size = Vector2(374, 295.995)
|
size = Vector2(374, 295.995)
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_34r5t"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
radius = 300.0
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2vojv"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2vojv"]
|
||||||
shader = ExtResource("17_lwdq7")
|
shader = ExtResource("17_lwdq7")
|
||||||
shader_parameter/hue_shift = 0.0
|
shader_parameter/hue_shift = 0.0
|
||||||
@@ -225,6 +224,10 @@ size = Vector2(707.116, 604.111)
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 294.02722
|
radius = 294.02722
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_34r5t"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ceriq"]
|
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ceriq"]
|
||||||
loop = false
|
loop = false
|
||||||
stream_count = 1
|
stream_count = 1
|
||||||
@@ -879,6 +882,7 @@ texture = SubResource("NoiseTexture2D_e5alv")
|
|||||||
[node name="Fence" type="Node2D" parent="."]
|
[node name="Fence" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Back Fence left" type="Sprite2D" parent="Fence"]
|
[node name="Back Fence left" type="Sprite2D" parent="Fence"]
|
||||||
|
z_index = -50
|
||||||
texture_repeat = 2
|
texture_repeat = 2
|
||||||
material = SubResource("ShaderMaterial_0sfl7")
|
material = SubResource("ShaderMaterial_0sfl7")
|
||||||
position = Vector2(1332.5, 1680)
|
position = Vector2(1332.5, 1680)
|
||||||
@@ -895,6 +899,7 @@ position = Vector2(-204.073, 76)
|
|||||||
shape = SubResource("RectangleShape2D_2vojv")
|
shape = SubResource("RectangleShape2D_2vojv")
|
||||||
|
|
||||||
[node name="Back Fence middle" type="Sprite2D" parent="Fence"]
|
[node name="Back Fence middle" type="Sprite2D" parent="Fence"]
|
||||||
|
z_index = -50
|
||||||
texture_repeat = 2
|
texture_repeat = 2
|
||||||
material = SubResource("ShaderMaterial_0sfl7")
|
material = SubResource("ShaderMaterial_0sfl7")
|
||||||
position = Vector2(7501.01, 1680)
|
position = Vector2(7501.01, 1680)
|
||||||
@@ -970,15 +975,6 @@ position = Vector2(-33, 554)
|
|||||||
[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="GenericItemOnGround" parent="YSorted/Vesna" instance=ExtResource("43_dr6bm")]
|
|
||||||
position = Vector2(2527, 232)
|
|
||||||
|
|
||||||
[node name="SpawnWithItem" parent="YSorted/Vesna/GenericItemOnGround" index="0"]
|
|
||||||
_blueprint = ExtResource("30_dr6bm")
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/Vesna/GenericItemOnGround/PickupInteractionArea/Area2D" index="0"]
|
|
||||||
shape = SubResource("CircleShape2D_34r5t")
|
|
||||||
|
|
||||||
[node name="Brünnen" type="Sprite2D" parent="YSorted"]
|
[node name="Brünnen" type="Sprite2D" parent="YSorted"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
@@ -1011,6 +1007,8 @@ position = Vector2(-60, 122)
|
|||||||
position = Vector2(-8213, 84)
|
position = Vector2(-8213, 84)
|
||||||
|
|
||||||
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
|
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
|
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
|
||||||
|
|
||||||
@@ -1393,6 +1391,16 @@ offset = Vector2(0, -50)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1464, 419, 144, 115)
|
region_rect = Rect2(1464, 419, 144, 115)
|
||||||
|
|
||||||
|
[node name="bush4" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
|
||||||
|
z_index = -6
|
||||||
|
material = SubResource("ShaderMaterial_bcdgk")
|
||||||
|
position = Vector2(5684, 2035)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("20_4unvh")
|
||||||
|
offset = Vector2(0, -50)
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1837, 651, 139, 180)
|
||||||
|
|
||||||
[node name="Sonnenblume8" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
|
[node name="Sonnenblume8" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
@@ -1743,19 +1751,30 @@ scale = Vector2(0.1, 8.7)
|
|||||||
texture = ExtResource("26_bwvai")
|
texture = ExtResource("26_bwvai")
|
||||||
|
|
||||||
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
|
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(53, 20)
|
position = Vector2(53, 20)
|
||||||
scale = Vector2(1, 0.993819)
|
scale = Vector2(1, 0.993819)
|
||||||
|
|
||||||
[node name="BaseField" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(651, 2630.26)
|
position = Vector2(651, 2630.26)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
|
metadata/SaveID = "b3b47e69-6115-4405-8da6-508b783823d2"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
|
metadata/SaveID = "7a8210bf-479d-4b4c-9758-98d23e59d5d7"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1764,16 +1783,25 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_qavgq")
|
shape = SubResource("CircleShape2D_qavgq")
|
||||||
|
|
||||||
[node name="BaseField2" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField2" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(1226, 3098.15)
|
position = Vector2(1226, 3098.15)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 1
|
Payload = 1
|
||||||
|
metadata/SaveID = "f536efd3-3da8-4ef5-a520-570220e6c19f"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
|
metadata/SaveID = "a1d8a0a2-c51c-4410-83c3-0edb31cbf2de"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1782,16 +1810,25 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_njxly")
|
shape = SubResource("CircleShape2D_njxly")
|
||||||
|
|
||||||
[node name="BaseField3" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField3" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(1782, 2606.11)
|
position = Vector2(1782, 2606.11)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 2
|
Payload = 2
|
||||||
|
metadata/SaveID = "14ce64d5-8a4d-43b9-a8ff-3a57725c4dc8"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
|
metadata/SaveID = "79a65532-cb2b-4268-8eb0-8c41a3935cbb"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 5
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1800,17 +1837,26 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_54ty3")
|
shape = SubResource("CircleShape2D_54ty3")
|
||||||
|
|
||||||
[node name="BaseField4" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField4" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(2559, 2624.22)
|
position = Vector2(2559, 2624.22)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 3
|
Payload = 3
|
||||||
|
metadata/SaveID = "6872ce5d-6f42-47d7-97e2-a7214ff3b08c"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
FieldState = 3
|
FieldState = 3
|
||||||
|
metadata/SaveID = "13fa64a3-01dc-4fd8-822e-0839c0da3163"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 7
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1819,17 +1865,26 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_gbxtf")
|
shape = SubResource("CircleShape2D_gbxtf")
|
||||||
|
|
||||||
[node name="BaseField5" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField5" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(3305, 2624.22)
|
position = Vector2(3305, 2624.22)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 4
|
Payload = 4
|
||||||
|
metadata/SaveID = "f163c38d-9ee0-4844-9def-479833febb4e"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
FieldState = 3
|
FieldState = 3
|
||||||
|
metadata/SaveID = "414ecdb9-f3c4-4fb9-81bd-6ca575784f78"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1838,17 +1893,26 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_6krrk")
|
shape = SubResource("CircleShape2D_6krrk")
|
||||||
|
|
||||||
[node name="BaseField6" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField6" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(4033, 2618.18)
|
position = Vector2(4033, 2618.18)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 5
|
Payload = 5
|
||||||
|
metadata/SaveID = "da691381-ee82-4f86-abf3-dda2c9f19337"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
FieldState = 3
|
FieldState = 3
|
||||||
|
metadata/SaveID = "b235febb-b231-4f8c-94e9-1f9d9f115b08"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 1
|
_state = 1
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 5
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1857,17 +1921,26 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_4ktoi")
|
shape = SubResource("CircleShape2D_4ktoi")
|
||||||
|
|
||||||
[node name="BaseField7" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField7" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(4755, 2630.26)
|
position = Vector2(4755, 2630.26)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 6
|
Payload = 6
|
||||||
|
metadata/SaveID = "8116fa8b-b164-4d39-a1ed-6cd476d18f94"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
FieldState = 3
|
FieldState = 3
|
||||||
|
metadata/SaveID = "9ccdba91-812a-4c13-9ee0-12472e174fc9"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1876,17 +1949,26 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_aaup4")
|
shape = SubResource("CircleShape2D_aaup4")
|
||||||
|
|
||||||
[node name="BaseField8" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField8" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(4418, 3226.95)
|
position = Vector2(4418, 3226.95)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 7
|
Payload = 7
|
||||||
|
metadata/SaveID = "5298f423-4c3b-45b5-94fb-d4aef36bac21"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
FieldState = 3
|
FieldState = 3
|
||||||
|
metadata/SaveID = "da44e54a-0b76-4888-ad8b-782a9d146fa3"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1895,12 +1977,19 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_v10dc")
|
shape = SubResource("CircleShape2D_v10dc")
|
||||||
|
|
||||||
[node name="BaseField9" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField9" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(5317, 3208.83)
|
position = Vector2(5317, 3208.83)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 8
|
Payload = 8
|
||||||
|
metadata/SaveID = "0de8dc13-5851-4471-be35-309cd6687ebc"
|
||||||
|
|
||||||
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="1"]
|
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="1"]
|
||||||
visible = true
|
visible = true
|
||||||
|
metadata/SaveID = "9919b294-04a1-4a16-9783-38c8aa0e291c"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1964,6 +2053,23 @@ _id = 0
|
|||||||
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_hpgl7")
|
shape = SubResource("CircleShape2D_hpgl7")
|
||||||
|
|
||||||
|
[node name="domovoi" type="Sprite2D" parent="YSorted"]
|
||||||
|
modulate = Color(0.8982765, 0.818879, 0.7068166, 1)
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(10542, 2026)
|
||||||
|
texture = ExtResource("44_njxly")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(65, 149, 223, 375)
|
||||||
|
|
||||||
|
[node name="WateringCan" parent="YSorted" instance=ExtResource("43_dr6bm")]
|
||||||
|
position = Vector2(5220, 2108)
|
||||||
|
|
||||||
|
[node name="SpawnWithItem" parent="YSorted/WateringCan" index="0"]
|
||||||
|
_blueprint = ExtResource("30_dr6bm")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="YSorted/WateringCan/PickupInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_34r5t")
|
||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("52_gwhnv")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("52_gwhnv")]
|
||||||
|
|
||||||
[node name="Inventory" parent="CanvasLayer" index="1"]
|
[node name="Inventory" parent="CanvasLayer" index="1"]
|
||||||
@@ -2031,6 +2137,14 @@ script = ExtResource("56_34r5t")
|
|||||||
_variableResource = ExtResource("57_hpgl7")
|
_variableResource = ExtResource("57_hpgl7")
|
||||||
_payloadToSet = "beetRootScene"
|
_payloadToSet = "beetRootScene"
|
||||||
|
|
||||||
|
[node name="SaveSystem" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="SaveGameCheat" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("58_qavgq")
|
||||||
|
|
||||||
|
[node name="SaveIDProvider" type="Node" parent="SaveSystem"]
|
||||||
|
script = ExtResource("59_njxly")
|
||||||
|
|
||||||
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
|
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
|
||||||
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
|
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
|
||||||
[connection signal="InteractedTool" from="YSorted/Blocker/BackToFarm" to="." method="LoadSceneAtIndex"]
|
[connection signal="InteractedTool" from="YSorted/Blocker/BackToFarm" to="." method="LoadSceneAtIndex"]
|
||||||
@@ -2038,8 +2152,6 @@ _payloadToSet = "beetRootScene"
|
|||||||
[connection signal="tree_entered" from="SceneNameSetter" to="SceneNameSetter" method="Set"]
|
[connection signal="tree_entered" from="SceneNameSetter" to="SceneNameSetter" method="Set"]
|
||||||
|
|
||||||
[editable path="YSorted/Vesna"]
|
[editable path="YSorted/Vesna"]
|
||||||
[editable path="YSorted/Vesna/GenericItemOnGround"]
|
|
||||||
[editable path="YSorted/Vesna/GenericItemOnGround/PickupInteractionArea"]
|
|
||||||
[editable path="YSorted/Brünnen/InteractionArea"]
|
[editable path="YSorted/Brünnen/InteractionArea"]
|
||||||
[editable path="YSorted/Farm visuals/FieldParent/BaseField"]
|
[editable path="YSorted/Farm visuals/FieldParent/BaseField"]
|
||||||
[editable path="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea"]
|
[editable path="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea"]
|
||||||
@@ -2062,4 +2174,6 @@ _payloadToSet = "beetRootScene"
|
|||||||
[editable path="YSorted/Blocker/BackToFarm"]
|
[editable path="YSorted/Blocker/BackToFarm"]
|
||||||
[editable path="YSorted/RakeGenericPickup"]
|
[editable path="YSorted/RakeGenericPickup"]
|
||||||
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
||||||
|
[editable path="YSorted/WateringCan"]
|
||||||
|
[editable path="YSorted/WateringCan/PickupInteractionArea"]
|
||||||
[editable path="CanvasLayer"]
|
[editable path="CanvasLayer"]
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://c6wnoif01ltld"]
|
[gd_scene load_steps=5 format=3 uid="uid://c6wnoif01ltld"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_fj2fh"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_fj2fh"]
|
||||||
|
[ext_resource type="Script" uid="uid://iquhbkr7pqeg" path="res://scripts/CSharp/Common/Savegame/SaveCheats.cs" id="3_dl0t1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c7atj6ohlmir3" path="res://art/ui/StartScreen/titlescreen.png" id="3_r0y6o"]
|
[ext_resource type="Texture2D" uid="uid://c7atj6ohlmir3" path="res://art/ui/StartScreen/titlescreen.png" id="3_r0y6o"]
|
||||||
[ext_resource type="Texture2D" uid="uid://du612t3xytly3" path="res://art/ui/StartScreen/babushkalog_white.png" id="4_dl0t1"]
|
[ext_resource type="Texture2D" uid="uid://du612t3xytly3" path="res://art/ui/StartScreen/babushkalog_white.png" id="4_dl0t1"]
|
||||||
|
|
||||||
@@ -21,37 +22,6 @@ expand_mode = 2
|
|||||||
stretch_mode = 6
|
stretch_mode = 6
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="Start" type="Button" parent="CanvasLayer/TextureRect"]
|
|
||||||
custom_minimum_size = Vector2(100, 30)
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 4
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = 200.0
|
|
||||||
offset_top = -15.5
|
|
||||||
offset_right = 400.0
|
|
||||||
offset_bottom = 24.5
|
|
||||||
grow_vertical = 2
|
|
||||||
scale = Vector2(2, 2)
|
|
||||||
toggle_mode = true
|
|
||||||
text = "Start"
|
|
||||||
|
|
||||||
[node name="Quit" type="Button" parent="CanvasLayer/TextureRect"]
|
|
||||||
custom_minimum_size = Vector2(100, 30)
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 4
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = 200.0
|
|
||||||
offset_top = 97.0
|
|
||||||
offset_right = 400.0
|
|
||||||
offset_bottom = 137.0
|
|
||||||
grow_vertical = 2
|
|
||||||
scale = Vector2(2, 2)
|
|
||||||
toggle_mode = true
|
|
||||||
text = "Quit
|
|
||||||
"
|
|
||||||
|
|
||||||
[node name="Text" type="TextureRect" parent="CanvasLayer/TextureRect"]
|
[node name="Text" type="TextureRect" parent="CanvasLayer/TextureRect"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
offset_left = 50.0
|
offset_left = 50.0
|
||||||
@@ -62,5 +32,55 @@ scale = Vector2(0.5, 0.5)
|
|||||||
texture = ExtResource("4_dl0t1")
|
texture = ExtResource("4_dl0t1")
|
||||||
stretch_mode = 3
|
stretch_mode = 3
|
||||||
|
|
||||||
[connection signal="pressed" from="CanvasLayer/TextureRect/Start" to="." method="LoadScene"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/TextureRect"]
|
||||||
[connection signal="pressed" from="CanvasLayer/TextureRect/Quit" to="." method="Quit"]
|
custom_minimum_size = Vector2(500, 300)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 204.0
|
||||||
|
offset_top = 497.0
|
||||||
|
offset_right = 704.0
|
||||||
|
offset_bottom = 797.0
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/TextureRect/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
|
||||||
|
[node name="Continue" type="Button" parent="CanvasLayer/TextureRect/VBoxContainer/MarginContainer"]
|
||||||
|
custom_minimum_size = Vector2(100, 80)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 36
|
||||||
|
toggle_mode = true
|
||||||
|
text = "Continue
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="MarginContainer2" type="MarginContainer" parent="CanvasLayer/TextureRect/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
|
||||||
|
[node name="New Game" type="Button" parent="CanvasLayer/TextureRect/VBoxContainer/MarginContainer2"]
|
||||||
|
custom_minimum_size = Vector2(100, 80)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 36
|
||||||
|
toggle_mode = true
|
||||||
|
text = "New Game
|
||||||
|
"
|
||||||
|
script = ExtResource("3_dl0t1")
|
||||||
|
|
||||||
|
[node name="MarginContainer3" type="MarginContainer" parent="CanvasLayer/TextureRect/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
|
||||||
|
[node name="Quit" type="Button" parent="CanvasLayer/TextureRect/VBoxContainer/MarginContainer3"]
|
||||||
|
custom_minimum_size = Vector2(100, 80)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 36
|
||||||
|
toggle_mode = true
|
||||||
|
text = "Quit
|
||||||
|
"
|
||||||
|
|
||||||
|
[connection signal="pressed" from="CanvasLayer/TextureRect/VBoxContainer/MarginContainer/Continue" to="." method="LoadScene"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/TextureRect/VBoxContainer/MarginContainer2/New Game" to="." method="LoadScene"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/TextureRect/VBoxContainer/MarginContainer2/New Game" to="CanvasLayer/TextureRect/VBoxContainer/MarginContainer2/New Game" method="Reset"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/TextureRect/VBoxContainer/MarginContainer3/Quit" to="." method="Quit"]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://chvc0e4441o2k"]
|
[gd_scene load_steps=3 format=3 uid="uid://chvc0e4441o2k"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ejq7h5pgxl84" path="res://art/indoor/küchenraum.png" id="2_ttdge"]
|
[ext_resource type="Texture2D" uid="uid://ejq7h5pgxl84" path="res://art/indoor/küchenraum.png" id="2_ttdge"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="3_oibke"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="3_oibke"]
|
||||||
|
|
||||||
[node name="IndoorTest" type="Node2D"]
|
[node name="IndoorTest" type="Node2D"]
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,445 @@
|
|||||||
|
[gd_scene load_steps=9 format=3 uid="uid://b4uito2bnud2a"]
|
||||||
|
|
||||||
|
[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://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://deitc84w2byyh" path="res://art/ui/nametag.png" id="4_a8kc7"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://bgmdn7uo215q2" path="res://art/fonts/RuslanDisplay-Regular.ttf" id="5_gsl3s"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://blbplxfx41f8t" path="res://art/logos/Cozy Raven Logo breit.svg" id="6_l0rmr"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cwbv2i8ntq15d" path="res://art/logos/FS_Logo_2zeilig_rot.png" id="7_03xwf"]
|
||||||
|
|
||||||
|
[node name="BabushkaSceneCredits" type="Node2D"]
|
||||||
|
script = ExtResource("1_f5860")
|
||||||
|
_sceneNamesToLoad = PackedStringArray("res://scenes/scene_bootstrap.tscn")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1030, 483)
|
||||||
|
scale = Vector2(0.535648, 0.535648)
|
||||||
|
texture = ExtResource("1_kesja")
|
||||||
|
|
||||||
|
[node name="BabushkaText" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1387, 129)
|
||||||
|
scale = Vector2(0.349074, 0.349074)
|
||||||
|
texture = ExtResource("2_f5860")
|
||||||
|
|
||||||
|
[node name="WhiteWash" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(1, 1, 1, 0.0509804)
|
||||||
|
position = Vector2(1019, 930)
|
||||||
|
scale = Vector2(13.1172, 4.47852)
|
||||||
|
texture = ExtResource("3_dvwtm")
|
||||||
|
|
||||||
|
[node name="Node2D10" type="Node2D" parent="."]
|
||||||
|
position = Vector2(-18, 4)
|
||||||
|
scale = Vector2(0.93, 0.93)
|
||||||
|
|
||||||
|
[node name="Node2D2" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(39, -100)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D2"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D2"]
|
||||||
|
offset_left = 296.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 898.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Producer"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D2"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D2"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Kathi"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(39, 15)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Programming"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Jonathan"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D3" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 130)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D3"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D3"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Sound Design"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D3"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D3"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Laura"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D4" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 244)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D4"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D4"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Project Manager"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D4"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D4"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Anna"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D5" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 356)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D5"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D5"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Art"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D5"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D5"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Alphawolfin"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D6" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 581)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D6"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D6"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Game Design"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D6"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D6"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Max"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D7" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 695)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D7"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D7"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Writer"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D7"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D7"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Sanel"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D8" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 469)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D8"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D8"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Animation"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D8"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D8"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Felix"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D9" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 807)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D9"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D9"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Music"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag3" type="Sprite2D" parent="Node2D10/Node2D9"]
|
||||||
|
position = Vector2(3726.91, 187.387)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label3" type="Label" parent="Node2D10/Node2D9"]
|
||||||
|
offset_left = 3425.86
|
||||||
|
offset_top = 134.387
|
||||||
|
offset_right = 4027.86
|
||||||
|
offset_bottom = 261.387
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Gefördert durch"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D9"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D9"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Felix"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="CozyRavenLogoBreit" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1044.13, 876.875)
|
||||||
|
scale = Vector2(0.150709, 0.150709)
|
||||||
|
texture = ExtResource("6_l0rmr")
|
||||||
|
|
||||||
|
[node name="fums Logo" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1751, 917)
|
||||||
|
scale = Vector2(0.496692, 0.496693)
|
||||||
|
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"]
|
||||||
+822
-545
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,172 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://botol7aqw81n7"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_c6eln"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cugtxcfuds31r" path="res://art/indoor/Babushka_bg_01.png" id="2_j25a2"]
|
||||||
|
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="8_j25a2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="8_phqdf"]
|
||||||
|
[ext_resource type="Resource" uid="uid://csj15gnlx1jmx" path="res://resources/quests/demo/8_goto_bed.tres" id="9_heyef"]
|
||||||
|
[ext_resource type="Texture2D" path="res://art/indoor/vesna_indoor_bed.png" id="10_hryl5"]
|
||||||
|
[ext_resource type="Script" uid="uid://puw74w6lmcvl" path="res://scripts/CSharp/Common/Fight/NightStarter.cs" id="10_j25a2"]
|
||||||
|
[ext_resource type="Texture2D" path="res://art/indoor/vesna_indoor_door.png" id="11_axs81"]
|
||||||
|
[ext_resource type="Script" uid="uid://jg4jryfus3bw" path="res://scripts/CSharp/Common/DayAndNight/DayAndNightHelper.cs" id="11_heyef"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="13_11fdt"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="14_axs81"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="18_3gevq"]
|
||||||
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="23_408bg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_xwo8y"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_l0jrn"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
size = Vector2(3836, 1086)
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2spkc"]
|
||||||
|
size = Vector2(238.25, 189.75)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_phqdf"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 381.93
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_2spkc"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 509.071
|
||||||
|
|
||||||
|
[node name="VesnasRoom" type="Node2D"]
|
||||||
|
y_sort_enabled = true
|
||||||
|
script = ExtResource("1_c6eln")
|
||||||
|
_sceneNamesToLoad = PackedStringArray("res://scenes/scene_indoor_common_room.tscn", "res://scenes/scene_fight_world_room.tscn")
|
||||||
|
|
||||||
|
[node name="Colliders" type="Node2D" parent="."]
|
||||||
|
position = Vector2(1297, 5292)
|
||||||
|
scale = Vector2(4, 4)
|
||||||
|
|
||||||
|
[node name="SideColliderLeft" type="StaticBody2D" parent="Colliders"]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/SideColliderLeft"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="SideColliderRight" type="StaticBody2D" parent="Colliders"]
|
||||||
|
position = Vector2(4858, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/SideColliderRight"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="TopCollider" type="StaticBody2D" parent="Colliders"]
|
||||||
|
position = Vector2(2448.75, -595)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/TopCollider"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="BottomCollider" type="StaticBody2D" parent="Colliders"]
|
||||||
|
position = Vector2(2495.5, 757.75)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/BottomCollider"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="BedCollider" type="StaticBody2D" parent="Colliders"]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/BedCollider"]
|
||||||
|
position = Vector2(-828.625, -1230.38)
|
||||||
|
shape = SubResource("RectangleShape2D_2spkc")
|
||||||
|
|
||||||
|
[node name="BackWall" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="Room01Walls2" type="Sprite2D" parent="BackWall"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(4992, -487)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("2_j25a2")
|
||||||
|
offset = Vector2(-2768, 264)
|
||||||
|
|
||||||
|
[node name="Room01Shelf" type="Sprite2D" parent="BackWall"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-1978, -678)
|
||||||
|
texture = ExtResource("13_11fdt")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1846, 471, 348, 490)
|
||||||
|
|
||||||
|
[node name="Vesna" parent="." instance=ExtResource("18_3gevq")]
|
||||||
|
position = Vector2(-471, 185)
|
||||||
|
|
||||||
|
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")]
|
||||||
|
position = Vector2(-1534, -26)
|
||||||
|
offset = Vector2(0, -200)
|
||||||
|
zoom = Vector2(0.5, 0.5)
|
||||||
|
limit_left = -2600
|
||||||
|
limit_top = -1400
|
||||||
|
limit_right = 1500
|
||||||
|
limit_bottom = 1400
|
||||||
|
editor_draw_limits = true
|
||||||
|
script = ExtResource("23_408bg")
|
||||||
|
_followNode = NodePath("../Vesna/CharacterBody2D")
|
||||||
|
|
||||||
|
[node name="CanvasLayer" parent="." instance=ExtResource("24_xwo8y")]
|
||||||
|
|
||||||
|
[node name="BedInteraction" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("8_phqdf")]
|
||||||
|
position = Vector2(-1415, 489)
|
||||||
|
_spritesToOutline = [NodePath("Bedsprite")]
|
||||||
|
_id = 1
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="BedInteraction/Area2D" index="0"]
|
||||||
|
position = Vector2(-382, 9)
|
||||||
|
shape = SubResource("CircleShape2D_phqdf")
|
||||||
|
|
||||||
|
[node name="QuestCompleter" type="Node" parent="BedInteraction"]
|
||||||
|
script = ExtResource("8_j25a2")
|
||||||
|
questResource = ExtResource("9_heyef")
|
||||||
|
toStatus = 2
|
||||||
|
|
||||||
|
[node name="Bedsprite" type="Sprite2D" parent="BedInteraction"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -99
|
||||||
|
position = Vector2(4925, -967)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("10_hryl5")
|
||||||
|
offset = Vector2(-2768, 264)
|
||||||
|
region_rect = Rect2(36.702454, 566.3165, 492.73346, 422.25665)
|
||||||
|
|
||||||
|
[node name="DoorInteraction" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("8_phqdf")]
|
||||||
|
position = Vector2(777, 201)
|
||||||
|
_spritesToOutline = [NodePath("Doorsprite")]
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_2spkc")
|
||||||
|
|
||||||
|
[node name="Doorsprite" type="Sprite2D" parent="DoorInteraction"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -99
|
||||||
|
position = Vector2(5559, -961)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("11_axs81")
|
||||||
|
offset = Vector2(-2768, 264)
|
||||||
|
region_rect = Rect2(1517.5891, 258.72107, 356.62732, 741.81134)
|
||||||
|
|
||||||
|
[node name="NightStarter" type="Node" parent="."]
|
||||||
|
script = ExtResource("10_j25a2")
|
||||||
|
_sceneIndexToLoad = 1
|
||||||
|
|
||||||
|
[node name="CountDayUp" type="Node" parent="NightStarter"]
|
||||||
|
script = ExtResource("11_heyef")
|
||||||
|
|
||||||
|
[node name="PointLight2D" type="PointLight2D" parent="."]
|
||||||
|
position = Vector2(-630, -568)
|
||||||
|
scale = Vector2(2.5, 1.3)
|
||||||
|
color = Color(1, 0.73333335, 0.69803923, 1)
|
||||||
|
energy = 1.86
|
||||||
|
texture = ExtResource("14_axs81")
|
||||||
|
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="BedInteraction/QuestCompleter" method="Trigger"]
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="NightStarter" method="StartNight"]
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="NightStarter/CountDayUp" method="IncreaseDayCount"]
|
||||||
|
[connection signal="Interacted" from="DoorInteraction" to="." method="LoadScene"]
|
||||||
|
[connection signal="LoadScene" from="NightStarter" to="." method="LoadSceneAtIndex"]
|
||||||
|
|
||||||
|
[editable path="Vesna"]
|
||||||
|
[editable path="BedInteraction"]
|
||||||
|
[editable path="DoorInteraction"]
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://bradm5u7vjjxq" path="res://art/mockups/trees/darktree8.png" id="9_viosu"]
|
[ext_resource type="Texture2D" uid="uid://bradm5u7vjjxq" path="res://art/mockups/trees/darktree8.png" id="9_viosu"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bryqg0hb4f0ry" path="res://art/mockups/trees/darktree9.png" id="10_clutx"]
|
[ext_resource type="Texture2D" uid="uid://bryqg0hb4f0ry" path="res://art/mockups/trees/darktree9.png" id="10_clutx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c1iyeflkwaqxf" path="res://art/testingground/mushroom1.png" id="11_ovtse"]
|
[ext_resource type="Texture2D" uid="uid://c1iyeflkwaqxf" path="res://art/testingground/mushroom1.png" id="11_ovtse"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="12_k41x3"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="12_k41x3"]
|
||||||
|
|
||||||
[node name="AbandonedStreet" type="Node2D"]
|
[node name="AbandonedStreet" type="Node2D"]
|
||||||
|
|
||||||
|
|||||||
@@ -18,12 +18,23 @@ public partial class VesnaAnimations : Node
|
|||||||
/// Emits the last look direction of the player to other scripts.
|
/// Emits the last look direction of the player to other scripts.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Signal] public delegate void LookDirectionEventHandler(Vector2 direction);
|
[Signal] public delegate void LookDirectionEventHandler(Vector2 direction);
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
// calling with a 1-frame delay to avoid race conditions.
|
||||||
|
CallDeferred(nameof(SetupSubscriptions));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetupSubscriptions()
|
||||||
{
|
{
|
||||||
InventoryManager.Instance.playerInventory.InventoryContentsChanged += HandleNewItemInInventory;
|
InventoryManager.Instance.playerInventory.InventoryContentsChanged += HandleNewItemInInventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
InventoryManager.Instance.playerInventory.InventoryContentsChanged -= HandleNewItemInInventory;
|
||||||
|
}
|
||||||
|
|
||||||
private void HandleNewItemInInventory()
|
private void HandleNewItemInInventory()
|
||||||
{
|
{
|
||||||
// for future Kathi: this does not, in fact, check if an item has been added only, but triggers on every content change!
|
// for future Kathi: this does not, in fact, check if an item has been added only, but triggers on every content change!
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Babushka.scripts.CSharp.Common.Services;
|
using Babushka.scripts.CSharp.Common.Services;
|
||||||
using Godot;
|
using Godot;
|
||||||
@@ -7,7 +6,7 @@ namespace Babushka.scripts.CSharp.Common.CharacterControls;
|
|||||||
|
|
||||||
public partial class InteractionArea2D : Node2D
|
public partial class InteractionArea2D : Node2D
|
||||||
{
|
{
|
||||||
|
[ExportGroup("Settings")]
|
||||||
[Export] private Area2D _area;
|
[Export] private Area2D _area;
|
||||||
[Export] private Label _label;
|
[Export] private Label _label;
|
||||||
[Export] private bool _active = true;
|
[Export] private bool _active = true;
|
||||||
@@ -42,7 +41,6 @@ public partial class InteractionArea2D : Node2D
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void OnPlayerEntered(Node2D player)
|
public void OnPlayerEntered(Node2D player)
|
||||||
{
|
{
|
||||||
if (!_active || !InputService.Instance.InputEnabled)
|
if (!_active || !InputService.Instance.InputEnabled)
|
||||||
@@ -104,12 +102,16 @@ public partial class InteractionArea2D : Node2D
|
|||||||
sprite.Material = _backupMaterials[i];
|
sprite.Material = _backupMaterials[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Interact();
|
||||||
EmitSignal(SignalName.InteractedTool, _id);
|
|
||||||
EmitSignal(SignalName.Interacted);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Interact()
|
||||||
|
{
|
||||||
|
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 (!_active)
|
if (!_active)
|
||||||
@@ -121,4 +123,5 @@ public partial class InteractionArea2D : Node2D
|
|||||||
_active = !_active;
|
_active = !_active;
|
||||||
_label.Hide();
|
_label.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using Babushka.scripts.CSharp.Low_Code.Variables;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.DayAndNight;
|
||||||
|
|
||||||
|
public partial class CalendarController : Node
|
||||||
|
{
|
||||||
|
[Export] private SaveableVariableNode _dayCounter;
|
||||||
|
|
||||||
|
public static CalendarController? Instance;
|
||||||
|
|
||||||
|
public int CurrentDay
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Instance == null)
|
||||||
|
return 0;
|
||||||
|
return Instance._dayCounter.Payload.AsInt32();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
if (Instance == null)
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent @event)
|
||||||
|
{
|
||||||
|
if (@event.IsActionPressed("NextDayCheat"))
|
||||||
|
{
|
||||||
|
GoToNextDay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GoToNextDay()
|
||||||
|
{
|
||||||
|
int days = _dayCounter.Payload.AsInt32();
|
||||||
|
days++;
|
||||||
|
_dayCounter.Payload = days;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://du5facslfvg77
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.DayAndNight;
|
||||||
|
|
||||||
|
public partial class DayAndNightHelper : Node
|
||||||
|
{
|
||||||
|
public void IncreaseDayCount()
|
||||||
|
{
|
||||||
|
CalendarController.Instance?.GoToNextDay();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://jg4jryfus3bw
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
using System;
|
|
||||||
using Babushka.scripts.CSharp.Low_Code.Variables;
|
using Babushka.scripts.CSharp.Low_Code.Variables;
|
||||||
using Godot;
|
using Godot;
|
||||||
using Godot.Collections;
|
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using Babushka.scripts.CSharp.Common.CharacterControls;
|
using Babushka.scripts.CSharp.Common.CharacterControls;
|
||||||
|
using Babushka.scripts.CSharp.Common.DayAndNight;
|
||||||
using Babushka.scripts.CSharp.Common.Inventory;
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
using Babushka.scripts.CSharp.Common.Savegame;
|
using Babushka.scripts.CSharp.Common.Savegame;
|
||||||
using Babushka.scripts.CSharp.Low_Code.Events;
|
using Babushka.scripts.CSharp.Low_Code.Events;
|
||||||
@@ -13,11 +14,11 @@ namespace Babushka.scripts.CSharp.Common.Farming;
|
|||||||
/// Defines the behaviour of the field, i.e. interactions, states and effects.
|
/// Defines the behaviour of the field, i.e. interactions, states and effects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[GlobalClass]
|
[GlobalClass]
|
||||||
public partial class FieldBehaviour2D : Sprite2D
|
public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
||||||
{
|
{
|
||||||
[ExportGroup("Persistence")]
|
[ExportGroup("Persistence")]
|
||||||
[Export] public string SaveId = "";
|
|
||||||
[Export] private VariableNode _fieldIndex;
|
[Export] private VariableNode _fieldIndex;
|
||||||
|
[Export] private Node _saveIdHolder;
|
||||||
[Export] public VariableResource _sceneKeyProvider;
|
[Export] public VariableResource _sceneKeyProvider;
|
||||||
[Export] public FieldState FieldState = FieldState.Tilled;
|
[Export] public FieldState FieldState = FieldState.Tilled;
|
||||||
|
|
||||||
@@ -45,8 +46,11 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
|
|
||||||
private bool _canPlant;
|
private bool _canPlant;
|
||||||
private bool _canWater;
|
private bool _canWater;
|
||||||
|
private int _currentDay;
|
||||||
|
|
||||||
private PlantBehaviour2D? _currentPlant;
|
private PlantBehaviour2D? _currentPlant;
|
||||||
|
|
||||||
|
private const string DAY_COUNTER_SAVE_ID = "12c6da2e-fc71-4281-a04a-dfd3c7943975";
|
||||||
|
|
||||||
[Signal] public delegate void PlantedEventHandler();
|
[Signal] public delegate void PlantedEventHandler();
|
||||||
|
|
||||||
@@ -56,6 +60,7 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
_canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive;
|
_canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive;
|
||||||
// fieldstate == tilled && watering can ausgewählt
|
// fieldstate == tilled && watering can ausgewählt
|
||||||
_canWater = (FieldState == FieldState.Tilled || FieldState == FieldState.Planted) && _wateringCanActive;
|
_canWater = (FieldState == FieldState.Tilled || FieldState == FieldState.Planted) && _wateringCanActive;
|
||||||
|
|
||||||
FieldInteractionArea.IsActive = _canPlant || _canWater;
|
FieldInteractionArea.IsActive = _canPlant || _canWater;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,22 +76,24 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
UpdateInteractionArea();
|
UpdateInteractionArea();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _EnterTree()
|
||||||
{
|
{
|
||||||
LoadFromSaveData();
|
LoadFromSaveData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
if(PlantingPlaceholder.GetChildCount() > 0)
|
if(PlantingPlaceholder.GetChildCount() > 0)
|
||||||
_currentPlant = PlantingPlaceholder.GetChild<PlantBehaviour2D>(0);
|
_currentPlant = PlantingPlaceholder.GetChild<PlantBehaviour2D>(0);
|
||||||
UpdateFieldState(FieldState);
|
UpdateFieldState(FieldState);
|
||||||
|
|
||||||
FieldService.Instance.TryAddEntry(_sceneKeyProvider.Payload.AsString(),_fieldIndex.Payload.AsInt32(), this);
|
|
||||||
|
|
||||||
int randomIndex = new Random().Next(0, _maskTexture.Length);
|
int randomIndex = new Random().Next(0, _maskTexture.Length);
|
||||||
_maskSprite.Texture = _maskTexture[randomIndex];
|
_maskSprite.Texture = _maskTexture[randomIndex];
|
||||||
_outlineSprite.Texture = _maskOutlineTextures[randomIndex];
|
_outlineSprite.Texture = _maskOutlineTextures[randomIndex];
|
||||||
base._Ready();
|
base._Ready();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateFieldState(FieldState state)
|
public void UpdateFieldState(FieldState state, bool updateSaveAfter = true)
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
@@ -114,18 +121,25 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
UpdateInteractionArea();
|
UpdateInteractionArea();
|
||||||
UpdateSaveData();
|
if(updateSaveAfter)
|
||||||
|
UpdateSaveData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void Water()
|
public void Water()
|
||||||
{
|
{
|
||||||
if (WateringCanState.GetFillState() > 0)
|
if (WateringCanState.GetFillState() > 0 && FieldState != FieldState.Watered)
|
||||||
{
|
{
|
||||||
UpdateFieldState(FieldState.Watered);
|
UpdateFieldState(FieldState.Watered);
|
||||||
_wateringParticles.Emitting = true;
|
_wateringParticles.Emitting = true;
|
||||||
WateringCanState.Water();
|
WateringCanState.Water();
|
||||||
_wateringEvent.Raise();
|
_wateringEvent.Raise();
|
||||||
|
|
||||||
|
if (_currentPlant != null)
|
||||||
|
{
|
||||||
|
_currentPlant.DaysWatered++;
|
||||||
|
UpdateSaveData();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,6 +182,16 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void PlantPrefab(string prefabPath)
|
private void PlantPrefab(string prefabPath)
|
||||||
|
{
|
||||||
|
InstantiatePlant(prefabPath);
|
||||||
|
|
||||||
|
if (_currentPlant != null)
|
||||||
|
{
|
||||||
|
_currentPlant.DayPlanted = _currentDay;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InstantiatePlant(string prefabPath)
|
||||||
{
|
{
|
||||||
PackedScene prefab = ResourceLoader.Load<PackedScene>(prefabPath, nameof(PackedScene));
|
PackedScene prefab = ResourceLoader.Load<PackedScene>(prefabPath, nameof(PackedScene));
|
||||||
Node2D plant2d = prefab.Instantiate<Node2D>();
|
Node2D plant2d = prefab.Instantiate<Node2D>();
|
||||||
@@ -180,18 +204,24 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
_currentPlant.Field = this;
|
_currentPlant.Field = this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void HarvestPlant()
|
||||||
|
{
|
||||||
|
_currentPlant = null;
|
||||||
|
UpdateFieldState(FieldState.Empty, true);
|
||||||
|
}
|
||||||
|
|
||||||
#region SAVE AND LOAD
|
#region SAVE AND LOAD
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update save data as prep for scene transition (when data is saved and loaded from disk).
|
||||||
|
/// </summary>
|
||||||
public void UpdateSaveData()
|
public void UpdateSaveData()
|
||||||
{
|
{
|
||||||
var saveData = new SaveData();
|
|
||||||
|
|
||||||
saveData.SceneName = _sceneKeyProvider.Payload.AsString();
|
|
||||||
saveData.Id = SaveId + _fieldIndex.Payload.AsString();
|
|
||||||
var payloadData = new Dictionary<string, Variant>
|
var payloadData = new Dictionary<string, Variant>
|
||||||
{
|
{
|
||||||
{ "field_state", (int)FieldState }
|
{ "field_state", (int)FieldState },
|
||||||
|
{ "day_count_on_last_exit", _currentDay}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_currentPlant != null)
|
if (_currentPlant != null)
|
||||||
@@ -200,62 +230,108 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
"plant_data", new Dictionary<string, Variant>()
|
"plant_data", new Dictionary<string, Variant>()
|
||||||
{
|
{
|
||||||
{ "prefab_path", _currentPlant.PrefabPath },
|
{ "prefab_path", _currentPlant.PrefabPath },
|
||||||
{ "plant_state", (int)_currentPlant.State },
|
{ "plant_start_day", _currentPlant.DayPlanted },
|
||||||
{ "plant_days_growing", _currentPlant.DaysGrowing }
|
{ "plant_watered_days", _currentPlant.DaysWatered }
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
saveData.JsonPayload = Json.Stringify(payloadData, indent: "\t");
|
string id = _saveIdHolder.GetMeta("SaveID").AsString();
|
||||||
|
SavegameService.AppendDataToSave(id, payloadData);
|
||||||
SavegameService.AppendSave(saveData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads on scene enter.
|
||||||
|
/// </summary>
|
||||||
public void LoadFromSaveData()
|
public void LoadFromSaveData()
|
||||||
{
|
{
|
||||||
var sceneName = _sceneKeyProvider.Payload.AsString();
|
// Get field and plant data
|
||||||
var id = SaveId + _fieldIndex.Payload.AsString();
|
string id = _saveIdHolder.GetMeta("SaveID").AsString();
|
||||||
string jsonPayload = SavegameService.GetSaveData(sceneName, id);
|
|
||||||
Dictionary<string, Variant> save = Json.ParseString(jsonPayload).AsGodotDictionary<string, Variant>();
|
Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
|
||||||
|
|
||||||
|
// if we already have a plant, don't instantiate another one
|
||||||
|
int plantCount = PlantingPlaceholder.GetChildCount();
|
||||||
|
|
||||||
if (save.Count > 0)
|
if (save.Count > 0)
|
||||||
{
|
{
|
||||||
if (save.TryGetValue("field_state", out Variant fieldStateVar))
|
// get plant first because it's also relevant for the field state
|
||||||
{
|
|
||||||
int fieldStateInt = fieldStateVar.AsInt32();
|
|
||||||
FieldState = (FieldState) fieldStateInt;
|
|
||||||
|
|
||||||
if (fieldStateInt != 0)
|
|
||||||
{
|
|
||||||
Visible = true;
|
|
||||||
UpdateFieldState(FieldState);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (save.TryGetValue("plant_data", out Variant plantDataVar))
|
if (save.TryGetValue("plant_data", out Variant plantDataVar))
|
||||||
{
|
{
|
||||||
Dictionary<string, Variant> plantDataDict = plantDataVar.AsGodotDictionary<string, Variant>();
|
Dictionary<string, Variant> plantDataDict = plantDataVar.AsGodotDictionary<string, Variant>();
|
||||||
|
|
||||||
if (plantDataDict.TryGetValue("prefab_path", out Variant prefabPathVar))
|
if (plantDataDict.TryGetValue("prefab_path", out Variant prefabPathVar))
|
||||||
{
|
{
|
||||||
PlantPrefab(prefabPathVar.AsString());
|
if(plantCount == 0)
|
||||||
|
InstantiatePlant(prefabPathVar.AsString());
|
||||||
|
else
|
||||||
|
_currentPlant = PlantingPlaceholder.GetChild(0) as PlantBehaviour2D;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plantDataDict.TryGetValue("plant_state", out Variant plantStateVar) && _currentPlant != null)
|
|
||||||
{
|
|
||||||
_currentPlant.State = (PlantState) plantStateVar.AsInt32();
|
|
||||||
_currentPlant.GrowPlant();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (plantDataDict.TryGetValue("plant_days_growing", out Variant plantDaysGrowingVar) && _currentPlant != null)
|
|
||||||
{
|
|
||||||
_currentPlant.DaysGrowing = plantDaysGrowingVar.AsInt32();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (plantDataDict.TryGetValue("plant_start_day", out Variant plantStartDay) && _currentPlant != null)
|
||||||
|
{
|
||||||
|
_currentPlant.DayPlanted = plantStartDay.AsInt32();
|
||||||
|
}
|
||||||
|
if (plantDataDict.TryGetValue("plant_watered_days", out Variant plantDaysWatered) && _currentPlant != null)
|
||||||
|
{
|
||||||
|
_currentPlant.DaysWatered = plantDaysWatered.AsInt32();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get current day count: Load only. Saving the day count is handled on the day and night prefab.
|
||||||
|
Dictionary<string, Variant> dayCountSave = SavegameService.GetSaveData(DAY_COUNTER_SAVE_ID);
|
||||||
|
|
||||||
|
if (dayCountSave.Count > 0)
|
||||||
|
{
|
||||||
|
if (dayCountSave.TryGetValue("payload", out Variant dayCountVar))
|
||||||
|
{
|
||||||
|
_currentDay = dayCountVar.AsInt32();
|
||||||
|
if (_currentPlant != null)
|
||||||
|
{
|
||||||
|
_currentPlant.CurrentDayInCalendar = _currentDay;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get field state
|
||||||
|
if (save.TryGetValue("field_state", out Variant fieldStateVar))
|
||||||
|
{
|
||||||
|
int fieldStateInt = fieldStateVar.AsInt32();
|
||||||
|
|
||||||
|
// if the field has been unlocked, make it visible.
|
||||||
|
if (fieldStateInt != 0)
|
||||||
|
{
|
||||||
|
Visible = true;
|
||||||
|
|
||||||
|
if (save.TryGetValue("day_count_on_last_exit", out Variant lastDayCountVar))
|
||||||
|
{
|
||||||
|
int lastDayCount = lastDayCountVar.AsInt32();
|
||||||
|
|
||||||
|
// if day is today, then just use the provided field state as is.
|
||||||
|
if (CalendarController.Instance != null && _currentDay != lastDayCount)
|
||||||
|
{
|
||||||
|
// if the field was watered the day before, set it to tilled or planted.
|
||||||
|
if (fieldStateInt == 3)
|
||||||
|
{
|
||||||
|
if (_currentPlant != null)
|
||||||
|
{
|
||||||
|
fieldStateInt = 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fieldStateInt = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FieldState = (FieldState) fieldStateInt;
|
||||||
|
UpdateFieldState(FieldState, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,100 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using Godot;
|
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
|
||||||
|
|
||||||
public partial class FieldService : Node
|
|
||||||
{
|
|
||||||
private Dictionary<string, FieldsInScene>? _outerDict = null!;
|
|
||||||
public static FieldService Instance { get; private set; } = null!;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
Instance = this;
|
|
||||||
_outerDict = new Dictionary<string, FieldsInScene>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _ExitTree()
|
|
||||||
{
|
|
||||||
Instance = null;
|
|
||||||
_outerDict = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Create
|
|
||||||
public bool TryAddEntry(string sceneName, int fieldIndex, FieldBehaviour2D field)
|
|
||||||
{
|
|
||||||
if (_outerDict != null )
|
|
||||||
{
|
|
||||||
FieldsInScene innerDict;
|
|
||||||
bool outerDictEntryExists = _outerDict.TryGetValue(sceneName, out innerDict);
|
|
||||||
|
|
||||||
if (!outerDictEntryExists)
|
|
||||||
{
|
|
||||||
innerDict = new FieldsInScene();
|
|
||||||
_outerDict.Add(sceneName, innerDict);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!innerDict.fields.ContainsKey(fieldIndex))
|
|
||||||
{
|
|
||||||
innerDict.fields.Add(fieldIndex, field);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read
|
|
||||||
public FieldBehaviour2D? TryGet(string key, int fieldIndex)
|
|
||||||
{
|
|
||||||
if (_outerDict != null && _outerDict.TryGetValue(key, out FieldsInScene? field))
|
|
||||||
{
|
|
||||||
if (field.fields.TryGetValue(fieldIndex, out FieldBehaviour2D? fieldInstance))
|
|
||||||
{
|
|
||||||
return fieldInstance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Update
|
|
||||||
public void UpdateEntry(string key, int fieldIndex, FieldBehaviour2D state)
|
|
||||||
{
|
|
||||||
if (_outerDict != null && _outerDict.TryGetValue(key, out FieldsInScene? field))
|
|
||||||
{
|
|
||||||
if (field.fields.ContainsKey(fieldIndex))
|
|
||||||
{
|
|
||||||
field.fields[fieldIndex] = state;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TryAddEntry(key, fieldIndex, state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Delete
|
|
||||||
public void RemoveEntry(string key, int fieldIndex)
|
|
||||||
{
|
|
||||||
if (_outerDict != null && _outerDict.TryGetValue(key, out FieldsInScene? field))
|
|
||||||
{
|
|
||||||
if (field.fields.ContainsKey(fieldIndex))
|
|
||||||
{
|
|
||||||
field.fields.Remove(fieldIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class FieldsInScene
|
|
||||||
{
|
|
||||||
public Dictionary<int, FieldBehaviour2D?> fields;
|
|
||||||
|
|
||||||
public FieldsInScene()
|
|
||||||
{
|
|
||||||
fields = new Dictionary<int, FieldBehaviour2D?>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://slo0uydmmvnu
|
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using Babushka.scripts.CSharp.Common.Inventory;
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Babushka.scripts.CSharp.Low_Code.Variables;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
@@ -9,7 +12,8 @@ namespace Babushka.scripts.CSharp.Common.Farming;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class PlantBehaviour2D : Node2D
|
public partial class PlantBehaviour2D : Node2D
|
||||||
{
|
{
|
||||||
[Export] private string _prefabPath;
|
|
||||||
|
[ExportGroup("Plant State")]
|
||||||
[Export] private Sprite2D[] _seeds;
|
[Export] private Sprite2D[] _seeds;
|
||||||
[Export] private Sprite2D[] _smallPlants;
|
[Export] private Sprite2D[] _smallPlants;
|
||||||
[Export] private Sprite2D[] _bigPlants;
|
[Export] private Sprite2D[] _bigPlants;
|
||||||
@@ -19,11 +23,18 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
[Export] private ItemOnGround2D _harvestablePlant;
|
[Export] private ItemOnGround2D _harvestablePlant;
|
||||||
[Export] private CpuParticles2D _magicEffect;
|
[Export] private CpuParticles2D _magicEffect;
|
||||||
[Export] private bool _magicWordNeeded = true;
|
[Export] private bool _magicWordNeeded = true;
|
||||||
|
|
||||||
|
[ExportGroup("PlantConfig")]
|
||||||
|
[Export] private string _prefabPath;
|
||||||
|
[Export] private VariableNode _lifecycle;
|
||||||
|
[Export] private int _daysWatered;
|
||||||
|
|
||||||
private string _magicWordDialogicEventName = "MagicWord";
|
private string _magicWordDialogicEventName = "MagicWord";
|
||||||
private Sprite2D? _currentPlantSprite = null;
|
private Sprite2D? _currentPlantSprite = null;
|
||||||
private bool _magicWordSaid = false;
|
private bool _magicWordSaid = false;
|
||||||
private bool _calledOnReady = false;
|
private bool _calledOnReady = false;
|
||||||
|
private int _dayPlanted;
|
||||||
|
private int _currentDay;
|
||||||
|
|
||||||
public PlantState State
|
public PlantState State
|
||||||
{
|
{
|
||||||
@@ -31,8 +42,26 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
set => _state = value;
|
set => _state = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int DaysGrowing { get; set; }
|
/// <summary>
|
||||||
|
/// The day count at the day this plant was planted.
|
||||||
|
/// </summary>
|
||||||
|
public int DayPlanted
|
||||||
|
{
|
||||||
|
get => _dayPlanted;
|
||||||
|
set => _dayPlanted = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int CurrentDayInCalendar
|
||||||
|
{
|
||||||
|
get => _currentDay;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_currentDay == value) return;
|
||||||
|
_currentDay = value;
|
||||||
|
DaysGrowingChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public string PrefabPath => _prefabPath;
|
public string PrefabPath => _prefabPath;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -44,6 +73,15 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
set => _field = value;
|
set => _field = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int DaysWatered
|
||||||
|
{
|
||||||
|
get => _daysWatered;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_daysWatered = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
if (_state == PlantState.None)
|
if (_state == PlantState.None)
|
||||||
@@ -58,13 +96,32 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
GrowPlant();
|
GrowPlant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DaysGrowingChanged()
|
||||||
|
{
|
||||||
|
int lifecycle = _lifecycle.Payload.AsInt32();
|
||||||
|
Debug.Assert(lifecycle > 0);
|
||||||
|
|
||||||
|
float growth = (float)_daysWatered / lifecycle;
|
||||||
|
int growthFloor = Mathf.FloorToInt(growth);
|
||||||
|
|
||||||
|
_state = growthFloor switch
|
||||||
|
{
|
||||||
|
0 => PlantState.None,
|
||||||
|
1 => PlantState.Planted,
|
||||||
|
2 => PlantState.SmallPlant,
|
||||||
|
_ => PlantState.BigPlant
|
||||||
|
};
|
||||||
|
|
||||||
|
_calledOnReady = true;
|
||||||
|
Grow();
|
||||||
|
}
|
||||||
|
|
||||||
public void Grow()
|
public void Grow()
|
||||||
{
|
{
|
||||||
GrowPlant();
|
GrowPlant();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Transitions the plant to its next growth stage.
|
/// Transitions the plant to its next growth stage.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -103,14 +160,14 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
||||||
_currentPlantSprite.Visible = true;
|
_currentPlantSprite.Visible = true;
|
||||||
ActivatePickupAfterDelay(true);
|
SetActiveHarvestablePlant(true);
|
||||||
break;
|
break;
|
||||||
case PlantState.Ready:
|
case PlantState.Ready:
|
||||||
_state = PlantState.None;
|
_state = PlantState.None;
|
||||||
if(_currentPlantSprite != null)
|
if(_currentPlantSprite != null)
|
||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = null;
|
_currentPlantSprite = null;
|
||||||
ActivatePickupAfterDelay(false);
|
SetActiveHarvestablePlant(false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -127,15 +184,9 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
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)
|
private void SetActiveHarvestablePlant(bool active)
|
||||||
{
|
{
|
||||||
_harvestablePlant.IsActive = active;
|
//_harvestablePlant.IsActive = active;
|
||||||
_harvestablePlant.UpdateVisuals();
|
_harvestablePlant.UpdateVisuals();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,4 +200,9 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
_magicWordSaid = true;
|
_magicWordSaid = true;
|
||||||
Grow();
|
Grow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Harvest()
|
||||||
|
{
|
||||||
|
Field.HarvestPlant();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
using Babushka.scripts.CSharp.Low_Code.Variables;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
|
public partial class WateringCanSaveHelper : Node
|
||||||
|
{
|
||||||
|
[Export] private SaveableVariableNode _wateringCanFillStateNode;
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
WateringCanState.OnFill += SetFillState;
|
||||||
|
WateringCanState.OnWater += SetFillState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
WateringCanState.OnFill -= SetFillState;
|
||||||
|
WateringCanState.OnWater -= SetFillState;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetFillState()
|
||||||
|
{
|
||||||
|
_wateringCanFillStateNode.Payload = WateringCanState.GetFillState();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnLoad()
|
||||||
|
{
|
||||||
|
WateringCanState.SetFillState(_wateringCanFillStateNode.Payload.AsInt32());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dj1qjambsa4pg
|
||||||
@@ -29,6 +29,7 @@ public static class WateringCanState
|
|||||||
public delegate void WateringCanDelegate(bool state);
|
public delegate void WateringCanDelegate(bool state);
|
||||||
public static event WateringCanDelegate WateringCanActiveStateChanged;
|
public static event WateringCanDelegate WateringCanActiveStateChanged;
|
||||||
public static event Action? OnWater;
|
public static event Action? OnWater;
|
||||||
|
public static event Action? OnFill;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@ public static class WateringCanState
|
|||||||
public static void Fill()
|
public static void Fill()
|
||||||
{
|
{
|
||||||
_fillstate = MAX_FILLSTATE;
|
_fillstate = MAX_FILLSTATE;
|
||||||
|
OnFill?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -69,6 +71,15 @@ public static class WateringCanState
|
|||||||
return _fillstate;
|
return _fillstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Public setter. Used for saving and loading.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fillstate"></param>
|
||||||
|
public static void SetFillState(int fillstate)
|
||||||
|
{
|
||||||
|
_fillstate = fillstate;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets the Active state of the watering can, i.e. if it is currently in hand and if the ui should be active.
|
/// Sets the Active state of the watering can, i.e. if it is currently in hand and if the ui should be active.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ public partial class ActionAnimationController : Node
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[Export] private AllFightersVisual _allFightersVisual = null!;
|
[Export] private AllFightersVisual _allFightersVisual = null!;
|
||||||
|
[Export] private FightHappeningAnimationContext _animationContext = null!;
|
||||||
|
|
||||||
public void StateEnter()
|
public void StateEnter()
|
||||||
{
|
{
|
||||||
_ = HappeningData.actionStaging!.AnimateAction(_allFightersVisual);
|
_ = HappeningData.actionStaging!.AnimateAction(_allFightersVisual,_animationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StateExit()
|
public void StateExit()
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ public class TargetSelectActionDetail : FighterAction.FighterActionDetail
|
|||||||
// settings
|
// settings
|
||||||
public required bool selectEnemy;
|
public required bool selectEnemy;
|
||||||
public required bool selectAlly;
|
public required bool selectAlly;
|
||||||
|
public required bool aliveOnly;
|
||||||
public VisualRange visualRange = VisualRange.Single;
|
public VisualRange visualRange = VisualRange.Single;
|
||||||
|
|
||||||
// result
|
// result
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ public class AllyAttackAction : FighterAction
|
|||||||
public TargetSelectActionDetail targetSelect = new()
|
public TargetSelectActionDetail targetSelect = new()
|
||||||
{
|
{
|
||||||
selectEnemy = true,
|
selectEnemy = true,
|
||||||
selectAlly = false
|
selectAlly = false,
|
||||||
|
aliveOnly = true
|
||||||
};
|
};
|
||||||
|
|
||||||
public MinigameActionDetail minigameDetail = new();
|
public MinigameActionDetail minigameDetail = new();
|
||||||
@@ -47,10 +48,11 @@ public class AllyAttackAction : FighterAction
|
|||||||
public override void ExecuteAction()
|
public override void ExecuteAction()
|
||||||
{
|
{
|
||||||
var totalDamage = minigameDetail.damageHits!.Sum(dh => dh);
|
var totalDamage = minigameDetail.damageHits!.Sum(dh => dh);
|
||||||
targetSelect.GetTarget().AddHealth(-totalDamage);
|
targetSelect.GetTarget().ChangeHealth(-totalDamage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task AnimateAction(AllFightersVisual allFightersVisual)
|
public override async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
{
|
{
|
||||||
var currentFighter = HappeningData.fighterTurn.Current;
|
var currentFighter = HappeningData.fighterTurn.Current;
|
||||||
var targetFighter = targetSelect.GetTarget();
|
var targetFighter = targetSelect.GetTarget();
|
||||||
@@ -63,7 +65,7 @@ public class AllyAttackAction : FighterAction
|
|||||||
|
|
||||||
foreach (var hit in minigameDetail.damageHits!)
|
foreach (var hit in minigameDetail.damageHits!)
|
||||||
{
|
{
|
||||||
targetFighterVisual.SpawnDamageIndicatorNumber(hit);
|
targetFighterVisual.SpawnDamageIndicatorNumber($"-{hit}");
|
||||||
}
|
}
|
||||||
|
|
||||||
await currentFighterVisual.AnimatePosToBase();
|
await currentFighterVisual.AnimatePosToBase();
|
||||||
|
|||||||
@@ -18,10 +18,11 @@ public class BlobAttackAction(int damage = 3) : FighterAction
|
|||||||
|
|
||||||
public override void ExecuteAction()
|
public override void ExecuteAction()
|
||||||
{
|
{
|
||||||
FightWorld.Instance.allyFighters.vesnaFighter.AddHealth(-damage);
|
FightWorld.Instance.allyFighters.vesnaFighter.ChangeHealth(-damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task AnimateAction(AllFightersVisual allFightersVisual)
|
public override async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
{
|
{
|
||||||
var currentFighter = HappeningData.fighterTurn.Current;
|
var currentFighter = HappeningData.fighterTurn.Current;
|
||||||
var targetFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
var targetFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
||||||
@@ -31,7 +32,7 @@ public class BlobAttackAction(int damage = 3) : FighterAction
|
|||||||
|
|
||||||
await currentFighterVisual.AnimatePosToTarget(targetFighterVisual);
|
await currentFighterVisual.AnimatePosToTarget(targetFighterVisual);
|
||||||
_ = targetFighterVisual.AnimateHit();
|
_ = targetFighterVisual.AnimateHit();
|
||||||
targetFighterVisual.SpawnDamageIndicatorNumber(damage);
|
targetFighterVisual.SpawnDamageIndicatorNumber($"-{damage}");
|
||||||
await currentFighterVisual.AnimatePosToBase();
|
await currentFighterVisual.AnimatePosToBase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Babushka.scripts.CSharp.Common.Util;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight.Actions;
|
||||||
|
|
||||||
|
public class EatBeetrootAction : FighterAction
|
||||||
|
{
|
||||||
|
public override Variant<float, Func<bool>> GetAnimationEnd() => 1;
|
||||||
|
public override bool NextDetail() => false;
|
||||||
|
|
||||||
|
private const int HealAmount = 20;
|
||||||
|
|
||||||
|
public override bool ShouldAbort()
|
||||||
|
{
|
||||||
|
Debug.Assert(FightWorld.Instance.itemBeetrootToEatForHealth != null,
|
||||||
|
"Item to eat for health has not been set in the FightWorld autoload");
|
||||||
|
return !InventoryManager.Instance.playerInventory!.HasItems(new ItemInstance
|
||||||
|
{ blueprint = FightWorld.Instance.itemBeetrootToEatForHealth });
|
||||||
|
}
|
||||||
|
|
||||||
|
public override async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
|
{
|
||||||
|
var fighter = HappeningData.fighterTurn.Current;
|
||||||
|
var fighterVisual = allFightersVisual.GetVisualForFighter(fighter);
|
||||||
|
fighterVisual.SpawnDamageIndicatorNumber($"+{HealAmount}");
|
||||||
|
animationContext.useHealItemIndicator.SpawnIndicator();
|
||||||
|
await fighterVisual.AnimateHeal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ExecuteAction()
|
||||||
|
{
|
||||||
|
var fighter = HappeningData.fighterTurn.Current;
|
||||||
|
|
||||||
|
var result = InventoryManager.Instance.playerInventory!.TryRemoveAllItems(
|
||||||
|
new ItemInstance { blueprint = FightWorld.Instance.itemBeetrootToEatForHealth! });
|
||||||
|
|
||||||
|
if (result != InventoryActionResult.Success)
|
||||||
|
throw new Exception("No Beetroot in inventory. This case should have been handled earlier");
|
||||||
|
|
||||||
|
fighter.ChangeHealth(HealAmount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override AllyActionButton BindToActionButton() => AllyActionButton.Talk; // Temporarily bound to talk button
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://b2463q1waqvdu
|
||||||
@@ -117,11 +117,13 @@ public partial class AllFightersVisual : Node
|
|||||||
if (targetDetail.selectEnemy)
|
if (targetDetail.selectEnemy)
|
||||||
_fighterVisuals
|
_fighterVisuals
|
||||||
.Where(kv => kv.Key.IsInFormation(HappeningData.enemyFighterFormation))
|
.Where(kv => kv.Key.IsInFormation(HappeningData.enemyFighterFormation))
|
||||||
|
.Where(kv => !targetDetail.aliveOnly || kv.Key.IsAlive())// if aliveOnly: take where IsAlive
|
||||||
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
||||||
|
|
||||||
if (targetDetail.selectAlly)
|
if (targetDetail.selectAlly)
|
||||||
_fighterVisuals
|
_fighterVisuals
|
||||||
.Where(kv => kv.Key.IsInFormation(HappeningData.allyFighterFormation))
|
.Where(kv => kv.Key.IsInFormation(HappeningData.allyFighterFormation))
|
||||||
|
.Where(kv => !targetDetail.aliveOnly || kv.Key.IsAlive())// if aliveOnly: take where IsAlive
|
||||||
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ public class AllyFighters
|
|||||||
maxHealth = 60,
|
maxHealth = 60,
|
||||||
availableActions =
|
availableActions =
|
||||||
[
|
[
|
||||||
new AllyAttackAction()
|
new AllyAttackAction(),
|
||||||
|
new EatBeetrootAction()
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
public FightWorld.Fighter chuhaFighter = new()
|
public FightWorld.Fighter chuhaFighter = new()
|
||||||
|
|||||||
@@ -222,9 +222,9 @@ public partial class FightHappening : Node
|
|||||||
case FightState.ActionCheckDetails:
|
case FightState.ActionCheckDetails:
|
||||||
RequireNotNull(HappeningData.actionStaging);
|
RequireNotNull(HappeningData.actionStaging);
|
||||||
|
|
||||||
if (ActionAbort())
|
if (ShouldActionAbort())
|
||||||
ChangeState(FightState.InputActionSelect);
|
ChangeState(FightState.InputActionSelect);
|
||||||
else if (ActionNeededDetail())
|
else if (DoesActionNeededDetail())
|
||||||
ChangeState(FightState.InputActionDetail);
|
ChangeState(FightState.InputActionDetail);
|
||||||
else
|
else
|
||||||
ChangeState(FightState.ActionExecute);
|
ChangeState(FightState.ActionExecute);
|
||||||
@@ -307,6 +307,11 @@ public partial class FightHappening : Node
|
|||||||
HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter);
|
HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter);
|
||||||
HappeningData.fighterTurn.AddAsLast(fighter);
|
HappeningData.fighterTurn.AddAsLast(fighter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GD.RandRange(0, 2) != 0) // 2/3 chance for vesna to start
|
||||||
|
{
|
||||||
|
HappeningData.fighterTurn.SpinBack();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExecuteNextFighter()
|
private void ExecuteNextFighter()
|
||||||
@@ -328,13 +333,13 @@ public partial class FightHappening : Node
|
|||||||
return HappeningData.actionStaging.GetAnimationEnd();
|
return HappeningData.actionStaging.GetAnimationEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ActionAbort()
|
private bool ShouldActionAbort()
|
||||||
{
|
{
|
||||||
Debug.Assert(HappeningData.actionStaging != null);
|
Debug.Assert(HappeningData.actionStaging != null);
|
||||||
return HappeningData.actionStaging.MarkedForAbort();
|
return HappeningData.actionStaging.ShouldAbort();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ActionNeededDetail()
|
private bool DoesActionNeededDetail()
|
||||||
{
|
{
|
||||||
Debug.Assert(HappeningData.actionStaging != null);
|
Debug.Assert(HappeningData.actionStaging != null);
|
||||||
return HappeningData.actionStaging.NextDetail();
|
return HappeningData.actionStaging.NextDetail();
|
||||||
@@ -344,7 +349,7 @@ public partial class FightHappening : Node
|
|||||||
private void ReviveVesna()
|
private void ReviveVesna()
|
||||||
{
|
{
|
||||||
var vesnaFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
var vesnaFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
||||||
vesnaFighter.health = vesnaFighter.maxHealth;
|
vesnaFighter.Health = vesnaFighter.maxHealth;
|
||||||
GD.Print("Vesna has been revived. This is for the current prototype only");
|
GD.Print("Vesna has been revived. This is for the current prototype only");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
|
public partial class FightHappeningAnimationContext : Node
|
||||||
|
{
|
||||||
|
[Export] public UsedItemIndicatorVisual useHealItemIndicator = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cdrjvgm82pxoj
|
||||||
@@ -1,36 +1,44 @@
|
|||||||
using Godot;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Babushka.scripts.CSharp.Common.Fight;
|
|
||||||
using Babushka.scripts.CSharp.Common.Fight.ActionDetails;
|
using Babushka.scripts.CSharp.Common.Fight.ActionDetails;
|
||||||
using Babushka.scripts.CSharp.Common.Minigame;
|
using Babushka.scripts.CSharp.Common.Minigame;
|
||||||
|
using Godot;
|
||||||
|
using static Babushka.scripts.CSharp.Common.Minigame.MinigameController.RegionTheme;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
public partial class FightMinigameHandler : Node
|
public partial class FightMinigameHandler : Node
|
||||||
{
|
{
|
||||||
#region Shortcuts
|
#region Shortcuts
|
||||||
|
|
||||||
private FightWorld.FightHappeningData HappeningData => FightWorld.Instance.fightHappeningData ?? throw new NoFightHappeningException();
|
private FightWorld.FightHappeningData HappeningData =>
|
||||||
|
FightWorld.Instance.fightHappeningData ?? throw new NoFightHappeningException();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[Export] private MinigameController _minigameController;
|
[Export] private MinigameController _minigameController = null!;
|
||||||
|
|
||||||
|
|
||||||
public void OnStateEnter(FightHappening.FightState to)
|
public void OnStateEnter(FightHappening.FightState to)
|
||||||
{
|
{
|
||||||
if(to!=FightHappening.FightState.InputActionDetail) return;
|
if (to != FightHappening.FightState.InputActionDetail) return;
|
||||||
|
|
||||||
var currentDetail = HappeningData.actionStaging!.CurrentDetail();
|
|
||||||
if(currentDetail is not MinigameActionDetail minigameDetail) return;
|
|
||||||
|
|
||||||
|
var currentDetail = HappeningData.actionStaging!.CurrentDetail();
|
||||||
|
if (currentDetail is not MinigameActionDetail minigameDetail) return;
|
||||||
|
|
||||||
|
var region1 = R(2, 4);
|
||||||
|
var region2 = R([0, 1, 1, 2]);
|
||||||
|
var region3 = R([7, 8, 9, 9]);
|
||||||
|
var region4 = R([0, 1, 1, 2]);
|
||||||
|
var region5 = R(2, 4);
|
||||||
|
var region6 = R(4, 6);
|
||||||
|
|
||||||
_minigameController.Run(new MinigameController.Builder<int>()
|
_minigameController.Run(new MinigameController.Builder<int>()
|
||||||
.AddRegion(4).RegionWithText("4").RegionWithTheme(MinigameController.RegionTheme.Normal)
|
.AddRegion(region1).RegionWithProportion(R(0.7, 1.3)).RegionWithText(region1.ToString()).RegionWithTheme(Normal)
|
||||||
.AddRegion(0).RegionWithProportion(1.5f).RegionWithText("0").RegionWithTheme(MinigameController.RegionTheme.Bad)
|
.AddRegion(region2).RegionWithProportion(R(1, 1.8)).RegionWithText(region2.ToString()).RegionWithTheme(Bad)
|
||||||
.AddRegion(8).RegionWithProportion(0.5f).RegionWithText("8").RegionWithTheme(MinigameController.RegionTheme.VeryGood)
|
.AddRegion(region3).RegionWithProportion(R(0.3, 1)).RegionWithText(region3.ToString()).RegionWithTheme(VeryGood)
|
||||||
.AddRegion(0).RegionWithProportion(1.5f).RegionWithText("0").RegionWithTheme(MinigameController.RegionTheme.Bad)
|
.AddRegion(region4).RegionWithProportion(R(1, 1.8)).RegionWithText(region4.ToString()).RegionWithTheme(Bad)
|
||||||
.AddRegion(3).RegionWithText("3").RegionWithTheme(MinigameController.RegionTheme.NormalAlt1)
|
.AddRegion(region5).RegionWithProportion(R(0.7, 1.3)).RegionWithText(region5.ToString()).RegionWithTheme(NormalAlt1)
|
||||||
.AddRegion(5).RegionWithText("5").RegionWithTheme(MinigameController.RegionTheme.NormalAlt2)
|
.AddRegion(region6).RegionWithProportion(R(0.7, 1.3)).RegionWithText(region6.ToString()).RegionWithTheme(NormalAlt2)
|
||||||
.WithHitCount(3)
|
.WithHitCount(3)
|
||||||
).ContinueWith(task =>
|
).ContinueWith(task =>
|
||||||
{
|
{
|
||||||
@@ -40,4 +48,25 @@ public partial class FightMinigameHandler : Node
|
|||||||
FightHappening.Instance.CallDeferred("DetailFilled");
|
FightHappening.Instance.CallDeferred("DetailFilled");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
#region Utils
|
||||||
|
|
||||||
|
// this is to make the minigame set up a bit less convoluted
|
||||||
|
private static int R(int min, int max)
|
||||||
|
{
|
||||||
|
return GD.RandRange(min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static float R(double min, double max)
|
||||||
|
{
|
||||||
|
return (float)GD.RandRange(min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int R(List<int> list)
|
||||||
|
{
|
||||||
|
return list[GD.RandRange(0, list.Count - 1)];
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Babushka.scripts.CSharp.Common.Util;
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Fight;
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
public partial class FightRoomSceneSetup : Node
|
public partial class FightRoomSceneSetup : Node
|
||||||
{
|
{
|
||||||
[Export(PropertyHint.ArrayType)] private Node2D[] _enemyGroupSpawns;
|
[Export(PropertyHint.ArrayType)] private Node2D[] _enemyGroupSpawns = null!;
|
||||||
[Export] private PackedScene _roamingEnemyGroupPrefab;
|
[Export] private PackedScene _roamingEnemyGroupPrefab = null!;
|
||||||
[Export] private FightSceneSwitcher _fightSceneSwitcher;
|
[Export] private PackedScene _itemOnGroundPrefab = null!;
|
||||||
|
[Export] private FightSceneSwitcher _fightSceneSwitcher = null!;
|
||||||
|
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
@@ -19,11 +20,30 @@ public partial class FightRoomSceneSetup : Node
|
|||||||
foreach (var (parent, group) in _enemyGroupSpawns.Zip(room.enemyGroups))
|
foreach (var (parent, group) in _enemyGroupSpawns.Zip(room.enemyGroups))
|
||||||
{
|
{
|
||||||
if (group.AreAllDead())
|
if (group.AreAllDead())
|
||||||
continue;
|
{
|
||||||
|
SpawnLoot(group, parent);
|
||||||
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
|
}
|
||||||
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher);
|
else
|
||||||
parent.AddChild(roamingEnemyGroup);
|
{
|
||||||
|
SpawnEnemies(group, parent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SpawnEnemies(FightWorld.FighterGroup group, Node2D parent)
|
||||||
|
{
|
||||||
|
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
|
||||||
|
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher);
|
||||||
|
parent.AddChild(roamingEnemyGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SpawnLoot(FightWorld.FighterGroup group, Node2D parent)
|
||||||
|
{
|
||||||
|
if (group.lootToDrop == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var onGroundInstance = _itemOnGroundPrefab.Instantiate<ItemOnGround2D>();
|
||||||
|
onGroundInstance.itemInstance = group.lootToDrop;
|
||||||
|
parent.AddChild(onGroundInstance);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -10,15 +10,16 @@ public static class FightUtils
|
|||||||
{
|
{
|
||||||
return self.Where(e => e.IsAlive());
|
return self.Where(e => e.IsAlive());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<FightWorld.Fighter> WhereIsNotInFormation(this IEnumerable<FightWorld.Fighter> self, FighterFormation formation)
|
public static IEnumerable<FightWorld.Fighter> WhereIsNotInFormation(this IEnumerable<FightWorld.Fighter> self,
|
||||||
|
FighterFormation formation)
|
||||||
{
|
{
|
||||||
return self.Where(e => !e.IsInFormation(formation));
|
return self.Where(e => !e.IsInFormation(formation));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsAlive(this FightWorld.Fighter self)
|
public static bool IsAlive(this FightWorld.Fighter self)
|
||||||
{
|
{
|
||||||
return self.GetHealth() > 0;
|
return self.Health > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsDead(this FightWorld.Fighter self)
|
public static bool IsDead(this FightWorld.Fighter self)
|
||||||
@@ -26,16 +27,16 @@ public static class FightUtils
|
|||||||
return !self.IsAlive();
|
return !self.IsAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int GetHealth(this FightWorld.Fighter self)
|
/// <summary>
|
||||||
|
/// Changes the health of a fighter
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="self">The fighter itself</param>
|
||||||
|
/// <param name="amount">The amount of health to add. Make negative to remove health</param>
|
||||||
|
public static void ChangeHealth(this FightWorld.Fighter self, int amount)
|
||||||
{
|
{
|
||||||
return Math.Max(self.health ?? self.maxHealth, 0);
|
self.Health += amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AddHealth(this FightWorld.Fighter self, int addHealth)
|
|
||||||
{
|
|
||||||
self.health = self.GetHealth() + addHealth;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsInFormation(this FightWorld.Fighter self, FighterFormation formation)
|
public static bool IsInFormation(this FightWorld.Fighter self, FighterFormation formation)
|
||||||
{
|
{
|
||||||
return formation.ContainsFighter(self);
|
return formation.ContainsFighter(self);
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Babushka.scripts.CSharp.Common.Fight.Actions;
|
using Babushka.scripts.CSharp.Common.Fight.Actions;
|
||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
using Babushka.scripts.CSharp.Common.Util;
|
using Babushka.scripts.CSharp.Common.Util;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
@@ -19,6 +21,7 @@ public partial class FightWorld : Node
|
|||||||
None,
|
None,
|
||||||
EndOfNight
|
EndOfNight
|
||||||
}
|
}
|
||||||
|
|
||||||
public required Dictionary<int, Room> paths;
|
public required Dictionary<int, Room> paths;
|
||||||
public required List<FighterGroup> enemyGroups;
|
public required List<FighterGroup> enemyGroups;
|
||||||
public Special specialRoom = Special.None;
|
public Special specialRoom = Special.None;
|
||||||
@@ -27,6 +30,7 @@ public partial class FightWorld : Node
|
|||||||
public class FighterGroup
|
public class FighterGroup
|
||||||
{
|
{
|
||||||
public required List<Fighter> fighters;
|
public required List<Fighter> fighters;
|
||||||
|
public ItemInstance? lootToDrop = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FightHappeningData
|
public class FightHappeningData
|
||||||
@@ -56,9 +60,17 @@ public partial class FightWorld : Node
|
|||||||
public required int maxHealth;
|
public required int maxHealth;
|
||||||
public required List<FighterAction> availableActions;
|
public required List<FighterAction> availableActions;
|
||||||
public const int MaxActionPoints = 1;
|
public const int MaxActionPoints = 1;
|
||||||
public int? health = null; // null => initialize to full health on spawn
|
|
||||||
public int actionPointsLeft;
|
public int actionPointsLeft;
|
||||||
|
|
||||||
|
private int? _healthBacking = null;
|
||||||
|
|
||||||
|
public int Health
|
||||||
|
{
|
||||||
|
get => _healthBacking ?? maxHealth;
|
||||||
|
set => _healthBacking = Math.Clamp(value, 0, maxHealth);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public FighterAction AutoSelectAction()
|
public FighterAction AutoSelectAction()
|
||||||
{
|
{
|
||||||
return availableActions.Random() ?? new FighterAction.Skip();
|
return availableActions.Random() ?? new FighterAction.Skip();
|
||||||
@@ -81,6 +93,10 @@ public partial class FightWorld : Node
|
|||||||
public FightHappeningData? fightHappeningData = null;
|
public FightHappeningData? fightHappeningData = null;
|
||||||
public AllyFighters allyFighters = new();
|
public AllyFighters allyFighters = new();
|
||||||
|
|
||||||
|
// settings
|
||||||
|
[Export] private ItemResource? _itemToDropByEnemyGroup;
|
||||||
|
[Export] public ItemResource? itemBeetrootToEatForHealth;
|
||||||
|
|
||||||
public void ResetFightWorld()
|
public void ResetFightWorld()
|
||||||
{
|
{
|
||||||
Generate();
|
Generate();
|
||||||
@@ -89,10 +105,10 @@ public partial class FightWorld : Node
|
|||||||
|
|
||||||
public void Generate()
|
public void Generate()
|
||||||
{
|
{
|
||||||
world = new Generator().GenerateWorld();
|
world = new Generator(this).GenerateWorld();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Generator
|
private class Generator(FightWorld fightWorld)
|
||||||
{
|
{
|
||||||
public World GenerateWorld()
|
public World GenerateWorld()
|
||||||
{
|
{
|
||||||
@@ -113,7 +129,7 @@ public partial class FightWorld : Node
|
|||||||
{
|
{
|
||||||
rooms.Add(GenerateDisconnectedRoom());
|
rooms.Add(GenerateDisconnectedRoom());
|
||||||
}
|
}
|
||||||
|
|
||||||
rooms.Add(new Room
|
rooms.Add(new Room
|
||||||
{
|
{
|
||||||
paths = [],
|
paths = [],
|
||||||
@@ -162,6 +178,11 @@ public partial class FightWorld : Node
|
|||||||
fighters = []
|
fighters = []
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (fightWorld._itemToDropByEnemyGroup != null)
|
||||||
|
{
|
||||||
|
enemyGroup.lootToDrop = new ItemInstance { blueprint = fightWorld._itemToDropByEnemyGroup };
|
||||||
|
}
|
||||||
|
|
||||||
var enemyCount = GD.RandRange(2, 3);
|
var enemyCount = GD.RandRange(2, 3);
|
||||||
|
|
||||||
for (var i = 0; i < enemyCount; i++)
|
for (var i = 0; i < enemyCount; i++)
|
||||||
@@ -189,7 +210,6 @@ public partial class FightWorld : Node
|
|||||||
var enemy = new Fighter
|
var enemy = new Fighter
|
||||||
{
|
{
|
||||||
type = type,
|
type = type,
|
||||||
health = null,
|
|
||||||
maxHealth = GD.RandRange(8, 20),
|
maxHealth = GD.RandRange(8, 20),
|
||||||
availableActions =
|
availableActions =
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -30,8 +30,6 @@ public abstract class FighterAction
|
|||||||
public abstract bool DetailComplete();
|
public abstract bool DetailComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _abort = false;
|
|
||||||
|
|
||||||
#region Shortcuts
|
#region Shortcuts
|
||||||
|
|
||||||
protected static FightWorld.FightHappeningData HappeningData =>
|
protected static FightWorld.FightHappeningData HappeningData =>
|
||||||
@@ -61,19 +59,13 @@ public abstract class FighterAction
|
|||||||
/// Animates the action.
|
/// Animates the action.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="allFightersVisual"></param>
|
/// <param name="allFightersVisual"></param>
|
||||||
public virtual async Task AnimateAction(AllFightersVisual allFightersVisual)
|
/// <param name="animationContext"></param>
|
||||||
|
public virtual async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MarkAbort()
|
public virtual bool ShouldAbort() => false;
|
||||||
{
|
|
||||||
_abort = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool MarkedForAbort()
|
|
||||||
{
|
|
||||||
return _abort;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the FighterActionDetail, that is currently handled.
|
/// Returns the FighterActionDetail, that is currently handled.
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ namespace Babushka.scripts.CSharp.Common.Fight;
|
|||||||
|
|
||||||
public partial class FighterDamageIndicatorVisual : Node2D
|
public partial class FighterDamageIndicatorVisual : Node2D
|
||||||
{
|
{
|
||||||
[Export] private PackedScene _flyingNumberPrefab;
|
[Export] private PackedScene _flyingNumberPrefab = null!;
|
||||||
|
|
||||||
|
|
||||||
public void SpawnFlyingNumber(int number)
|
public void SpawnFlyingNumber(string text)
|
||||||
{
|
{
|
||||||
var flyingNumberInstance = _flyingNumberPrefab.Instantiate<FighterDamageIndicatorFlyingNumber>();
|
var flyingNumberInstance = _flyingNumberPrefab.Instantiate<FlyingIndicator>();
|
||||||
AddChild(flyingNumberInstance);
|
AddChild(flyingNumberInstance);
|
||||||
flyingNumberInstance.Initialize(number);
|
flyingNumberInstance.Initialize(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,6 +99,23 @@ public class FighterTurn : IEnumerable<FightWorld.Fighter>
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the current one back
|
||||||
|
/// This is an expensive operation, because the entire data structure needs to be circled
|
||||||
|
/// </summary>
|
||||||
|
public void SpinBack()
|
||||||
|
{
|
||||||
|
if (_currentNode == null) return;
|
||||||
|
|
||||||
|
var node = _currentNode;
|
||||||
|
while (node.next != _currentNode)
|
||||||
|
{
|
||||||
|
node = node.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentNode = node;
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerator<FightWorld.Fighter> GetEnumerator()
|
public IEnumerator<FightWorld.Fighter> GetEnumerator()
|
||||||
{
|
{
|
||||||
if (_currentNode == null) return Enumerable.Empty<FightWorld.Fighter>().GetEnumerator();
|
if (_currentNode == null) return Enumerable.Empty<FightWorld.Fighter>().GetEnumerator();
|
||||||
|
|||||||
@@ -42,7 +42,12 @@ public partial class FighterVisual : Node2D
|
|||||||
_boundFighter.IsInFormation(HappeningData.enemyFighterFormation) ? -1 : 1,
|
_boundFighter.IsInFormation(HappeningData.enemyFighterFormation) ? -1 : 1,
|
||||||
_boundFighter.IsDead() ? .3f : 1);
|
_boundFighter.IsDead() ? .3f : 1);
|
||||||
|
|
||||||
healthBarVisual.UpdateHealth(_boundFighter.GetHealth(), _boundFighter.maxHealth);
|
UpdateHealthBarVisuals();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateHealthBarVisuals()
|
||||||
|
{
|
||||||
|
healthBarVisual.UpdateHealth(_boundFighter.Health, _boundFighter.maxHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetTargetSelectionActive(bool value)
|
public void SetTargetSelectionActive(bool value)
|
||||||
@@ -78,24 +83,26 @@ public partial class FighterVisual : Node2D
|
|||||||
|
|
||||||
public async Task AnimateHit()
|
public async Task AnimateHit()
|
||||||
{
|
{
|
||||||
|
UpdateHealthBarVisuals();
|
||||||
var tween = GetTree().CreateTween();
|
var tween = GetTree().CreateTween();
|
||||||
tween.TweenProperty(_squashParent, "scale", new Vector2(1.4f, 0.6f), 0.15);
|
tween.TweenProperty(_squashParent, "scale", new Vector2(1.4f, 0.6f), 0.15);
|
||||||
tween.TweenProperty(_squashParent, "scale", new Vector2(1, 1), 0.4)
|
tween.TweenProperty(_squashParent, "scale", new Vector2(1, 1), 0.4)
|
||||||
.SetTrans(Tween.TransitionType.Cubic).SetEase(Tween.EaseType.Out);
|
.SetTrans(Tween.TransitionType.Cubic).SetEase(Tween.EaseType.Out);
|
||||||
await ToSignal(tween, "finished");
|
await ToSignal(tween, "finished");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep for reference for new Heal animation
|
public async Task AnimateHeal()
|
||||||
//public void HealAnimation()
|
|
||||||
//{
|
|
||||||
// EmitSignalHealed();
|
|
||||||
// var tween = GetTree().CreateTween();
|
|
||||||
// tween.TweenProperty(this, "scale", new Vector2(0.6f, 1.4f), 0.15);
|
|
||||||
// tween.TweenProperty(this, "scale", new Vector2(1, 1), 0.4)
|
|
||||||
// .SetTrans(Tween.TransitionType.Cubic).SetEase(Tween.EaseType.Out);
|
|
||||||
//}
|
|
||||||
public void SpawnDamageIndicatorNumber(int number)
|
|
||||||
{
|
{
|
||||||
_fighterDamageIndicatorVisual.SpawnFlyingNumber(number);
|
UpdateHealthBarVisuals();
|
||||||
|
var tween = GetTree().CreateTween();
|
||||||
|
tween.TweenProperty(_squashParent, "scale", new Vector2(0.6f, 1.4f), 0.15);
|
||||||
|
tween.TweenProperty(_squashParent, "scale", new Vector2(1, 1), 0.4)
|
||||||
|
.SetTrans(Tween.TransitionType.Cubic).SetEase(Tween.EaseType.Out);
|
||||||
|
await ToSignal(tween, "finished");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SpawnDamageIndicatorNumber(string text)
|
||||||
|
{
|
||||||
|
_fighterDamageIndicatorVisual.SpawnFlyingNumber(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+11
-5
@@ -3,13 +3,19 @@ using Godot;
|
|||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Fight;
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
public partial class FighterDamageIndicatorFlyingNumber : Node2D
|
public partial class FlyingIndicator : Node2D
|
||||||
{
|
{
|
||||||
[Export] private Label _label;
|
[Export] private Label _label = null!;
|
||||||
|
[Export] private TextureRect _sprite = null!;
|
||||||
public void Initialize(int number)
|
|
||||||
|
|
||||||
|
public void Initialize(string? text = null, Texture2D? icon = null)
|
||||||
{
|
{
|
||||||
_label.Text = number.ToString();
|
_label.Visible = text != null;
|
||||||
|
_sprite.Visible = icon != null;
|
||||||
|
|
||||||
|
if (text != null) _label.Text = text;
|
||||||
|
if (icon != null) _sprite.Texture = icon;
|
||||||
|
|
||||||
var tween = CreateTween();
|
var tween = CreateTween();
|
||||||
var xMovement = GD.RandRange(-150, 150);
|
var xMovement = GD.RandRange(-150, 150);
|
||||||
@@ -9,9 +9,15 @@ public partial class SwitchSceneOnFightEnd : Node
|
|||||||
|
|
||||||
public void OnFightStateEnter(FightHappening.FightState to)
|
public void OnFightStateEnter(FightHappening.FightState to)
|
||||||
{
|
{
|
||||||
if (to is FightHappening.FightState.PlayerWin
|
if (to is FightHappening.FightState.PlayerWin )
|
||||||
or FightHappening.FightState.EnemyWin)
|
|
||||||
_ = SwitchSceneAfterTime(2.0f);
|
_ = SwitchSceneAfterTime(2.0f);
|
||||||
|
|
||||||
|
if (to is FightHappening.FightState.EnemyWin)
|
||||||
|
{
|
||||||
|
_fightSceneSwitcher.ExitFight();
|
||||||
|
_fightSceneSwitcher.ExitFightWorld();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SwitchSceneAfterTime(float seconds)
|
private async Task SwitchSceneAfterTime(float seconds)
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight.UI;
|
||||||
|
|
||||||
|
public partial class HealButtonVisual : Button
|
||||||
|
{
|
||||||
|
[Export] private ItemResource _healItemBlueprint = null!;
|
||||||
|
|
||||||
|
public void UpdateText()
|
||||||
|
{
|
||||||
|
var healItemsLeft = InventoryManager.Instance.playerInventory!.TotalItemsOfBlueprint(_healItemBlueprint);
|
||||||
|
Text = $"x{healItemsLeft} - Heal";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://71mdwp2m4rta
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
|
public partial class UsedItemIndicatorVisual : Node2D
|
||||||
|
{
|
||||||
|
[Export] private PackedScene _flyingIndicatorPrefab = null!;
|
||||||
|
[Export] private Texture2D _itemTexture = null!;
|
||||||
|
|
||||||
|
|
||||||
|
public void SpawnIndicator()
|
||||||
|
{
|
||||||
|
var flyingNumberInstance = _flyingIndicatorPrefab.Instantiate<FlyingIndicator>();
|
||||||
|
AddChild(flyingNumberInstance);
|
||||||
|
flyingNumberInstance.Initialize(icon: _itemTexture);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://6nniwfxye8ss
|
||||||
@@ -3,10 +3,11 @@ using System;
|
|||||||
using Godot;
|
using Godot;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Babushka.scripts.CSharp.Common.Savegame;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
public partial class InventoryInstance : Node
|
public partial class InventoryInstance : Node, ISaveable
|
||||||
{
|
{
|
||||||
private List<InventorySlot> _slots = new();
|
private List<InventorySlot> _slots = new();
|
||||||
public IReadOnlyList<InventorySlot> Slots => _slots;
|
public IReadOnlyList<InventorySlot> Slots => _slots;
|
||||||
@@ -17,6 +18,8 @@ public partial class InventoryInstance : Node
|
|||||||
[Signal]
|
[Signal]
|
||||||
public delegate void InventoryContentsChangedEventHandler();
|
public delegate void InventoryContentsChangedEventHandler();
|
||||||
|
|
||||||
|
public static string ID = "inventoryInstance";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The total amount of Inventoryslots in the inventory (empty and occupied).
|
/// The total amount of Inventoryslots in the inventory (empty and occupied).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -42,6 +45,21 @@ public partial class InventoryInstance : Node
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
LoadFromSaveData();
|
||||||
|
InventoryContentsChanged += UpdateSaveData;
|
||||||
|
SlotAmountChanged += UpdateSaveData;
|
||||||
|
SavegameService.OnSaveGameReset += SaveGameReset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
InventoryContentsChanged -= UpdateSaveData;
|
||||||
|
SlotAmountChanged -= UpdateSaveData;
|
||||||
|
SavegameService.OnSaveGameReset -= SaveGameReset;
|
||||||
|
}
|
||||||
|
|
||||||
public InventoryActionResult AddItem(ItemInstance newItem)
|
public InventoryActionResult AddItem(ItemInstance newItem)
|
||||||
{
|
{
|
||||||
var result = AddItemAndStackRecursive(newItem, 0);
|
var result = AddItemAndStackRecursive(newItem, 0);
|
||||||
@@ -83,7 +101,8 @@ public partial class InventoryInstance : Node
|
|||||||
return InventoryActionResult.DestinationFull;
|
return InventoryActionResult.DestinationFull;
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemInstance = _slots[slotIndex].itemInstance ?? new ItemInstance { blueprint = newItem.blueprint, amount = 0 };
|
var itemInstance = _slots[slotIndex].itemInstance ??
|
||||||
|
new ItemInstance { blueprint = newItem.blueprint, amount = 0 };
|
||||||
var maxStack = itemInstance!.blueprint.maxStack;
|
var maxStack = itemInstance!.blueprint.maxStack;
|
||||||
var freeOnStack = maxStack - itemInstance.amount;
|
var freeOnStack = maxStack - itemInstance.amount;
|
||||||
var moveAmount = Math.Min(freeOnStack, newItem.amount);
|
var moveAmount = Math.Min(freeOnStack, newItem.amount);
|
||||||
@@ -112,12 +131,12 @@ public partial class InventoryInstance : Node
|
|||||||
itemInstance = _slots[inventorySlot].itemInstance;
|
itemInstance = _slots[inventorySlot].itemInstance;
|
||||||
if (itemInstance == null)
|
if (itemInstance == null)
|
||||||
return InventoryActionResult.SourceDoesNotExist;
|
return InventoryActionResult.SourceDoesNotExist;
|
||||||
|
|
||||||
itemInstance.amount -= 1;
|
itemInstance.amount -= 1;
|
||||||
|
|
||||||
if(itemInstance.amount == 0)
|
if (itemInstance.amount == 0)
|
||||||
_slots[inventorySlot].itemInstance = null;
|
_slots[inventorySlot].itemInstance = null;
|
||||||
|
|
||||||
EmitSignal(SignalName.InventoryContentsChanged);
|
EmitSignal(SignalName.InventoryContentsChanged);
|
||||||
return InventoryActionResult.Success;
|
return InventoryActionResult.Success;
|
||||||
}
|
}
|
||||||
@@ -127,6 +146,38 @@ public partial class InventoryInstance : Node
|
|||||||
return RemoveItem(inventorySlot, out _);
|
return RemoveItem(inventorySlot, out _);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public InventoryActionResult TryRemoveAllItems(ItemInstance items)
|
||||||
|
{
|
||||||
|
var hasItemsCount = TotalItemsOfBlueprint(items.blueprint);
|
||||||
|
if (hasItemsCount < items.amount)
|
||||||
|
return InventoryActionResult.SourceDoesNotExist;
|
||||||
|
|
||||||
|
var amountToRemove = items.amount;
|
||||||
|
foreach (var s in _slots)
|
||||||
|
{
|
||||||
|
if (s.IsEmpty() || s.itemInstance!.blueprint != items.blueprint)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var slotItem = s.itemInstance!;
|
||||||
|
if (slotItem.amount <= amountToRemove)
|
||||||
|
{
|
||||||
|
amountToRemove -= slotItem.amount;
|
||||||
|
s.itemInstance = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
slotItem.amount -= amountToRemove;
|
||||||
|
amountToRemove = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amountToRemove == 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
EmitSignal(SignalName.InventoryContentsChanged);
|
||||||
|
return InventoryActionResult.Success;
|
||||||
|
}
|
||||||
|
|
||||||
public InventoryActionResult AddItemToSlot(ItemInstance itemInstance, int destinationSlot)
|
public InventoryActionResult AddItemToSlot(ItemInstance itemInstance, int destinationSlot)
|
||||||
{
|
{
|
||||||
if (destinationSlot < 0 || destinationSlot >= _slots.Count)
|
if (destinationSlot < 0 || destinationSlot >= _slots.Count)
|
||||||
@@ -156,4 +207,62 @@ public partial class InventoryInstance : Node
|
|||||||
{
|
{
|
||||||
return items.All(HasItems);
|
return items.All(HasItems);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
#region SAVE AND LOAD
|
||||||
|
|
||||||
|
public void UpdateSaveData()
|
||||||
|
{
|
||||||
|
var payloadData = new Godot.Collections.Dictionary<string, Variant>();
|
||||||
|
|
||||||
|
for (int i = 0; i < _slots.Count; i++)
|
||||||
|
{
|
||||||
|
if (!_slots[i].IsEmpty())
|
||||||
|
{
|
||||||
|
string key = i.ToString();
|
||||||
|
string[] value = new string[2];
|
||||||
|
value[0] = _slots[i].itemInstance.blueprint.ResourcePath;
|
||||||
|
value[1] = _slots[i].itemInstance.amount.ToString();
|
||||||
|
payloadData.Add(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SavegameService.AppendDataToSave(ID, payloadData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadFromSaveData()
|
||||||
|
{
|
||||||
|
var id = ID;
|
||||||
|
|
||||||
|
Godot.Collections.Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
|
||||||
|
|
||||||
|
if (save.Count > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _slots.Count; i++)
|
||||||
|
{
|
||||||
|
if (save.TryGetValue(i.ToString(), out Variant inventoryItemData))
|
||||||
|
{
|
||||||
|
string[] savePayload = inventoryItemData.AsStringArray();
|
||||||
|
ItemResource resource = ResourceLoader.Load<ItemResource>(savePayload[0]);
|
||||||
|
int _amount = int.Parse(savePayload[1]);
|
||||||
|
|
||||||
|
ItemInstance instance = new ItemInstance { blueprint = resource, amount = _amount };
|
||||||
|
AddItem(instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Called when a new save is created.
|
||||||
|
/// Needs to do a runtime check because the InventoryInstance is already in existence at the beginning of the first scene.
|
||||||
|
/// </summary>
|
||||||
|
private void SaveGameReset()
|
||||||
|
{
|
||||||
|
foreach (var slot in _slots)
|
||||||
|
{
|
||||||
|
slot.itemInstance = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
@@ -23,7 +23,7 @@ public partial class InventoryManager : Node
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public InventoryInstance playerInventory = new InventoryInstance();
|
public InventoryInstance? playerInventory;
|
||||||
|
|
||||||
private int _currentSelectedSlotIndex = 0;
|
private int _currentSelectedSlotIndex = 0;
|
||||||
|
|
||||||
@@ -34,7 +34,9 @@ public partial class InventoryManager : Node
|
|||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
|
playerInventory = new InventoryInstance();
|
||||||
playerInventory.SlotAmount = 37;
|
playerInventory.SlotAmount = 37;
|
||||||
|
AddChild(playerInventory);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InventoryActionResult CreateItem(
|
public InventoryActionResult CreateItem(
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public partial class InventoryUi : Control
|
|||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
GD.Print("Ready inventory ui");
|
|
||||||
_playerInventory = InventoryManager.Instance.playerInventory;
|
_playerInventory = InventoryManager.Instance.playerInventory;
|
||||||
//PopulateSlots();
|
//PopulateSlots();
|
||||||
SubscribeSlots();
|
SubscribeSlots();
|
||||||
@@ -29,6 +28,7 @@ public partial class InventoryUi : Control
|
|||||||
|
|
||||||
public override void _ExitTree()
|
public override void _ExitTree()
|
||||||
{
|
{
|
||||||
|
InventoryManager.Instance.playerInventory.InventoryContentsChanged -= SetSlotContent;
|
||||||
UnsubscribeSlots();
|
UnsubscribeSlots();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
// Do not instantiate this resource
|
// Do not instantiate this resource
|
||||||
// But it has to be a resource because Godot
|
// But it has to be a resource because Godot
|
||||||
[GlobalClass]
|
[GlobalClass]
|
||||||
public partial class ItemInstance: Resource
|
public partial class ItemInstance : Resource, IJsonSerializable
|
||||||
{
|
{
|
||||||
[Export] public ItemResource blueprint;
|
[Export] public required ItemResource blueprint;
|
||||||
[Export] public int amount = 1;
|
[Export] public int amount = 1;
|
||||||
|
|
||||||
public ItemInstance Clone()
|
public ItemInstance Clone()
|
||||||
@@ -17,4 +20,18 @@ public partial class ItemInstance: Resource
|
|||||||
amount = amount
|
amount = amount
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public void LoadFromJson(JObject json)
|
||||||
|
{
|
||||||
|
var blueprintPath = json.GetStringValue("blueprint");
|
||||||
|
blueprint = GD.Load<ItemResource>(blueprintPath);
|
||||||
|
amount = json.GetIntValue("amount");
|
||||||
|
}
|
||||||
|
|
||||||
|
public JObject SaveToJson()
|
||||||
|
{
|
||||||
|
return new(
|
||||||
|
new JProperty("blueprint", blueprint.ResourcePath),
|
||||||
|
new JProperty("amount", amount));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.Savegame;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
public partial class ItemOnGround2D : Node
|
public partial class ItemOnGround2D : Node2D
|
||||||
{
|
{
|
||||||
private ItemInstance _itemInstance;
|
private ItemInstance _itemInstance;
|
||||||
|
|
||||||
[Export] public bool IsActive = true;
|
|
||||||
[Export] private bool _infiniteSupply = false;
|
|
||||||
[Export] private int _finiteSupply = 1;
|
|
||||||
|
|
||||||
private int pickUpCounter = 0;
|
|
||||||
|
|
||||||
[Signal] public delegate void SuccessfulPickUpEventHandler();
|
[Signal] public delegate void SuccessfulPickUpEventHandler();
|
||||||
|
|
||||||
|
|
||||||
private Label _itemLabel => GetNode<Label>("ItemLabel");
|
private Label _itemLabel => GetNode<Label>("ItemLabel");
|
||||||
private Label _pickupErrorLabel => GetNode<Label>("PickupErrorLabel");
|
private Label _pickupErrorLabel => GetNode<Label>("PickupErrorLabel");
|
||||||
private Sprite2D _iconSprite => GetNode<Sprite2D>("Icon");
|
private Sprite2D _iconSprite => GetNode<Sprite2D>("Icon");
|
||||||
@@ -36,36 +36,33 @@ public partial class ItemOnGround2D : Node
|
|||||||
|
|
||||||
public void TryPickUp()
|
public void TryPickUp()
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
|
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
|
||||||
EmitSignal(SignalName.SuccessfulPickUp);
|
EmitSignal(SignalName.SuccessfulPickUp);
|
||||||
if (result == InventoryActionResult.Success)
|
if (result == InventoryActionResult.Success)
|
||||||
{
|
{
|
||||||
if (!_infiniteSupply)
|
Pickup();
|
||||||
{
|
|
||||||
pickUpCounter++;
|
|
||||||
if (pickUpCounter >= _finiteSupply)
|
|
||||||
{
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_pickupErrorLabel.Text = "Inventory Full";
|
FailToPickup();
|
||||||
var tween = GetTree().CreateTween();
|
|
||||||
tween.TweenInterval(2);
|
|
||||||
tween.TweenCallback(Callable.From(() => _pickupErrorLabel.Text = ""));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Pickup()
|
||||||
|
{
|
||||||
|
// remove from entity manager
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FailToPickup()
|
||||||
|
{
|
||||||
|
_pickupErrorLabel.Text = "Inventory Full";
|
||||||
|
var tween = GetTree().CreateTween();
|
||||||
|
tween.TweenInterval(2);
|
||||||
|
tween.TweenCallback(Callable.From(() => _pickupErrorLabel.Text = ""));
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateVisuals()
|
public void UpdateVisuals()
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_iconSprite.Texture = itemInstance?.blueprint?.icon;
|
_iconSprite.Texture = itemInstance?.blueprint?.icon;
|
||||||
if (_iconSprite.Texture == null)
|
if (_iconSprite.Texture == null)
|
||||||
{
|
{
|
||||||
@@ -76,4 +73,84 @@ public partial class ItemOnGround2D : Node
|
|||||||
_itemLabel.Text = "";
|
_itemLabel.Text = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
protected override void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.LoadEntity(json);
|
||||||
|
_itemInstance.LoadFromJson(json.GetObject("item"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.SaveEntity(json);
|
||||||
|
json["item"] = _itemInstance.SaveToJson();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// old save
|
||||||
|
/*
|
||||||
|
public void UpdateSaveData()
|
||||||
|
{
|
||||||
|
if (!_saveToDisk)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var payloadData = new Dictionary<string, Variant>
|
||||||
|
{
|
||||||
|
{"pickupCounter", pickUpCounter}
|
||||||
|
};
|
||||||
|
|
||||||
|
string id = GetMeta("SaveID").AsString();
|
||||||
|
SavegameService.AppendDataToSave( id, payloadData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadFromSaveData()
|
||||||
|
{
|
||||||
|
if (!_saveToDisk)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_infiniteSupply)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// standard check: how many times has this item been collected?
|
||||||
|
string id = GetMeta("SaveID").AsString();
|
||||||
|
|
||||||
|
Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
|
||||||
|
if (save.Count > 0)
|
||||||
|
{
|
||||||
|
if(save.TryGetValue("pickupCounter", out Variant countVar))
|
||||||
|
{
|
||||||
|
int count = countVar.AsInt32();
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
Pickup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//separate check for unique items: If already in inventory, delete this instance.
|
||||||
|
ItemResource itemResource = itemInstance.blueprint;
|
||||||
|
Dictionary<string, Variant> savegameData = SavegameService.GetSaveData(InventoryInstance.ID);
|
||||||
|
if (savegameData.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var kvp in savegameData)
|
||||||
|
{
|
||||||
|
// if it's a unique item, then it can only exist once in the world (either as a pickup OR in the inventory)
|
||||||
|
if (itemInstance.blueprint.isUnique)
|
||||||
|
{
|
||||||
|
//comparing resource path to identify the item
|
||||||
|
string[] valuePair = kvp.Value.AsStringArray();
|
||||||
|
if (valuePair[0] == itemResource.ResourcePath)
|
||||||
|
{
|
||||||
|
int amountInInventory = int.Parse(valuePair[1]);
|
||||||
|
// comparing amount to see if it's all in the inventory now.
|
||||||
|
if (amountInInventory > 0)
|
||||||
|
{
|
||||||
|
Pickup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using Godot;
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
@@ -17,6 +19,9 @@ public partial class ItemResource : Resource
|
|||||||
[Export]
|
[Export]
|
||||||
public int maxStack;
|
public int maxStack;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public bool isUnique;
|
||||||
|
|
||||||
public ItemResource()
|
public ItemResource()
|
||||||
{
|
{
|
||||||
name = "";
|
name = "";
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public partial class MinigameController : Node2D
|
|||||||
God,
|
God,
|
||||||
VeryGood
|
VeryGood
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Builder<T>
|
public class Builder<T>
|
||||||
{
|
{
|
||||||
internal class Region
|
internal class Region
|
||||||
@@ -108,6 +108,8 @@ public partial class MinigameController : Node2D
|
|||||||
|
|
||||||
[Signal] public delegate void ArmMovedEventHandler(float newPos);
|
[Signal] public delegate void ArmMovedEventHandler(float newPos);
|
||||||
|
|
||||||
|
[Signal] public delegate void RegionHitEventHandler(int regionIndex);
|
||||||
|
|
||||||
public override void _EnterTree()
|
public override void _EnterTree()
|
||||||
{
|
{
|
||||||
HideMinigame();
|
HideMinigame();
|
||||||
@@ -125,6 +127,7 @@ public partial class MinigameController : Node2D
|
|||||||
ShowMinigame();
|
ShowMinigame();
|
||||||
Setup(builder);
|
Setup(builder);
|
||||||
await _minigameComplete!.Task;
|
await _minigameComplete!.Task;
|
||||||
|
await ToSignal(GetTree().CreateTimer(.3), "timeout");
|
||||||
var returnValue = _hits!.Select(h => builder.regions[h].value).ToList();
|
var returnValue = _hits!.Select(h => builder.regions[h].value).ToList();
|
||||||
Reset();
|
Reset();
|
||||||
HideMinigame();
|
HideMinigame();
|
||||||
@@ -145,6 +148,7 @@ public partial class MinigameController : Node2D
|
|||||||
}
|
}
|
||||||
|
|
||||||
_hits.Add(i);
|
_hits.Add(i);
|
||||||
|
EmitSignalRegionHit(i);
|
||||||
|
|
||||||
_armSpeed = -_armSpeed;
|
_armSpeed = -_armSpeed;
|
||||||
|
|
||||||
@@ -174,16 +178,18 @@ public partial class MinigameController : Node2D
|
|||||||
|
|
||||||
// spawn regions
|
// spawn regions
|
||||||
var regionSum = 0f;
|
var regionSum = 0f;
|
||||||
foreach (var region in builder.regions)
|
foreach (var (region, i) in builder.regions.Select((region, i) => (region, i)))
|
||||||
{
|
{
|
||||||
var regionVisual = _regionVisualPrefab.Instantiate<RegionVisual>();
|
var regionVisual = _regionVisualPrefab.Instantiate<RegionVisual>();
|
||||||
_regionsParent.AddChild(regionVisual);
|
_regionsParent.AddChild(regionVisual);
|
||||||
|
|
||||||
|
RegionHit += regionVisual.HitAnimation;
|
||||||
|
|
||||||
var normalisedAngleStart = regionSum / totalRegionProportion;
|
var normalisedAngleStart = regionSum / totalRegionProportion;
|
||||||
var normalisedAngleEnd = (regionSum + region.proportion) / totalRegionProportion;
|
var normalisedAngleEnd = (regionSum + region.proportion) / totalRegionProportion;
|
||||||
var normalAngles = new Vector2(normalisedAngleStart, normalisedAngleEnd);
|
var normalAngles = new Vector2(normalisedAngleStart, normalisedAngleEnd);
|
||||||
|
|
||||||
regionVisual.Setup(normalAngles, _baseRegionColor.RandomHue(), region.text, region.theme);
|
regionVisual.Setup(normalAngles, region.text, region.theme, i);
|
||||||
|
|
||||||
regionSum += region.proportion;
|
regionSum += region.proportion;
|
||||||
|
|
||||||
@@ -207,6 +213,13 @@ public partial class MinigameController : Node2D
|
|||||||
{
|
{
|
||||||
_minigameComplete = null;
|
_minigameComplete = null;
|
||||||
_hits = null;
|
_hits = null;
|
||||||
_regionsParent.GetChildren().ForEach(c => c.QueueFree());
|
_regionsParent.GetChildren().ForEach(c =>
|
||||||
|
{
|
||||||
|
if (c is RegionVisual rv)
|
||||||
|
{
|
||||||
|
RegionHit -= rv.HitAnimation;
|
||||||
|
}
|
||||||
|
c.QueueFree();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,27 +1,42 @@
|
|||||||
using Godot;
|
|
||||||
using System;
|
using System;
|
||||||
using Babushka.scripts.CSharp.Common.Minigame;
|
using Godot;
|
||||||
using Godot.Collections;
|
using Godot.Collections;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Minigame;
|
||||||
|
|
||||||
public partial class RegionVisual : Node
|
public partial class RegionVisual : Node
|
||||||
{
|
{
|
||||||
[Export] private Sprite2D _sliceSprite;
|
[Export] private Sprite2D _sliceSprite = null!;
|
||||||
[Export] private Label _textLabel;
|
[Export] private Label _textLabel = null!;
|
||||||
[Export] private Node2D _labelPivot;
|
[Export] private Node2D _labelPivot = null!;
|
||||||
|
|
||||||
[Export(PropertyHint.DictionaryType)] private Dictionary<MinigameController.RegionTheme, Color> _fillColors = new();
|
[Export(PropertyHint.DictionaryType)] private Dictionary<MinigameController.RegionTheme, Color> _fillColors = new();
|
||||||
|
|
||||||
public void Setup(Vector2 normalAngles, Color color, string regionText, MinigameController.RegionTheme regionTheme)
|
private int _index;
|
||||||
|
|
||||||
|
public void Setup(Vector2 normalAngles, string regionText, MinigameController.RegionTheme regionTheme, int index)
|
||||||
{
|
{
|
||||||
var mat = (_sliceSprite.Material as ShaderMaterial)!;
|
var mat = (_sliceSprite.Material as ShaderMaterial)!;
|
||||||
mat.SetShaderParameter("angles", normalAngles);
|
mat.SetShaderParameter("angles", normalAngles);
|
||||||
mat.SetShaderParameter("fillColor", GetFillColor(regionTheme));
|
mat.SetShaderParameter("fillColor", GetFillColor(regionTheme));
|
||||||
|
|
||||||
var averageAngleRadians = (normalAngles.X + normalAngles.Y) * float.Pi; // '/ 2' from the average and '* 2' from the radians cancel out
|
// '/ 2' from the average and '* 2' from the radians cancel out
|
||||||
|
var averageAngleRadians = (normalAngles.X + normalAngles.Y) * float.Pi;
|
||||||
_labelPivot.Rotation = averageAngleRadians;
|
_labelPivot.Rotation = averageAngleRadians;
|
||||||
_textLabel.Rotation = -averageAngleRadians;
|
_textLabel.Rotation = -averageAngleRadians;
|
||||||
|
|
||||||
_textLabel.Text = regionText;
|
_textLabel.Text = regionText;
|
||||||
|
|
||||||
|
_index = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HitAnimation(int regionIndex)
|
||||||
|
{
|
||||||
|
if(regionIndex != _index) return;
|
||||||
|
|
||||||
|
var tween = GetTree().CreateTween();
|
||||||
|
tween.TweenProperty(_sliceSprite, "scale", new Vector2(1.5f, 1.5f), 0.1f);
|
||||||
|
tween.TweenProperty(_sliceSprite, "scale", new Vector2(1f, 1f), 0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Color GetFillColor(MinigameController.RegionTheme theme)
|
private Color GetFillColor(MinigameController.RegionTheme theme)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.Services;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.NPC;
|
namespace Babushka.scripts.CSharp.Common.NPC;
|
||||||
@@ -7,38 +8,29 @@ public partial class TalkingCharacter : Node2D
|
|||||||
[Export] private AnimatedSprite2D? _sprite;
|
[Export] private AnimatedSprite2D? _sprite;
|
||||||
[Export] private string[] _timelinesToPlay;
|
[Export] private string[] _timelinesToPlay;
|
||||||
[Export] private bool _retriggerSameTimeline = false;
|
[Export] private bool _retriggerSameTimeline = false;
|
||||||
|
|
||||||
private bool _isTalking = true;
|
|
||||||
private int _timelineIndex = 0;
|
private int _timelineIndex = 0;
|
||||||
|
|
||||||
[Signal] public delegate void TalkingEventHandler(string timelineName);
|
[Signal] public delegate void TalkingEventHandler(string timelineName);
|
||||||
[Signal] public delegate void FinishedTalkingEventHandler(bool hasTimeLinesToPlay);
|
|
||||||
|
|
||||||
public override void _Ready()
|
|
||||||
{
|
|
||||||
ToggleTalking();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ToggleTalking()
|
public void StartTalking()
|
||||||
{
|
{
|
||||||
if (_isTalking || _timelineIndex >= _timelinesToPlay.Length)
|
if (_sprite != null)
|
||||||
{
|
_sprite.Animation = "talk";
|
||||||
if (_sprite != null)
|
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
|
||||||
_sprite.Animation = "idle";
|
if (!_retriggerSameTimeline)
|
||||||
_isTalking = false;
|
_timelineIndex++;
|
||||||
}
|
InputService.Instance.InputEnabled = false;
|
||||||
else
|
if (_sprite != null)
|
||||||
{
|
_sprite.Play();
|
||||||
if (_sprite != null)
|
}
|
||||||
_sprite.Animation = "talk";
|
|
||||||
_isTalking = true;
|
public void StopTalking()
|
||||||
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
|
{
|
||||||
if (!_retriggerSameTimeline)
|
if (_sprite != null)
|
||||||
_timelineIndex++;
|
_sprite.Animation = "idle";
|
||||||
}
|
InputService.Instance.InputEnabled = true;
|
||||||
if (_sprite != null)
|
if (_sprite != null)
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
|
|
||||||
EmitSignal(SignalName.FinishedTalking, _timelineIndex >= _timelinesToPlay.Length);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ public partial class QuestTrigger : Node
|
|||||||
|
|
||||||
public void Trigger()
|
public void Trigger()
|
||||||
{
|
{
|
||||||
GD.Print("trigger");
|
|
||||||
|
|
||||||
if (questResource == null)
|
if (questResource == null)
|
||||||
throw new Exception("QuestResource is not set on QuestTrigger node.");
|
throw new Exception("QuestResource is not set on QuestTrigger node.");
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
namespace Babushka.scripts.CSharp.Common.Savegame;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Defines the behaviour of Nodes that have fields that should save / load to disk.
|
||||||
|
/// When implementing new Saveable objects, please beware: Please check if object instances need to be identified separately.
|
||||||
|
/// If so, make sure to give them a proper ID. You can use the <see cref="SaveIDProvider"/> tool for that.
|
||||||
|
/// </summary>
|
||||||
|
public interface ISaveable
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Adds or updates the field data that shall be stored to disk.
|
||||||
|
/// </summary>
|
||||||
|
public void UpdateSaveData();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads the field data from disk.
|
||||||
|
/// </summary>
|
||||||
|
public void LoadFromSaveData();
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bqapxuprxuj20
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Savegame;
|
||||||
|
|
||||||
|
[Tool]
|
||||||
|
public partial class SaveCheats : Node
|
||||||
|
{
|
||||||
|
[ExportToolButton("ResetSave")] Callable _raiseAction => Callable.From(Reset);
|
||||||
|
|
||||||
|
public void Reset()
|
||||||
|
{
|
||||||
|
SavegameService.Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://iquhbkr7pqeg
|
||||||
@@ -9,12 +9,20 @@ namespace Babushka.scripts.CSharp.Common.Savegame;
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class SaveData
|
public class SaveData
|
||||||
{
|
{
|
||||||
public string SceneName;
|
// for future use in case the structure changes.
|
||||||
|
public const int VERSION = 1;
|
||||||
|
public int version { get; set; } = VERSION;
|
||||||
|
|
||||||
|
public bool IsVersionValid()
|
||||||
|
{
|
||||||
|
return VERSION == version;
|
||||||
|
}
|
||||||
|
|
||||||
public string Id;
|
public string Id;
|
||||||
public string JsonPayload;
|
public string JsonPayload;
|
||||||
|
|
||||||
public string ToString()
|
public string ToString()
|
||||||
{
|
{
|
||||||
return SceneName + " " + Id + " " + JsonPayload;
|
return Id + " " + JsonPayload;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user