Compare commits

...

88 Commits

Author SHA1 Message Date
Jonathan 628da80ed3 Merge pull request 'feature/entity_rework' (#52) from feature/entity_rework into develop
2 months ago
Katharina Ziolkowski 0dfbd73978 Reverted ItemOnGround to make everything compile again
2 months ago
Katharina Ziolkowski 8a93b00e72 Merge branch 'develop' into feature/entity_rework
2 months ago
Katharina Ziolkowski ba7d550c3f Implemented Save and Load functionality
2 months ago
Katharina Ziolkowski b65a3bbd6d Managed the freeing of entityplacers. Also cleaned up EntityManager
2 months ago
Katharina Ziolkowski bcbc074c86 First adjustments to the Entity System to make it work with different types
2 months ago
jonathan 745f54b375 WIP
2 months ago
Katharina Ziolkowski 2c8a024528 Merge pull request 'feature/build_0_7' (#49) from feature/build_0_7 into develop
3 months ago
Katharina Ziolkowski 76eb408a40 Merge branch 'develop' into feature/build_0_7
3 months ago
Katharina Ziolkowski ff143f07e7 deleted unused autosave file
3 months ago
Jonathan b50ca5b919 Merge pull request 'einfügen von Gesichtsausdrücken für Vesna' (#46) from Vesna_Gesichtsausdrücke_einfügen_ into develop
3 months ago
jonathan 59d313d97d Added basic entity scripts
4 months ago
Jonathan 9032272599 Merge pull request 'BlobFighter TargetSelection ColliderShape2D Transform angepasst' (#42) from Enemy_selection_overlap into develop
4 months ago
JoansLink00 a2ef3bfaf0 Window angepasst
4 months ago
JoansLink00 1ab1071246 HoverIndicator off
4 months ago
Katharina Ziolkowski b0ee8c4c58 fixed path strings in scene transitions and added disclaimer and credits back into the flow
4 months ago
Katharina Ziolkowski 522fdfa365 Added fightworld background and cat dialogue
4 months ago
Katharina Ziolkowski 4f6c5ab9c1 fixed some layering issues in beetroot scene and added a mock convo with the domovoi
4 months ago
Katharina Ziolkowski 11e24e249e Fixed Field outline not disappearing when switching tools
4 months ago
Katharina Ziolkowski f3080df4b7 moved fence door collision shape up to reduce unwanted triggering
4 months ago
Katharina Ziolkowski f6e83e7fef Added event handlers in Fieldbehaviour to react to watering can state changes
4 months ago
Katharina Ziolkowski 3bdc8cd03f Deactivated harvestable plant on spawn
4 months ago
Katharina Ziolkowski f862827d98 Removed Print statements
4 months ago
Katharina Ziolkowski a401cbe5b9 🐛 fixed field activator self-deactivating on load bug
4 months ago
Katharina Ziolkowski 48660b167c Merge branch 'feature/bugfixes_polish_II' into feature/build_0_7
4 months ago
Jonathan e5b2b8b8ab Merge pull request 'Connect farming and fighting by making them codependent' (#44) from feature/farm_fight_loop into develop
4 months ago
Jonathan 2fa8aa9fbc Merge pull request 'Vesna resets to bed after death' (#47) from Vesna_resets_to_bed_after_dead into develop
4 months ago
Jonathan 6deb6e29fd Merge pull request 'Made attack selection only select alive enemies' (#45) from bug/attack_dead_enemy into develop
4 months ago
Jonathan edc133749f Merge pull request 'Randomized who starts the fight' (#41) from randomise_fight_start into develop
4 months ago
jonathan 5f75bde317 💄 Made heal button show how many beats are left
4 months ago
jonathan 7310bfbf6e Added flying beet to the ui when used
4 months ago
jonathan fef8380a57 When beetroot is in inventory the player can heal
4 months ago
jonathan f42c2c86b1 Defeated enemygroups now drop a beet_seed
4 months ago
Katharina Ziolkowski f1a2e6166b 🐛 fixed field setup in beet scene
4 months ago
Katharina Ziolkowski c0111e4c17 🐛 fixed rake triggering field interaction + watering can interaction
4 months ago
JoansLink00 2ed9dbbc52 Vesna resets to bed after death
4 months ago
Katharina Ziolkowski 4f660c4af8 🐛 fixed rake still activating field outlines bug
4 months ago
Katharina Ziolkowski 13fcf059e9 Added trash object savestate
4 months ago
Katharina Ziolkowski 7f58aeae76 removed GD.Prints
4 months ago
JoansLink00 3456340bb7 einfügen von Gesichtsausdrücken für Vesna
4 months ago
Katharina Ziolkowski 30750d2e3c ♻️ removed planted state from Fieldstate because it didn't make any sense.
4 months ago
Katharina Ziolkowski 950731b225 🐛 Fixed ObjectNotDisposedException on Well in beetroot scene
4 months ago
Katharina Ziolkowski feb591f56a ♻️ modified changed path in start scene
4 months ago
Katharina Ziolkowski aac0992590 ♻️ scene name refactoring part two: fixing scene transition paths in scenes
4 months ago
Katharina Ziolkowski 21cf2d1a6a ♻️ Renamed scenes
4 months ago
Katharina Ziolkowski 3f5cfed477 removed test scene
4 months ago
Katharina Ziolkowski 64c15c2e63 removed print statements
4 months ago
Katharina Ziolkowski a98c842ee0 🐛 Fixed field interaction bug
4 months ago
Katharina Ziolkowski abed751d29 🚧 WIP trying to make fields have outlines again
4 months ago
Katharina Ziolkowski ce113e16da 🐛 planting seeds works again
4 months ago
Katharina Ziolkowski c55e527bf4 Merge branch 'develop' into feature/bugfixes_polish_II
4 months ago
Katharina Ziolkowski c509a52001 🚧 Basic interaction works now too
4 months ago
Katharina Ziolkowski 9e0e87ef17 🚧 WIP detection works now
4 months ago
Katharina Ziolkowski 7ffbb8e68d pulled ceiling lower in kitchen scene
4 months ago
jonathan 6375383373 🐛Made attack selection only select alive enemies
4 months ago
Jonathan b810ea1d9f Merge pull request 'Kampf Tooltip wird ausgeblendet' (#43) from Kampf_Tooltip into develop
4 months ago
Katharina Ziolkowski b232cb31c3 🚧 interaction kinda sorta works now, still needs tweaking
4 months ago
Katharina Ziolkowski a6260efc07 Merge branch 'develop' into feature/bugfixes_polish_II
4 months ago
Katharina Ziolkowski 3d19509826 Merge pull request 'feature/art_update' (#40) from feature/art_update into develop
4 months ago
Katharina Ziolkowski 113dd0820f Merge branch 'develop' into feature/art_update
4 months ago
Katharina Ziolkowski 7e148cd9fe 🐛 fixed Ysorting issues in fightworld
4 months ago
Katharina Ziolkowski 59489e4a17 Made common room into hub area and ajdusted Yeli dialogue
4 months ago
JoansLink00 fc00559483 Kampf Tooltip wird ausgeblendet
4 months ago
Katharina Ziolkowski 982178d89a 🐛 fixed sunflower parallaxing to *perfection*
4 months ago
JoansLink00 09f55d3aa7 BlobFighter TargetSelection ColliderShape2D Transform angepasst
4 months ago
Katharina Ziolkowski c89685c936 🐛 fixed colliders in kitchen
4 months ago
Katharina Ziolkowski 79108fbe15 🐛 fixed parallax problems
4 months ago
Katharina Ziolkowski 9499c27444 🚧 WIP: trying to rework the detection system (it fails)
4 months ago
Jonathan 0434667c22 Merge pull request 'feature/bugfixes_And_Polish' (#39) from feature/bugfixes_And_Polish into develop
4 months ago
jonathan a736adaafb Randomized who starts the fight
4 months ago
Katharina Ziolkowski bef54420e4 darkened fightworld room to make it look more like night
4 months ago
Katharina Ziolkowski 9267278ce8 tried and failed at fixing all layering issues in beet scene
4 months ago
Katharina Ziolkowski 9ba83dfddd Made stove interactable
4 months ago
Katharina Ziolkowski 7c5ba2d6bb Added kitchen room
4 months ago
Katharina Ziolkowski 0c5fc26d2f 🍱 changed forest background in first farming scene
4 months ago
Katharina Ziolkowski e51e0a24d2 🐛 fixed dialogic bugs and moved trash items out of the way
4 months ago
Katharina Ziolkowski 7bb523f9e7 🐛 harvested plants don't come back on scene reload
4 months ago
Katharina Ziolkowski a3651d6268 deleted unused code
4 months ago
Katharina Ziolkowski 0892a13e66 🐛 fixed beet harvesting
4 months ago
Katharina Ziolkowski 61caa6eea6 Merge branch 'refs/heads/develop' into feature/bugfixes_And_Polish
4 months ago
Katharina Ziolkowski 2ec693eed2 Merge pull request 'Added visual feedback when hitting a region in the minigame' (#37) from minigame_hit_feedback into develop
4 months ago
Katharina Ziolkowski b7d1f9d8d5 Merge branch 'develop' into minigame_hit_feedback
4 months ago
Katharina Ziolkowski 12bf632932 Merge pull request 'Added randomnes into attack minigame' (#36) from minigame_variation into develop
4 months ago
Katharina Ziolkowski 0d985e5bf6 Merge branch 'develop' into minigame_variation
4 months ago
Katharina Ziolkowski e86b3e81dd Merge pull request 'fighting minigame has no more Overlap with Vesna' (#38) from fighting_minigame_fix_overlap_with_Vesna into develop
4 months ago
Katharina Ziolkowski 996470f5e6 🐛 fixed beets double spawning bug
4 months ago
jonathan aa4f1c55b5 Added visual feedback when hitting a region in the minigame
4 months ago
jonathan aad6c44567 Added randomnes into attack minigame
4 months ago

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dc1xim3mqlj1o"
path="res://.godot/imported/angry.png-e4eff51de743a11598498a3e284ae0a1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/characters/Vesna/angry.png"
dest_files=["res://.godot/imported/angry.png-e4eff51de743a11598498a3e284ae0a1.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bhd8ui4bdauoq"
path="res://.godot/imported/sad.png-07f44c713781510c0fa11821d4fa50bc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/characters/Vesna/sad.png"
dest_files=["res://.godot/imported/sad.png-07f44c713781510c0fa11821d4fa50bc.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4xvgqwrwh3vw"
path="res://.godot/imported/smile.png-2ef625357927edd0d495bf554ac57e21.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/characters/Vesna/smile.png"
dest_files=["res://.godot/imported/smile.png-2ef625357927edd0d495bf554ac57e21.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcxkqut5edp2b"
path="res://.godot/imported/surprise.png-79afea119cbe923f9aa9e4554a23ed80.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/characters/Vesna/surprise.png"
dest_files=["res://.godot/imported/surprise.png-79afea119cbe923f9aa9e4554a23ed80.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ing4qavovh4r"
path="res://.godot/imported/surprised.png-ab52144d1f41186a697c9a0e1584b3ee.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/characters/Vesna/surprised.png"
dest_files=["res://.godot/imported/surprised.png-ab52144d1f41186a697c9a0e1584b3ee.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

@ -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: 575 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ciaabo8kcx2hw"
path="res://.godot/imported/fightworld_background.png-be6589f7fa4be8e56ee338eabec1ff36.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/fightworld_background.png"
dest_files=["res://.godot/imported/fightworld_background.png-be6589f7fa4be8e56ee338eabec1ff36.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dfp3tpx3fjges"
path="res://.godot/imported/domovoi_single.png-54325e2fb332bab49d527581994f50c7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/indoor/indoor outdoor/domovoi_single.png"
dest_files=["res://.godot/imported/domovoi_single.png-54325e2fb332bab49d527581994f50c7.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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://s1yoemhrupwe"
path="res://.godot/imported/vesna_indoor_bed.png-82be6dfddfce8701f4d35f6270cb0cdb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/indoor/vesna_indoor_bed.png"
dest_files=["res://.godot/imported/vesna_indoor_bed.png-82be6dfddfce8701f4d35f6270cb0cdb.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnlhlf1mx01h5"
path="res://.godot/imported/vesna_indoor_door.png-480faae15ccfa0c6172c753cd0b4d6a0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/indoor/vesna_indoor_door.png"
dest_files=["res://.godot/imported/vesna_indoor_door.png-480faae15ccfa0c6172c753cd0b4d6a0.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

@ -19,12 +19,22 @@
}, },
"style": "NPC_narrative" "style": "NPC_narrative"
}, },
&"default_portrait": "", &"default_portrait": "default",
&"description": "Yeli's Domovoi", &"description": "Yeli's Domovoi",
&"display_name": "Domovoi", &"display_name": "Domovoi",
&"mirror": false, &"mirror": false,
&"nicknames": [""], &"nicknames": [""],
&"offset": Vector2(0, 0), &"offset": Vector2(0, 0),
&"portraits": {}, &"portraits": {
"default": {
"export_overrides": {
"image": "\"res://art/indoor/indoor outdoor/domovoi_single.png\""
},
"mirror": false,
"offset": Vector2(0, -300),
"scale": 1.0,
"scene": ""
}
},
&"scale": 1.0 &"scale": 1.0
} }

@ -1,19 +1,29 @@
{ {
"@path": "res://addons/dialogic/Resources/character.gd", "@path": "res://addons/dialogic/Resources/character.gd",
"@subpath": NodePath(""), "@subpath": NodePath(""),
"_translation_id": "16", &"_translation_id": "16",
"color": Color(1, 1, 1, 1), &"color": Color(1, 1, 1, 1),
"custom_info": { &"custom_info": {
"sound_mood_default": "", "sound_mood_default": "",
"sound_moods": {}, "sound_moods": {},
"style": "" "style": ""
}, },
"default_portrait": "", &"default_portrait": "side",
"description": "", &"description": "",
"display_name": "Semi Cat", &"display_name": "Black Cat",
&"mirror": false,
&"nicknames": [""],
&"offset": Vector2(0, 0),
&"portraits": {
"side": {
"export_overrides": {
"image": "\"res://art/animals/katze.png\""
},
"mirror": false, "mirror": false,
"nicknames": [""], "offset": Vector2(0, -300),
"offset": Vector2(0, 0), "scale": 1.5,
"portraits": {}, "scene": ""
"scale": 1.0 }
},
&"scale": 1.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"]

@ -0,0 +1,5 @@
join vesna (half side) left
join semi_cat right
vesna: (pets)
semi_cat: mrau!
[end_timeline]

@ -0,0 +1 @@
uid://clwlhu4lpmyqm

@ -2,7 +2,7 @@ join vesna left
vesna: Hello! vesna: Hello!
join Yeli (_side) right join Yeli (_side) right
Yeli (_frontal): Welcome to Babushka! Yeli (_frontal): Welcome to Babushka!
vesna (half side): We are Cozy Raven. This is our first showcase. vesna (half side): We are Cozy Raven. This is a preview showcase.
Yeli (_part_side): Many of the lofty, idealist, dreamy things that we wanted to implement are still in the backlog, waiting for their turn. Yeli (_part_side): Many of the lofty, idealist, dreamy things that we wanted to implement are still in the backlog, waiting for their turn.
vesna (front): But alas! The deadlines loomed, the bugs were strong with this one, and our days only have 24 hours. vesna (front): But alas! The deadlines loomed, the bugs were strong with this one, and our days only have 24 hours.
Yeli (_frontal): So please be kind when you test this demo. We poured our hearts and our love for the slavic folklore into this one and will continue to do so. Yeli (_frontal): So please be kind when you test this demo. We poured our hearts and our love for the slavic folklore into this one and will continue to do so.

@ -1,9 +1,9 @@
join Yeli right join Yeli right
join vesna left join vesna left
Yeli (_part_side): Wow! So many? Yeli (_part_side): Wow! So many?
Yeli (_part_side): Good job! Put it in the kettle! Yeli (_frontal): Good job! Put it in the kettle!
[wait_input] [wait_input]
Yeli (_part_side): Mmmh! This will be something. Yeli (_part_side): Mmmh! This will be something.
Yeli (_part_side): Thank you! I can take everything else from here. Yeli (_frontal): Thank you! I can take everything else from here.
Yeli (_part_side): See you for dinner! Yeli (_part_side): See you for dinner!
[end_timeline] [end_timeline]

@ -1,5 +1,5 @@
join Yeli right join Yeli right
join vesna left join vesna (surprise) left
[quest_complete quest_resource="res://resources/quests/demo/1_talk_yeli_1.tres"] [quest_complete quest_resource="res://resources/quests/demo/1_talk_yeli_1.tres"]
Yeli (_part_side): Come here, you little quacking beast! Yeli (_part_side): Come here, you little quacking beast!
- What a mess! - What a mess!

@ -1,4 +1,4 @@
join Chuga left join Chuga center
Chuga: I believe youve seen enough for today. Chuga: I believe youve seen enough for today.
Chuga: And yes, you too. Chuga: And yes, you too.
Chuga: Thank you for playing! Chuga: Thank you for playing!

@ -2,7 +2,7 @@
join vesna left join vesna left
join Chuga right join Chuga right
Chuga: Look who it is! Chuga: Look who it is!
vesna: Your name was Chuga, right? I want to go to the forest! vesna (half side): Your name was Chuga, right? I want to go to the forest!
Chuga: To the forest? After everything the others told you? Chuga: To the forest? After everything the others told you?
vesna: Will you let me through? vesna: Will you let me through?
Chuga: Will I? Chuga: Will I?

@ -1,9 +1,9 @@
join Yeli center join Yeli left
join vesna center join vesna right
[quest_complete quest_resource="res://resources/quests/demo/5_talk_yeli_3.tres"] [quest_complete quest_resource="res://resources/quests/demo/5_talk_yeli_3.tres"]
Yeli (_part_side): Great! Now I need you to plant some tomatoes! Yeli (_part_side): Great! Now I need you to plant some tomatoes!
label plant tomatoes label plant tomatoes
Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields. Yeli (_frontal): Use the hoe to break up the soil. Then plant the seeds and water the fields.
Yeli (_part_side): Got it? Yeli (_part_side): Got it?
- Of course! - Of course!
- Wait … How do I plant the tomatoes again? - Wait … How do I plant the tomatoes again?

@ -2,11 +2,11 @@ join Yeli right
join vesna left join vesna left
[quest_complete quest_resource="res://resources/quests/demo/3_talk_yeli_2.tres"] [quest_complete quest_resource="res://resources/quests/demo/3_talk_yeli_2.tres"]
Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore. Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore.
vesna: But youre diligent! Youve started with the preparation for dinner. vesna (half side): But youre diligent! Youve started with the preparation for dinner.
Yeli (_part_side): Indeed, I have. Yeli (_frontal): Indeed, I have.
Yeli (_part_side): But, oh my, those ducks messed up the tomatos. Yeli (_part_side): But, oh my, those ducks messed up the tomatos.
Yeli (_part_side): Oh, would you like to assist me? Yeli (_frontal): Oh, would you like to assist me?
vesna: What do I have to do? vesna (front): What do I have to do?
Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me! Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me!
[quest_activate quest_resource="res://resources/quests/demo/4_collect_tools.tres"] [quest_activate quest_resource="res://resources/quests/demo/4_collect_tools.tres"]
[end_timeline] [end_timeline]

@ -0,0 +1,8 @@
join Domovoi right
join vesna (half side) left
vesna: Hello?
...
vesna: Is someone home?
(No answer.)
vesna: Hmpf!
[end_timeline]

@ -0,0 +1 @@
uid://cc1hkf45dtrnj

@ -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]

@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="_builds/Babushka_win_0_5/Babushka.exe" export_path="_builds/Babushka_showcase_6a/Babushka.exe"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
@ -26,6 +26,7 @@ debug/export_console_wrapper=1
binary_format/embed_pck=false binary_format/embed_pck=false
texture_format/s3tc_bptc=true texture_format/s3tc_bptc=true
texture_format/etc2_astc=false texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64" binary_format/architecture="x86_64"
codesign/enable=false codesign/enable=false
codesign/timestamp=true codesign/timestamp=true
@ -79,7 +80,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="_builds/Babushka_linux_0_5/Babushka.x86_64" export_path="_builds/Babushka_showcase_lux_06a/Babushka.x86_64"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
@ -96,6 +97,7 @@ debug/export_console_wrapper=1
binary_format/embed_pck=false binary_format/embed_pck=false
texture_format/s3tc_bptc=true texture_format/s3tc_bptc=true
texture_format/etc2_astc=false texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64" binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/host="user@host_ip"

@ -1,7 +1,8 @@
[gd_scene load_steps=17 format=3 uid="uid://sbf12hin4kes"] [gd_scene load_steps=18 format=3 uid="uid://sbf12hin4kes"]
[ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"] [ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"]
[ext_resource type="Script" uid="uid://c2cgj153m05sp" path="res://scripts/CSharp/Common/Interactables/TrashObject.cs" id="2_u7jgg"]
[ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"] [ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"]
[ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"] [ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"]
[ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"] [ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"]
@ -29,13 +30,15 @@ stream_7/stream = ExtResource("10_aqih4")
stream_8/stream = ExtResource("11_kb03l") stream_8/stream = ExtResource("11_kb03l")
stream_9/stream = ExtResource("12_kka6u") stream_9/stream = ExtResource("12_kka6u")
[node name="trashObject" type="Sprite2D"] [node name="trashObject" type="Sprite2D" groups=["Saveable"]]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
texture = ExtResource("1_k4ca3") texture = ExtResource("1_k4ca3")
offset = Vector2(1, -215) offset = Vector2(1, -215)
region_enabled = true region_enabled = true
region_rect = Rect2(44, 479, 356, 503) region_rect = Rect2(44, 479, 356, 503)
script = ExtResource("2_u7jgg")
metadata/SaveID = ""
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("2_gcgfd")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("2_gcgfd")]
position = Vector2(0, -172) position = Vector2(0, -172)
@ -51,6 +54,6 @@ script = ExtResource("13_wswkg")
script = ExtResource("14_dx175") script = ExtResource("14_dx175")
_eventResources = Array[Object]([ExtResource("15_u7jgg")]) _eventResources = Array[Object]([ExtResource("15_u7jgg")])
[connection signal="Interacted" from="InteractionArea" to="." method="queue_free"] [connection signal="Interacted" from="InteractionArea" to="." method="Collect"]
[connection signal="Interacted" from="InteractionArea" to="AudioStreamPlayer2D" method="PlayOneShot"] [connection signal="Interacted" from="InteractionArea" to="AudioStreamPlayer2D" method="PlayOneShot"]
[connection signal="Interacted" from="InteractionArea" to="PickupAnimationEventRaiser" method="RaiseEvents"] [connection signal="Interacted" from="InteractionArea" to="PickupAnimationEventRaiser" method="RaiseEvents"]

@ -0,0 +1,12 @@
[gd_scene load_steps=3 format=3 uid="uid://7pvvop5hfl01"]
[ext_resource type="Script" uid="uid://iquhbkr7pqeg" path="res://scripts/CSharp/Common/Savegame/SaveCheats.cs" id="1_vcrak"]
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="2_q0tmy"]
[node name="SaveSystem" type="Node"]
[node name="SaveGameCheat" type="Node" parent="."]
script = ExtResource("1_vcrak")
[node name="SaveIDProvider" type="Node" parent="."]
script = ExtResource("2_q0tmy")

@ -2123,9 +2123,6 @@ frame = 7
frame_progress = 0.229832 frame_progress = 0.229832
offset = Vector2(0, -450) offset = Vector2(0, -450)
[node name="DetectionCross" parent="CharacterBody2D" instance=ExtResource("466_e04c3")]
position = Vector2(0, -200)
[node name="PlantCreatedEventListener" type="Node" parent="CharacterBody2D"] [node name="PlantCreatedEventListener" type="Node" parent="CharacterBody2D"]
script = ExtResource("467_8hbu5") script = ExtResource("467_8hbu5")
_eventResources = Array[Object]([ExtResource("468_t1d6r")]) _eventResources = Array[Object]([ExtResource("468_t1d6r")])
@ -2175,6 +2172,9 @@ scrollable = false
script = ExtResource("472_kduih") script = ExtResource("472_kduih")
_wateringCanFillStateNode = NodePath("../WateringCanFillState") _wateringCanFillStateNode = NodePath("../WateringCanFillState")
[node name="DetectionCross" parent="CharacterBody2D" instance=ExtResource("466_e04c3")]
position = Vector2(0, -260)
[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")

@ -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="timelineEnded" from="Dialogic starter" to="." method="StopTalking"]
[connection signal="timelineEnded" from="Dialogic starter" to="InteractionArea" method="SetActiveTrue"]
[connection signal="timelineStarted" from="Dialogic starter" to="InteractionArea" method="SetActiveFalse"]
[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=4 format=3 uid="uid://hdfejdnmp8sl"]
[ext_resource type="Script" uid="uid://umop2b1m1qm8" path="res://scripts/CSharp/GameEntity/Management/EntityManager.cs" id="1_2bwns"]
[ext_resource type="Script" uid="uid://bogqp274y1pgr" path="res://scripts/CSharp/GameEntity/Management/EntityNodeCreator.cs" id="2_8m173"]
[ext_resource type="PackedScene" uid="uid://sbf12hin4kes" path="res://prefabs/Interactables/trash_object.tscn" id="3_v3vdc"]
[node name="EntityManager" type="Node" node_paths=PackedStringArray("_nodeCreator")]
script = ExtResource("1_2bwns")
_nodeCreator = NodePath("EntityCreator")
[node name="EntityCreator" type="Node" parent="."]
script = ExtResource("2_8m173")
_entityPrefabs = Dictionary[String, PackedScene]({
"TrashEntity": ExtResource("3_v3vdc")
})

@ -1,8 +1,7 @@
[gd_scene load_steps=25 format=3 uid="uid://muuxxgvx33fp"] [gd_scene load_steps=24 format=3 uid="uid://muuxxgvx33fp"]
[ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"] [ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"]
[ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"] [ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"]
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="2_fdf3t"]
[ext_resource type="AudioStream" uid="uid://qv0aubjeyi0u" path="res://audio/sfx/Animals/SFX_Duck_Quack_01.wav" id="3_kjie1"] [ext_resource type="AudioStream" uid="uid://qv0aubjeyi0u" path="res://audio/sfx/Animals/SFX_Duck_Quack_01.wav" id="3_kjie1"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="3_rdn2q"] [ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="3_rdn2q"]
[ext_resource type="AudioStream" uid="uid://da84l8e44scwh" path="res://audio/sfx/Animals/SFX_Duck_Quack_02.wav" id="4_54k4r"] [ext_resource type="AudioStream" uid="uid://da84l8e44scwh" path="res://audio/sfx/Animals/SFX_Duck_Quack_02.wav" id="4_54k4r"]
@ -143,7 +142,6 @@ viewport_path = NodePath("SubViewport")
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_54k4r") script = ExtResource("1_54k4r")
_sceneKeyProvider = ExtResource("2_fdf3t")
_transferDelayMs = 1000 _transferDelayMs = 1000
_animationPlayer = NodePath("AnimationPlayer") _animationPlayer = NodePath("AnimationPlayer")

@ -1,4 +1,4 @@
[gd_scene load_steps=25 format=3 uid="uid://b1d2e7ely6hyw"] [gd_scene load_steps=26 format=3 uid="uid://b1d2e7ely6hyw"]
[ext_resource type="Script" uid="uid://j2mhvb45egej" path="res://scripts/CSharp/Low Code/Variables/VariableNode.cs" id="1_4mg73"] [ext_resource type="Script" uid="uid://j2mhvb45egej" path="res://scripts/CSharp/Low Code/Variables/VariableNode.cs" id="1_4mg73"]
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="1_qa01x"] [ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="1_qa01x"]
@ -23,6 +23,7 @@
[ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="21_4mg73"] [ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="21_4mg73"]
[ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="21_68xcd"] [ext_resource type="Resource" uid="uid://dlcmqfjvgphqu" path="res://resources/items/rake.tres" id="21_68xcd"]
[ext_resource type="Script" uid="uid://dlbjjgbs0n4b0" path="res://scripts/CSharp/Common/Farming/FieldActivator.cs" id="22_57jmp"] [ext_resource type="Script" uid="uid://dlbjjgbs0n4b0" path="res://scripts/CSharp/Common/Farming/FieldActivator.cs" id="22_57jmp"]
[ext_resource type="PackedScene" uid="uid://7pvvop5hfl01" path="res://prefabs/SaveSystem/save_system.tscn" id="24_avqr3"]
[sub_resource type="CircleShape2D" id="CircleShape2D_57jmp"] [sub_resource type="CircleShape2D" id="CircleShape2D_57jmp"]
resource_local_to_scene = true resource_local_to_scene = true
@ -38,9 +39,10 @@ z_index = 1
scale = Vector2(1.3499999, 1.5) scale = Vector2(1.3499999, 1.5)
texture = ExtResource("9_wx561") texture = ExtResource("9_wx561")
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_saveIdHolder", "_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "FieldInteractionArea", "PlantingPlaceholder", "_wateringParticles")] [node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_saveIdHolder", "_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "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("..")
@ -55,7 +57,6 @@ _maskTexture = Array[Texture2D]([ExtResource("2_w8caw"), ExtResource("3_c014y"),
Tilled = ExtResource("5_wx561") Tilled = ExtResource("5_wx561")
Watered = ExtResource("6_7m4xq") Watered = ExtResource("6_7m4xq")
PlantingInteraction = NodePath("InteractionArea") PlantingInteraction = NodePath("InteractionArea")
FieldInteractionArea = NodePath("InteractionArea")
PlantingPlaceholder = NodePath("PlantPlaceholder") PlantingPlaceholder = NodePath("PlantPlaceholder")
ItemRepository = ExtResource("7_w8caw") ItemRepository = ExtResource("7_w8caw")
_wateringParticles = NodePath("../pouring water vfx") _wateringParticles = NodePath("../pouring water vfx")
@ -70,13 +71,14 @@ 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")]
process_mode = 4
position = Vector2(-28.88889, -57) position = Vector2(-28.88889, -57)
scale = Vector2(1.1111112, 1) scale = Vector2(1.1111112, 1)
_active = false _active = false
_spritesToOutline = [NodePath("../../OutlineSprite")] _spritesToOutline = [NodePath("../../OutlineSprite")]
_showLabel = false
[node name="PlantCreationEventRaiser" type="Node" parent="."] [node name="PlantCreationEventRaiser" type="Node" parent="."]
script = ExtResource("9_teirr") script = ExtResource("9_teirr")
@ -113,10 +115,11 @@ scale_amount_max = 0.8
color = Color(0.400601, 0.62444, 0.791217, 1) color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4 hue_variation_max = 0.4
[node name="FieldActivator" type="Node2D" parent="." node_paths=PackedStringArray("_field", "_activatorArea")] [node name="FieldActivator" type="Node2D" parent="." node_paths=PackedStringArray("_field", "_activatorArea", "_saveIdHolder")]
script = ExtResource("22_57jmp") script = ExtResource("22_57jmp")
_field = NodePath("../FieldBehaviour") _field = NodePath("../FieldBehaviour")
_activatorArea = NodePath("InteractionArea") _activatorArea = NodePath("InteractionArea")
_saveIdHolder = NodePath("..")
[node name="InteractionArea" parent="FieldActivator" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")] [node name="InteractionArea" parent="FieldActivator" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
_spritesToOutline = [NodePath("../../OutlineSprite")] _spritesToOutline = [NodePath("../../OutlineSprite")]
@ -127,6 +130,8 @@ shape = SubResource("CircleShape2D_57jmp")
[node name="Marker2D" type="Marker2D" parent="."] [node name="Marker2D" type="Marker2D" parent="."]
gizmo_extents = 157.0 gizmo_extents = 157.0
[node name="SaveSystem" parent="." instance=ExtResource("24_avqr3")]
[connection signal="Planted" from="FieldBehaviour" to="PlantCreationEventRaiser" method="RaiseEvents"] [connection signal="Planted" from="FieldBehaviour" to="PlantCreationEventRaiser" method="RaiseEvents"]
[connection signal="Interacted" from="FieldBehaviour/InteractionArea" to="FieldBehaviour" method="Farm"] [connection signal="Interacted" from="FieldBehaviour/InteractionArea" to="FieldBehaviour" method="Farm"]
[connection signal="ItemInstanceActivated" from="InventoryListener Seeds" to="FieldBehaviour" method="ActivatedSeedInInventory"] [connection signal="ItemInstanceActivated" from="InventoryListener Seeds" to="FieldBehaviour" method="ActivatedSeedInInventory"]
@ -136,3 +141,4 @@ gizmo_extents = 157.0
[connection signal="Interacted" from="FieldActivator/InteractionArea" to="FieldActivator/InteractionArea" method="ToggleActive"] [connection signal="Interacted" from="FieldActivator/InteractionArea" to="FieldActivator/InteractionArea" method="ToggleActive"]
[editable path="FieldActivator/InteractionArea"] [editable path="FieldActivator/InteractionArea"]
[editable path="SaveSystem"]

@ -136,6 +136,7 @@ _useOutline = false
shape = SubResource("CircleShape2D_vjw4j") shape = SubResource("CircleShape2D_vjw4j")
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")] [node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")]
process_mode = 4
position = Vector2(0, 2.3) position = Vector2(0, 2.3)
IsActive = false IsActive = false
_saveToDisk = false _saveToDisk = false
@ -215,6 +216,7 @@ 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)

@ -4,6 +4,6 @@
[node name="FightSceneSwitcher" type="Node"] [node name="FightSceneSwitcher" type="Node"]
script = ExtResource("1_5dt1r") script = ExtResource("1_5dt1r")
_fightRoomScenePath = "res://scenes/Babushka_scene_fight_world_room.tscn" _fightRoomScenePath = "res://scenes/scene_fight_world_room.tscn"
_fightHappeningScene = "res://scenes/Babushka_scene_fight_happening.tscn" _fightHappeningScene = "res://scenes/scene_fight_happening.tscn"
_nightEndScene = "res://scenes/Babushka_scene_indoor_vesnas_room.tscn" _nightEndScene = "res://scenes/scene_credits.tscn"

@ -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)

@ -1,12 +1,21 @@
[gd_scene load_steps=3 format=3 uid="uid://pflu0uaig7vv"] [gd_scene load_steps=4 format=3 uid="uid://pflu0uaig7vv"]
[ext_resource type="Script" uid="uid://ccc6m6c5khd2x" path="res://scripts/CSharp/Common/CharacterControls/DetectionCross.cs" id="1_va8tx"] [ext_resource type="Script" uid="uid://ccc6m6c5khd2x" path="res://scripts/CSharp/Common/CharacterControls/DetectionCross.cs" id="1_va8tx"]
[ext_resource type="PackedScene" uid="uid://dugr6ff1g7hi0" path="res://prefabs/interactions/detector.tscn" id="2_8hh05"] [ext_resource type="PackedScene" uid="uid://dugr6ff1g7hi0" path="res://prefabs/interactions/detector.tscn" id="2_8hh05"]
[node name="DetectionCross" type="Node2D" node_paths=PackedStringArray("_detector")] [sub_resource type="RectangleShape2D" id="RectangleShape2D_va8tx"]
[node name="DetectionCross" type="Node2D" node_paths=PackedStringArray("_collider", "_shapeCast2D")]
script = ExtResource("1_va8tx") script = ExtResource("1_va8tx")
_detector = NodePath("detector") _collider = NodePath("detector")
_xOffset = 400.0 _shapeCast2D = NodePath("ShapeCast2D")
_yOffset = 300.0 _xOffset = 200.0
_yOffset = 200.0
[node name="detector" parent="." node_paths=PackedStringArray("_shapeCast2D") instance=ExtResource("2_8hh05")]
_shapeCast2D = NodePath("../ShapeCast2D")
[node name="detector" parent="." instance=ExtResource("2_8hh05")] [node name="ShapeCast2D" type="ShapeCast2D" parent="."]
shape = SubResource("RectangleShape2D_va8tx")
target_position = Vector2(200, 0)
collide_with_areas = true

@ -1,14 +1,16 @@
[gd_scene load_steps=3 format=3 uid="uid://dugr6ff1g7hi0"] [gd_scene load_steps=4 format=3 uid="uid://dugr6ff1g7hi0"]
[ext_resource type="Script" uid="uid://c3pd60biootsx" path="res://scripts/CSharp/Common/CharacterControls/Detector.cs" id="1_6pib0"] [ext_resource type="Script" uid="uid://c3pd60biootsx" path="res://scripts/CSharp/Common/CharacterControls/Detector.cs" id="1_6pib0"]
[ext_resource type="Resource" uid="uid://clwqh3w5aqi5e" path="res://resources/low code/interactables/var_interactableToTrigger.tres" id="2_3fanv"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qwv4c"] [sub_resource type="CircleShape2D" id="CircleShape2D_6pib0"]
size = Vector2(100, 400) radius = 300.0
[node name="detector" type="Area2D"] [node name="detector" type="Area2D"]
collision_layer = 4 collision_layer = 4
script = ExtResource("1_6pib0") script = ExtResource("1_6pib0")
_itemToTriggerResource = ExtResource("2_3fanv")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_qwv4c") shape = SubResource("CircleShape2D_6pib0")
debug_color = Color(0.9459047, 7.2196126e-06, 0.5925879, 0.41960785) debug_color = Color(0.9459047, 7.2196126e-06, 0.5925879, 0.41960785)

@ -1,8 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://cqc72e4hq6bcd"] [gd_scene load_steps=8 format=3 uid="uid://cqc72e4hq6bcd"]
[ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"] [ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"]
[ext_resource type="Resource" uid="uid://clwqh3w5aqi5e" path="res://resources/low code/interactables/var_interactableToTrigger.tres" id="2_o1drf"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="2_qoey7"] [ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="2_qoey7"]
[ext_resource type="Script" uid="uid://cp2q4k62sjo6h" path="res://scripts/CSharp/Common/CharacterControls/DetectableInteractionArea.cs" id="3_2wrrq"] [ext_resource type="Script" uid="uid://cp2q4k62sjo6h" path="res://scripts/CSharp/Common/CharacterControls/DetectableInteractionArea.cs" id="3_2wrrq"]
[ext_resource type="Script" uid="uid://pqemey80frcq" path="res://scripts/CSharp/Low Code/Variables/VariableListener.cs" id="4_gj2nu"]
[sub_resource type="CircleShape2D" id="CircleShape2D_npluf"] [sub_resource type="CircleShape2D" id="CircleShape2D_npluf"]
resource_local_to_scene = true resource_local_to_scene = true
@ -11,15 +13,17 @@ radius = 150.0
[sub_resource type="Theme" id="Theme_5ajrf"] [sub_resource type="Theme" id="Theme_5ajrf"]
default_font_size = 30 default_font_size = 30
[node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")] [node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_selectionChangeListener", "_area", "_label")]
script = ExtResource("1_5ajrf") script = ExtResource("1_5ajrf")
_selectionChangeListener = NodePath("SelectionListener")
_area = NodePath("Area2D") _area = NodePath("Area2D")
_label = NodePath("Area2D/CanvasLayer/MarginContainer/Label") _label = NodePath("Area2D/CanvasLayer/MarginContainer/Label")
_outlineMaterial = ExtResource("2_qoey7") _outlineMaterial = ExtResource("2_qoey7")
[node name="Area2D" type="Area2D" parent="."] [node name="Area2D" type="Area2D" parent="." node_paths=PackedStringArray("interactionArea2D")]
collision_mask = 4 collision_mask = 4
script = ExtResource("3_2wrrq") script = ExtResource("3_2wrrq")
interactionArea2D = NodePath("..")
[node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"] [node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_npluf") shape = SubResource("CircleShape2D_npluf")
@ -51,5 +55,8 @@ text = "[E]"
horizontal_alignment = 2 horizontal_alignment = 2
vertical_alignment = 2 vertical_alignment = 2
[connection signal="area_entered" from="Area2D" to="." method="OnPlayerEntered"] [node name="SelectionListener" type="Node" parent="."]
[connection signal="area_exited" from="Area2D" to="." method="OnPlayerExited"] script = ExtResource("4_gj2nu")
_variableResources = Array[Object]([ExtResource("2_o1drf")])
[connection signal="NewEventPayload" from="SelectionListener" to="Area2D" method="InteractionAreaSelectionChanged"]

@ -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"
@ -35,6 +35,7 @@ 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" DayAndNight="*res://prefabs/day_and_night/day_and_night.tscn"
EntityManager="*res://prefabs/entity_system/entity_manager.tscn"
[dialogic] [dialogic]
@ -48,7 +49,9 @@ directories/dch_directory={
"vesna": "res://dialog/Characters/vesna.dch" "vesna": "res://dialog/Characters/vesna.dch"
} }
directories/dtl_directory={ directories/dtl_directory={
"cat": "res://dialog/cat.dtl",
"disclaimer": "res://dialog/disclaimer.dtl", "disclaimer": "res://dialog/disclaimer.dtl",
"domovoi_tut": "res://dialog/testing/domovoi_tut.dtl",
"quest1_ducks_end": "res://dialog/quests/ducks/quest1_ducks_end.dtl", "quest1_ducks_end": "res://dialog/quests/ducks/quest1_ducks_end.dtl",
"quest1_ducks_start": "res://dialog/quests/ducks/quest1_ducks_start.dtl", "quest1_ducks_start": "res://dialog/quests/ducks/quest1_ducks_start.dtl",
"quest2_tomatoes_end": "res://dialog/quests/tomatoes/quest2_tomatoes_end.dtl", "quest2_tomatoes_end": "res://dialog/quests/tomatoes/quest2_tomatoes_end.dtl",
@ -176,6 +179,7 @@ directories/tres_directory={
"unselected_stylebox": "res://addons/dialogic/Editor/Events/styles/unselected_stylebox.tres", "unselected_stylebox": "res://addons/dialogic/Editor/Events/styles/unselected_stylebox.tres",
"var_ColorTestValue": "res://resources/low code/test/var_ColorTestValue.tres", "var_ColorTestValue": "res://resources/low code/test/var_ColorTestValue.tres",
"var_Counter": "res://resources/low code/test/var_Counter.tres", "var_Counter": "res://resources/low code/test/var_Counter.tres",
"var_interactableToTrigger": "res://resources/low code/interactables/var_interactableToTrigger.tres",
"var_sceneNameProvider": "res://resources/low code/farming/var_sceneNameProvider.tres", "var_sceneNameProvider": "res://resources/low code/farming/var_sceneNameProvider.tres",
"var_wateredFieldPosition": "res://resources/low code/farming/var_wateredFieldPosition.tres", "var_wateredFieldPosition": "res://resources/low code/farming/var_wateredFieldPosition.tres",
"vesna_style": "res://addons/dialogic/vesna_style.tres", "vesna_style": "res://addons/dialogic/vesna_style.tres",
@ -186,8 +190,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"
@ -221,6 +225,10 @@ folder_colors={
"res://shader/": "pink" "res://shader/": "pink"
} }
[filesystem]
import/blender/enabled=false
[global_group] [global_group]
Saveable="" Saveable=""
@ -307,6 +315,16 @@ NextDayCheat={
"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) "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]

@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="VariableResource" load_steps=2 format=3 uid="uid://clwqh3w5aqi5e"]
[ext_resource type="Script" uid="uid://dtvx2cakx0bey" path="res://scripts/CSharp/Low Code/Variables/VariableResource.cs" id="1_casar"]
[resource]
script = ExtResource("1_casar")
Payload = null
metadata/_custom_type_script = "uid://dtvx2cakx0bey"

@ -1,23 +0,0 @@
[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="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="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
[node name="SceneParent" type="Node" parent="."]
[node name="WindowSettings" type="Node" parent="."]
script = ExtResource("2_d3jfo")
[node name="SaveSystem" type="Node" parent="."]
[node name="SaveGameCheat" type="Node" parent="SaveSystem"]
script = ExtResource("4_ocsjo")
[node name="SaveIDProvider" type="Node" parent="SaveSystem"]
script = ExtResource("5_iyo8m")

File diff suppressed because it is too large Load Diff

@ -0,0 +1,16 @@
[gd_scene load_steps=4 format=3 uid="uid://bopv10dqm1knc"]
[ext_resource type="PackedScene" uid="uid://c6wnoif01ltld" path="res://scenes/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="PackedScene" uid="uid://7pvvop5hfl01" path="res://prefabs/SaveSystem/save_system.tscn" id="3_s8cy4"]
[node name="BabushkaSceneBootstrap" type="Node2D"]
[node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
[node name="SceneParent" type="Node" parent="."]
[node name="WindowSettings" type="Node" parent="."]
script = ExtResource("2_d3jfo")
[node name="SaveSystem" parent="." instance=ExtResource("3_s8cy4")]

@ -11,7 +11,7 @@
[node name="BabushkaSceneCredits" type="Node2D"] [node name="BabushkaSceneCredits" type="Node2D"]
script = ExtResource("1_f5860") script = ExtResource("1_f5860")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_startMenu.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/scene_bootstrap.tscn")
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(1030, 483) position = Vector2(1030, 483)

@ -8,7 +8,7 @@
[node name="BabushkaSceneDisclaimer" type="Node2D"] [node name="BabushkaSceneDisclaimer" type="Node2D"]
script = ExtResource("1_5otdq") script = ExtResource("1_5otdq")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/scene_farm_outside_2d.tscn")
[node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="CanvasLayer" type="CanvasLayer" parent="."]

File diff suppressed because it is too large Load Diff

@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://cjshlwk8ajpnp"] [gd_scene load_steps=21 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,28 +6,41 @@
[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"]
[ext_resource type="Script" uid="uid://byf2ywov34g0x" path="res://scripts/CSharp/Common/Fight/UI/ActionSelectUiSetup.cs" id="8_bkwsr"] [ext_resource type="Script" uid="uid://byf2ywov34g0x" path="res://scripts/CSharp/Common/Fight/UI/ActionSelectUiSetup.cs" id="8_bkwsr"]
[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="Texture2D" uid="uid://ciaabo8kcx2hw" path="res://art/fightworld_background.png" id="9_f4y3h"]
[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="."]
scale = Vector2(0.71911293, 0.6664279)
[node name="FightSetup" type="Node2D" parent="."] [node name="FightSetup" type="Node2D" parent="."]
script = ExtResource("1_fiutj") script = ExtResource("1_fiutj")
@ -47,6 +60,11 @@ _positionDistanceFromCenter = PackedFloat32Array(300, 550, 800)
[node name="EnvironmentVisuals" type="Node2D" parent="."] [node name="EnvironmentVisuals" type="Node2D" parent="."]
[node name="background" type="Sprite2D" parent="EnvironmentVisuals"]
z_index = -100
scale = Vector2(3, 3)
texture = ExtResource("9_f4y3h")
[node name="MinigameHandler" type="Node2D" parent="." node_paths=PackedStringArray("_minigameController")] [node name="MinigameHandler" type="Node2D" parent="." node_paths=PackedStringArray("_minigameController")]
script = ExtResource("8_falfe") script = ExtResource("8_falfe")
_minigameController = NodePath("Minigame") _minigameController = NodePath("Minigame")
@ -146,7 +164,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
@ -168,6 +191,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
@ -206,6 +230,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"]
@ -220,4 +250,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"]

@ -25,7 +25,6 @@
[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/Vesna.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"]

@ -1,57 +1,56 @@
[gd_scene load_steps=40 format=3 uid="uid://bm21nqepnwaik"] [gd_scene load_steps=43 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_3al6t"]
[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_ufnxe"]
[ext_resource type="Texture2D" uid="uid://blg50is4kuh2f" path="res://art/indoor/room export/Room_01_chair.png" id="3_gpagp"] [ext_resource type="Texture2D" uid="uid://blg50is4kuh2f" path="res://art/indoor/room export/Room_01_chair.png" id="3_pejp6"]
[ext_resource type="Texture2D" uid="uid://x7trh4dgsvoe" path="res://art/indoor/room export/Room_01_assets.png" id="4_27bwy"] [ext_resource type="Texture2D" uid="uid://x7trh4dgsvoe" path="res://art/indoor/room export/Room_01_assets.png" id="4_nc3ef"]
[ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="5_sndxu"] [ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="5_cpb5b"]
[ext_resource type="Texture2D" uid="uid://bqwhptcgg5ons" path="res://art/indoor/room export/Room_01_dorr_R.png" id="6_blyw3"] [ext_resource type="Texture2D" uid="uid://b2rj7wkyu6ehy" path="res://art/indoor/room export/Room_01_pechka.png" id="6_ecq66"]
[ext_resource type="Texture2D" uid="uid://vyk63d0pgqm5" path="res://art/indoor/room export/Room_01_dioor L.png" id="7_yd2gv"] [ext_resource type="Texture2D" uid="uid://dhvi5404cqioa" path="res://art/indoor/room export/Room_01_window.png" id="7_8mqg7"]
[ext_resource type="Texture2D" uid="uid://b2rj7wkyu6ehy" path="res://art/indoor/room export/Room_01_pechka.png" id="8_ofqcg"] [ext_resource type="Texture2D" uid="uid://bpi35nxbhput8" path="res://art/indoor/room export/Room_01_pechkaDoor.png" id="8_bv3pn"]
[ext_resource type="Texture2D" uid="uid://dhvi5404cqioa" path="res://art/indoor/room export/Room_01_window.png" id="9_aoesu"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="9_qaiit"]
[ext_resource type="Texture2D" uid="uid://bpi35nxbhput8" path="res://art/indoor/room export/Room_01_pechkaDoor.png" id="10_xcryd"] [ext_resource type="Texture2D" uid="uid://tyypifpte0pb" path="res://art/indoor/room export/Room_01_chugun.png" id="10_rj4v5"]
[ext_resource type="Texture2D" uid="uid://tyypifpte0pb" path="res://art/indoor/room export/Room_01_chugun.png" id="11_as3nm"] [ext_resource type="Texture2D" uid="uid://404glx32r1w8" path="res://art/indoor/room export/Room_01_bench.png" id="11_7ohth"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="11_gpagp"] [ext_resource type="Texture2D" uid="uid://c4q12jiligcl7" path="res://art/animals/katze.png" id="12_dckqa"]
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="12_bu2a1"] [ext_resource type="AudioStream" uid="uid://cohyenfo1rtxh" path="res://audio/sfx/Animals/SFX_Cat_Meow_01.wav" id="13_65rkx"]
[ext_resource type="Texture2D" uid="uid://404glx32r1w8" path="res://art/indoor/room export/Room_01_bench.png" id="13_rongr"] [ext_resource type="AudioStream" uid="uid://b2cmf5ie7cwka" path="res://audio/sfx/Animals/SFX_Cat_Meow_02.wav" id="14_mse84"]
[ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="14_d7yky"] [ext_resource type="AudioStream" uid="uid://cttisejnt2l8f" path="res://audio/sfx/Animals/SFX_Cat_Meow_03.wav" id="15_26mhc"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="15_7a68a"] [ext_resource type="AudioStream" uid="uid://cbmagiou0n0t3" path="res://audio/sfx/Animals/SFX_Cat_Meow_04.wav" id="16_vt5fp"]
[ext_resource type="Script" uid="uid://31p67cdowuw4" path="res://scripts/CSharp/Common/Animation/AnimationStarter.cs" id="15_27bwy"] [ext_resource type="AudioStream" uid="uid://bk1bj01fokjp7" path="res://audio/sfx/Animals/SFX_Cat_Meow_05.wav" id="17_n8vep"]
[ext_resource type="Texture2D" uid="uid://c4q12jiligcl7" path="res://art/animals/katze.png" id="15_sndxu"] [ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="18_3oexm"]
[ext_resource type="AudioStream" uid="uid://cohyenfo1rtxh" path="res://audio/sfx/Animals/SFX_Cat_Meow_01.wav" id="16_d7yky"] [ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="19_a2xrf"]
[ext_resource type="PackedScene" uid="uid://dfvgp1my5rydh" path="res://prefabs/characters/Yeli.tscn" id="16_dhsxs"] [ext_resource type="Script" uid="uid://31p67cdowuw4" path="res://scripts/CSharp/Common/Animation/AnimationStarter.cs" id="20_lkkn4"]
[ext_resource type="AudioStream" uid="uid://b2cmf5ie7cwka" path="res://audio/sfx/Animals/SFX_Cat_Meow_02.wav" id="17_7a68a"] [ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="20_pejp6"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="17_k0k8c"] [ext_resource type="Texture2D" uid="uid://ckvytnpi8gcxq" path="res://art/eyes_atlas.png" id="21_m0gmu"]
[ext_resource type="AudioStream" uid="uid://cttisejnt2l8f" path="res://audio/sfx/Animals/SFX_Cat_Meow_03.wav" id="18_dhsxs"] [ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="21_nc3ef"]
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="18_dw4nn"] [ext_resource type="Texture2D" uid="uid://bqwhptcgg5ons" path="res://art/indoor/room export/Room_01_dorr_R.png" id="22_ahl31"]
[ext_resource type="AudioStream" uid="uid://cbmagiou0n0t3" path="res://audio/sfx/Animals/SFX_Cat_Meow_04.wav" id="19_k0k8c"] [ext_resource type="Texture2D" uid="uid://da67c7avarwq2" path="res://art/indoor/kitchen_bgAssets.png" id="23_hgs5o"]
[ext_resource type="AudioStream" uid="uid://bk1bj01fokjp7" path="res://audio/sfx/Animals/SFX_Cat_Meow_05.wav" id="20_dw4nn"] [ext_resource type="Texture2D" uid="uid://vyk63d0pgqm5" path="res://art/indoor/room export/Room_01_dioor L.png" id="24_t86aa"]
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="21_blyw3"] [ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="25_0pvxk"]
[ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="21_ytap8"] [ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="26_yq173"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="22_tggq2"] [ext_resource type="PackedScene" uid="uid://dfvgp1my5rydh" path="res://prefabs/characters/Yeli.tscn" id="27_pfr1s"]
[ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"] [ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="28_l3q6o"]
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_yd2gv"] [ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="29_6elg7"]
[ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="30_pd0e4"]
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="31_x6an5"]
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="32_i4hb6"]
[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
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_b6vf7"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_b6vf7"]
streams_count = 6 streams_count = 6
stream_0/stream = ExtResource("16_d7yky") stream_0/stream = ExtResource("13_65rkx")
stream_1/stream = ExtResource("17_7a68a") stream_1/stream = ExtResource("14_mse84")
stream_2/stream = ExtResource("18_dhsxs") stream_2/stream = ExtResource("15_26mhc")
stream_3/stream = ExtResource("19_k0k8c") stream_3/stream = ExtResource("16_vt5fp")
stream_4/stream = ExtResource("20_dw4nn") stream_4/stream = ExtResource("17_n8vep")
stream_5/stream = ExtResource("21_ytap8") stream_5/stream = ExtResource("18_3oexm")
[sub_resource type="Animation" id="Animation_j5d18"] [sub_resource type="Animation" id="Animation_j5d18"]
length = 0.001 length = 0.001
@ -210,30 +209,36 @@ _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_3al6t")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_farm_outside_2d.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/scene_indoor_vesnas_room.tscn", "res://scenes/scene_indoor_kitchen.tscn", "res://scenes/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_ufnxe")
offset = Vector2(0, -200) offset = Vector2(0, -200)
region_enabled = true 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_pejp6")
offset = Vector2(216, -1064) offset = Vector2(216, -1064)
region_enabled = true region_enabled = true
region_rect = Rect2(1534, 1976, 379, 184) region_rect = Rect2(1534, 1976, 379, 184)
@ -241,7 +246,7 @@ region_rect = Rect2(1534, 1976, 379, 184)
[node name="Chair2" type="Sprite2D" parent="Foreground"] [node name="Chair2" type="Sprite2D" parent="Foreground"]
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-1064, 2064) position = Vector2(-1064, 2064)
texture = ExtResource("3_gpagp") texture = ExtResource("3_pejp6")
offset = Vector2(184, -1056) offset = Vector2(184, -1056)
region_enabled = true region_enabled = true
region_rect = Rect2(1534, 1976, 379, 184) region_rect = Rect2(1534, 1976, 379, 184)
@ -250,7 +255,7 @@ region_rect = Rect2(1534, 1976, 379, 184)
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-1904, 1192) position = Vector2(-1904, 1192)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(0, -800) offset = Vector2(0, -800)
region_enabled = true region_enabled = true
region_rect = Rect2(2093, 49, 421, 630) region_rect = Rect2(2093, 49, 421, 630)
@ -285,14 +290,14 @@ shape = SubResource("RectangleShape2D_a2ood")
z_index = -100 z_index = -100
position = Vector2(4992, -487) position = Vector2(4992, -487)
scale = Vector2(2, 2) scale = Vector2(2, 2)
texture = ExtResource("5_sndxu") texture = ExtResource("5_cpb5b")
offset = Vector2(-2768, 264) offset = Vector2(-2768, 264)
[node name="wall 1" type="Sprite2D" parent="BackWall"] [node name="wall 1" type="Sprite2D" parent="BackWall"]
z_index = -100 z_index = -100
position = Vector2(-4368, 40) position = Vector2(-4368, 40)
scale = Vector2(2, 2) scale = Vector2(2, 2)
texture = ExtResource("5_sndxu") texture = ExtResource("5_cpb5b")
flip_h = true flip_h = true
region_rect = Rect2(111, 292, 3323, 2160) region_rect = Rect2(111, 292, 3323, 2160)
@ -302,63 +307,35 @@ 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)
texture = ExtResource("8_ofqcg") texture = ExtResource("6_ecq66")
region_enabled = true region_enabled = true
region_rect = Rect2(2236, 0, 724, 1392) 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("7_8mqg7")
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("7_8mqg7")
region_enabled = true region_enabled = true
region_rect = Rect2(1020, 338, 607, 757) region_rect = Rect2(1020, 338, 607, 757)
[node name="Room01PechkaDoor" type="Sprite2D" parent="BackWall"] [node name="Room01PechkaDoor" type="Sprite2D" parent="BackWall"]
z_index = -50 z_index = -50
position = Vector2(-240, -100) position = Vector2(-240, -100)
texture = ExtResource("10_xcryd") texture = ExtResource("8_bv3pn")
region_enabled = true region_enabled = true
region_rect = Rect2(2360, 864, 356, 251) region_rect = Rect2(2360, 864, 356, 251)
[node name="InteractionArea" parent="BackWall/Room01PechkaDoor" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")] [node name="InteractionArea" parent="BackWall/Room01PechkaDoor" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("9_qaiit")]
position = Vector2(0, -3) position = Vector2(0, -3)
_spritesToOutline = [NodePath("..")] _spritesToOutline = [NodePath("..")]
@ -368,57 +345,58 @@ shape = SubResource("CircleShape2D_gpagp")
[node name="Room01Chugun" type="Sprite2D" parent="BackWall"] [node name="Room01Chugun" type="Sprite2D" parent="BackWall"]
z_index = -40 z_index = -40
position = Vector2(16, -560) position = Vector2(16, -560)
texture = ExtResource("11_as3nm") texture = ExtResource("10_rj4v5")
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("11_7ohth")
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 = 15
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("12_dckqa")
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("19_a2xrf")
[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("9_qaiit")]
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="dialogic overlay starter" type="Node2D" parent="BackWall/Bench/Katze"]
script = ExtResource("20_pejp6")
_timelinesToPlay = PackedStringArray("cat")
_startOnReady = false
[node name="dialogic starter" type="Node" parent="BackWall/Bench/Katze/dialogic overlay starter"]
script = ExtResource("21_nc3ef")
[node name="Bench2" type="Sprite2D" parent="BackWall"]
z_index = -10
position = Vector2(-2906, 243)
texture = ExtResource("11_7ohth")
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"]
z_index = -10 z_index = -10
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-177, 554.5) position = Vector2(-177, 554.5)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(0, -296) offset = Vector2(0, -296)
region_enabled = true region_enabled = true
region_rect = Rect2(2244, 763, 274, 91) region_rect = Rect2(2244, 763, 274, 91)
@ -427,26 +405,17 @@ region_rect = Rect2(2244, 763, 274, 91)
z_index = -10 z_index = -10
y_sort_enabled = true y_sort_enabled = true
position = Vector2(336.487, 275.616) position = Vector2(336.487, 275.616)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(-14.6475, -97.651) 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_nc3ef")
offset = Vector2(0, -296) offset = Vector2(0, -296)
region_enabled = true region_enabled = true
region_rect = Rect2(2624, 435, 49, 76) region_rect = Rect2(2624, 435, 49, 76)
@ -457,11 +426,11 @@ y_sort_enabled = true
position = Vector2(-101, -6) position = Vector2(-101, -6)
rotation = -0.0663225 rotation = -0.0663225
scale = Vector2(1e-05, 1e-05) scale = Vector2(1e-05, 1e-05)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(43.3898, 128.128) offset = Vector2(43.3898, 128.128)
region_enabled = true region_enabled = true
region_rect = Rect2(3362, 139, 101, 269) region_rect = Rect2(3362, 139, 101, 269)
script = ExtResource("15_27bwy") script = ExtResource("20_lkkn4")
_animationPlayer = NodePath("SpiritAnimation") _animationPlayer = NodePath("SpiritAnimation")
_animationName = "hand_stretch" _animationName = "hand_stretch"
_repeatable = false _repeatable = false
@ -477,7 +446,7 @@ playback_auto_capture = false
z_index = -10 z_index = -10
y_sort_enabled = true y_sort_enabled = true
position = Vector2(287, -157.5) position = Vector2(287, -157.5)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(0, -296) offset = Vector2(0, -296)
region_enabled = true region_enabled = true
region_rect = Rect2(2964, 137, 321, 213) region_rect = Rect2(2964, 137, 321, 213)
@ -485,7 +454,7 @@ region_rect = Rect2(2964, 137, 321, 213)
[node name="herb 1" type="Sprite2D" parent="BackWall/Room assets/herbsline"] [node name="herb 1" type="Sprite2D" parent="BackWall/Room assets/herbsline"]
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-72, 136) position = Vector2(-72, 136)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(0, -296) offset = Vector2(0, -296)
region_enabled = true region_enabled = true
region_rect = Rect2(2600, 165, 127, 199) region_rect = Rect2(2600, 165, 127, 199)
@ -493,7 +462,7 @@ region_rect = Rect2(2600, 165, 127, 199)
[node name="herb 2" type="Sprite2D" parent="BackWall/Room assets/herbsline"] [node name="herb 2" type="Sprite2D" parent="BackWall/Room assets/herbsline"]
y_sort_enabled = true y_sort_enabled = true
position = Vector2(64, 80) position = Vector2(64, 80)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(0, -296) offset = Vector2(0, -296)
region_enabled = true region_enabled = true
region_rect = Rect2(2761, 161, 135, 199) region_rect = Rect2(2761, 161, 135, 199)
@ -503,7 +472,7 @@ visible = false
z_index = -10 z_index = -10
position = Vector2(-169, -80) position = Vector2(-169, -80)
scale = Vector2(0.4, 0.4) scale = Vector2(0.4, 0.4)
texture = ExtResource("14_d7yky") texture = ExtResource("21_m0gmu")
region_enabled = true region_enabled = true
region_rect = Rect2(2647, 15, 286, 183) region_rect = Rect2(2647, 15, 286, 183)
@ -513,54 +482,114 @@ position = Vector2(-205, -8)
[node name="apple" type="Sprite2D" parent="BackWall/Room assets/offerings"] [node name="apple" type="Sprite2D" parent="BackWall/Room assets/offerings"]
z_index = -1 z_index = -1
position = Vector2(229.5, 331.5) position = Vector2(229.5, 331.5)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
region_enabled = true region_enabled = true
region_rect = Rect2(2822, 764, 93, 87) region_rect = Rect2(2822, 764, 93, 87)
[node name="bread" type="Sprite2D" parent="BackWall/Room assets/offerings"] [node name="bread" type="Sprite2D" parent="BackWall/Room assets/offerings"]
z_index = -2 z_index = -2
position = Vector2(157.5, 339.5) position = Vector2(157.5, 339.5)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
region_enabled = true region_enabled = true
region_rect = Rect2(2951, 783, 155, 78) region_rect = Rect2(2951, 783, 155, 78)
[node name="plate" type="Sprite2D" parent="BackWall/Room assets/offerings"] [node name="plate" type="Sprite2D" parent="BackWall/Room assets/offerings"]
z_index = -20 z_index = -20
position = Vector2(189.5, 659.5) position = Vector2(189.5, 659.5)
texture = ExtResource("4_27bwy") texture = ExtResource("4_nc3ef")
offset = Vector2(0, -296) 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="Vesna" parent="." instance=ExtResource("15_7a68a")] [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("22_ahl31")
region_enabled = true
region_rect = Rect2(3161, 313, 679, 1050)
[node name="KitchendoorInteraction" parent="BackWall/Doors/Door_Kitchen" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("9_qaiit")]
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_hgs5o")
region_enabled = true
region_rect = Rect2(3009, 666, 679, 1050)
[node name="OutsideDoor" parent="BackWall/Doors/Door_Outside" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("9_qaiit")]
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("24_t86aa")
region_enabled = true
region_rect = Rect2(0, 165, 763, 1224)
[node name="VesnasRoomDoor" parent="BackWall/Doors/Door_Bedroom" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("9_qaiit")]
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("25_0pvxk")
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_nc3ef")
offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2748, 432, 174, 191)
[node name="Vesna" parent="." instance=ExtResource("26_yq173")]
y_sort_enabled = false y_sort_enabled = false
position = Vector2(-920, 319) position = Vector2(-4473, 319)
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")] [node name="Yeli" parent="." instance=ExtResource("27_pfr1s")]
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)
[node name="dialogic_toggle" type="Node2D" parent="Yeli"] [node name="dialogic_toggle" type="Node2D" parent="Yeli"]
script = ExtResource("17_k0k8c") script = ExtResource("28_l3q6o")
[node name="Beetroot Quest trigger" type="Node2D" parent="Yeli"] [node name="Beetroot Quest trigger" type="Node2D" parent="Yeli"]
script = ExtResource("21_blyw3") script = ExtResource("29_6elg7")
questResource = ExtResource("22_yd2gv") questResource = ExtResource("30_pd0e4")
toStatus = 1 toStatus = 1
makeActive = true makeActive = true
@ -573,20 +602,25 @@ limit_top = -1050
limit_right = 1400 limit_right = 1400
limit_bottom = 1150 limit_bottom = 1150
editor_draw_limits = true editor_draw_limits = true
script = ExtResource("18_dw4nn") script = ExtResource("31_x6an5")
_followNode = NodePath("../Vesna/CharacterBody2D") _followNode = NodePath("../Vesna/CharacterBody2D")
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")] [node name="CanvasLayer" parent="." instance=ExtResource("32_i4hb6")]
[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="Interacted" from="BackWall/Bench/Katze/InteractionArea" to="BackWall/Bench/Katze/dialogic overlay starter" method="ToggleDialogue"]
[connection signal="Dialogue" from="BackWall/Bench/Katze/dialogic overlay starter" to="BackWall/Bench/Katze/dialogic overlay starter/dialogic starter" method="open"]
[connection signal="timelineEnded" from="BackWall/Bench/Katze/dialogic overlay starter/dialogic starter" to="BackWall/Bench/Katze/InteractionArea" method="SetActiveTrue"]
[connection signal="timelineStarted" from="BackWall/Bench/Katze/dialogic overlay starter/dialogic starter" to="BackWall/Bench/Katze/InteractionArea" method="SetActiveFalse"]
[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/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, -1303)
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, -975)
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,11 +1,13 @@
[gd_scene load_steps=16 format=3 uid="uid://ceaa2qj2bmw43"] [gd_scene load_steps=18 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"]
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="8_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="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="Texture2D" uid="uid://s1yoemhrupwe" 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="Script" uid="uid://puw74w6lmcvl" path="res://scripts/CSharp/Common/Fight/NightStarter.cs" id="10_j25a2"]
[ext_resource type="Texture2D" uid="uid://dnlhlf1mx01h5" 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="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/Vesna.tscn" id="18_3gevq"] [ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="18_3gevq"]
@ -30,7 +32,7 @@ radius = 509.071
[node name="VesnasRoom" type="Node2D"] [node name="VesnasRoom" type="Node2D"]
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_c6eln") script = ExtResource("1_c6eln")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_common_room.tscn", "res://scenes/Babushka_scene_fight_world_room.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/scene_indoor_common_room.tscn", "res://scenes/scene_fight_world_room.tscn")
[node name="Colliders" type="Node2D" parent="."] [node name="Colliders" type="Node2D" parent="."]
position = Vector2(1297, 5292) position = Vector2(1297, 5292)
@ -102,8 +104,9 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
[node name="CanvasLayer" parent="." instance=ExtResource("24_xwo8y")] [node name="CanvasLayer" parent="." instance=ExtResource("24_xwo8y")]
[node name="BedInteraction" parent="." instance=ExtResource("8_phqdf")] [node name="BedInteraction" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("8_phqdf")]
position = Vector2(-1415, 489) position = Vector2(-1415, 489)
_spritesToOutline = [NodePath("Bedsprite")]
_id = 1 _id = 1
[node name="CollisionShape3D" parent="BedInteraction/Area2D" index="0"] [node name="CollisionShape3D" parent="BedInteraction/Area2D" index="0"]
@ -115,13 +118,30 @@ script = ExtResource("8_j25a2")
questResource = ExtResource("9_heyef") questResource = ExtResource("9_heyef")
toStatus = 2 toStatus = 2
[node name="DoorInteraction" parent="." instance=ExtResource("8_phqdf")] [node name="Bedsprite" type="Sprite2D" parent="BedInteraction"]
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) position = Vector2(777, 201)
_spritesToOutline = [NodePath("Doorsprite")]
_id = 0 _id = 0
[node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"] [node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"]
shape = SubResource("CircleShape2D_2spkc") shape = SubResource("CircleShape2D_2spkc")
[node name="Doorsprite" type="Sprite2D" parent="DoorInteraction"]
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="."] [node name="NightStarter" type="Node" parent="."]
script = ExtResource("10_j25a2") script = ExtResource("10_j25a2")
_sceneIndexToLoad = 1 _sceneIndexToLoad = 1

@ -1,4 +1,4 @@
[gd_scene load_steps=98 format=3 uid="uid://b3ibx4resa1f3"] [gd_scene load_steps=100 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"]
@ -42,6 +42,9 @@
[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="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="44_m6p1o"]
[ext_resource type="Texture2D" uid="uid://dmo21h14toxfu" path="res://art/indoor/indoor outdoor/domovoi.png" id="44_njxly"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="45_1ly1s"]
[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 +128,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
@ -204,10 +203,6 @@ radius = 325.2599
resource_local_to_scene = true resource_local_to_scene = true
radius = 325.2599 radius = 325.2599
[sub_resource type="CircleShape2D" id="CircleShape2D_4pibb"]
resource_local_to_scene = true
radius = 325.2599
[sub_resource type="CircleShape2D" id="CircleShape2D_dr6bm"] [sub_resource type="CircleShape2D" id="CircleShape2D_dr6bm"]
resource_local_to_scene = true resource_local_to_scene = true
radius = 335.72162 radius = 335.72162
@ -227,6 +222,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
@ -250,7 +249,7 @@ stream_2/stream = ExtResource("63_td2xu")
[node name="BabushkaSceneBeets" type="Node2D"] [node name="BabushkaSceneBeets" type="Node2D"]
script = ExtResource("1_6krrk") script = ExtResource("1_6krrk")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/scene_farm_outside_2d.tscn")
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")] [node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")]
position = Vector2(3180, 1961) position = Vector2(3180, 1961)
@ -881,6 +880,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 +897,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 +973,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 +1005,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"]
@ -1245,7 +1239,6 @@ region_enabled = true
region_rect = Rect2(0, 604, 248, 228) region_rect = Rect2(0, 604, 248, 228)
[node name="bush23" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/left side"] [node name="bush23" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/left side"]
z_index = 1
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_bcdgk") material = SubResource("ShaderMaterial_bcdgk")
position = Vector2(15022, 3301) position = Vector2(15022, 3301)
@ -1257,7 +1250,7 @@ region_rect = Rect2(1837, 651, 139, 180)
[node name="bush24" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/left side"] [node name="bush24" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/left side"]
modulate = Color(0.8428, 0.8771, 0.98, 1) modulate = Color(0.8428, 0.8771, 0.98, 1)
z_index = 2 z_index = -1
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_bcdgk") material = SubResource("ShaderMaterial_bcdgk")
position = Vector2(15973, 3380) position = Vector2(15973, 3380)
@ -1378,6 +1371,7 @@ region_enabled = true
region_rect = Rect2(130, 0, 201, 278) region_rect = Rect2(130, 0, 201, 278)
[node name="bush17" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"] [node name="bush17" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
z_index = 3
material = SubResource("ShaderMaterial_bcdgk") material = SubResource("ShaderMaterial_bcdgk")
position = Vector2(5599, 3799) position = Vector2(5599, 3799)
scale = Vector2(-2.40318, 3.59175) scale = Vector2(-2.40318, 3.59175)
@ -1395,14 +1389,24 @@ 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 = -5
y_sort_enabled = true y_sort_enabled = true
material = SubResource("ShaderMaterial_618my") material = SubResource("ShaderMaterial_618my")
position = Vector2(5146, 1935) position = Vector2(5187.001, 1864.0001)
scale = Vector2(0.373695, 0.388829) scale = Vector2(0.373695, 0.388829)
texture = ExtResource("38_0bsmo") texture = ExtResource("38_0bsmo")
offset = Vector2(0, -800) offset = Vector2(-109.7168, -617.4004)
region_enabled = true region_enabled = true
region_rect = Rect2(0, 0, 1440, 1576) region_rect = Rect2(0, 0, 1440, 1576)
@ -1745,29 +1749,42 @@ 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"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField" index="1"]
visible = true visible = true
FieldState = 1
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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1775,19 +1792,28 @@ metadata/SaveID = "f536efd3-3da8-4ef5-a520-570220e6c19f"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="1"]
visible = true visible = true
FieldState = 1
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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1795,19 +1821,31 @@ metadata/SaveID = "14ce64d5-8a4d-43b9-a8ff-3a57725c4dc8"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="1"]
visible = true visible = true
FieldState = 1
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")]
_state = 2 z_index = 0
_state = 3
_field = NodePath("../..") _field = NodePath("../..")
_daysWatered = 5
[node name="InteractionArea" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour" index="2"]
_active = true
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="7"] [node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="7"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1815,20 +1853,28 @@ metadata/SaveID = "6872ce5d-6f42-47d7-97e2-a7214ff3b08c"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="1"]
visible = true visible = true
FieldState = 3 FieldState = 1
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")]
_state = 2 z_index = 0
_state = 3
_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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1836,20 +1882,28 @@ metadata/SaveID = "f163c38d-9ee0-4844-9def-479833febb4e"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="1"]
visible = true visible = true
FieldState = 3 FieldState = 1
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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1857,20 +1911,28 @@ metadata/SaveID = "da691381-ee82-4f86-abf3-dda2c9f19337"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="1"]
visible = true visible = true
FieldState = 3 FieldState = 1
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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1878,20 +1940,28 @@ metadata/SaveID = "8116fa8b-b164-4d39-a1ed-6cd476d18f94"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="1"]
visible = true visible = true
FieldState = 3 FieldState = 1
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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldActivator/InteractionArea/Area2D" index="0"]
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
@ -1899,34 +1969,50 @@ metadata/SaveID = "5298f423-4c3b-45b5-94fb-d4aef36bac21"
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="1"]
visible = true visible = true
FieldState = 3 FieldState = 1
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"]
process_mode = 4
visible = false visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldActivator/InteractionArea/Area2D" index="0"]
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")]
position = Vector2(5317, 3208.83) z_index = -1
y_sort_enabled = true
position = Vector2(5368, 3226.9458)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 8 Payload = 7
metadata/SaveID = "0de8dc13-5851-4471-be35-309cd6687ebc" metadata/SaveID = ""
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="1"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="1"]
visible = true visible = true
metadata/SaveID = "9919b294-04a1-4a16-9783-38c8aa0e291c" FieldState = 1
metadata/SaveID = "da44e54a-0b76-4888-ad8b-782a9d146fa3"
[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"]
process_mode = 4
visible = false visible = false
[node name="InteractionArea" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator" index="0" node_paths=PackedStringArray("_spritesToOutline")]
_spritesToOutline = [NodePath("../../../BaseField8/OutlineSprite")]
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_4pibb") shape = SubResource("CircleShape2D_v10dc")
[node name="Blocker" type="Node2D" parent="YSorted"] [node name="Blocker" type="Node2D" parent="YSorted"]
@ -1936,7 +2022,7 @@ _spritesToOutline = [NodePath("Fence Door2")]
_id = 0 _id = 0
[node name="CollisionShape3D" parent="YSorted/Blocker/BackToFarm/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Blocker/BackToFarm/Area2D" index="0"]
position = Vector2(-37, -208) position = Vector2(-37, -303)
shape = SubResource("CircleShape2D_dr6bm") shape = SubResource("CircleShape2D_dr6bm")
[node name="Fence Door2" type="Sprite2D" parent="YSorted/Blocker/BackToFarm"] [node name="Fence Door2" type="Sprite2D" parent="YSorted/Blocker/BackToFarm"]
@ -1984,6 +2070,34 @@ _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="InteractionArea" parent="YSorted/domovoi" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("31_xcb8u")]
_spritesToOutline = [NodePath("..")]
[node name="dialogic overlay starter" type="Node2D" parent="YSorted/domovoi"]
script = ExtResource("44_m6p1o")
_timelinesToPlay = PackedStringArray("domovoi_tut")
_startOnReady = false
[node name="dialogic starter" type="Node" parent="YSorted/domovoi/dialogic overlay starter"]
script = ExtResource("45_1ly1s")
[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"]
@ -2062,32 +2176,45 @@ script = ExtResource("59_njxly")
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"] [connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"] [connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
[connection signal="InteractedTool" from="YSorted/Blocker/BackToFarm" to="." method="LoadSceneAtIndex"] [connection signal="InteractedTool" from="YSorted/Blocker/BackToFarm" to="." method="LoadSceneAtIndex"]
[connection signal="Interacted" from="YSorted/domovoi/InteractionArea" to="YSorted/domovoi/dialogic overlay starter" method="ToggleDialogue"]
[connection signal="Dialogue" from="YSorted/domovoi/dialogic overlay starter" to="YSorted/domovoi/dialogic overlay starter/dialogic starter" method="open"]
[connection signal="timelineEnded" from="YSorted/domovoi/dialogic overlay starter/dialogic starter" to="YSorted/domovoi/InteractionArea" method="SetActiveTrue"]
[connection signal="timelineStarted" from="YSorted/domovoi/dialogic overlay starter/dialogic starter" to="YSorted/domovoi/InteractionArea" method="SetActiveFalse"]
[connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"] [connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"]
[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"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField2"] [editable path="YSorted/Farm visuals/FieldParent/BaseField2"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField2/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField2/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField2/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField3"] [editable path="YSorted/Farm visuals/FieldParent/BaseField3"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField3/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField3/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField3/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField4"] [editable path="YSorted/Farm visuals/FieldParent/BaseField4"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField4/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField4/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField4/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField5"] [editable path="YSorted/Farm visuals/FieldParent/BaseField5"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField5/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField5/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField5/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField6"] [editable path="YSorted/Farm visuals/FieldParent/BaseField6"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField6/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField6/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField6/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField7"] [editable path="YSorted/Farm visuals/FieldParent/BaseField7"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField7/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField7/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField7/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField8"] [editable path="YSorted/Farm visuals/FieldParent/BaseField8"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField8/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField8/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField8/SaveSystem"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField9"] [editable path="YSorted/Farm visuals/FieldParent/BaseField9"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator/InteractionArea"] [editable path="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator/InteractionArea"]
[editable path="YSorted/Farm visuals/FieldParent/BaseField9/SaveSystem"]
[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"]

@ -7,7 +7,7 @@
[node name="BabushkaSceneStartMenu" type="Node2D"] [node name="BabushkaSceneStartMenu" type="Node2D"]
script = ExtResource("1_fj2fh") script = ExtResource("1_fj2fh")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/scene_disclaimer.tscn")
[node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="CanvasLayer" type="CanvasLayer" parent="."]

@ -7,4 +7,17 @@ namespace Babushka.scripts.CSharp.Common.CharacterControls;
/// </summary> /// </summary>
public partial class DetectableInteractionArea : Area2D public partial class DetectableInteractionArea : Area2D
{ {
[Export] public InteractionArea2D interactionArea2D;
public void InteractionAreaSelectionChanged(Variant instanceID)
{
if (instanceID.AsString() == GetInstanceId().ToString())
{
interactionArea2D.HighlightInteractable();
}
else
{
interactionArea2D.ResetHighlight();
}
}
} }

@ -7,7 +7,8 @@ namespace Babushka.scripts.CSharp.Common.CharacterControls;
/// </summary> /// </summary>
public partial class DetectionCross : Node2D public partial class DetectionCross : Node2D
{ {
[Export] private Detector _detector; [Export] private Detector _collider;
[Export] private ShapeCast2D _shapeCast2D;
[Export] private float _xOffset; [Export] private float _xOffset;
[Export] private float _yOffset; [Export] private float _yOffset;
@ -17,6 +18,8 @@ public partial class DetectionCross : Node2D
/// <param name="direction"></param> /// <param name="direction"></param>
public void SetDirection(Vector2 direction) public void SetDirection(Vector2 direction)
{ {
_detector.Position = new Vector2(direction.X * _xOffset, direction.Y * _yOffset); Vector2 newPos = new Vector2(direction.X * _xOffset, direction.Y * _yOffset);
_collider.Position = newPos;
_shapeCast2D.TargetPosition = newPos;
} }
} }

@ -1,4 +1,6 @@
using System.Collections.Generic;
using Babushka.scripts.CSharp.Common.Services; using Babushka.scripts.CSharp.Common.Services;
using Babushka.scripts.CSharp.Low_Code.Variables;
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.CharacterControls; namespace Babushka.scripts.CSharp.Common.CharacterControls;
@ -8,18 +10,11 @@ namespace Babushka.scripts.CSharp.Common.CharacterControls;
/// </summary> /// </summary>
public partial class Detector : Area2D public partial class Detector : Area2D
{ {
[Export] private bool _active = true; [Export] private bool _active = true;
[Export] private ShapeCast2D _shapeCast2D;
[Export] private VariableResource _itemToTriggerResource;
/// <summary> private List<ulong> _areasInDetector = new();
/// Called when entering an interactionArea node.
/// </summary>
[Signal] public delegate void InteractableEnteredEventHandler();
/// <summary>
/// Called when exiting an interactionArea node.
/// </summary>
[Signal] public delegate void InteractableExitedEventHandler();
public bool IsActive public bool IsActive
{ {
@ -41,29 +36,62 @@ public partial class Detector : Area2D
/// Called every time this node enters an Area2D. /// Called every time this node enters an Area2D.
/// </summary> /// </summary>
/// <param name="area"></param> /// <param name="area"></param>
public void OnEnteredInteractable(Node area) public void OnEnteredInteractable(Area2D area)
{ {
if (!_active || !InputService.Instance.InputEnabled) if (!_active || !InputService.Instance.InputEnabled)
return; return;
if (area is DetectableInteractionArea interactionArea2D) PopulateList();
{ CalculateClosestInteractable();
EmitSignal(SignalName.InteractableEntered);
}
} }
/// <summary> /// <summary>
/// Called whenever this node exits an Area2D. /// Called whenever this node exits an Area2D.
/// </summary> /// </summary>
/// <param name="area"></param> /// <param name="area"></param>
public void OnExitedInteractable(Node area) public void OnExitedInteractable(Area2D area)
{ {
if (!_active || !InputService.Instance.InputEnabled) if (!_active || !InputService.Instance.InputEnabled)
return; return;
if (area is DetectableInteractionArea interactionArea2D) PopulateList();
CalculateClosestInteractable();
}
private void PopulateList()
{
// repopulate the list of areas in the detector to account for enabled / disabled areas
var currentOverlap = GetOverlappingAreas();
_areasInDetector = new List<ulong>();
foreach (var area2D in currentOverlap)
{ {
EmitSignal(SignalName.InteractableExited); if (area2D is DetectableInteractionArea detectable)
{
ulong id = detectable.GetInstanceId();
_areasInDetector.Add(id);
}
} }
} }
private void CalculateClosestInteractable()
{
float smallestDistance = float.MaxValue;
string closestInteractable = null;
foreach (var area in _areasInDetector)
{
Area2D? area2D = InstanceFromId(area) as Area2D;
if(area2D == null)
continue;
float distance = area2D.GlobalPosition.DistanceSquaredTo(ToGlobal(_shapeCast2D.TargetPosition));
if (distance < smallestDistance)
{
closestInteractable = area.ToString();
smallestDistance = distance;
}
}
_itemToTriggerResource.Payload = closestInteractable;
}
} }

@ -1,5 +1,6 @@
using System.Linq; using System.Linq;
using Babushka.scripts.CSharp.Common.Services; using Babushka.scripts.CSharp.Common.Services;
using Babushka.scripts.CSharp.Low_Code.Variables;
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.CharacterControls; namespace Babushka.scripts.CSharp.Common.CharacterControls;
@ -7,6 +8,7 @@ namespace Babushka.scripts.CSharp.Common.CharacterControls;
public partial class InteractionArea2D : Node2D public partial class InteractionArea2D : Node2D
{ {
[ExportGroup("Settings")] [ExportGroup("Settings")]
[Export] private VariableListener _selectionChangeListener;
[Export] private Area2D _area; [Export] private Area2D _area;
[Export] private Label _label; [Export] private Label _label;
[Export] private bool _active = true; [Export] private bool _active = true;
@ -17,6 +19,7 @@ public partial class InteractionArea2D : Node2D
[Export] private int _id = -1; // TODO: remove [Export] private int _id = -1; // TODO: remove
private Material[] _backupMaterials; private Material[] _backupMaterials;
private bool _initializationComplete;
[Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove [Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove
@ -25,9 +28,19 @@ public partial class InteractionArea2D : Node2D
public bool IsActive public bool IsActive
{ {
get => _active; get => _active;
set => _active = value; set
{
ProcessMode = value ? ProcessModeEnum.Inherit : ProcessModeEnum.Disabled;
Visible = value;
_selectionChangeListener.ProcessMode = value ? ProcessModeEnum.Inherit : ProcessModeEnum.Disabled;
_active = value;
if(!_active && _initializationComplete)
ResetHighlight();
}
} }
public bool IsSelectedByDetector { get; set; } = false;
public void SetActiveInverse(bool active) public void SetActiveInverse(bool active)
{ {
IsActive = !active; IsActive = !active;
@ -38,11 +51,14 @@ public partial class InteractionArea2D : Node2D
if (_useOutline) if (_useOutline)
{ {
_backupMaterials = _spritesToOutline.Select(s => s.Material).ToArray(); _backupMaterials = _spritesToOutline.Select(s => s.Material).ToArray();
_initializationComplete = true;
} }
} }
public void OnPlayerEntered(Node2D player) public void HighlightInteractable()
{ {
IsSelectedByDetector = true;
if (!_active || !InputService.Instance.InputEnabled) if (!_active || !InputService.Instance.InputEnabled)
return; return;
@ -58,8 +74,9 @@ public partial class InteractionArea2D : Node2D
} }
} }
public void OnPlayerExited(Node2D player) public void ResetHighlight()
{ {
IsSelectedByDetector = false;
_label.Hide(); _label.Hide();
if (!_useOutline) if (!_useOutline)
@ -77,6 +94,9 @@ public partial class InteractionArea2D : Node2D
if (!_active || !InputService.Instance.InputEnabled) if (!_active || !InputService.Instance.InputEnabled)
return; return;
if(!IsSelectedByDetector)
return;
if (@event.IsAction("interact") && @event.IsPressed()) if (@event.IsAction("interact") && @event.IsPressed())
{ {
TryInteract(); TryInteract();
@ -92,16 +112,7 @@ public partial class InteractionArea2D : Node2D
{ {
if (_area.HasOverlappingAreas()) if (_area.HasOverlappingAreas())
{ {
_label.Hide(); ResetHighlight();
if (_useOutline)
{
for (var i = 0; i < _spritesToOutline.Length; i++)
{
var sprite = _spritesToOutline[i];
sprite.Material = _backupMaterials[i];
}
}
Interact(); Interact();
} }
} }
@ -120,8 +131,20 @@ public partial class InteractionArea2D : Node2D
public void ToggleActive() public void ToggleActive()
{ {
GD.Print($"Toggle active {GetParent().Name}: {!_active}");
_active = !_active; _active = !_active;
_label.Hide(); _label.Hide();
} }
public void SetActiveTrue()
{
IsActive = true;
}
public void SetActiveFalse()
{
IsActive = false;
}
} }

@ -1,15 +1,18 @@
using Babushka.scripts.CSharp.Common.CharacterControls; using Babushka.scripts.CSharp.Common.CharacterControls;
using Babushka.scripts.CSharp.Common.Savegame;
using Godot; using Godot;
using Godot.Collections;
namespace Babushka.scripts.CSharp.Common.Farming; namespace Babushka.scripts.CSharp.Common.Farming;
/// <summary> /// <summary>
/// Enables a preset field in the scene sothat it can be used for farming. /// Enables a preset field in the scene sothat it can be used for farming.
/// </summary> /// </summary>
public partial class FieldActivator : Node public partial class FieldActivator : Node, ISaveable
{ {
[Export] private FieldBehaviour2D _field; [Export] private FieldBehaviour2D _field;
[Export] private InteractionArea2D _activatorArea; [Export] private InteractionArea2D _activatorArea;
[Export] private Node _saveIdHolder;
private bool _used = false; private bool _used = false;
private bool _rakeInHand; private bool _rakeInHand;
@ -18,6 +21,7 @@ public partial class FieldActivator : Node
public override void _Ready() public override void _Ready()
{ {
LoadFromSaveData();
ToggleInteractionArea(); ToggleInteractionArea();
} }
@ -32,6 +36,8 @@ public partial class FieldActivator : Node
_field.UpdateFieldState(FieldState.Tilled); _field.UpdateFieldState(FieldState.Tilled);
EmitSignal(SignalName.FieldCreated, _field); EmitSignal(SignalName.FieldCreated, _field);
_used = true; _used = true;
ToggleInteractionArea();
UpdateSaveData();
} }
} }
@ -42,6 +48,8 @@ public partial class FieldActivator : Node
/// <param name="activated"></param> /// <param name="activated"></param>
public void RakeActivated(bool activated) public void RakeActivated(bool activated)
{ {
if (_used || ProcessMode == ProcessModeEnum.Disabled)
return;
_rakeInHand = activated; _rakeInHand = activated;
ToggleInteractionArea(); ToggleInteractionArea();
} }
@ -51,4 +59,35 @@ public partial class FieldActivator : Node
_activatorArea.IsActive = !_used && _rakeInHand; _activatorArea.IsActive = !_used && _rakeInHand;
} }
public void UpdateSaveData()
{
var payloadData = new Dictionary<string, Variant>
{
{ "field_activator_used", _used }
};
// Building a unique id from the top node's save id and a qualifier to make it new.
string parent_id = _saveIdHolder.GetMeta("SaveID").AsString();
string id = $"{parent_id}_field_activator";
SavegameService.AppendDataToSave( id, payloadData);
}
public void LoadFromSaveData()
{
string parent_id = _saveIdHolder.GetMeta("SaveID").AsString();
string id = $"{parent_id}_field_activator";
Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
if (save.Count > 0)
{
if (save.TryGetValue("field_activator_used", out Variant usedVar))
{
_used = usedVar.AsBool();
}
else
{
_used = false;
}
}
}
} }

@ -33,7 +33,6 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
[ExportGroup("Field Interactions")] [ExportGroup("Field Interactions")]
[Export] public InteractionArea2D PlantingInteraction; [Export] public InteractionArea2D PlantingInteraction;
[Export] public InteractionArea2D FieldInteractionArea;
[ExportGroup("Configuration")] [ExportGroup("Configuration")]
[Export] public Node2D PlantingPlaceholder; [Export] public Node2D PlantingPlaceholder;
@ -48,6 +47,8 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
private bool _canWater; private bool _canWater;
private int _currentDay; private int _currentDay;
public bool IsPlanted;
private PlantBehaviour2D? _currentPlant; private PlantBehaviour2D? _currentPlant;
private const string DAY_COUNTER_SAVE_ID = "12c6da2e-fc71-4281-a04a-dfd3c7943975"; private const string DAY_COUNTER_SAVE_ID = "12c6da2e-fc71-4281-a04a-dfd3c7943975";
@ -57,11 +58,11 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
private void UpdateInteractionArea() private void UpdateInteractionArea()
{ {
// fieldstate == tilled / watered && samen im Inventar // fieldstate == tilled / watered && samen im Inventar
_canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive; _canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive && !IsPlanted;
// fieldstate == tilled && watering can ausgewählt // fieldstate == tilled && watering can ausgewählt
_canWater = (FieldState == FieldState.Tilled || FieldState == FieldState.Planted) && _wateringCanActive; _canWater = (FieldState == FieldState.Tilled || IsPlanted) && _wateringCanActive && WateringCanState.GetFillState() > 0;
FieldInteractionArea.IsActive = _canPlant || _canWater; PlantingInteraction.IsActive = _canPlant || _canWater;
} }
public void ActivatedSeedInInventory(bool activated) public void ActivatedSeedInInventory(bool activated)
@ -78,9 +79,17 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
public override void _EnterTree() public override void _EnterTree()
{ {
WateringCanState.OnFill += UpdateInteractionArea;
WateringCanState.OnEmpty += UpdateInteractionArea;
LoadFromSaveData(); LoadFromSaveData();
} }
public override void _ExitTree()
{
WateringCanState.OnFill -= UpdateInteractionArea;
WateringCanState.OnEmpty -= UpdateInteractionArea;
}
public override void _Ready() public override void _Ready()
{ {
if(PlantingPlaceholder.GetChildCount() > 0) if(PlantingPlaceholder.GetChildCount() > 0)
@ -104,17 +113,14 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
case FieldState.Tilled: case FieldState.Tilled:
FieldState = FieldState.Tilled; FieldState = FieldState.Tilled;
_fieldSprite.Texture = Tilled; _fieldSprite.Texture = Tilled;
PlantingInteraction.IsActive = true; if(!IsPlanted)
PlantingInteraction.IsActive = true;
break; break;
case FieldState.Watered: case FieldState.Watered:
FieldState = FieldState.Watered; FieldState = FieldState.Watered;
_fieldSprite.Texture = Watered; _fieldSprite.Texture = Watered;
PlantingInteraction.IsActive = true; if(!IsPlanted)
break; PlantingInteraction.IsActive = true;
case FieldState.Planted:
FieldState = FieldState.Planted;
_fieldSprite.Texture = Tilled;
PlantingInteraction.IsActive = false;
break; break;
default: default:
FieldState = FieldState.NotFound; FieldState = FieldState.NotFound;
@ -125,7 +131,6 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
UpdateSaveData(); UpdateSaveData();
} }
public void Water() public void Water()
{ {
if (WateringCanState.GetFillState() > 0 && FieldState != FieldState.Watered) if (WateringCanState.GetFillState() > 0 && FieldState != FieldState.Watered)
@ -151,7 +156,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
if (_canPlant && TryPlant()) if (_canPlant && TryPlant())
{ {
EmitSignal(SignalName.Planted); EmitSignal(SignalName.Planted);
UpdateFieldState(FieldState.Planted); UpdateSaveData();
} }
if (_canWater) if (_canWater)
@ -160,6 +165,16 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
} }
} }
public void ChangePlantedState()
{
IsPlanted = true;
if(FieldState == FieldState.Tilled)
_fieldSprite.Texture = Tilled;
if(FieldState == FieldState.Watered)
_fieldSprite.Texture = Watered;
PlantingInteraction.IsActive = false;
}
private bool TryPlant() private bool TryPlant()
{ {
bool success = false; bool success = false;
@ -187,6 +202,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
if (_currentPlant != null) if (_currentPlant != null)
{ {
ChangePlantedState();
_currentPlant.DayPlanted = _currentDay; _currentPlant.DayPlanted = _currentDay;
} }
} }
@ -205,6 +221,13 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
} }
} }
public void HarvestPlant()
{
_currentPlant = null;
UpdateFieldState(FieldState.Empty, true);
IsPlanted = false;
}
#region SAVE AND LOAD #region SAVE AND LOAD
/// <summary> /// <summary>
@ -215,10 +238,10 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
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} { "day_count_on_last_exit", _currentDay},
}; };
if (_currentPlant != null) if (IsPlanted)
{ {
payloadData.Add( payloadData.Add(
"plant_data", new Dictionary<string, Variant>() "plant_data", new Dictionary<string, Variant>()
@ -244,21 +267,29 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
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)
{ {
// get plant first because it's also relevant for the field state // get plant first because it's also relevant for the field state
if (save.TryGetValue("plant_data", out Variant plantDataVar)) if (save.TryGetValue("plant_data", out Variant plantDataVar))
{ {
IsPlanted = true;
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))
{ {
InstantiatePlant(prefabPathVar.AsString()); if(plantCount == 0)
InstantiatePlant(prefabPathVar.AsString());
else
_currentPlant = PlantingPlaceholder.GetChild(0) as PlantBehaviour2D;
} }
else else
{ {
return; return;
} }
if (plantDataDict.TryGetValue("plant_start_day", out Variant plantStartDay) && _currentPlant != null) if (plantDataDict.TryGetValue("plant_start_day", out Variant plantStartDay) && _currentPlant != null)
{ {
_currentPlant.DayPlanted = plantStartDay.AsInt32(); _currentPlant.DayPlanted = plantStartDay.AsInt32();
@ -301,17 +332,10 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
// if day is today, then just use the provided field state as is. // if day is today, then just use the provided field state as is.
if (CalendarController.Instance != null && _currentDay != lastDayCount) if (CalendarController.Instance != null && _currentDay != lastDayCount)
{ {
// if the field was watered the day before, set it to tilled or planted. // if the field was watered the day before, set it to tilled
if (fieldStateInt == 3) if (fieldStateInt == 3)
{ {
if (_currentPlant != null) fieldStateInt = 1;
{
fieldStateInt = 2;
}
else
{
fieldStateInt = 1;
}
} }
} }
} }

@ -7,7 +7,6 @@ public enum FieldState
{ {
Empty = 0, Empty = 0,
Tilled = 1, Tilled = 1,
Planted = 2,
Watered = 3, Watered = 3,
NotFound = 99 NotFound = 99
} }

@ -3,7 +3,6 @@ using System.Diagnostics;
using Babushka.scripts.CSharp.Common.Inventory; using Babushka.scripts.CSharp.Common.Inventory;
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;
@ -27,6 +26,7 @@ public partial class PlantBehaviour2D : Node2D
[ExportGroup("PlantConfig")] [ExportGroup("PlantConfig")]
[Export] private string _prefabPath; [Export] private string _prefabPath;
[Export] private VariableNode _lifecycle; [Export] private VariableNode _lifecycle;
[Export] private int _daysWatered;
private string _magicWordDialogicEventName = "MagicWord"; private string _magicWordDialogicEventName = "MagicWord";
private Sprite2D? _currentPlantSprite = null; private Sprite2D? _currentPlantSprite = null;
@ -34,7 +34,6 @@ public partial class PlantBehaviour2D : Node2D
private bool _calledOnReady = false; private bool _calledOnReady = false;
private int _dayPlanted; private int _dayPlanted;
private int _currentDay; private int _currentDay;
private int _daysWatered;
public PlantState State public PlantState State
{ {
@ -160,14 +159,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;
@ -184,15 +183,10 @@ 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.ProcessMode = active ? ProcessModeEnum.Inherit : ProcessModeEnum.Disabled;
_harvestablePlant.UpdateVisuals(); _harvestablePlant.UpdateVisuals();
} }
@ -206,4 +200,9 @@ public partial class PlantBehaviour2D : Node2D
_magicWordSaid = true; _magicWordSaid = true;
Grow(); Grow();
} }
public void Harvest()
{
Field.HarvestPlant();
}
} }

@ -30,6 +30,7 @@ public static class WateringCanState
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; public static event Action? OnFill;
public static event Action? OnEmpty;
@ -52,6 +53,11 @@ public static class WateringCanState
_fillstate--; _fillstate--;
OnWater?.Invoke(); OnWater?.Invoke();
} }
if (_fillstate == 0)
{
OnEmpty?.Invoke();
}
} }
/// <summary> /// <summary>

