Compare commits
65 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 | |||
| bef54420e4 | |||
| 9267278ce8 | |||
| 9ba83dfddd | |||
| 7c5ba2d6bb | |||
| 0c5fc26d2f | |||
| e51e0a24d2 | |||
| 7bb523f9e7 | |||
| a3651d6268 | |||
| 0892a13e66 | |||
| 61caa6eea6 | |||
| 2ec693eed2 | |||
| b7d1f9d8d5 | |||
| 12bf632932 | |||
| 0d985e5bf6 | |||
| e86b3e81dd | |||
| 14a73daa75 | |||
| 996470f5e6 | |||
| 1dd4a694d0 | |||
| 9b8933e698 | |||
| 9f4cda0e6d | |||
| 1c865730a3 | |||
| aa4f1c55b5 | |||
| aad6c44567 | |||
| 229dd04bc1 | |||
| 8407ce4c1f | |||
| b9a52dadcc | |||
| 0ecae5a4d9 | |||
| c288af296c | |||
| e65330786e | |||
| c7a4aea70b | |||
| b6caf4dbed | |||
| 51a145a994 | |||
| 41b30a4274 | |||
| a1fb71119f | |||
| 67d5b67c21 | |||
| 684131f495 |
@@ -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")
|
||||||
|
})
|
||||||
@@ -41,6 +41,7 @@ texture = ExtResource("9_wx561")
|
|||||||
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_saveIdHolder", "_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")
|
||||||
_fieldIndex = NodePath("..")
|
_fieldIndex = NodePath("..")
|
||||||
@@ -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)
|
||||||
|
|||||||
+25
-3
@@ -25,7 +25,7 @@ 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"
|
||||||
@@ -34,6 +34,8 @@ Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
|||||||
FightWorldAutoload="*res://prefabs/fight/fight_world_autoload.tscn"
|
FightWorldAutoload="*res://prefabs/fight/fight_world_autoload.tscn"
|
||||||
SaveGameManager="*res://scripts/CSharp/Common/Savegame/SaveGameManager.cs"
|
SaveGameManager="*res://scripts/CSharp/Common/Savegame/SaveGameManager.cs"
|
||||||
SettingsSaveController="*res://scripts/CSharp/Common/Savegame/SettingsSaveController.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,10 @@ folder_colors={
|
|||||||
"res://shader/": "pink"
|
"res://shader/": "pink"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[filesystem]
|
||||||
|
|
||||||
|
import/blender/enabled=false
|
||||||
|
|
||||||
[global_group]
|
[global_group]
|
||||||
|
|
||||||
Saveable=""
|
Saveable=""
|
||||||
@@ -268,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={
|
||||||
@@ -300,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]
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=3 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://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"]
|
||||||
|
|
||||||
@@ -11,3 +13,11 @@
|
|||||||
|
|
||||||
[node name="WindowSettings" type="Node" parent="."]
|
[node name="WindowSettings" type="Node" parent="."]
|
||||||
script = ExtResource("2_d3jfo")
|
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=118 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,6 +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="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"]
|
||||||
@@ -82,13 +82,22 @@
|
|||||||
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="80_w1kgo"]
|
[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
|
||||||
@@ -288,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)
|
||||||
@@ -319,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)
|
||||||
@@ -356,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)
|
||||||
|
|
||||||
@@ -473,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")
|
||||||
@@ -604,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)
|
||||||
@@ -762,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)
|
||||||
|
|
||||||
@@ -875,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)
|
||||||
@@ -1030,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
|
||||||
@@ -1061,6 +987,7 @@ position = Vector2(145.5, -224)
|
|||||||
shape = SubResource("RectangleShape2D_0sfl7")
|
shape = SubResource("RectangleShape2D_0sfl7")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="YSorted/Well" instance=ExtResource("27_klb81")]
|
[node name="InteractionArea" parent="YSorted/Well" instance=ExtResource("27_klb81")]
|
||||||
|
_id = 1
|
||||||
metadata/SaveID = "b8f7b7fe-e057-4974-ba12-9134722998de"
|
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"]
|
||||||
@@ -1117,6 +1044,24 @@ 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
|
||||||
@@ -2371,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
|
||||||
@@ -2581,6 +2526,7 @@ script = ExtResource("80_w1kgo")
|
|||||||
[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"]
|
||||||
@@ -2605,6 +2551,8 @@ script = ExtResource("80_w1kgo")
|
|||||||
[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
|
||||||
@@ -205,6 +223,12 @@ 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"]
|
||||||
@@ -219,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=98 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"]
|
||||||
@@ -125,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
|
||||||
@@ -227,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
|
||||||
@@ -881,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)
|
||||||
@@ -897,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)
|
||||||
@@ -972,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
|
||||||
@@ -1013,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"]
|
||||||
|
|
||||||
@@ -1395,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
|
||||||
@@ -1745,10 +1751,14 @@ 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"
|
metadata/SaveID = "b3b47e69-6115-4405-8da6-508b783823d2"
|
||||||
@@ -1757,9 +1767,14 @@ metadata/SaveID = "b3b47e69-6115-4405-8da6-508b783823d2"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "7a8210bf-479d-4b4c-9758-98d23e59d5d7"
|
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
|
||||||
@@ -1768,6 +1783,8 @@ 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
|
||||||
@@ -1777,9 +1794,14 @@ metadata/SaveID = "f536efd3-3da8-4ef5-a520-570220e6c19f"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "a1d8a0a2-c51c-4410-83c3-0edb31cbf2de"
|
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
|
||||||
@@ -1788,6 +1810,8 @@ 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
|
||||||
@@ -1797,9 +1821,14 @@ metadata/SaveID = "14ce64d5-8a4d-43b9-a8ff-3a57725c4dc8"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "79a65532-cb2b-4268-8eb0-8c41a3935cbb"
|
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
|
||||||
@@ -1808,6 +1837,8 @@ 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
|
||||||
@@ -1818,9 +1849,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "13fa64a3-01dc-4fd8-822e-0839c0da3163"
|
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
|
||||||
@@ -1829,6 +1865,8 @@ 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
|
||||||
@@ -1839,9 +1877,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "414ecdb9-f3c4-4fb9-81bd-6ca575784f78"
|
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
|
||||||
@@ -1850,6 +1893,8 @@ 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
|
||||||
@@ -1860,9 +1905,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "b235febb-b231-4f8c-94e9-1f9d9f115b08"
|
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
|
||||||
@@ -1871,6 +1921,8 @@ 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
|
||||||
@@ -1881,9 +1933,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "9ccdba91-812a-4c13-9ee0-12472e174fc9"
|
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
|
||||||
@@ -1892,6 +1949,8 @@ 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
|
||||||
@@ -1902,9 +1961,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "da44e54a-0b76-4888-ad8b-782a9d146fa3"
|
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
|
||||||
@@ -1913,6 +1977,8 @@ 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
|
||||||
@@ -1922,6 +1988,9 @@ metadata/SaveID = "0de8dc13-5851-4471-be35-309cd6687ebc"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "9919b294-04a1-4a16-9783-38c8aa0e291c"
|
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
|
||||||
|
|
||||||
@@ -1984,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"]
|
||||||
@@ -2066,8 +2152,6 @@ script = ExtResource("59_njxly")
|
|||||||
[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"]
|
||||||
@@ -2090,4 +2174,6 @@ script = ExtResource("59_njxly")
|
|||||||
[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"]
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,22 @@ public partial class VesnaAnimations : Node
|
|||||||
/// </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!
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -45,9 +46,12 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
|
|
||||||
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();
|
||||||
|
|
||||||
private void UpdateInteractionArea()
|
private void UpdateInteractionArea()
|
||||||
@@ -56,6 +60,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
_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,9 +76,13 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
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);
|
||||||
@@ -84,7 +93,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
base._Ready();
|
base._Ready();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateFieldState(FieldState state)
|
public void UpdateFieldState(FieldState state, bool updateSaveAfter = true)
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
@@ -112,18 +121,25 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
UpdateInteractionArea();
|
UpdateInteractionArea();
|
||||||
|
if(updateSaveAfter)
|
||||||
UpdateSaveData();
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,6 +182,16 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
}
|
}
|
||||||
|
|
||||||
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>();
|
||||||
@@ -179,13 +205,23 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 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)
|
||||||
@@ -194,8 +230,8 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
"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 }
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -204,50 +240,98 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
SavegameService.AppendDataToSave(id, payloadData);
|
SavegameService.AppendDataToSave(id, payloadData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads on scene enter.
|
||||||
|
/// </summary>
|
||||||
public void LoadFromSaveData()
|
public void LoadFromSaveData()
|
||||||
{
|
{
|
||||||
|
// Get field and plant data
|
||||||
string id = _saveIdHolder.GetMeta("SaveID").AsString();
|
string id = _saveIdHolder.GetMeta("SaveID").AsString();
|
||||||
|
|
||||||
Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
|
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)
|
if (plantDataDict.TryGetValue("plant_start_day", out Variant plantStartDay) && _currentPlant != null)
|
||||||
{
|
{
|
||||||
_currentPlant.State = (PlantState) plantStateVar.AsInt32();
|
_currentPlant.DayPlanted = plantStartDay.AsInt32();
|
||||||
_currentPlant.GrowPlant();
|
}
|
||||||
|
if (plantDataDict.TryGetValue("plant_watered_days", out Variant plantDaysWatered) && _currentPlant != null)
|
||||||
|
{
|
||||||
|
_currentPlant.DaysWatered = plantDaysWatered.AsInt32();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plantDataDict.TryGetValue("plant_days_growing", out Variant plantDaysGrowingVar) && _currentPlant != null)
|
// 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)
|
||||||
{
|
{
|
||||||
_currentPlant.DaysGrowing = plantDaysGrowingVar.AsInt32();
|
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,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;
|
||||||
@@ -20,10 +24,17 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
[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,7 +42,25 @@ 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;
|
||||||
|
|
||||||
@@ -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)
|
||||||
@@ -59,12 +97,31 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
@@ -333,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();
|
||||||
@@ -349,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();
|
var currentDetail = HappeningData.actionStaging!.CurrentDetail();
|
||||||
if(currentDetail is not MinigameActionDetail minigameDetail) return;
|
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);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SpawnEnemies(group, parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SpawnEnemies(FightWorld.FighterGroup group, Node2D parent)
|
||||||
|
{
|
||||||
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
|
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
|
||||||
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher);
|
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher);
|
||||||
parent.AddChild(roamingEnemyGroup);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,14 +11,15 @@ 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,14 +27,14 @@ 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)
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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,6 +83,7 @@ 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)
|
||||||
@@ -85,17 +91,18 @@ public partial class FighterVisual : Node2D
|
|||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+10
-4
@@ -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
|
||||||
@@ -50,12 +50,14 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
LoadFromSaveData();
|
LoadFromSaveData();
|
||||||
InventoryContentsChanged += UpdateSaveData;
|
InventoryContentsChanged += UpdateSaveData;
|
||||||
SlotAmountChanged += UpdateSaveData;
|
SlotAmountChanged += UpdateSaveData;
|
||||||
|
SavegameService.OnSaveGameReset += SaveGameReset;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _ExitTree()
|
public override void _ExitTree()
|
||||||
{
|
{
|
||||||
InventoryContentsChanged -= UpdateSaveData;
|
InventoryContentsChanged -= UpdateSaveData;
|
||||||
SlotAmountChanged -= UpdateSaveData;
|
SlotAmountChanged -= UpdateSaveData;
|
||||||
|
SavegameService.OnSaveGameReset -= SaveGameReset;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InventoryActionResult AddItem(ItemInstance newItem)
|
public InventoryActionResult AddItem(ItemInstance newItem)
|
||||||
@@ -99,7 +101,8 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
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);
|
||||||
@@ -131,7 +134,7 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
|
|
||||||
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);
|
||||||
@@ -143,6 +146,38 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
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)
|
||||||
@@ -187,7 +222,7 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
string[] value = new string[2];
|
string[] value = new string[2];
|
||||||
value[0] = _slots[i].itemInstance.blueprint.ResourcePath;
|
value[0] = _slots[i].itemInstance.blueprint.ResourcePath;
|
||||||
value[1] = _slots[i].itemInstance.amount.ToString();
|
value[1] = _slots[i].itemInstance.amount.ToString();
|
||||||
payloadData.Add(key,value);
|
payloadData.Add(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,5 +251,18 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <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
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -28,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,21 +1,19 @@
|
|||||||
using Babushka.scripts.CSharp.Common.Savegame;
|
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 Godot.Collections;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
public partial class ItemOnGround2D : Node, ISaveable
|
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");
|
||||||
@@ -32,16 +30,12 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
LoadFromSaveData();
|
|
||||||
UpdateVisuals();
|
UpdateVisuals();
|
||||||
_pickupErrorLabel.Text = "";
|
_pickupErrorLabel.Text = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
@@ -56,16 +50,7 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
private void Pickup()
|
private void Pickup()
|
||||||
{
|
{
|
||||||
if (!_infiniteSupply)
|
// remove from entity manager
|
||||||
{
|
|
||||||
pickUpCounter++;
|
|
||||||
if (pickUpCounter >= _finiteSupply)
|
|
||||||
{
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateSaveData();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FailToPickup()
|
private void FailToPickup()
|
||||||
@@ -78,9 +63,6 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
@@ -92,8 +74,27 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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()
|
public void UpdateSaveData()
|
||||||
{
|
{
|
||||||
|
if (!_saveToDisk)
|
||||||
|
return;
|
||||||
|
|
||||||
var payloadData = new Dictionary<string, Variant>
|
var payloadData = new Dictionary<string, Variant>
|
||||||
{
|
{
|
||||||
{"pickupCounter", pickUpCounter}
|
{"pickupCounter", pickUpCounter}
|
||||||
@@ -105,6 +106,9 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
public void LoadFromSaveData()
|
public void LoadFromSaveData()
|
||||||
{
|
{
|
||||||
|
if (!_saveToDisk)
|
||||||
|
return;
|
||||||
|
|
||||||
if (_infiniteSupply)
|
if (_infiniteSupply)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -148,5 +152,5 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -8,37 +9,28 @@ public partial class TalkingCharacter : Node2D
|
|||||||
[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()
|
public void StartTalking()
|
||||||
{
|
|
||||||
ToggleTalking();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ToggleTalking()
|
|
||||||
{
|
|
||||||
if (_isTalking || _timelineIndex >= _timelinesToPlay.Length)
|
|
||||||
{
|
|
||||||
if (_sprite != null)
|
|
||||||
_sprite.Animation = "idle";
|
|
||||||
_isTalking = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (_sprite != null)
|
if (_sprite != null)
|
||||||
_sprite.Animation = "talk";
|
_sprite.Animation = "talk";
|
||||||
_isTalking = true;
|
|
||||||
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
|
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
|
||||||
if (!_retriggerSameTimeline)
|
if (!_retriggerSameTimeline)
|
||||||
_timelineIndex++;
|
_timelineIndex++;
|
||||||
}
|
InputService.Instance.InputEnabled = false;
|
||||||
if (_sprite != null)
|
if (_sprite != null)
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
|
}
|
||||||
|
|
||||||
EmitSignal(SignalName.FinishedTalking, _timelineIndex >= _timelinesToPlay.Length);
|
public void StopTalking()
|
||||||
|
{
|
||||||
|
if (_sprite != null)
|
||||||
|
_sprite.Animation = "idle";
|
||||||
|
InputService.Instance.InputEnabled = true;
|
||||||
|
if (_sprite != null)
|
||||||
|
_sprite.Play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ public static class SavegameService
|
|||||||
|
|
||||||
public static bool _loaded = false;
|
public static bool _loaded = false;
|
||||||
|
|
||||||
|
public delegate void SaveGameDelegate();
|
||||||
|
public static event SaveGameDelegate OnSaveGameReset = delegate {};
|
||||||
|
|
||||||
|
|
||||||
public static void AppendDataToSave( string id, Dictionary<string, Variant> payload)
|
public static void AppendDataToSave( string id, Dictionary<string, Variant> payload)
|
||||||
{
|
{
|
||||||
@@ -130,5 +133,6 @@ public static class SavegameService
|
|||||||
{
|
{
|
||||||
SaveDatas = new ();
|
SaveDatas = new ();
|
||||||
Save();
|
Save();
|
||||||
|
OnSaveGameReset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public class Entity
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public virtual string EntityType => "";
|
||||||
|
|
||||||
|
public Entity()
|
||||||
|
{
|
||||||
|
id = new Random().NextInt64();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
json["id"] = id;
|
||||||
|
json["type"] = EntityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
id = json.GetLongValue("id");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://hnmpt23ovfgl
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Transactions;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public class LoadedScenesEntity : Entity
|
||||||
|
{
|
||||||
|
private HashSet<string> _loadedScenes = new();
|
||||||
|
public override string EntityType => OWN_TYPE_NAME;
|
||||||
|
public const string OWN_TYPE_NAME = "LoadedScenesEntity";
|
||||||
|
|
||||||
|
public void AddScene(string sceneName) => _loadedScenes.Add(sceneName);
|
||||||
|
|
||||||
|
public bool WasSceneLoaded(string sceneName) => _loadedScenes.Contains(sceneName);
|
||||||
|
|
||||||
|
public override void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.SaveEntity(json);
|
||||||
|
json["scenes"] = new JArray(_loadedScenes);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.LoadEntity(json);
|
||||||
|
JArray array = (JArray?) json["scenes"] ?? throw new Exception("No scenes found in LoadedScenesEntity.");
|
||||||
|
|
||||||
|
_loadedScenes = array.ToObject<HashSet<string>>()!;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://rabb1y637cm5
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public abstract class PositionalEntity : Entity
|
||||||
|
{
|
||||||
|
public Vector2 position;
|
||||||
|
public string sceneName = "none";
|
||||||
|
|
||||||
|
public override void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.SaveEntity(json);
|
||||||
|
json["posx"] = position.X;
|
||||||
|
json["posy"] = position.Y;
|
||||||
|
json["scene"] = sceneName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.LoadEntity(json);
|
||||||
|
position = new Vector2(
|
||||||
|
json.GetFloatValue("posx"),
|
||||||
|
json.GetFloatValue("posy"));
|
||||||
|
sceneName = json.GetStringValue("scene");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deals with Instantiation of the node
|
||||||
|
public abstract void InstantiateEntityNode(Node2D parent);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bs38dulqv7sop
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public class TrashEntity : PositionalEntity
|
||||||
|
{
|
||||||
|
public override string EntityType => OWN_TYPE_NAME;
|
||||||
|
public const string OWN_TYPE_NAME = "TrashEntity";
|
||||||
|
private EntityNodeCreator _creator;
|
||||||
|
|
||||||
|
public TrashEntity()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void InstantiateEntityNode(Node2D parent)
|
||||||
|
{
|
||||||
|
if(_creator == null) _creator = EntityManager.Instance.NodeCreator;
|
||||||
|
var entityNode = _creator.InstantiateNode(EntityType);
|
||||||
|
parent.AddChild(entityNode);
|
||||||
|
entityNode.GlobalPosition = position;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://c31k34epunk5t
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.EntityNodes;
|
||||||
|
|
||||||
|
public partial class TrashEntityNode : Node2D
|
||||||
|
{
|
||||||
|
private TrashEntity _trashEntity;
|
||||||
|
|
||||||
|
public void Initialize(TrashEntity trashEntity)
|
||||||
|
{
|
||||||
|
_trashEntity = trashEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://d3n8kwva4pxx5
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.EntityPlacer;
|
||||||
|
|
||||||
|
public partial class TrashEntityPlacer : Node2D
|
||||||
|
{
|
||||||
|
private string _trashEntityType = TrashEntity.OWN_TYPE_NAME;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
string sceneName = EntityManager.Instance.CurrentEntitySceneContainer!.sceneName;
|
||||||
|
var loadedScenesEntity = EntityManager.Instance.GetUniqueEntity<LoadedScenesEntity>();
|
||||||
|
|
||||||
|
if (!loadedScenesEntity.WasSceneLoaded(sceneName))
|
||||||
|
{
|
||||||
|
TrashEntity entity = new TrashEntity();
|
||||||
|
entity.sceneName = sceneName;
|
||||||
|
entity.position = GlobalPosition;
|
||||||
|
EntityManager.Instance.AddEntity(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
QueueFree();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bilg7e33usxuv
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
|
||||||
|
public static class EntityLoadSaveUtil
|
||||||
|
{
|
||||||
|
private static void AssertTokenType(this JObject json, string key, JTokenType type)
|
||||||
|
{
|
||||||
|
var token = json[key];
|
||||||
|
if (token == null) throw new MalformedJsonException(json, key, "does not exist");
|
||||||
|
//if (!token.HasValues) throw new MalformedJsonException(json, key, "has no value");
|
||||||
|
if (token.Type != type) throw new MalformedJsonException(json, key, $"is not of type {type}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long GetLongValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Integer);
|
||||||
|
return json.Value<long>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetIntValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Integer);
|
||||||
|
return json.Value<int>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float GetFloatValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Float);
|
||||||
|
return json.Value<float>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JObject GetObject(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Object);
|
||||||
|
return json.Value<JObject>(key)!;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetStringValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.String);
|
||||||
|
return json.Value<string>(key)!;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://ccu6p418viliu
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user