@ -7,11 +7,16 @@ public partial class WellBehaviour : Node2D
{ {
[Export] private InteractionArea2D _interactionArea; [Export] private InteractionArea2D _interactionArea;
public override void _Ready() public override void _EnterTree()
{ {
WateringCanState.WateringCanActiveStateChanged += OnWateringCanStateChanged; WateringCanState.WateringCanActiveStateChanged += OnWateringCanStateChanged;
} }
public override void _ExitTree()
{
WateringCanState.WateringCanActiveStateChanged -= OnWateringCanStateChanged;
}
private void OnWateringCanStateChanged(bool state) private void OnWateringCanStateChanged(bool state)
{ {
_interactionArea.IsActive = state; _interactionArea.IsActive = state;

@ -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
}

@ -117,11 +117,13 @@ public partial class AllFightersVisual : Node
if (targetDetail.selectEnemy) if (targetDetail.selectEnemy)
_fighterVisuals _fighterVisuals
.Where(kv => kv.Key.IsInFormation(HappeningData.enemyFighterFormation)) .Where(kv => kv.Key.IsInFormation(HappeningData.enemyFighterFormation))
.Where(kv => !targetDetail.aliveOnly || kv.Key.IsAlive())// if aliveOnly: take where IsAlive
.ForEach(kv => kv.Value.SetTargetSelectionActive(true)); .ForEach(kv => kv.Value.SetTargetSelectionActive(true));
if (targetDetail.selectAlly) if (targetDetail.selectAlly)
_fighterVisuals _fighterVisuals
.Where(kv => kv.Key.IsInFormation(HappeningData.allyFighterFormation)) .Where(kv => kv.Key.IsInFormation(HappeningData.allyFighterFormation))
.Where(kv => !targetDetail.aliveOnly || kv.Key.IsAlive())// if aliveOnly: take where IsAlive
.ForEach(kv => kv.Value.SetTargetSelectionActive(true)); .ForEach(kv => kv.Value.SetTargetSelectionActive(true));
} }

@ -10,7 +10,8 @@ public class AllyFighters
maxHealth = 60, maxHealth = 60,
availableActions = availableActions =
[ [
new AllyAttackAction() new AllyAttackAction(),
new EatBeetrootAction()
] ]
}; };
public FightWorld.Fighter chuhaFighter = new() public FightWorld.Fighter chuhaFighter = new()

@ -222,9 +222,9 @@ public partial class FightHappening : Node
case FightState.ActionCheckDetails: case FightState.ActionCheckDetails:
RequireNotNull(HappeningData.actionStaging); RequireNotNull(HappeningData.actionStaging);
if (ActionAbort()) if (ShouldActionAbort())
ChangeState(FightState.InputActionSelect); ChangeState(FightState.InputActionSelect);
else if (ActionNeededDetail()) else if (DoesActionNeededDetail())
ChangeState(FightState.InputActionDetail); ChangeState(FightState.InputActionDetail);
else else
ChangeState(FightState.ActionExecute); ChangeState(FightState.ActionExecute);
@ -307,6 +307,11 @@ public partial class FightHappening : Node
HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter); HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter);
HappeningData.fighterTurn.AddAsLast(fighter); HappeningData.fighterTurn.AddAsLast(fighter);
} }
if (GD.RandRange(0, 2) != 0) // 2/3 chance for vesna to start
{
HappeningData.fighterTurn.SpinBack();
}
} }
private void ExecuteNextFighter() private void ExecuteNextFighter()
@ -328,13 +333,13 @@ public partial class FightHappening : Node
return HappeningData.actionStaging.GetAnimationEnd(); return HappeningData.actionStaging.GetAnimationEnd();
} }
private bool ActionAbort() private bool ShouldActionAbort()
{ {
Debug.Assert(HappeningData.actionStaging != null); Debug.Assert(HappeningData.actionStaging != null);
return HappeningData.actionStaging.MarkedForAbort(); return HappeningData.actionStaging.ShouldAbort();
} }
private bool ActionNeededDetail() private bool DoesActionNeededDetail()
{ {
Debug.Assert(HappeningData.actionStaging != null); Debug.Assert(HappeningData.actionStaging != null);
return HappeningData.actionStaging.NextDetail(); return HappeningData.actionStaging.NextDetail();
@ -344,7 +349,7 @@ public partial class FightHappening : Node
private void ReviveVesna() private void ReviveVesna()
{ {
var vesnaFighter = FightWorld.Instance.allyFighters.vesnaFighter; var vesnaFighter = FightWorld.Instance.allyFighters.vesnaFighter;
vesnaFighter.health = vesnaFighter.maxHealth; vesnaFighter.Health = vesnaFighter.maxHealth;
GD.Print("Vesna has been revived. This is for the current prototype only"); GD.Print("Vesna has been revived. This is for the current prototype only");
} }

@ -0,0 +1,8 @@
using Godot;
namespace Babushka.scripts.CSharp.Common.Fight;
public partial class FightHappeningAnimationContext : Node
{
[Export] public UsedItemIndicatorVisual useHealItemIndicator = null!;
}

@ -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);
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>(); }
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher); else
parent.AddChild(roamingEnemyGroup); {
SpawnEnemies(group, parent);
}
} }
} }
private void SpawnEnemies(FightWorld.FighterGroup group, Node2D parent)
{
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher);
parent.AddChild(roamingEnemyGroup);
}
private void SpawnLoot(FightWorld.FighterGroup group, Node2D parent)
{
if (group.lootToDrop == null)
return;
var onGroundInstance = _itemOnGroundPrefab.Instantiate<ItemOnGround2D>();
onGroundInstance.itemInstance = group.lootToDrop;
parent.AddChild(onGroundInstance);
}
} }

@ -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)

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

Loading…
Cancel
Save