Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ba7d550c3f | |||
| b65a3bbd6d | |||
| bcbc074c86 | |||
| 745f54b375 | |||
| 59d313d97d | |||
| 9032272599 | |||
| a2ef3bfaf0 | |||
| 1ab1071246 | |||
| e5b2b8b8ab | |||
| 2fa8aa9fbc | |||
| 6deb6e29fd | |||
| edc133749f | |||
| 5f75bde317 | |||
| 7310bfbf6e | |||
| fef8380a57 | |||
| f42c2c86b1 | |||
| 2ed9dbbc52 | |||
| 6375383373 | |||
| b810ea1d9f | |||
| 3d19509826 | |||
| 113dd0820f | |||
| 7e148cd9fe | |||
| 59489e4a17 | |||
| fc00559483 | |||
| 982178d89a | |||
| 09f55d3aa7 | |||
| c89685c936 | |||
| 79108fbe15 | |||
| 0434667c22 | |||
| a736adaafb | |||
| bef54420e4 | |||
| 9267278ce8 | |||
| 9ba83dfddd | |||
| 7c5ba2d6bb | |||
| 0c5fc26d2f | |||
| e51e0a24d2 | |||
| 7bb523f9e7 | |||
| a3651d6268 | |||
| 0892a13e66 | |||
| 61caa6eea6 | |||
| 2ec693eed2 | |||
| b7d1f9d8d5 | |||
| 12bf632932 | |||
| 996470f5e6 | |||
| aa4f1c55b5 |
@@ -8,4 +8,7 @@
|
|||||||
<Folder Include="prefabs\UI\Inventory\" />
|
<Folder Include="prefabs\UI\Inventory\" />
|
||||||
<Folder Include="scripts\CSharp\Low Code\Randomizer\" />
|
<Folder Include="scripts\CSharp\Low Code\Randomizer\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://ccrnmx6bd842k"
|
uid="uid://ccrnmx6bd842k"
|
||||||
path="res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.ctex"
|
path.s3tc="res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://art/characters/farm fäulnis blobs.png"
|
source_file="res://art/characters/farm fäulnis blobs.png"
|
||||||
dest_files=["res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.ctex"]
|
dest_files=["res://.godot/imported/farm fäulnis blobs.png-afe542d3466e5ab2e79933f2f163e667.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,4 +38,4 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 741 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://da67c7avarwq2"
|
||||||
|
path="res://.godot/imported/kitchen_bgAssets.png-26f2820caaada75bd252a5f0e781a1f7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/indoor/kitchen_bgAssets.png"
|
||||||
|
dest_files=["res://.godot/imported/kitchen_bgAssets.png-26f2820caaada75bd252a5f0e781a1f7.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
@@ -4,19 +4,22 @@ importer="scene"
|
|||||||
importer_version=1
|
importer_version=1
|
||||||
type="PackedScene"
|
type="PackedScene"
|
||||||
uid="uid://b3kyrsoobmkhp"
|
uid="uid://b3kyrsoobmkhp"
|
||||||
valid=false
|
path="res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://art/mockups/3d/best_house_blender.blend"
|
source_file="res://art/mockups/3d/best_house_blender.blend"
|
||||||
|
dest_files=["res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
nodes/root_type=""
|
nodes/root_type=""
|
||||||
nodes/root_name=""
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
nodes/apply_root_scale=true
|
nodes/apply_root_scale=true
|
||||||
nodes/root_scale=1.0
|
nodes/root_scale=1.0
|
||||||
nodes/import_as_skeleton_bones=false
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
nodes/use_node_type_suffixes=true
|
nodes/use_node_type_suffixes=true
|
||||||
meshes/ensure_tangents=true
|
meshes/ensure_tangents=true
|
||||||
meshes/generate_lods=true
|
meshes/generate_lods=true
|
||||||
@@ -31,6 +34,9 @@ animation/trimming=false
|
|||||||
animation/remove_immutable_tracks=true
|
animation/remove_immutable_tracks=true
|
||||||
animation/import_rest_as_RESET=false
|
animation/import_rest_as_RESET=false
|
||||||
import_script/path=""
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
_subresources={}
|
_subresources={}
|
||||||
blender/nodes/visible=0
|
blender/nodes/visible=0
|
||||||
blender/nodes/active_collection_only=false
|
blender/nodes/active_collection_only=false
|
||||||
@@ -50,3 +56,4 @@ blender/materials/export_materials=1
|
|||||||
blender/animation/limit_playback=true
|
blender/animation/limit_playback=true
|
||||||
blender/animation/always_sample=true
|
blender/animation/always_sample=true
|
||||||
blender/animation/group_tracks=true
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=0
|
||||||
|
|||||||
@@ -26,6 +26,15 @@
|
|||||||
&"nicknames": ["vesna"],
|
&"nicknames": ["vesna"],
|
||||||
&"offset": Vector2(-300, 0),
|
&"offset": Vector2(-300, 0),
|
||||||
&"portraits": {
|
&"portraits": {
|
||||||
|
"angry": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/angry.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
"front": {
|
"front": {
|
||||||
"export_overrides": {
|
"export_overrides": {
|
||||||
"image": "\"res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0001.png\""
|
"image": "\"res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0001.png\""
|
||||||
@@ -52,6 +61,42 @@
|
|||||||
"offset": Vector2(0, 0),
|
"offset": Vector2(0, 0),
|
||||||
"scale": 1.0,
|
"scale": 1.0,
|
||||||
"scene": ""
|
"scene": ""
|
||||||
|
},
|
||||||
|
"sad": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/sad.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
|
"smile": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/smile.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
|
"surprise": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/surprise.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
|
},
|
||||||
|
"surprised": {
|
||||||
|
"export_overrides": {
|
||||||
|
"image": "\"res://art/characters/Vesna/surprised.png\""
|
||||||
|
},
|
||||||
|
"mirror": false,
|
||||||
|
"offset": Vector2(150, 0),
|
||||||
|
"scale": 0.65,
|
||||||
|
"scene": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
&"scale": 1.0
|
&"scale": 1.0
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[quest_complete quest_resource="res://resources/quests/demo/7_talk_yeli_inside_1.tres"]
|
[quest_complete quest_resource="res://resources/quests/demo/7_talk_yeli_inside_1.tres"]
|
||||||
join Yeli right
|
join Yeli right
|
||||||
Yeli: Thank you for your help out there.
|
Yeli: Thank you for your help out there.
|
||||||
Yeli: You must be tired. Please rest. I prepared a bed for you. It's in the room to the left.
|
Yeli: You must be tired. Please rest. I prepared a bed for you. It's the door in the middle.
|
||||||
Yeli: There is nothing interesting to see here.
|
Yeli: There is nothing interesting to see here.
|
||||||
leave Yeli
|
leave Yeli
|
||||||
[quest_activate quest_resource="res://resources/quests/demo/8_goto_bed.tres"]
|
[quest_activate quest_resource="res://resources/quests/demo/8_goto_bed.tres"]
|
||||||
|
|||||||
@@ -12,3 +12,4 @@ ifquest res://resources/quests/demo/2_collect_ducks.tres, 1:
|
|||||||
Yeli: Have you collected all the ducks yet?
|
Yeli: Have you collected all the ducks yet?
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
Yeli doesn't seem to have anything to say...
|
Yeli doesn't seem to have anything to say...
|
||||||
|
[end_timeline]
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 500.0
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id="SpriteFrames_f6hss"]
|
[sub_resource type="SpriteFrames" id="SpriteFrames_f6hss"]
|
||||||
animations = [{
|
animations = [{
|
||||||
@@ -205,6 +205,7 @@ z_index = 1
|
|||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_hn8at")
|
script = ExtResource("1_hn8at")
|
||||||
_sprite = NodePath("TalkingControl/AnimatedSprite")
|
_sprite = NodePath("TalkingControl/AnimatedSprite")
|
||||||
|
_retriggerSameTimeline = true
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("42_ahrat")]
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("42_ahrat")]
|
||||||
position = Vector2(0, -450)
|
position = Vector2(0, -450)
|
||||||
@@ -244,9 +245,11 @@ stream = SubResource("AudioStreamRandomizer_ngji7")
|
|||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("50_a7v1a")
|
script = ExtResource("50_a7v1a")
|
||||||
|
|
||||||
[connection signal="FinishedTalking" from="." to="InteractionArea" method="SetActiveInverse"]
|
|
||||||
[connection signal="Talking" from="." to="Dialogic starter" method="open"]
|
[connection signal="Talking" from="." to="Dialogic starter" method="open"]
|
||||||
[connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"]
|
[connection signal="Interacted" from="InteractionArea" to="." method="StartTalking"]
|
||||||
|
[connection signal="Interacted" from="InteractionArea" to="InteractionArea" method="ToggleActive"]
|
||||||
|
[connection signal="timelineEnded" from="Dialogic starter" to="." method="StopTalking"]
|
||||||
|
[connection signal="timelineEnded" from="Dialogic starter" to="InteractionArea" method="ToggleActive"]
|
||||||
[connection signal="timelineEnded" from="DialogicToggle" to="." method="ToggleTalking"]
|
[connection signal="timelineEnded" from="DialogicToggle" to="." method="ToggleTalking"]
|
||||||
[connection signal="timelineStarted" from="DialogicToggle" to="SFX/AudioStreamPlayer" method="PlayOneShot"]
|
[connection signal="timelineStarted" from="DialogicToggle" to="SFX/AudioStreamPlayer" method="PlayOneShot"]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://hdfejdnmp8sl"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://umop2b1m1qm8" path="res://scripts/CSharp/GameEntity/Management/EntityManager.cs" id="1_2bwns"]
|
||||||
|
[ext_resource type="Script" uid="uid://bogqp274y1pgr" path="res://scripts/CSharp/GameEntity/Management/EntityNodeCreator.cs" id="2_8m173"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://sbf12hin4kes" path="res://prefabs/Interactables/trash_object.tscn" id="3_v3vdc"]
|
||||||
|
|
||||||
|
[node name="EntityManager" type="Node" node_paths=PackedStringArray("_nodeCreator")]
|
||||||
|
script = ExtResource("1_2bwns")
|
||||||
|
_nodeCreator = NodePath("EntityCreator")
|
||||||
|
|
||||||
|
[node name="EntityCreator" type="Node" parent="."]
|
||||||
|
script = ExtResource("2_8m173")
|
||||||
|
_entityPrefabs = Dictionary[String, PackedScene]({
|
||||||
|
"TrashEntity": ExtResource("3_v3vdc")
|
||||||
|
})
|
||||||
@@ -41,6 +41,7 @@ texture = ExtResource("9_wx561")
|
|||||||
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_saveIdHolder", "_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "FieldInteractionArea", "PlantingPlaceholder", "_wateringParticles")]
|
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldIndex", "_saveIdHolder", "_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "FieldInteractionArea", "PlantingPlaceholder", "_wateringParticles")]
|
||||||
visible = false
|
visible = false
|
||||||
z_index = -1
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
scale = Vector2(0.9, 1)
|
scale = Vector2(0.9, 1)
|
||||||
script = ExtResource("1_qa01x")
|
script = ExtResource("1_qa01x")
|
||||||
_fieldIndex = NodePath("..")
|
_fieldIndex = NodePath("..")
|
||||||
@@ -70,6 +71,7 @@ texture = ExtResource("3_c014y")
|
|||||||
texture = ExtResource("5_wx561")
|
texture = ExtResource("5_wx561")
|
||||||
|
|
||||||
[node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"]
|
[node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"]
|
||||||
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="InteractionArea" parent="FieldBehaviour" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
|
[node name="InteractionArea" parent="FieldBehaviour" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
|
||||||
position = Vector2(-28.88889, -57)
|
position = Vector2(-28.88889, -57)
|
||||||
|
|||||||
@@ -215,6 +215,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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
+18
-3
@@ -25,7 +25,7 @@ buses/default_bus_layout="uid://b6dwkmkyb0axk"
|
|||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
SceneTransition="*res://scenes/SceneTransition.tscn"
|
SceneTransition="*res://prefabs/UI/SceneTransition.tscn"
|
||||||
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
||||||
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
|
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
|
||||||
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
||||||
@@ -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]
|
||||||
|
|
||||||
@@ -186,8 +187,8 @@ directories/tres_directory={
|
|||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=1980
|
window/size/viewport_width=1920
|
||||||
window/size/viewport_height=1020
|
window/size/viewport_height=1080
|
||||||
window/stretch/mode="viewport"
|
window/stretch/mode="viewport"
|
||||||
window/stretch/aspect="keep_height"
|
window/stretch/aspect="keep_height"
|
||||||
|
|
||||||
@@ -221,6 +222,10 @@ folder_colors={
|
|||||||
"res://shader/": "pink"
|
"res://shader/": "pink"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[filesystem]
|
||||||
|
|
||||||
|
import/blender/enabled=false
|
||||||
|
|
||||||
[global_group]
|
[global_group]
|
||||||
|
|
||||||
Saveable=""
|
Saveable=""
|
||||||
@@ -307,6 +312,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]
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=118 format=3 uid="uid://gigb28qk8t12"]
|
[gd_scene load_steps=119 format=3 uid="uid://gigb28qk8t12"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="1_7wfwe"]
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="1_7wfwe"]
|
||||||
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"]
|
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"]
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://dldk8n51ag8fh" path="res://art/nature/baum märz 2025/backtreebois team brandon.png" id="13_d53cn"]
|
[ext_resource type="Texture2D" uid="uid://dldk8n51ag8fh" path="res://art/nature/baum märz 2025/backtreebois team brandon.png" id="13_d53cn"]
|
||||||
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="13_kt1wx"]
|
[ext_resource type="Shader" uid="uid://xnky830dtfsn" path="res://shader/repeat_texture.gdshader" id="13_kt1wx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bmjjfd5ngptxe" path="res://art/nature/baum märz 2025/backtreebois team kennedy.png" id="14_1uen0"]
|
[ext_resource type="Texture2D" uid="uid://bmjjfd5ngptxe" path="res://art/nature/baum märz 2025/backtreebois team kennedy.png" id="14_1uen0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dv2jepy2el544" path="res://art/mockups/Kenney_Backgrounds/PNG/Flat/tree11.png" id="14_d53cn"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://451bkvxcxab7" path="res://art/nature/baum märz 2025/gräser und büsche.png" id="14_mrwmr"]
|
[ext_resource type="Texture2D" uid="uid://451bkvxcxab7" path="res://art/nature/baum märz 2025/gräser und büsche.png" id="14_mrwmr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://btea6eyucsyxj" path="res://art/farm/farming/farmobjekte/zaun/tilable fence middle part.png" id="20_if5vh"]
|
[ext_resource type="Texture2D" uid="uid://btea6eyucsyxj" path="res://art/farm/farming/farmobjekte/zaun/tilable fence middle part.png" id="20_if5vh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://3ed3dgq3irn2" path="res://art/farm/farming/farmobjekte/zaun/tilable fence end part2.png" id="21_if5vh"]
|
[ext_resource type="Texture2D" uid="uid://3ed3dgq3irn2" path="res://art/farm/farming/farmobjekte/zaun/tilable fence end part2.png" id="21_if5vh"]
|
||||||
@@ -38,6 +37,7 @@
|
|||||||
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="35_64mdn"]
|
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="35_64mdn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
|
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
|
||||||
[ext_resource type="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="36_fv1t2"]
|
[ext_resource type="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="36_fv1t2"]
|
||||||
|
[ext_resource type="Resource" uid="uid://0mnsr4anoaiq" path="res://resources/items/beet.tres" id="36_q1g8e"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
|
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
|
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
|
||||||
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
|
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
|
||||||
@@ -82,13 +82,22 @@
|
|||||||
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="80_w1kgo"]
|
[ext_resource type="Script" uid="uid://ca4s0algeij1h" path="res://scripts/CSharp/Common/Savegame/SaveIDProviderTool.cs" id="80_w1kgo"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
|
||||||
|
resource_local_to_scene = true
|
||||||
shader = ExtResource("13_7p0hq")
|
shader = ExtResource("13_7p0hq")
|
||||||
shader_parameter/hue_shift = 0.0
|
shader_parameter/hue_shift = -0.25399996456499996
|
||||||
shader_parameter/saturation_mult = 0.603
|
shader_parameter/saturation_mult = 0.603
|
||||||
shader_parameter/value_mult = 1.0
|
shader_parameter/value_mult = 1.0
|
||||||
shader_parameter/brightness_add = 0.0
|
shader_parameter/brightness_add = 0.0
|
||||||
shader_parameter/contrast_mult = 1.0
|
shader_parameter/contrast_mult = 1.0
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_065st"]
|
||||||
|
shader = ExtResource("13_7p0hq")
|
||||||
|
shader_parameter/hue_shift = -0.18299996119249995
|
||||||
|
shader_parameter/saturation_mult = 0.8530000405175
|
||||||
|
shader_parameter/value_mult = 1.0
|
||||||
|
shader_parameter/brightness_add = 4.7499999933364734e-08
|
||||||
|
shader_parameter/contrast_mult = 0.9630000457425
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8ey8m"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8ey8m"]
|
||||||
shader = ExtResource("13_7p0hq")
|
shader = ExtResource("13_7p0hq")
|
||||||
shader_parameter/hue_shift = -0.076
|
shader_parameter/hue_shift = -0.076
|
||||||
@@ -288,6 +297,7 @@ _followNode = NodePath("../YSorted/Vesna/CharacterBody2D")
|
|||||||
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
||||||
|
|
||||||
[node name="background color layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background color layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -350
|
||||||
position = Vector2(0, -552)
|
position = Vector2(0, -552)
|
||||||
motion_scale = Vector2(0.1, 0.1)
|
motion_scale = Vector2(0.1, 0.1)
|
||||||
motion_mirroring = Vector2(2048, 0)
|
motion_mirroring = Vector2(2048, 0)
|
||||||
@@ -319,6 +329,7 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="clouds layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="clouds layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -300
|
||||||
position = Vector2(-7, -138)
|
position = Vector2(-7, -138)
|
||||||
motion_scale = Vector2(0.2, 0.2)
|
motion_scale = Vector2(0.2, 0.2)
|
||||||
motion_mirroring = Vector2(7000, 0)
|
motion_mirroring = Vector2(7000, 0)
|
||||||
@@ -356,11 +367,13 @@ centered = false
|
|||||||
offset = Vector2(0, -100)
|
offset = Vector2(0, -100)
|
||||||
|
|
||||||
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -250
|
||||||
position = Vector2(18, -713)
|
position = Vector2(18, -713)
|
||||||
motion_scale = Vector2(0.25, 0.25)
|
motion_scale = Vector2(0.25, 0.25)
|
||||||
motion_mirroring = Vector2(5424, 0)
|
motion_mirroring = Vector2(5424, 0)
|
||||||
|
|
||||||
[node name="Kenney assets" type="Node2D" parent="ParallaxBackground/background layer 3"]
|
[node name="Kenney assets" type="Node2D" parent="ParallaxBackground/background layer 3"]
|
||||||
|
modulate = Color(0.56078434, 0.89411765, 0.8235294, 1)
|
||||||
position = Vector2(0, -39)
|
position = Vector2(0, -39)
|
||||||
scale = Vector2(1.2, 1.2)
|
scale = Vector2(1.2, 1.2)
|
||||||
|
|
||||||
@@ -473,123 +486,11 @@ scale = Vector2(3, 3.062)
|
|||||||
texture = ExtResource("11_vbdb2")
|
texture = ExtResource("11_vbdb2")
|
||||||
|
|
||||||
[node name="background layer 4" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="background layer 4" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -200
|
||||||
position = Vector2(0, -82)
|
position = Vector2(0, -82)
|
||||||
motion_scale = Vector2(0.5, 0.5)
|
motion_scale = Vector2(0.5, 0.5)
|
||||||
motion_mirroring = Vector2(10480, 0)
|
motion_mirroring = Vector2(10480, 0)
|
||||||
|
|
||||||
[node name="Kenney Assets" type="Node2D" parent="ParallaxBackground/background layer 4"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="hills" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.525643, 0.556909, 0.560815, 1)
|
|
||||||
position = Vector2(0, 1420)
|
|
||||||
scale = Vector2(4, 4)
|
|
||||||
texture = ExtResource("7_sbyqw")
|
|
||||||
centered = false
|
|
||||||
offset = Vector2(-200, -80)
|
|
||||||
|
|
||||||
[node name="hills 1" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.525643, 0.556909, 0.560815, 1)
|
|
||||||
position = Vector2(3999, 1420)
|
|
||||||
scale = Vector2(4, 4)
|
|
||||||
texture = ExtResource("8_kt1wx")
|
|
||||||
centered = false
|
|
||||||
offset = Vector2(-200, -80)
|
|
||||||
|
|
||||||
[node name="tree" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(128, 784)
|
|
||||||
scale = Vector2(5.11066, 3.99823)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree2" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(976, 952)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree9" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(1160, 976)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree3" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(1368, 800)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree4" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(2328, 880)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree5" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(3112, 944)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree6" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(4248, 960)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree10" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(5376, 848)
|
|
||||||
scale = Vector2(3.7465, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree11" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(5624, 976)
|
|
||||||
scale = Vector2(2.93619, 1.96107)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree12" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(5856.97, 753.531)
|
|
||||||
scale = Vector2(3.3702, 3.05266)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree13" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(6888, 912)
|
|
||||||
scale = Vector2(3.3702, 3.05266)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree14" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(7088.48, 752.766)
|
|
||||||
scale = Vector2(3.69909, 3.46732)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree15" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(7224, 888)
|
|
||||||
scale = Vector2(3.1922, 3.25497)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="tree7" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(4392, 1152)
|
|
||||||
scale = Vector2(2.55123, 1.88928)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
flip_h = true
|
|
||||||
|
|
||||||
[node name="tree8" type="Sprite2D" parent="ParallaxBackground/background layer 4/Kenney Assets"]
|
|
||||||
modulate = Color(0.431357, 0.282353, 0.415717, 1)
|
|
||||||
position = Vector2(2944, 992)
|
|
||||||
scale = Vector2(3.008, 2.76803)
|
|
||||||
texture = ExtResource("14_d53cn")
|
|
||||||
|
|
||||||
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 4"]
|
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 4"]
|
||||||
z_index = -200
|
z_index = -200
|
||||||
material = SubResource("ShaderMaterial_wtdui")
|
material = SubResource("ShaderMaterial_wtdui")
|
||||||
@@ -604,8 +505,31 @@ position = Vector2(7923, 727)
|
|||||||
scale = Vector2(2.75, 2.75)
|
scale = Vector2(2.75, 2.75)
|
||||||
texture = ExtResource("13_0qu0h")
|
texture = ExtResource("13_0qu0h")
|
||||||
|
|
||||||
|
[node name="background layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -200
|
||||||
|
position = Vector2(0, -82)
|
||||||
|
motion_scale = Vector2(0.5, 0.5)
|
||||||
|
motion_offset = Vector2(1000, 0)
|
||||||
|
motion_mirroring = Vector2(10480, 0)
|
||||||
|
|
||||||
|
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 5"]
|
||||||
|
z_index = -200
|
||||||
|
material = SubResource("ShaderMaterial_065st")
|
||||||
|
position = Vector2(2668, 726)
|
||||||
|
scale = Vector2(2.75, 2.75)
|
||||||
|
texture = ExtResource("13_0qu0h")
|
||||||
|
flip_h = true
|
||||||
|
|
||||||
|
[node name="JelenaMockupBg03" type="Sprite2D" parent="ParallaxBackground/background layer 5"]
|
||||||
|
z_index = -200
|
||||||
|
material = SubResource("ShaderMaterial_065st")
|
||||||
|
position = Vector2(7923, 727)
|
||||||
|
scale = Vector2(2.75, 2.75)
|
||||||
|
texture = ExtResource("13_0qu0h")
|
||||||
|
flip_h = true
|
||||||
|
|
||||||
[node name="back back trees layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="back back trees layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
visible = false
|
z_index = -150
|
||||||
position = Vector2(0, -256)
|
position = Vector2(0, -256)
|
||||||
motion_scale = Vector2(0.7, 0.7)
|
motion_scale = Vector2(0.7, 0.7)
|
||||||
motion_mirroring = Vector2(9965, 0)
|
motion_mirroring = Vector2(9965, 0)
|
||||||
@@ -762,7 +686,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(358, 523, 345, 289)
|
region_rect = Rect2(358, 523, 345, 289)
|
||||||
|
|
||||||
[node name="back tree bois layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="back tree bois layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
visible = false
|
z_index = -100
|
||||||
position = Vector2(28, -28)
|
position = Vector2(28, -28)
|
||||||
motion_mirroring = Vector2(10000, 0)
|
motion_mirroring = Vector2(10000, 0)
|
||||||
|
|
||||||
@@ -875,17 +799,20 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1834, -5, 733, 1360)
|
region_rect = Rect2(1834, -5, 733, 1360)
|
||||||
|
|
||||||
[node name="sunflower field" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="sunflower field" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
|
z_index = -50
|
||||||
motion_mirroring = Vector2(3779, 0)
|
motion_mirroring = Vector2(3779, 0)
|
||||||
|
|
||||||
[node name="Sonnenblumeseamless" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
[node name="Sonnenblumeseamless" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
||||||
z_index = -50
|
modulate = Color(1, 1, 1, 0.7921569)
|
||||||
position = Vector2(1892, 1863)
|
position = Vector2(0, 1863)
|
||||||
texture = ExtResource("23_d77e7")
|
texture = ExtResource("23_d77e7")
|
||||||
|
offset = Vector2(1892, 0)
|
||||||
|
|
||||||
[node name="Sonnenblumeseamless2" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
[node name="Sonnenblumeseamless2" type="Sprite2D" parent="ParallaxBackground/sunflower field"]
|
||||||
z_index = -50
|
modulate = Color(1, 1, 1, 0.7921569)
|
||||||
position = Vector2(9411, 1863)
|
position = Vector2(0, 1863)
|
||||||
texture = ExtResource("23_d77e7")
|
texture = ExtResource("23_d77e7")
|
||||||
|
offset = Vector2(9450, 0)
|
||||||
|
|
||||||
[node name="ground layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="ground layer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
position = Vector2(80, 208)
|
position = Vector2(80, 208)
|
||||||
@@ -1030,7 +957,6 @@ y_sort_enabled = true
|
|||||||
[node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")]
|
[node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")]
|
||||||
position = Vector2(6403, 3362)
|
position = Vector2(6403, 3362)
|
||||||
_timelinesToPlay = PackedStringArray("yeli_quest_select")
|
_timelinesToPlay = PackedStringArray("yeli_quest_select")
|
||||||
_retriggerSameTimeline = true
|
|
||||||
|
|
||||||
[node name="Vesna" parent="YSorted" instance=ExtResource("1_7wfwe")]
|
[node name="Vesna" parent="YSorted" instance=ExtResource("1_7wfwe")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
@@ -1118,6 +1044,24 @@ shape = SubResource("CircleShape2D_tm0yg")
|
|||||||
[node name="Icon" parent="YSorted/SeedPickup" index="4"]
|
[node name="Icon" parent="YSorted/SeedPickup" index="4"]
|
||||||
scale = Vector2(1, 1)
|
scale = Vector2(1, 1)
|
||||||
|
|
||||||
|
[node name="BeetPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
|
position = Vector2(5787, 2269)
|
||||||
|
_finiteSupply = 3
|
||||||
|
metadata/SaveID = "e1bbe13f-0622-42b8-97f3-87a8af369dc0"
|
||||||
|
|
||||||
|
[node name="SpawnWithItem" parent="YSorted/BeetPickup" index="0"]
|
||||||
|
_blueprint = ExtResource("36_q1g8e")
|
||||||
|
|
||||||
|
[node name="PickupInteractionArea" parent="YSorted/BeetPickup" index="3" node_paths=PackedStringArray("_spritesToOutline")]
|
||||||
|
_spritesToOutline = [NodePath("../../SeedPickup/Icon")]
|
||||||
|
metadata/SaveID = "ad152c51-3631-42c1-9aa4-4df896b35d8c"
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="YSorted/BeetPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_tm0yg")
|
||||||
|
|
||||||
|
[node name="Icon" parent="YSorted/BeetPickup" index="4"]
|
||||||
|
scale = Vector2(1, 1)
|
||||||
|
|
||||||
[node name="SeedPickup2" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="SeedPickup2" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
position = Vector2(10705, 2257)
|
position = Vector2(10705, 2257)
|
||||||
_finiteSupply = 3
|
_finiteSupply = 3
|
||||||
@@ -2372,9 +2316,9 @@ position = Vector2(-4659, 2897)
|
|||||||
position = Vector2(-5016, 3361)
|
position = Vector2(-5016, 3361)
|
||||||
|
|
||||||
[node name="trash" type="Node2D" parent="YSorted"]
|
[node name="trash" type="Node2D" parent="YSorted"]
|
||||||
visible = false
|
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
position = Vector2(-569, -42)
|
||||||
|
|
||||||
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
@@ -2582,6 +2526,7 @@ script = ExtResource("80_w1kgo")
|
|||||||
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
|
[connection signal="SuccessfulPickUp" from="YSorted/BeetPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup2" to="YSorted/Vesna" method="HandlePickUp"]
|
[connection signal="SuccessfulPickUp" from="YSorted/SeedPickup2" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="InteractedTool" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadSceneAtIndex"]
|
[connection signal="InteractedTool" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadSceneAtIndex"]
|
||||||
[connection signal="InteractedTool" from="YSorted/Blocker/InteractionArea" to="." method="LoadSceneAtIndex"]
|
[connection signal="InteractedTool" from="YSorted/Blocker/InteractionArea" to="." method="LoadSceneAtIndex"]
|
||||||
@@ -2606,6 +2551,8 @@ script = ExtResource("80_w1kgo")
|
|||||||
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/SeedPickup"]
|
[editable path="YSorted/SeedPickup"]
|
||||||
[editable path="YSorted/SeedPickup/PickupInteractionArea"]
|
[editable path="YSorted/SeedPickup/PickupInteractionArea"]
|
||||||
|
[editable path="YSorted/BeetPickup"]
|
||||||
|
[editable path="YSorted/BeetPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/SeedPickup2"]
|
[editable path="YSorted/SeedPickup2"]
|
||||||
[editable path="YSorted/SeedPickup2/PickupInteractionArea"]
|
[editable path="YSorted/SeedPickup2/PickupInteractionArea"]
|
||||||
[editable path="YSorted/Blocker/InteractionArea"]
|
[editable path="YSorted/Blocker/InteractionArea"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://cjshlwk8ajpnp"]
|
[gd_scene load_steps=20 format=3 uid="uid://cjshlwk8ajpnp"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cnhpnn8o0gybd" path="res://scripts/CSharp/Common/Fight/FightHappeningSceneSetup.cs" id="1_fiutj"]
|
[ext_resource type="Script" uid="uid://cnhpnn8o0gybd" path="res://scripts/CSharp/Common/Fight/FightHappeningSceneSetup.cs" id="1_fiutj"]
|
||||||
[ext_resource type="Script" uid="uid://c76mhhqyk4lgh" path="res://scripts/CSharp/Common/Fight/FightHappening.cs" id="1_gsk03"]
|
[ext_resource type="Script" uid="uid://c76mhhqyk4lgh" path="res://scripts/CSharp/Common/Fight/FightHappening.cs" id="1_gsk03"]
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://dwsqst8fhhqlc" path="res://scripts/CSharp/Common/Fight/AllFightersVisual.cs" id="2_lu4y4"]
|
[ext_resource type="Script" uid="uid://dwsqst8fhhqlc" path="res://scripts/CSharp/Common/Fight/AllFightersVisual.cs" id="2_lu4y4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bcld43daavmrn" path="res://prefabs/fight/fight_scene_switcher.tscn" id="2_phrlx"]
|
[ext_resource type="PackedScene" uid="uid://bcld43daavmrn" path="res://prefabs/fight/fight_scene_switcher.tscn" id="2_phrlx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://7jsxokx67gpq" path="res://prefabs/fight/fighterVisuals/vesna_fighter_visual.tscn" id="4_qo0gi"]
|
[ext_resource type="PackedScene" uid="uid://7jsxokx67gpq" path="res://prefabs/fight/fighterVisuals/vesna_fighter_visual.tscn" id="4_qo0gi"]
|
||||||
|
[ext_resource type="Script" uid="uid://cdrjvgm82pxoj" path="res://scripts/CSharp/Common/Fight/FightHappeningAnimationContext.cs" id="4_v5rv6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://0vm3jb1hnkkb" path="res://prefabs/fight/fighterVisuals/blob_fighter_visual.tscn" id="4_vp8s0"]
|
[ext_resource type="PackedScene" uid="uid://0vm3jb1hnkkb" path="res://prefabs/fight/fighterVisuals/blob_fighter_visual.tscn" id="4_vp8s0"]
|
||||||
[ext_resource type="Script" uid="uid://buiwuf7pjfq8" path="res://scripts/CSharp/Common/Fight/FightHappeningStateReaction.cs" id="4_ydj1i"]
|
[ext_resource type="Script" uid="uid://buiwuf7pjfq8" path="res://scripts/CSharp/Common/Fight/FightHappeningStateReaction.cs" id="4_ydj1i"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bydwj3pbvqrhb" path="res://prefabs/minigame/minigame.tscn" id="8_2b3cf"]
|
[ext_resource type="PackedScene" uid="uid://bydwj3pbvqrhb" path="res://prefabs/minigame/minigame.tscn" id="8_2b3cf"]
|
||||||
@@ -13,20 +14,30 @@
|
|||||||
[ext_resource type="Script" uid="uid://bwm0nhvt1083k" path="res://scripts/CSharp/Common/Fight/FightMinigameHandler.cs" id="8_falfe"]
|
[ext_resource type="Script" uid="uid://bwm0nhvt1083k" path="res://scripts/CSharp/Common/Fight/FightMinigameHandler.cs" id="8_falfe"]
|
||||||
[ext_resource type="Script" uid="uid://d2ugtb3dalrg3" path="res://scripts/CSharp/Common/Fight/FightHappeningStateDebugger.cs" id="8_tv7cl"]
|
[ext_resource type="Script" uid="uid://d2ugtb3dalrg3" path="res://scripts/CSharp/Common/Fight/FightHappeningStateDebugger.cs" id="8_tv7cl"]
|
||||||
[ext_resource type="Script" uid="uid://2f7rqk50gtdg" path="res://scripts/CSharp/Common/Fight/SwitchSceneOnFightEnd.cs" id="10_qqd8u"]
|
[ext_resource type="Script" uid="uid://2f7rqk50gtdg" path="res://scripts/CSharp/Common/Fight/SwitchSceneOnFightEnd.cs" id="10_qqd8u"]
|
||||||
|
[ext_resource type="Script" uid="uid://6nniwfxye8ss" path="res://scripts/CSharp/Common/Fight/UsedItemIndicatorVisual.cs" id="14_b4ll5"]
|
||||||
|
[ext_resource type="Script" uid="uid://71mdwp2m4rta" path="res://scripts/CSharp/Common/Fight/UI/HealButtonVisual.cs" id="14_oy2wu"]
|
||||||
|
[ext_resource type="Resource" uid="uid://0mnsr4anoaiq" path="res://resources/items/beet.tres" id="15_k4fcr"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://l1hdihubffeg" path="res://prefabs/fight/damage_flying_nuber.tscn" id="15_oy2wu"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djewfwrdt4iv3" path="res://art/ui/UI/icons/icon-fruit-beetroot.png" id="16_k4fcr"]
|
||||||
|
|
||||||
[node name="BabushkaSceneFightHappening" type="Node2D"]
|
[node name="BabushkaSceneFightHappening" type="Node2D"]
|
||||||
|
|
||||||
[node name="FightHappening" type="Node" parent="."]
|
[node name="FightHappening" type="Node" parent="."]
|
||||||
script = ExtResource("1_gsk03")
|
script = ExtResource("1_gsk03")
|
||||||
|
|
||||||
[node name="ActionAnimationController" type="Node" parent="." node_paths=PackedStringArray("_allFightersVisual")]
|
[node name="ActionAnimationController" type="Node" parent="." node_paths=PackedStringArray("_allFightersVisual", "_animationContext")]
|
||||||
script = ExtResource("2_7kjgs")
|
script = ExtResource("2_7kjgs")
|
||||||
_allFightersVisual = NodePath("../FightVisuals")
|
_allFightersVisual = NodePath("../FightVisuals")
|
||||||
|
_animationContext = NodePath("AnimationContext")
|
||||||
|
|
||||||
[node name="StateReactionActionAnimation" type="Node" parent="ActionAnimationController"]
|
[node name="StateReactionActionAnimation" type="Node" parent="ActionAnimationController"]
|
||||||
script = ExtResource("4_ydj1i")
|
script = ExtResource("4_ydj1i")
|
||||||
_fightState = 10
|
_fightState = 10
|
||||||
|
|
||||||
|
[node name="AnimationContext" type="Node" parent="ActionAnimationController" node_paths=PackedStringArray("useHealItemIndicator")]
|
||||||
|
script = ExtResource("4_v5rv6")
|
||||||
|
useHealItemIndicator = NodePath("../../UseItemIndicator")
|
||||||
|
|
||||||
[node name="Camera2D" type="Camera2D" parent="."]
|
[node name="Camera2D" type="Camera2D" parent="."]
|
||||||
|
|
||||||
[node name="FightSetup" type="Node2D" parent="."]
|
[node name="FightSetup" type="Node2D" parent="."]
|
||||||
@@ -146,7 +157,12 @@ theme_override_constants/margin_bottom = 10
|
|||||||
[node name="Talk Button" type="Button" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer3"]
|
[node name="Talk Button" type="Button" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer3"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 41
|
theme_override_font_sizes/font_size = 41
|
||||||
text = "Talk"
|
text = "x19 - Heal"
|
||||||
|
icon = ExtResource("16_k4fcr")
|
||||||
|
alignment = 0
|
||||||
|
expand_icon = true
|
||||||
|
script = ExtResource("14_oy2wu")
|
||||||
|
_healItemBlueprint = ExtResource("15_k4fcr")
|
||||||
|
|
||||||
[node name="MarginContainer4" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer"]
|
[node name="MarginContainer4" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -168,6 +184,7 @@ theme_override_constants/margin_left = 200
|
|||||||
theme_override_constants/margin_right = 200
|
theme_override_constants/margin_right = 200
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer2"]
|
[node name="MarginContainer" type="MarginContainer" parent="ActionSelect/BottomPanel/VBoxContainer/MarginContainer2"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/margin_left = 10
|
theme_override_constants/margin_left = 10
|
||||||
theme_override_constants/margin_top = 10
|
theme_override_constants/margin_top = 10
|
||||||
@@ -206,6 +223,12 @@ offset_right = 794.0
|
|||||||
offset_bottom = -472.0
|
offset_bottom = -472.0
|
||||||
text = "Hello world"
|
text = "Hello world"
|
||||||
|
|
||||||
|
[node name="UseItemIndicator" type="Node2D" parent="."]
|
||||||
|
position = Vector2(214, 319)
|
||||||
|
script = ExtResource("14_b4ll5")
|
||||||
|
_flyingIndicatorPrefab = ExtResource("15_oy2wu")
|
||||||
|
_itemTexture = ExtResource("16_k4fcr")
|
||||||
|
|
||||||
[connection signal="SignalTransitionState" from="FightHappening" to="ActionAnimationController/StateReactionActionAnimation" method="FightHappeningStateTransitioned"]
|
[connection signal="SignalTransitionState" from="FightHappening" to="ActionAnimationController/StateReactionActionAnimation" method="FightHappeningStateTransitioned"]
|
||||||
[connection signal="SignalTransitionState" from="FightHappening" to="FightVisuals" method="FightHappeningStateChange"]
|
[connection signal="SignalTransitionState" from="FightHappening" to="FightVisuals" method="FightHappeningStateChange"]
|
||||||
[connection signal="SignalTransitionState" from="FightHappening" to="ActionSelect/StateReactionInputActionSelect" method="FightHappeningStateTransitioned"]
|
[connection signal="SignalTransitionState" from="FightHappening" to="ActionSelect/StateReactionInputActionSelect" method="FightHappeningStateTransitioned"]
|
||||||
@@ -220,4 +243,5 @@ text = "Hello world"
|
|||||||
[connection signal="pressed" from="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer4/Flee Button" to="ActionSelect" method="SelectAction" binds= [4]]
|
[connection signal="pressed" from="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer4/Flee Button" to="ActionSelect" method="SelectAction" binds= [4]]
|
||||||
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="show"]
|
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="show"]
|
||||||
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="StateEntered"]
|
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="StateEntered"]
|
||||||
|
[connection signal="OnStateEntered" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect/BottomPanel/VBoxContainer/MarginContainer/HBoxContainer/MarginContainer3/Talk Button" method="UpdateText"]
|
||||||
[connection signal="OnStateExited" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="hide"]
|
[connection signal="OnStateExited" from="ActionSelect/StateReactionInputActionSelect" to="ActionSelect" method="hide"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=53 format=3 uid="uid://cacnapfv7w567"]
|
[gd_scene load_steps=52 format=3 uid="uid://cacnapfv7w567"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="1_pi6ua"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="1_pi6ua"]
|
||||||
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_hqa4k"]
|
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_hqa4k"]
|
||||||
@@ -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,4 +1,4 @@
|
|||||||
[gd_scene load_steps=40 format=3 uid="uid://bm21nqepnwaik"]
|
[gd_scene load_steps=41 format=3 uid="uid://bm21nqepnwaik"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_3vr4f"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_3vr4f"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="2_ubg3a"]
|
[ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="2_ubg3a"]
|
||||||
@@ -30,16 +30,13 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="21_ytap8"]
|
[ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="21_ytap8"]
|
||||||
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="22_tggq2"]
|
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="22_tggq2"]
|
||||||
[ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"]
|
[ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://da67c7avarwq2" path="res://art/indoor/kitchen_bgAssets.png" id="23_d7yky"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_yd2gv"]
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_yd2gv"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
size = Vector2(3836, 1086)
|
size = Vector2(3836, 1086)
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
radius = 300.0
|
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
@@ -210,19 +207,24 @@ _data = {
|
|||||||
&"hand_stretch": SubResource("Animation_8o6or")
|
&"hand_stretch": SubResource("Animation_8o6or")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_wuntg"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_wuntg"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 400.0
|
radius = 400.0
|
||||||
|
|
||||||
[node name="IndoorTest" type="Node2D"]
|
[node name="Common Room" type="Node2D"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_3vr4f")
|
script = ExtResource("1_3vr4f")
|
||||||
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_farm_outside_2d.tscn")
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_indoor_kitchen.tscn", "res://scenes/Babushka_scene_farm_outside_2d.tscn")
|
||||||
|
|
||||||
[node name="Foreground" type="Node" parent="."]
|
[node name="Foreground" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="Table" type="Sprite2D" parent="Foreground"]
|
[node name="Table" type="Sprite2D" parent="Foreground"]
|
||||||
|
z_index = 2
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-1888, 1112)
|
position = Vector2(-1888, 1112)
|
||||||
texture = ExtResource("2_ubg3a")
|
texture = ExtResource("2_ubg3a")
|
||||||
@@ -231,6 +233,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(1012, 1743, 1470, 417)
|
region_rect = Rect2(1012, 1743, 1470, 417)
|
||||||
|
|
||||||
[node name="Chair" type="Sprite2D" parent="Foreground"]
|
[node name="Chair" type="Sprite2D" parent="Foreground"]
|
||||||
|
z_index = 3
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-3032, 2096)
|
position = Vector2(-3032, 2096)
|
||||||
texture = ExtResource("3_gpagp")
|
texture = ExtResource("3_gpagp")
|
||||||
@@ -302,34 +305,6 @@ region_rect = Rect2(111, 292, 3323, 2160)
|
|||||||
position = Vector2(950, -419)
|
position = Vector2(950, -419)
|
||||||
shape = SubResource("RectangleShape2D_a2ood")
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
[node name="Room01DorrR" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -50
|
|
||||||
position = Vector2(936, -216)
|
|
||||||
texture = ExtResource("6_blyw3")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(3161, 313, 679, 1050)
|
|
||||||
|
|
||||||
[node name="OutsideDoor" parent="BackWall/Room01DorrR" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
|
||||||
position = Vector2(-7, 248)
|
|
||||||
scale = Vector2(1.5, 1.5)
|
|
||||||
_spritesToOutline = [NodePath("..")]
|
|
||||||
_id = 1
|
|
||||||
|
|
||||||
[node name="Room01DoorL" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -50
|
|
||||||
position = Vector2(-3296, 48)
|
|
||||||
texture = ExtResource("7_yd2gv")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(0, 0, 3840, 2160)
|
|
||||||
|
|
||||||
[node name="VesnasRoomDoor" parent="BackWall/Room01DoorL" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
|
||||||
position = Vector2(-1559, -16)
|
|
||||||
_spritesToOutline = [NodePath("..")]
|
|
||||||
_id = 0
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="BackWall/Room01DoorL/VesnasRoomDoor/Area2D" index="0"]
|
|
||||||
shape = SubResource("CircleShape2D_yd2gv")
|
|
||||||
|
|
||||||
[node name="Room01Pechka" type="Sprite2D" parent="BackWall"]
|
[node name="Room01Pechka" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -80
|
z_index = -80
|
||||||
position = Vector2(-224, -392)
|
position = Vector2(-224, -392)
|
||||||
@@ -339,14 +314,14 @@ region_rect = Rect2(2236, 0, 724, 1392)
|
|||||||
|
|
||||||
[node name="Room01Window2" type="Sprite2D" parent="BackWall"]
|
[node name="Room01Window2" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -50
|
z_index = -50
|
||||||
position = Vector2(-3192, -344)
|
position = Vector2(-5870, -408)
|
||||||
texture = ExtResource("9_aoesu")
|
texture = ExtResource("9_aoesu")
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1020, 338, 607, 757)
|
region_rect = Rect2(1020, 338, 607, 757)
|
||||||
|
|
||||||
[node name="Room01Window3" type="Sprite2D" parent="BackWall"]
|
[node name="Room01Window3" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -50
|
z_index = -50
|
||||||
position = Vector2(-1792, -336)
|
position = Vector2(-3931, -397)
|
||||||
texture = ExtResource("9_aoesu")
|
texture = ExtResource("9_aoesu")
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1020, 338, 607, 757)
|
region_rect = Rect2(1020, 338, 607, 757)
|
||||||
@@ -372,46 +347,39 @@ texture = ExtResource("11_as3nm")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(2469, 459, 247, 131)
|
region_rect = Rect2(2469, 459, 247, 131)
|
||||||
|
|
||||||
[node name="Room01Shelf" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -50
|
|
||||||
position = Vector2(-880, -416)
|
|
||||||
texture = ExtResource("12_bu2a1")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(1846, 471, 348, 490)
|
|
||||||
|
|
||||||
[node name="Bench" type="Sprite2D" parent="BackWall"]
|
[node name="Bench" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -10
|
z_index = -10
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-3240, 224)
|
position = Vector2(-5070, 1051)
|
||||||
texture = ExtResource("13_rongr")
|
texture = ExtResource("13_rongr")
|
||||||
flip_h = true
|
flip_h = true
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1156, 1185, 940, 189)
|
region_rect = Rect2(1156, 1185, 940, 189)
|
||||||
|
|
||||||
[node name="Bench2" type="Sprite2D" parent="BackWall"]
|
[node name="Katze" type="Sprite2D" parent="BackWall/Bench"]
|
||||||
z_index = -10
|
z_index = -10
|
||||||
position = Vector2(-1824, 224)
|
position = Vector2(61, -87)
|
||||||
texture = ExtResource("13_rongr")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(1156, 1185, 940, 189)
|
|
||||||
|
|
||||||
[node name="Katze" type="Sprite2D" parent="BackWall"]
|
|
||||||
z_index = -10
|
|
||||||
position = Vector2(-4051, 332)
|
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
texture = ExtResource("15_sndxu")
|
texture = ExtResource("15_sndxu")
|
||||||
offset = Vector2(-8, -126)
|
offset = Vector2(-8, -126)
|
||||||
|
|
||||||
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="BackWall/Katze"]
|
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="BackWall/Bench/Katze"]
|
||||||
stream = SubResource("AudioStreamRandomizer_b6vf7")
|
stream = SubResource("AudioStreamRandomizer_b6vf7")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("22_tggq2")
|
script = ExtResource("22_tggq2")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="BackWall/Katze" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
[node name="InteractionArea" parent="BackWall/Bench/Katze" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
position = Vector2(-6.5, -44)
|
position = Vector2(-6.5, -44)
|
||||||
scale = Vector2(0.5, 0.5)
|
scale = Vector2(0.5, 0.5)
|
||||||
_spritesToOutline = [NodePath("..")]
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
|
||||||
|
[node name="Bench2" type="Sprite2D" parent="BackWall"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-2906, 243)
|
||||||
|
texture = ExtResource("13_rongr")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1156, 1185, 940, 189)
|
||||||
|
|
||||||
[node name="Room assets" type="Node" parent="BackWall"]
|
[node name="Room assets" type="Node" parent="BackWall"]
|
||||||
|
|
||||||
[node name="wood" type="Sprite2D" parent="BackWall/Room assets"]
|
[node name="wood" type="Sprite2D" parent="BackWall/Room assets"]
|
||||||
@@ -432,19 +400,10 @@ offset = Vector2(-14.6475, -97.651)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(3157, 688, 118.519, 221)
|
region_rect = Rect2(3157, 688, 118.519, 221)
|
||||||
|
|
||||||
[node name="vase" type="Sprite2D" parent="BackWall/Room assets"]
|
|
||||||
z_index = -10
|
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-857, -37.5)
|
|
||||||
texture = ExtResource("4_27bwy")
|
|
||||||
offset = Vector2(0, -296)
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(2748, 432, 174, 191)
|
|
||||||
|
|
||||||
[node name="candle" type="Sprite2D" parent="BackWall/Room assets"]
|
[node name="candle" type="Sprite2D" parent="BackWall/Room assets"]
|
||||||
z_index = -10
|
z_index = -10
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-425, -77.5)
|
position = Vector2(-852, -187)
|
||||||
rotation = -0.0663225
|
rotation = -0.0663225
|
||||||
texture = ExtResource("4_27bwy")
|
texture = ExtResource("4_27bwy")
|
||||||
offset = Vector2(0, -296)
|
offset = Vector2(0, -296)
|
||||||
@@ -532,6 +491,66 @@ offset = Vector2(0, -296)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(2576, 802, 219, 64)
|
region_rect = Rect2(2576, 802, 219, 64)
|
||||||
|
|
||||||
|
[node name="Doors" type="Node2D" parent="BackWall"]
|
||||||
|
|
||||||
|
[node name="Door_Kitchen" type="Sprite2D" parent="BackWall/Doors"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(923, -221)
|
||||||
|
texture = ExtResource("6_blyw3")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3161, 313, 679, 1050)
|
||||||
|
|
||||||
|
[node name="KitchendoorInteraction" parent="BackWall/Doors/Door_Kitchen" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-7, 248)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 1
|
||||||
|
|
||||||
|
[node name="Door_Outside" type="Sprite2D" parent="BackWall/Doors"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-4917, -226)
|
||||||
|
texture = ExtResource("23_d7yky")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3009, 666, 679, 1050)
|
||||||
|
|
||||||
|
[node name="OutsideDoor" parent="BackWall/Doors/Door_Outside" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-7, 248)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 2
|
||||||
|
|
||||||
|
[node name="Door_Bedroom" type="Sprite2D" parent="BackWall/Doors"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-1620, -259)
|
||||||
|
texture = ExtResource("7_yd2gv")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 165, 763, 1224)
|
||||||
|
|
||||||
|
[node name="VesnasRoomDoor" parent="BackWall/Doors/Door_Bedroom" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(2, 233)
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="BackWall/Doors/Door_Bedroom/VesnasRoomDoor/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_yd2gv")
|
||||||
|
|
||||||
|
[node name="Shelf" type="Sprite2D" parent="BackWall"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-880, -416)
|
||||||
|
texture = ExtResource("12_bu2a1")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1846, 471, 348, 490)
|
||||||
|
|
||||||
|
[node name="vase" type="Sprite2D" parent="BackWall/Shelf"]
|
||||||
|
visible = false
|
||||||
|
z_index = -10
|
||||||
|
y_sort_enabled = true
|
||||||
|
position = Vector2(23, 378.5)
|
||||||
|
texture = ExtResource("4_27bwy")
|
||||||
|
offset = Vector2(0, -296)
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(2748, 432, 174, 191)
|
||||||
|
|
||||||
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
|
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
|
||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(-920, 319)
|
position = Vector2(-920, 319)
|
||||||
@@ -539,18 +558,18 @@ position = Vector2(-920, 319)
|
|||||||
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
|
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
|
||||||
z_index = 0
|
z_index = 0
|
||||||
y_sort_enabled = false
|
y_sort_enabled = false
|
||||||
position = Vector2(-1395, 16)
|
position = Vector2(-2841, 198)
|
||||||
_timelinesToPlay = PackedStringArray("yeli_intro_05")
|
_timelinesToPlay = PackedStringArray("yeli_intro_05")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="Yeli" index="0"]
|
[node name="InteractionArea" parent="Yeli" index="0"]
|
||||||
position = Vector2(-373, -63)
|
position = Vector2(0, -63)
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
|
||||||
position = Vector2(-225.99994, 33)
|
position = Vector2(-225.99994, 33)
|
||||||
shape = SubResource("CircleShape2D_wuntg")
|
shape = SubResource("CircleShape2D_wuntg")
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
|
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
|
||||||
position = Vector2(-576, 368)
|
position = Vector2(-224, 373)
|
||||||
|
|
||||||
[node name="CollisionShape2D" parent="Yeli/AnimatableBody2D" index="0"]
|
[node name="CollisionShape2D" parent="Yeli/AnimatableBody2D" index="0"]
|
||||||
position = Vector2(-565, 464)
|
position = Vector2(-565, 464)
|
||||||
@@ -578,15 +597,16 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
|
|||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
|
||||||
|
|
||||||
[connection signal="InteractedTool" from="BackWall/Room01DorrR/OutsideDoor" to="." method="LoadSceneAtIndex"]
|
|
||||||
[connection signal="InteractedTool" from="BackWall/Room01DoorL/VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
|
|
||||||
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room01PechkaDoor/InteractionArea" method="ToggleActive"]
|
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room01PechkaDoor/InteractionArea" method="ToggleActive"]
|
||||||
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room assets/hand" method="PlayAnimation"]
|
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room assets/hand" method="PlayAnimation"]
|
||||||
[connection signal="Interacted" from="BackWall/Katze/InteractionArea" to="BackWall/Katze/AudioStreamPlayer2D" method="PlayOneShot"]
|
[connection signal="Interacted" from="BackWall/Bench/Katze/InteractionArea" to="BackWall/Bench/Katze/AudioStreamPlayer2D" method="PlayOneShot"]
|
||||||
|
[connection signal="InteractedTool" from="BackWall/Doors/Door_Kitchen/KitchendoorInteraction" to="." method="LoadSceneAtIndex"]
|
||||||
|
[connection signal="InteractedTool" from="BackWall/Doors/Door_Outside/OutsideDoor" to="." method="LoadSceneAtIndex"]
|
||||||
|
[connection signal="InteractedTool" from="BackWall/Doors/Door_Bedroom/VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
|
||||||
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="Yeli/Beetroot Quest trigger" method="Trigger"]
|
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="Yeli/Beetroot Quest trigger" method="Trigger"]
|
||||||
|
|
||||||
[editable path="BackWall/Room01DoorL/VesnasRoomDoor"]
|
|
||||||
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
|
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
|
||||||
|
[editable path="BackWall/Doors/Door_Bedroom/VesnasRoomDoor"]
|
||||||
[editable path="Vesna"]
|
[editable path="Vesna"]
|
||||||
[editable path="Yeli"]
|
[editable path="Yeli"]
|
||||||
[editable path="Yeli/InteractionArea"]
|
[editable path="Yeli/InteractionArea"]
|
||||||
|
|||||||
@@ -0,0 +1,282 @@
|
|||||||
|
[gd_scene load_steps=10 format=3 uid="uid://bvp5ju36h1vl2"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_ftmt4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://da67c7avarwq2" path="res://art/indoor/kitchen_bgAssets.png" id="2_qsw8g"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://x7trh4dgsvoe" path="res://art/indoor/room export/Room_01_assets.png" id="5_3wvmt"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="7_6mpmc"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="25_58hm8"]
|
||||||
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="30_wqpex"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="31_jyyyu"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
size = Vector2(4757.2813, 1086)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[node name="Kitchen" type="Node2D"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
|
script = ExtResource("1_ftmt4")
|
||||||
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_common_room.tscn")
|
||||||
|
|
||||||
|
[node name="Foreground" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="FrontCollider" type="StaticBody2D" parent="Foreground"]
|
||||||
|
position = Vector2(-4344, 3056)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Foreground/FrontCollider"]
|
||||||
|
position = Vector2(950, -419)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="SideColliderLeft" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2(-4344, 3056)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="SideColliderLeft"]
|
||||||
|
position = Vector2(-2461.1406, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="SideColliderRight" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2(10992, 2856)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="SideColliderRight"]
|
||||||
|
position = Vector2(-2863.5, -1165)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="Background" type="Node2D" parent="."]
|
||||||
|
z_index = -100
|
||||||
|
|
||||||
|
[node name="Ceiling" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(-2453, -1419)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 1749.6222, 3840, 358.11316)
|
||||||
|
|
||||||
|
[node name="WallUpper" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(-2469, -969)
|
||||||
|
scale = Vector2(26, 2)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1405.1335, 120.67705, 306.53345, 90.03079)
|
||||||
|
|
||||||
|
[node name="Wall" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(-2460, -262)
|
||||||
|
scale = Vector2(31, 8)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1755, 119, 254, 160)
|
||||||
|
|
||||||
|
[node name="WallDecoration" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -20
|
||||||
|
position = Vector2(-4498, -300)
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration2" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(356, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration3" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(732, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration4" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(1110.6666, -3.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration12" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-1123.3334, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration13" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-747.3334, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration14" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-368.66675, -3.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration5" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(1486.6666, -3.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration6" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(1854, 6)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration7" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(2230, 6)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration8" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(2608.6665, 2.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration9" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(2984.6665, 2.5)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration10" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(3333.9998, 2.6666667)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="WallDecoration11" type="Sprite2D" parent="Background/WallDecoration"]
|
||||||
|
position = Vector2(3698, 2.6666667)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(820.787, 78.31859, 448.79602, 821.64185)
|
||||||
|
|
||||||
|
[node name="Floor" type="Sprite2D" parent="Background"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-2431, 670)
|
||||||
|
scale = Vector2(2, 1)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(0, 2246, 3840, 912)
|
||||||
|
|
||||||
|
[node name="Room01DoorL" type="Sprite2D" parent="Background"]
|
||||||
|
position = Vector2(-4000, -221)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(92, 458, 641, 1050)
|
||||||
|
|
||||||
|
[node name="CommonRoomDoor" parent="Background/Room01DoorL" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_6mpmc")]
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="Background/Room01DoorL/CommonRoomDoor/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_yd2gv")
|
||||||
|
|
||||||
|
[node name="BackwallCollider" type="StaticBody2D" parent="Background"]
|
||||||
|
position = Vector2(-4368, 40)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Background/BackwallCollider"]
|
||||||
|
position = Vector2(950, -419)
|
||||||
|
shape = SubResource("RectangleShape2D_a2ood")
|
||||||
|
|
||||||
|
[node name="Vesna" parent="." instance=ExtResource("25_58hm8")]
|
||||||
|
y_sort_enabled = false
|
||||||
|
position = Vector2(-1971, 319)
|
||||||
|
|
||||||
|
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")]
|
||||||
|
position = Vector2(-1534, -29)
|
||||||
|
offset = Vector2(0, -200)
|
||||||
|
zoom = Vector2(0.5, 0.5)
|
||||||
|
limit_left = -4500
|
||||||
|
limit_top = -1050
|
||||||
|
limit_right = 500
|
||||||
|
limit_bottom = 1150
|
||||||
|
editor_draw_limits = true
|
||||||
|
script = ExtResource("30_wqpex")
|
||||||
|
_followNode = NodePath("../Vesna/CharacterBody2D")
|
||||||
|
|
||||||
|
[node name="CanvasLayer" parent="." instance=ExtResource("31_jyyyu")]
|
||||||
|
|
||||||
|
[node name="BackItems" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="cupboard" type="Sprite2D" parent="BackItems"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-2071, 114)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1359, 440, 1591, 401)
|
||||||
|
|
||||||
|
[node name="wallshelf" type="Sprite2D" parent="BackItems"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-1708, -335)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3037, 440, 701, 170)
|
||||||
|
|
||||||
|
[node name="wallshelf2" type="Sprite2D" parent="BackItems/wallshelf"]
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(-700, 0)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
flip_h = true
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(3037, 440, 701, 170)
|
||||||
|
|
||||||
|
[node name="vase" type="Sprite2D" parent="BackItems/wallshelf"]
|
||||||
|
z_index = -10
|
||||||
|
y_sort_enabled = true
|
||||||
|
position = Vector2(42, 124)
|
||||||
|
texture = ExtResource("5_3wvmt")
|
||||||
|
offset = Vector2(0, -296)
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(2748, 432, 174, 191)
|
||||||
|
|
||||||
|
[node name="FrontItems" type="Node2D" parent="."]
|
||||||
|
z_index = 50
|
||||||
|
|
||||||
|
[node name="Stove" type="Sprite2D" parent="FrontItems"]
|
||||||
|
position = Vector2(-2482, 926)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(823, 1105, 734, 420)
|
||||||
|
|
||||||
|
[node name="Fireleft" type="Sprite2D" parent="FrontItems/Stove"]
|
||||||
|
position = Vector2(-189, -238)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(928.24866, 976.94073, 145.9801, 78.52728)
|
||||||
|
|
||||||
|
[node name="FireRight" type="Sprite2D" parent="FrontItems/Stove"]
|
||||||
|
position = Vector2(191, -240)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1278.6433, 986.7815, 213.37354, 67.61841)
|
||||||
|
|
||||||
|
[node name="Firetoggle" parent="FrontItems/Stove" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_6mpmc")]
|
||||||
|
_spritesToOutline = [NodePath("..")]
|
||||||
|
|
||||||
|
[node name="Counter" type="Sprite2D" parent="FrontItems"]
|
||||||
|
position = Vector2(-1388, 921)
|
||||||
|
texture = ExtResource("2_qsw8g")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1599, 1107, 1351, 418)
|
||||||
|
|
||||||
|
[connection signal="InteractedTool" from="Background/Room01DoorL/CommonRoomDoor" to="." method="LoadSceneAtIndex"]
|
||||||
|
[connection signal="Interacted" from="FrontItems/Stove/Firetoggle" to="FrontItems/Stove/Fireleft" method="hide"]
|
||||||
|
[connection signal="Interacted" from="FrontItems/Stove/Firetoggle" to="FrontItems/Stove/FireRight" method="hide"]
|
||||||
|
|
||||||
|
[editable path="Background/Room01DoorL/CommonRoomDoor"]
|
||||||
|
[editable path="Vesna"]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=98 format=3 uid="uid://b3ibx4resa1f3"]
|
[gd_scene load_steps=99 format=3 uid="uid://b3ibx4resa1f3"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_6krrk"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_6krrk"]
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_4ktoi"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_4ktoi"]
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="43_dr6bm"]
|
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="43_dr6bm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ct7ea8ikor5rf" path="res://art/nature/grass/grass-3.png" id="43_g8k4k"]
|
[ext_resource type="Texture2D" uid="uid://ct7ea8ikor5rf" path="res://art/nature/grass/grass-3.png" id="43_g8k4k"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3dwl6ph0pu1d" path="res://art/nature/grass/grass-6.png" id="44_jgrpl"]
|
[ext_resource type="Texture2D" uid="uid://d3dwl6ph0pu1d" path="res://art/nature/grass/grass-6.png" id="44_jgrpl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dmo21h14toxfu" path="res://art/indoor/indoor outdoor/domovoi.png" id="44_njxly"]
|
||||||
[ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="47_xfjh2"]
|
[ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="47_xfjh2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="52_gwhnv"]
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="52_gwhnv"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="53_2tfpr"]
|
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="53_2tfpr"]
|
||||||
@@ -125,10 +126,6 @@ shader_parameter/tiling_scale = Vector2(10, 1)
|
|||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0qu0h"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0qu0h"]
|
||||||
size = Vector2(374, 295.995)
|
size = Vector2(374, 295.995)
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_34r5t"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
radius = 300.0
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2vojv"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2vojv"]
|
||||||
shader = ExtResource("17_lwdq7")
|
shader = ExtResource("17_lwdq7")
|
||||||
shader_parameter/hue_shift = 0.0
|
shader_parameter/hue_shift = 0.0
|
||||||
@@ -227,6 +224,10 @@ size = Vector2(707.116, 604.111)
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 294.02722
|
radius = 294.02722
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_34r5t"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ceriq"]
|
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ceriq"]
|
||||||
loop = false
|
loop = false
|
||||||
stream_count = 1
|
stream_count = 1
|
||||||
@@ -881,6 +882,7 @@ texture = SubResource("NoiseTexture2D_e5alv")
|
|||||||
[node name="Fence" type="Node2D" parent="."]
|
[node name="Fence" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Back Fence left" type="Sprite2D" parent="Fence"]
|
[node name="Back Fence left" type="Sprite2D" parent="Fence"]
|
||||||
|
z_index = -50
|
||||||
texture_repeat = 2
|
texture_repeat = 2
|
||||||
material = SubResource("ShaderMaterial_0sfl7")
|
material = SubResource("ShaderMaterial_0sfl7")
|
||||||
position = Vector2(1332.5, 1680)
|
position = Vector2(1332.5, 1680)
|
||||||
@@ -897,6 +899,7 @@ position = Vector2(-204.073, 76)
|
|||||||
shape = SubResource("RectangleShape2D_2vojv")
|
shape = SubResource("RectangleShape2D_2vojv")
|
||||||
|
|
||||||
[node name="Back Fence middle" type="Sprite2D" parent="Fence"]
|
[node name="Back Fence middle" type="Sprite2D" parent="Fence"]
|
||||||
|
z_index = -50
|
||||||
texture_repeat = 2
|
texture_repeat = 2
|
||||||
material = SubResource("ShaderMaterial_0sfl7")
|
material = SubResource("ShaderMaterial_0sfl7")
|
||||||
position = Vector2(7501.01, 1680)
|
position = Vector2(7501.01, 1680)
|
||||||
@@ -972,15 +975,6 @@ position = Vector2(-33, 554)
|
|||||||
[node name="FarmingControls" parent="YSorted/Vesna" index="1" node_paths=PackedStringArray("_camera")]
|
[node name="FarmingControls" parent="YSorted/Vesna" index="1" node_paths=PackedStringArray("_camera")]
|
||||||
_camera = NodePath("../../../Camera2D")
|
_camera = NodePath("../../../Camera2D")
|
||||||
|
|
||||||
[node name="GenericItemOnGround" parent="YSorted/Vesna" instance=ExtResource("43_dr6bm")]
|
|
||||||
position = Vector2(2527, 232)
|
|
||||||
|
|
||||||
[node name="SpawnWithItem" parent="YSorted/Vesna/GenericItemOnGround" index="0"]
|
|
||||||
_blueprint = ExtResource("30_dr6bm")
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/Vesna/GenericItemOnGround/PickupInteractionArea/Area2D" index="0"]
|
|
||||||
shape = SubResource("CircleShape2D_34r5t")
|
|
||||||
|
|
||||||
[node name="Brünnen" type="Sprite2D" parent="YSorted"]
|
[node name="Brünnen" type="Sprite2D" parent="YSorted"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
@@ -1013,6 +1007,8 @@ position = Vector2(-60, 122)
|
|||||||
position = Vector2(-8213, 84)
|
position = Vector2(-8213, 84)
|
||||||
|
|
||||||
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
|
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
|
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
|
||||||
|
|
||||||
@@ -1395,6 +1391,16 @@ offset = Vector2(0, -50)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(1464, 419, 144, 115)
|
region_rect = Rect2(1464, 419, 144, 115)
|
||||||
|
|
||||||
|
[node name="bush4" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
|
||||||
|
z_index = -6
|
||||||
|
material = SubResource("ShaderMaterial_bcdgk")
|
||||||
|
position = Vector2(5684, 2035)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("20_4unvh")
|
||||||
|
offset = Vector2(0, -50)
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1837, 651, 139, 180)
|
||||||
|
|
||||||
[node name="Sonnenblume8" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
|
[node name="Sonnenblume8" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
@@ -1745,10 +1751,14 @@ scale = Vector2(0.1, 8.7)
|
|||||||
texture = ExtResource("26_bwvai")
|
texture = ExtResource("26_bwvai")
|
||||||
|
|
||||||
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
|
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(53, 20)
|
position = Vector2(53, 20)
|
||||||
scale = Vector2(1, 0.993819)
|
scale = Vector2(1, 0.993819)
|
||||||
|
|
||||||
[node name="BaseField" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(651, 2630.26)
|
position = Vector2(651, 2630.26)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
metadata/SaveID = "b3b47e69-6115-4405-8da6-508b783823d2"
|
metadata/SaveID = "b3b47e69-6115-4405-8da6-508b783823d2"
|
||||||
@@ -1757,9 +1767,14 @@ metadata/SaveID = "b3b47e69-6115-4405-8da6-508b783823d2"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "7a8210bf-479d-4b4c-9758-98d23e59d5d7"
|
metadata/SaveID = "7a8210bf-479d-4b4c-9758-98d23e59d5d7"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1768,6 +1783,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_qavgq")
|
shape = SubResource("CircleShape2D_qavgq")
|
||||||
|
|
||||||
[node name="BaseField2" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField2" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(1226, 3098.15)
|
position = Vector2(1226, 3098.15)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 1
|
Payload = 1
|
||||||
@@ -1777,9 +1794,14 @@ metadata/SaveID = "f536efd3-3da8-4ef5-a520-570220e6c19f"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "a1d8a0a2-c51c-4410-83c3-0edb31cbf2de"
|
metadata/SaveID = "a1d8a0a2-c51c-4410-83c3-0edb31cbf2de"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1788,6 +1810,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_njxly")
|
shape = SubResource("CircleShape2D_njxly")
|
||||||
|
|
||||||
[node name="BaseField3" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField3" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(1782, 2606.11)
|
position = Vector2(1782, 2606.11)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 2
|
Payload = 2
|
||||||
@@ -1797,9 +1821,14 @@ metadata/SaveID = "14ce64d5-8a4d-43b9-a8ff-3a57725c4dc8"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "79a65532-cb2b-4268-8eb0-8c41a3935cbb"
|
metadata/SaveID = "79a65532-cb2b-4268-8eb0-8c41a3935cbb"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 5
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1808,6 +1837,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_54ty3")
|
shape = SubResource("CircleShape2D_54ty3")
|
||||||
|
|
||||||
[node name="BaseField4" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField4" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(2559, 2624.22)
|
position = Vector2(2559, 2624.22)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 3
|
Payload = 3
|
||||||
@@ -1818,9 +1849,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "13fa64a3-01dc-4fd8-822e-0839c0da3163"
|
metadata/SaveID = "13fa64a3-01dc-4fd8-822e-0839c0da3163"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 7
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1829,6 +1865,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_gbxtf")
|
shape = SubResource("CircleShape2D_gbxtf")
|
||||||
|
|
||||||
[node name="BaseField5" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField5" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(3305, 2624.22)
|
position = Vector2(3305, 2624.22)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 4
|
Payload = 4
|
||||||
@@ -1839,9 +1877,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "414ecdb9-f3c4-4fb9-81bd-6ca575784f78"
|
metadata/SaveID = "414ecdb9-f3c4-4fb9-81bd-6ca575784f78"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1850,6 +1893,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_6krrk")
|
shape = SubResource("CircleShape2D_6krrk")
|
||||||
|
|
||||||
[node name="BaseField6" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField6" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(4033, 2618.18)
|
position = Vector2(4033, 2618.18)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 5
|
Payload = 5
|
||||||
@@ -1860,9 +1905,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "b235febb-b231-4f8c-94e9-1f9d9f115b08"
|
metadata/SaveID = "b235febb-b231-4f8c-94e9-1f9d9f115b08"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 1
|
_state = 1
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 5
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1871,6 +1921,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_4ktoi")
|
shape = SubResource("CircleShape2D_4ktoi")
|
||||||
|
|
||||||
[node name="BaseField7" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField7" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(4755, 2630.26)
|
position = Vector2(4755, 2630.26)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 6
|
Payload = 6
|
||||||
@@ -1881,9 +1933,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "9ccdba91-812a-4c13-9ee0-12472e174fc9"
|
metadata/SaveID = "9ccdba91-812a-4c13-9ee0-12472e174fc9"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1892,6 +1949,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_aaup4")
|
shape = SubResource("CircleShape2D_aaup4")
|
||||||
|
|
||||||
[node name="BaseField8" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField8" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(4418, 3226.95)
|
position = Vector2(4418, 3226.95)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 7
|
Payload = 7
|
||||||
@@ -1902,9 +1961,14 @@ visible = true
|
|||||||
FieldState = 3
|
FieldState = 3
|
||||||
metadata/SaveID = "da44e54a-0b76-4888-ad8b-782a9d146fa3"
|
metadata/SaveID = "da44e54a-0b76-4888-ad8b-782a9d146fa3"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
|
||||||
|
z_index = 0
|
||||||
_state = 2
|
_state = 2
|
||||||
_field = NodePath("../..")
|
_field = NodePath("../..")
|
||||||
|
_daysWatered = 6
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1913,6 +1977,8 @@ visible = false
|
|||||||
shape = SubResource("CircleShape2D_v10dc")
|
shape = SubResource("CircleShape2D_v10dc")
|
||||||
|
|
||||||
[node name="BaseField9" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
[node name="BaseField9" parent="YSorted/Farm visuals/FieldParent" instance=ExtResource("40_efblm")]
|
||||||
|
z_index = -1
|
||||||
|
y_sort_enabled = true
|
||||||
position = Vector2(5317, 3208.83)
|
position = Vector2(5317, 3208.83)
|
||||||
scale = Vector2(1, 1.00622)
|
scale = Vector2(1, 1.00622)
|
||||||
Payload = 8
|
Payload = 8
|
||||||
@@ -1922,6 +1988,9 @@ metadata/SaveID = "0de8dc13-5851-4471-be35-309cd6687ebc"
|
|||||||
visible = true
|
visible = true
|
||||||
metadata/SaveID = "9919b294-04a1-4a16-9783-38c8aa0e291c"
|
metadata/SaveID = "9919b294-04a1-4a16-9783-38c8aa0e291c"
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldBehaviour" index="1"]
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="7"]
|
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="7"]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
@@ -1984,6 +2053,23 @@ _id = 0
|
|||||||
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_hpgl7")
|
shape = SubResource("CircleShape2D_hpgl7")
|
||||||
|
|
||||||
|
[node name="domovoi" type="Sprite2D" parent="YSorted"]
|
||||||
|
modulate = Color(0.8982765, 0.818879, 0.7068166, 1)
|
||||||
|
z_index = -10
|
||||||
|
position = Vector2(10542, 2026)
|
||||||
|
texture = ExtResource("44_njxly")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(65, 149, 223, 375)
|
||||||
|
|
||||||
|
[node name="WateringCan" parent="YSorted" instance=ExtResource("43_dr6bm")]
|
||||||
|
position = Vector2(5220, 2108)
|
||||||
|
|
||||||
|
[node name="SpawnWithItem" parent="YSorted/WateringCan" index="0"]
|
||||||
|
_blueprint = ExtResource("30_dr6bm")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="YSorted/WateringCan/PickupInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_34r5t")
|
||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("52_gwhnv")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("52_gwhnv")]
|
||||||
|
|
||||||
[node name="Inventory" parent="CanvasLayer" index="1"]
|
[node name="Inventory" parent="CanvasLayer" index="1"]
|
||||||
@@ -2066,8 +2152,6 @@ script = ExtResource("59_njxly")
|
|||||||
[connection signal="tree_entered" from="SceneNameSetter" to="SceneNameSetter" method="Set"]
|
[connection signal="tree_entered" from="SceneNameSetter" to="SceneNameSetter" method="Set"]
|
||||||
|
|
||||||
[editable path="YSorted/Vesna"]
|
[editable path="YSorted/Vesna"]
|
||||||
[editable path="YSorted/Vesna/GenericItemOnGround"]
|
|
||||||
[editable path="YSorted/Vesna/GenericItemOnGround/PickupInteractionArea"]
|
|
||||||
[editable path="YSorted/Brünnen/InteractionArea"]
|
[editable path="YSorted/Brünnen/InteractionArea"]
|
||||||
[editable path="YSorted/Farm visuals/FieldParent/BaseField"]
|
[editable path="YSorted/Farm visuals/FieldParent/BaseField"]
|
||||||
[editable path="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea"]
|
[editable path="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea"]
|
||||||
@@ -2090,4 +2174,6 @@ script = ExtResource("59_njxly")
|
|||||||
[editable path="YSorted/Blocker/BackToFarm"]
|
[editable path="YSorted/Blocker/BackToFarm"]
|
||||||
[editable path="YSorted/RakeGenericPickup"]
|
[editable path="YSorted/RakeGenericPickup"]
|
||||||
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
||||||
|
[editable path="YSorted/WateringCan"]
|
||||||
|
[editable path="YSorted/WateringCan/PickupInteractionArea"]
|
||||||
[editable path="CanvasLayer"]
|
[editable path="CanvasLayer"]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,445 @@
|
|||||||
|
[gd_scene load_steps=9 format=3 uid="uid://b4uito2bnud2a"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_f5860"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c7atj6ohlmir3" path="res://art/ui/StartScreen/titlescreen.png" id="1_kesja"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://du612t3xytly3" path="res://art/ui/StartScreen/babushkalog_white.png" id="2_f5860"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cfrhmcyhs2i53" path="res://art/ui/UI/WhiteWashBackground.png" id="3_dvwtm"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://deitc84w2byyh" path="res://art/ui/nametag.png" id="4_a8kc7"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://bgmdn7uo215q2" path="res://art/fonts/RuslanDisplay-Regular.ttf" id="5_gsl3s"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://blbplxfx41f8t" path="res://art/logos/Cozy Raven Logo breit.svg" id="6_l0rmr"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cwbv2i8ntq15d" path="res://art/logos/FS_Logo_2zeilig_rot.png" id="7_03xwf"]
|
||||||
|
|
||||||
|
[node name="BabushkaSceneCredits" type="Node2D"]
|
||||||
|
script = ExtResource("1_f5860")
|
||||||
|
_sceneNamesToLoad = PackedStringArray("res://scenes/scene_bootstrap.tscn")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1030, 483)
|
||||||
|
scale = Vector2(0.535648, 0.535648)
|
||||||
|
texture = ExtResource("1_kesja")
|
||||||
|
|
||||||
|
[node name="BabushkaText" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1387, 129)
|
||||||
|
scale = Vector2(0.349074, 0.349074)
|
||||||
|
texture = ExtResource("2_f5860")
|
||||||
|
|
||||||
|
[node name="WhiteWash" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(1, 1, 1, 0.0509804)
|
||||||
|
position = Vector2(1019, 930)
|
||||||
|
scale = Vector2(13.1172, 4.47852)
|
||||||
|
texture = ExtResource("3_dvwtm")
|
||||||
|
|
||||||
|
[node name="Node2D10" type="Node2D" parent="."]
|
||||||
|
position = Vector2(-18, 4)
|
||||||
|
scale = Vector2(0.93, 0.93)
|
||||||
|
|
||||||
|
[node name="Node2D2" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(39, -100)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D2"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D2"]
|
||||||
|
offset_left = 296.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 898.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Producer"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D2"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D2"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Kathi"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(39, 15)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Programming"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Jonathan"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D3" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 130)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D3"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D3"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Sound Design"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D3"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D3"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Laura"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D4" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 244)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D4"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D4"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Project Manager"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D4"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D4"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Anna"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D5" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 356)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D5"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D5"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Art"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D5"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D5"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Alphawolfin"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D6" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 581)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D6"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D6"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Game Design"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D6"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D6"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Max"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D7" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 695)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D7"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D7"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Writer"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D7"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D7"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Sanel"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D8" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 469)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D8"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D8"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Animation"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D8"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D8"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Felix"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Node2D9" type="Node2D" parent="Node2D10"]
|
||||||
|
position = Vector2(35, 807)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="Nametag2" type="Sprite2D" parent="Node2D10/Node2D9"]
|
||||||
|
position = Vector2(596.045, 303)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Node2D10/Node2D9"]
|
||||||
|
offset_left = 295.0
|
||||||
|
offset_top = 250.0
|
||||||
|
offset_right = 897.0
|
||||||
|
offset_bottom = 377.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Music"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag3" type="Sprite2D" parent="Node2D10/Node2D9"]
|
||||||
|
position = Vector2(3726.91, 187.387)
|
||||||
|
scale = Vector2(0.636364, 0.636364)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label3" type="Label" parent="Node2D10/Node2D9"]
|
||||||
|
offset_left = 3425.86
|
||||||
|
offset_top = 134.387
|
||||||
|
offset_right = 4027.86
|
||||||
|
offset_bottom = 261.387
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 56
|
||||||
|
text = "Gefördert durch"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Nametag" type="Sprite2D" parent="Node2D10/Node2D9"]
|
||||||
|
position = Vector2(595, 408)
|
||||||
|
texture = ExtResource("4_a8kc7")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Node2D10/Node2D9"]
|
||||||
|
offset_left = 124.0
|
||||||
|
offset_top = 359.0
|
||||||
|
offset_right = 1072.0
|
||||||
|
offset_bottom = 486.0
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_constants/shadow_offset_x = 0
|
||||||
|
theme_override_constants/shadow_offset_y = 0
|
||||||
|
theme_override_fonts/font = ExtResource("5_gsl3s")
|
||||||
|
theme_override_font_sizes/font_size = 80
|
||||||
|
text = "Felix"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="CozyRavenLogoBreit" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1044.13, 876.875)
|
||||||
|
scale = Vector2(0.150709, 0.150709)
|
||||||
|
texture = ExtResource("6_l0rmr")
|
||||||
|
|
||||||
|
[node name="fums Logo" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(1751, 917)
|
||||||
|
scale = Vector2(0.496692, 0.496693)
|
||||||
|
texture = ExtResource("7_03xwf")
|
||||||
|
|
||||||
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="Button" type="Button" parent="CanvasLayer"]
|
||||||
|
anchors_preset = 1
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_left = -75.0
|
||||||
|
offset_bottom = 71.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
alignment = 2
|
||||||
|
|
||||||
|
[connection signal="pressed" from="CanvasLayer/Button" to="." method="LoadScene"]
|
||||||
+822
-545
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,172 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://botol7aqw81n7"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_c6eln"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cugtxcfuds31r" path="res://art/indoor/Babushka_bg_01.png" id="2_j25a2"]
|
||||||
|
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="8_j25a2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="8_phqdf"]
|
||||||
|
[ext_resource type="Resource" uid="uid://csj15gnlx1jmx" path="res://resources/quests/demo/8_goto_bed.tres" id="9_heyef"]
|
||||||
|
[ext_resource type="Texture2D" path="res://art/indoor/vesna_indoor_bed.png" id="10_hryl5"]
|
||||||
|
[ext_resource type="Script" uid="uid://puw74w6lmcvl" path="res://scripts/CSharp/Common/Fight/NightStarter.cs" id="10_j25a2"]
|
||||||
|
[ext_resource type="Texture2D" path="res://art/indoor/vesna_indoor_door.png" id="11_axs81"]
|
||||||
|
[ext_resource type="Script" uid="uid://jg4jryfus3bw" path="res://scripts/CSharp/Common/DayAndNight/DayAndNightHelper.cs" id="11_heyef"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cop1vjvhwlsec" path="res://art/indoor/room export/Room_01_shelf.png" id="13_11fdt"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="14_axs81"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Vesna.tscn" id="18_3gevq"]
|
||||||
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="23_408bg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_xwo8y"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_l0jrn"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
size = Vector2(3836, 1086)
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2spkc"]
|
||||||
|
size = Vector2(238.25, 189.75)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_phqdf"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 381.93
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_2spkc"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 509.071
|
||||||
|
|
||||||
|
[node name="VesnasRoom" type="Node2D"]
|
||||||
|
y_sort_enabled = true
|
||||||
|
script = ExtResource("1_c6eln")
|
||||||
|
_sceneNamesToLoad = PackedStringArray("res://scenes/scene_indoor_common_room.tscn", "res://scenes/scene_fight_world_room.tscn")
|
||||||
|
|
||||||
|
[node name="Colliders" type="Node2D" parent="."]
|
||||||
|
position = Vector2(1297, 5292)
|
||||||
|
scale = Vector2(4, 4)
|
||||||
|
|
||||||
|
[node name="SideColliderLeft" type="StaticBody2D" parent="Colliders"]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/SideColliderLeft"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="SideColliderRight" type="StaticBody2D" parent="Colliders"]
|
||||||
|
position = Vector2(4858, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/SideColliderRight"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="TopCollider" type="StaticBody2D" parent="Colliders"]
|
||||||
|
position = Vector2(2448.75, -595)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/TopCollider"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="BottomCollider" type="StaticBody2D" parent="Colliders"]
|
||||||
|
position = Vector2(2495.5, 757.75)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/BottomCollider"]
|
||||||
|
position = Vector2(-2892, -1168)
|
||||||
|
shape = SubResource("RectangleShape2D_l0jrn")
|
||||||
|
|
||||||
|
[node name="BedCollider" type="StaticBody2D" parent="Colliders"]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Colliders/BedCollider"]
|
||||||
|
position = Vector2(-828.625, -1230.38)
|
||||||
|
shape = SubResource("RectangleShape2D_2spkc")
|
||||||
|
|
||||||
|
[node name="BackWall" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="Room01Walls2" type="Sprite2D" parent="BackWall"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -100
|
||||||
|
position = Vector2(4992, -487)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("2_j25a2")
|
||||||
|
offset = Vector2(-2768, 264)
|
||||||
|
|
||||||
|
[node name="Room01Shelf" type="Sprite2D" parent="BackWall"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -50
|
||||||
|
position = Vector2(-1978, -678)
|
||||||
|
texture = ExtResource("13_11fdt")
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(1846, 471, 348, 490)
|
||||||
|
|
||||||
|
[node name="Vesna" parent="." instance=ExtResource("18_3gevq")]
|
||||||
|
position = Vector2(-471, 185)
|
||||||
|
|
||||||
|
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("_followNode")]
|
||||||
|
position = Vector2(-1534, -26)
|
||||||
|
offset = Vector2(0, -200)
|
||||||
|
zoom = Vector2(0.5, 0.5)
|
||||||
|
limit_left = -2600
|
||||||
|
limit_top = -1400
|
||||||
|
limit_right = 1500
|
||||||
|
limit_bottom = 1400
|
||||||
|
editor_draw_limits = true
|
||||||
|
script = ExtResource("23_408bg")
|
||||||
|
_followNode = NodePath("../Vesna/CharacterBody2D")
|
||||||
|
|
||||||
|
[node name="CanvasLayer" parent="." instance=ExtResource("24_xwo8y")]
|
||||||
|
|
||||||
|
[node name="BedInteraction" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("8_phqdf")]
|
||||||
|
position = Vector2(-1415, 489)
|
||||||
|
_spritesToOutline = [NodePath("Bedsprite")]
|
||||||
|
_id = 1
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="BedInteraction/Area2D" index="0"]
|
||||||
|
position = Vector2(-382, 9)
|
||||||
|
shape = SubResource("CircleShape2D_phqdf")
|
||||||
|
|
||||||
|
[node name="QuestCompleter" type="Node" parent="BedInteraction"]
|
||||||
|
script = ExtResource("8_j25a2")
|
||||||
|
questResource = ExtResource("9_heyef")
|
||||||
|
toStatus = 2
|
||||||
|
|
||||||
|
[node name="Bedsprite" type="Sprite2D" parent="BedInteraction"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -99
|
||||||
|
position = Vector2(4925, -967)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("10_hryl5")
|
||||||
|
offset = Vector2(-2768, 264)
|
||||||
|
region_rect = Rect2(36.702454, 566.3165, 492.73346, 422.25665)
|
||||||
|
|
||||||
|
[node name="DoorInteraction" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("8_phqdf")]
|
||||||
|
position = Vector2(777, 201)
|
||||||
|
_spritesToOutline = [NodePath("Doorsprite")]
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_2spkc")
|
||||||
|
|
||||||
|
[node name="Doorsprite" type="Sprite2D" parent="DoorInteraction"]
|
||||||
|
modulate = Color(0.16470589, 0, 0.49803922, 1)
|
||||||
|
z_index = -99
|
||||||
|
position = Vector2(5559, -961)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("11_axs81")
|
||||||
|
offset = Vector2(-2768, 264)
|
||||||
|
region_rect = Rect2(1517.5891, 258.72107, 356.62732, 741.81134)
|
||||||
|
|
||||||
|
[node name="NightStarter" type="Node" parent="."]
|
||||||
|
script = ExtResource("10_j25a2")
|
||||||
|
_sceneIndexToLoad = 1
|
||||||
|
|
||||||
|
[node name="CountDayUp" type="Node" parent="NightStarter"]
|
||||||
|
script = ExtResource("11_heyef")
|
||||||
|
|
||||||
|
[node name="PointLight2D" type="PointLight2D" parent="."]
|
||||||
|
position = Vector2(-630, -568)
|
||||||
|
scale = Vector2(2.5, 1.3)
|
||||||
|
color = Color(1, 0.73333335, 0.69803923, 1)
|
||||||
|
energy = 1.86
|
||||||
|
texture = ExtResource("14_axs81")
|
||||||
|
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="BedInteraction/QuestCompleter" method="Trigger"]
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="NightStarter" method="StartNight"]
|
||||||
|
[connection signal="Interacted" from="BedInteraction" to="NightStarter/CountDayUp" method="IncreaseDayCount"]
|
||||||
|
[connection signal="Interacted" from="DoorInteraction" to="." method="LoadScene"]
|
||||||
|
[connection signal="LoadScene" from="NightStarter" to="." method="LoadSceneAtIndex"]
|
||||||
|
|
||||||
|
[editable path="Vesna"]
|
||||||
|
[editable path="BedInteraction"]
|
||||||
|
[editable path="DoorInteraction"]
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -205,6 +205,12 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void HarvestPlant()
|
||||||
|
{
|
||||||
|
_currentPlant = null;
|
||||||
|
UpdateFieldState(FieldState.Empty, true);
|
||||||
|
}
|
||||||
|
|
||||||
#region SAVE AND LOAD
|
#region SAVE AND LOAD
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -244,6 +250,9 @@ 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
|
||||||
@@ -253,12 +262,16 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
|||||||
|
|
||||||
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();
|
||||||
|
|||||||
@@ -27,6 +27,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 +35,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 +160,14 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
||||||
_currentPlantSprite.Visible = true;
|
_currentPlantSprite.Visible = true;
|
||||||
ActivatePickupAfterDelay(true);
|
SetActiveHarvestablePlant(true);
|
||||||
break;
|
break;
|
||||||
case PlantState.Ready:
|
case PlantState.Ready:
|
||||||
_state = PlantState.None;
|
_state = PlantState.None;
|
||||||
if(_currentPlantSprite != null)
|
if(_currentPlantSprite != null)
|
||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = null;
|
_currentPlantSprite = null;
|
||||||
ActivatePickupAfterDelay(false);
|
SetActiveHarvestablePlant(false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -184,15 +184,9 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
return sprites[rand.Next(sprites.Length)];
|
return sprites[rand.Next(sprites.Length)];
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void ActivatePickupAfterDelay(bool activate)
|
|
||||||
{
|
|
||||||
await ToSignal(GetTree().CreateTimer(1.0f), "timeout");
|
|
||||||
SetActiveHarvestablePlant(activate);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetActiveHarvestablePlant(bool active)
|
private void SetActiveHarvestablePlant(bool active)
|
||||||
{
|
{
|
||||||
_harvestablePlant.IsActive = active;
|
//_harvestablePlant.IsActive = active;
|
||||||
_harvestablePlant.UpdateVisuals();
|
_harvestablePlant.UpdateVisuals();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,4 +200,9 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
_magicWordSaid = true;
|
_magicWordSaid = true;
|
||||||
Grow();
|
Grow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Harvest()
|
||||||
|
{
|
||||||
|
Field.HarvestPlant();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,11 +11,11 @@ public partial class ActionAnimationController : Node
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[Export] private AllFightersVisual _allFightersVisual = null!;
|
[Export] private AllFightersVisual _allFightersVisual = null!;
|
||||||
|
[Export] private FightHappeningAnimationContext _animationContext = null!;
|
||||||
|
|
||||||
public void StateEnter()
|
public void StateEnter()
|
||||||
{
|
{
|
||||||
_ = HappeningData.actionStaging!.AnimateAction(_allFightersVisual);
|
_ = HappeningData.actionStaging!.AnimateAction(_allFightersVisual,_animationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StateExit()
|
public void StateExit()
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ public class TargetSelectActionDetail : FighterAction.FighterActionDetail
|
|||||||
// settings
|
// settings
|
||||||
public required bool selectEnemy;
|
public required bool selectEnemy;
|
||||||
public required bool selectAlly;
|
public required bool selectAlly;
|
||||||
|
public required bool aliveOnly;
|
||||||
public VisualRange visualRange = VisualRange.Single;
|
public VisualRange visualRange = VisualRange.Single;
|
||||||
|
|
||||||
// result
|
// result
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ public class AllyAttackAction : FighterAction
|
|||||||
public TargetSelectActionDetail targetSelect = new()
|
public TargetSelectActionDetail targetSelect = new()
|
||||||
{
|
{
|
||||||
selectEnemy = true,
|
selectEnemy = true,
|
||||||
selectAlly = false
|
selectAlly = false,
|
||||||
|
aliveOnly = true
|
||||||
};
|
};
|
||||||
|
|
||||||
public MinigameActionDetail minigameDetail = new();
|
public MinigameActionDetail minigameDetail = new();
|
||||||
@@ -47,10 +48,11 @@ public class AllyAttackAction : FighterAction
|
|||||||
public override void ExecuteAction()
|
public override void ExecuteAction()
|
||||||
{
|
{
|
||||||
var totalDamage = minigameDetail.damageHits!.Sum(dh => dh);
|
var totalDamage = minigameDetail.damageHits!.Sum(dh => dh);
|
||||||
targetSelect.GetTarget().AddHealth(-totalDamage);
|
targetSelect.GetTarget().ChangeHealth(-totalDamage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task AnimateAction(AllFightersVisual allFightersVisual)
|
public override async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
{
|
{
|
||||||
var currentFighter = HappeningData.fighterTurn.Current;
|
var currentFighter = HappeningData.fighterTurn.Current;
|
||||||
var targetFighter = targetSelect.GetTarget();
|
var targetFighter = targetSelect.GetTarget();
|
||||||
@@ -63,7 +65,7 @@ public class AllyAttackAction : FighterAction
|
|||||||
|
|
||||||
foreach (var hit in minigameDetail.damageHits!)
|
foreach (var hit in minigameDetail.damageHits!)
|
||||||
{
|
{
|
||||||
targetFighterVisual.SpawnDamageIndicatorNumber(hit);
|
targetFighterVisual.SpawnDamageIndicatorNumber($"-{hit}");
|
||||||
}
|
}
|
||||||
|
|
||||||
await currentFighterVisual.AnimatePosToBase();
|
await currentFighterVisual.AnimatePosToBase();
|
||||||
|
|||||||
@@ -18,10 +18,11 @@ public class BlobAttackAction(int damage = 3) : FighterAction
|
|||||||
|
|
||||||
public override void ExecuteAction()
|
public override void ExecuteAction()
|
||||||
{
|
{
|
||||||
FightWorld.Instance.allyFighters.vesnaFighter.AddHealth(-damage);
|
FightWorld.Instance.allyFighters.vesnaFighter.ChangeHealth(-damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task AnimateAction(AllFightersVisual allFightersVisual)
|
public override async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
{
|
{
|
||||||
var currentFighter = HappeningData.fighterTurn.Current;
|
var currentFighter = HappeningData.fighterTurn.Current;
|
||||||
var targetFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
var targetFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
||||||
@@ -31,7 +32,7 @@ public class BlobAttackAction(int damage = 3) : FighterAction
|
|||||||
|
|
||||||
await currentFighterVisual.AnimatePosToTarget(targetFighterVisual);
|
await currentFighterVisual.AnimatePosToTarget(targetFighterVisual);
|
||||||
_ = targetFighterVisual.AnimateHit();
|
_ = targetFighterVisual.AnimateHit();
|
||||||
targetFighterVisual.SpawnDamageIndicatorNumber(damage);
|
targetFighterVisual.SpawnDamageIndicatorNumber($"-{damage}");
|
||||||
await currentFighterVisual.AnimatePosToBase();
|
await currentFighterVisual.AnimatePosToBase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Babushka.scripts.CSharp.Common.Util;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight.Actions;
|
||||||
|
|
||||||
|
public class EatBeetrootAction : FighterAction
|
||||||
|
{
|
||||||
|
public override Variant<float, Func<bool>> GetAnimationEnd() => 1;
|
||||||
|
public override bool NextDetail() => false;
|
||||||
|
|
||||||
|
private const int HealAmount = 20;
|
||||||
|
|
||||||
|
public override bool ShouldAbort()
|
||||||
|
{
|
||||||
|
Debug.Assert(FightWorld.Instance.itemBeetrootToEatForHealth != null,
|
||||||
|
"Item to eat for health has not been set in the FightWorld autoload");
|
||||||
|
return !InventoryManager.Instance.playerInventory!.HasItems(new ItemInstance
|
||||||
|
{ blueprint = FightWorld.Instance.itemBeetrootToEatForHealth });
|
||||||
|
}
|
||||||
|
|
||||||
|
public override async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
|
{
|
||||||
|
var fighter = HappeningData.fighterTurn.Current;
|
||||||
|
var fighterVisual = allFightersVisual.GetVisualForFighter(fighter);
|
||||||
|
fighterVisual.SpawnDamageIndicatorNumber($"+{HealAmount}");
|
||||||
|
animationContext.useHealItemIndicator.SpawnIndicator();
|
||||||
|
await fighterVisual.AnimateHeal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ExecuteAction()
|
||||||
|
{
|
||||||
|
var fighter = HappeningData.fighterTurn.Current;
|
||||||
|
|
||||||
|
var result = InventoryManager.Instance.playerInventory!.TryRemoveAllItems(
|
||||||
|
new ItemInstance { blueprint = FightWorld.Instance.itemBeetrootToEatForHealth! });
|
||||||
|
|
||||||
|
if (result != InventoryActionResult.Success)
|
||||||
|
throw new Exception("No Beetroot in inventory. This case should have been handled earlier");
|
||||||
|
|
||||||
|
fighter.ChangeHealth(HealAmount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override AllyActionButton BindToActionButton() => AllyActionButton.Talk; // Temporarily bound to talk button
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://b2463q1waqvdu
|
||||||
@@ -117,11 +117,13 @@ public partial class AllFightersVisual : Node
|
|||||||
if (targetDetail.selectEnemy)
|
if (targetDetail.selectEnemy)
|
||||||
_fighterVisuals
|
_fighterVisuals
|
||||||
.Where(kv => kv.Key.IsInFormation(HappeningData.enemyFighterFormation))
|
.Where(kv => kv.Key.IsInFormation(HappeningData.enemyFighterFormation))
|
||||||
|
.Where(kv => !targetDetail.aliveOnly || kv.Key.IsAlive())// if aliveOnly: take where IsAlive
|
||||||
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
||||||
|
|
||||||
if (targetDetail.selectAlly)
|
if (targetDetail.selectAlly)
|
||||||
_fighterVisuals
|
_fighterVisuals
|
||||||
.Where(kv => kv.Key.IsInFormation(HappeningData.allyFighterFormation))
|
.Where(kv => kv.Key.IsInFormation(HappeningData.allyFighterFormation))
|
||||||
|
.Where(kv => !targetDetail.aliveOnly || kv.Key.IsAlive())// if aliveOnly: take where IsAlive
|
||||||
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
.ForEach(kv => kv.Value.SetTargetSelectionActive(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ public class AllyFighters
|
|||||||
maxHealth = 60,
|
maxHealth = 60,
|
||||||
availableActions =
|
availableActions =
|
||||||
[
|
[
|
||||||
new AllyAttackAction()
|
new AllyAttackAction(),
|
||||||
|
new EatBeetrootAction()
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
public FightWorld.Fighter chuhaFighter = new()
|
public FightWorld.Fighter chuhaFighter = new()
|
||||||
|
|||||||
@@ -222,9 +222,9 @@ public partial class FightHappening : Node
|
|||||||
case FightState.ActionCheckDetails:
|
case FightState.ActionCheckDetails:
|
||||||
RequireNotNull(HappeningData.actionStaging);
|
RequireNotNull(HappeningData.actionStaging);
|
||||||
|
|
||||||
if (ActionAbort())
|
if (ShouldActionAbort())
|
||||||
ChangeState(FightState.InputActionSelect);
|
ChangeState(FightState.InputActionSelect);
|
||||||
else if (ActionNeededDetail())
|
else if (DoesActionNeededDetail())
|
||||||
ChangeState(FightState.InputActionDetail);
|
ChangeState(FightState.InputActionDetail);
|
||||||
else
|
else
|
||||||
ChangeState(FightState.ActionExecute);
|
ChangeState(FightState.ActionExecute);
|
||||||
@@ -307,6 +307,11 @@ public partial class FightHappening : Node
|
|||||||
HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter);
|
HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter);
|
||||||
HappeningData.fighterTurn.AddAsLast(fighter);
|
HappeningData.fighterTurn.AddAsLast(fighter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GD.RandRange(0, 2) != 0) // 2/3 chance for vesna to start
|
||||||
|
{
|
||||||
|
HappeningData.fighterTurn.SpinBack();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExecuteNextFighter()
|
private void ExecuteNextFighter()
|
||||||
@@ -328,13 +333,13 @@ public partial class FightHappening : Node
|
|||||||
return HappeningData.actionStaging.GetAnimationEnd();
|
return HappeningData.actionStaging.GetAnimationEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ActionAbort()
|
private bool ShouldActionAbort()
|
||||||
{
|
{
|
||||||
Debug.Assert(HappeningData.actionStaging != null);
|
Debug.Assert(HappeningData.actionStaging != null);
|
||||||
return HappeningData.actionStaging.MarkedForAbort();
|
return HappeningData.actionStaging.ShouldAbort();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ActionNeededDetail()
|
private bool DoesActionNeededDetail()
|
||||||
{
|
{
|
||||||
Debug.Assert(HappeningData.actionStaging != null);
|
Debug.Assert(HappeningData.actionStaging != null);
|
||||||
return HappeningData.actionStaging.NextDetail();
|
return HappeningData.actionStaging.NextDetail();
|
||||||
@@ -344,7 +349,7 @@ public partial class FightHappening : Node
|
|||||||
private void ReviveVesna()
|
private void ReviveVesna()
|
||||||
{
|
{
|
||||||
var vesnaFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
var vesnaFighter = FightWorld.Instance.allyFighters.vesnaFighter;
|
||||||
vesnaFighter.health = vesnaFighter.maxHealth;
|
vesnaFighter.Health = vesnaFighter.maxHealth;
|
||||||
GD.Print("Vesna has been revived. This is for the current prototype only");
|
GD.Print("Vesna has been revived. This is for the current prototype only");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
|
public partial class FightHappeningAnimationContext : Node
|
||||||
|
{
|
||||||
|
[Export] public UsedItemIndicatorVisual useHealItemIndicator = null!;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cdrjvgm82pxoj
|
||||||
@@ -1,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)
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Babushka.scripts.CSharp.Common.Fight.Actions;
|
using Babushka.scripts.CSharp.Common.Fight.Actions;
|
||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
using Babushka.scripts.CSharp.Common.Util;
|
using Babushka.scripts.CSharp.Common.Util;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
@@ -19,6 +21,7 @@ public partial class FightWorld : Node
|
|||||||
None,
|
None,
|
||||||
EndOfNight
|
EndOfNight
|
||||||
}
|
}
|
||||||
|
|
||||||
public required Dictionary<int, Room> paths;
|
public required Dictionary<int, Room> paths;
|
||||||
public required List<FighterGroup> enemyGroups;
|
public required List<FighterGroup> enemyGroups;
|
||||||
public Special specialRoom = Special.None;
|
public Special specialRoom = Special.None;
|
||||||
@@ -27,6 +30,7 @@ public partial class FightWorld : Node
|
|||||||
public class FighterGroup
|
public class FighterGroup
|
||||||
{
|
{
|
||||||
public required List<Fighter> fighters;
|
public required List<Fighter> fighters;
|
||||||
|
public ItemInstance? lootToDrop = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FightHappeningData
|
public class FightHappeningData
|
||||||
@@ -56,9 +60,17 @@ public partial class FightWorld : Node
|
|||||||
public required int maxHealth;
|
public required int maxHealth;
|
||||||
public required List<FighterAction> availableActions;
|
public required List<FighterAction> availableActions;
|
||||||
public const int MaxActionPoints = 1;
|
public const int MaxActionPoints = 1;
|
||||||
public int? health = null; // null => initialize to full health on spawn
|
|
||||||
public int actionPointsLeft;
|
public int actionPointsLeft;
|
||||||
|
|
||||||
|
private int? _healthBacking = null;
|
||||||
|
|
||||||
|
public int Health
|
||||||
|
{
|
||||||
|
get => _healthBacking ?? maxHealth;
|
||||||
|
set => _healthBacking = Math.Clamp(value, 0, maxHealth);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public FighterAction AutoSelectAction()
|
public FighterAction AutoSelectAction()
|
||||||
{
|
{
|
||||||
return availableActions.Random() ?? new FighterAction.Skip();
|
return availableActions.Random() ?? new FighterAction.Skip();
|
||||||
@@ -81,6 +93,10 @@ public partial class FightWorld : Node
|
|||||||
public FightHappeningData? fightHappeningData = null;
|
public FightHappeningData? fightHappeningData = null;
|
||||||
public AllyFighters allyFighters = new();
|
public AllyFighters allyFighters = new();
|
||||||
|
|
||||||
|
// settings
|
||||||
|
[Export] private ItemResource? _itemToDropByEnemyGroup;
|
||||||
|
[Export] public ItemResource? itemBeetrootToEatForHealth;
|
||||||
|
|
||||||
public void ResetFightWorld()
|
public void ResetFightWorld()
|
||||||
{
|
{
|
||||||
Generate();
|
Generate();
|
||||||
@@ -89,10 +105,10 @@ public partial class FightWorld : Node
|
|||||||
|
|
||||||
public void Generate()
|
public void Generate()
|
||||||
{
|
{
|
||||||
world = new Generator().GenerateWorld();
|
world = new Generator(this).GenerateWorld();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Generator
|
private class Generator(FightWorld fightWorld)
|
||||||
{
|
{
|
||||||
public World GenerateWorld()
|
public World GenerateWorld()
|
||||||
{
|
{
|
||||||
@@ -162,6 +178,11 @@ public partial class FightWorld : Node
|
|||||||
fighters = []
|
fighters = []
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (fightWorld._itemToDropByEnemyGroup != null)
|
||||||
|
{
|
||||||
|
enemyGroup.lootToDrop = new ItemInstance { blueprint = fightWorld._itemToDropByEnemyGroup };
|
||||||
|
}
|
||||||
|
|
||||||
var enemyCount = GD.RandRange(2, 3);
|
var enemyCount = GD.RandRange(2, 3);
|
||||||
|
|
||||||
for (var i = 0; i < enemyCount; i++)
|
for (var i = 0; i < enemyCount; i++)
|
||||||
@@ -189,7 +210,6 @@ public partial class FightWorld : Node
|
|||||||
var enemy = new Fighter
|
var enemy = new Fighter
|
||||||
{
|
{
|
||||||
type = type,
|
type = type,
|
||||||
health = null,
|
|
||||||
maxHealth = GD.RandRange(8, 20),
|
maxHealth = GD.RandRange(8, 20),
|
||||||
availableActions =
|
availableActions =
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -30,8 +30,6 @@ public abstract class FighterAction
|
|||||||
public abstract bool DetailComplete();
|
public abstract bool DetailComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _abort = false;
|
|
||||||
|
|
||||||
#region Shortcuts
|
#region Shortcuts
|
||||||
|
|
||||||
protected static FightWorld.FightHappeningData HappeningData =>
|
protected static FightWorld.FightHappeningData HappeningData =>
|
||||||
@@ -61,19 +59,13 @@ public abstract class FighterAction
|
|||||||
/// Animates the action.
|
/// Animates the action.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="allFightersVisual"></param>
|
/// <param name="allFightersVisual"></param>
|
||||||
public virtual async Task AnimateAction(AllFightersVisual allFightersVisual)
|
/// <param name="animationContext"></param>
|
||||||
|
public virtual async Task AnimateAction(AllFightersVisual allFightersVisual,
|
||||||
|
FightHappeningAnimationContext animationContext)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MarkAbort()
|
public virtual bool ShouldAbort() => false;
|
||||||
{
|
|
||||||
_abort = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool MarkedForAbort()
|
|
||||||
{
|
|
||||||
return _abort;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the FighterActionDetail, that is currently handled.
|
/// Returns the FighterActionDetail, that is currently handled.
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ namespace Babushka.scripts.CSharp.Common.Fight;
|
|||||||
|
|
||||||
public partial class FighterDamageIndicatorVisual : Node2D
|
public partial class FighterDamageIndicatorVisual : Node2D
|
||||||
{
|
{
|
||||||
[Export] private PackedScene _flyingNumberPrefab;
|
[Export] private PackedScene _flyingNumberPrefab = null!;
|
||||||
|
|
||||||
|
|
||||||
public void SpawnFlyingNumber(int number)
|
public void SpawnFlyingNumber(string text)
|
||||||
{
|
{
|
||||||
var flyingNumberInstance = _flyingNumberPrefab.Instantiate<FighterDamageIndicatorFlyingNumber>();
|
var flyingNumberInstance = _flyingNumberPrefab.Instantiate<FlyingIndicator>();
|
||||||
AddChild(flyingNumberInstance);
|
AddChild(flyingNumberInstance);
|
||||||
flyingNumberInstance.Initialize(number);
|
flyingNumberInstance.Initialize(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,6 +99,23 @@ public class FighterTurn : IEnumerable<FightWorld.Fighter>
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the current one back
|
||||||
|
/// This is an expensive operation, because the entire data structure needs to be circled
|
||||||
|
/// </summary>
|
||||||
|
public void SpinBack()
|
||||||
|
{
|
||||||
|
if (_currentNode == null) return;
|
||||||
|
|
||||||
|
var node = _currentNode;
|
||||||
|
while (node.next != _currentNode)
|
||||||
|
{
|
||||||
|
node = node.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentNode = node;
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerator<FightWorld.Fighter> GetEnumerator()
|
public IEnumerator<FightWorld.Fighter> GetEnumerator()
|
||||||
{
|
{
|
||||||
if (_currentNode == null) return Enumerable.Empty<FightWorld.Fighter>().GetEnumerator();
|
if (_currentNode == null) return Enumerable.Empty<FightWorld.Fighter>().GetEnumerator();
|
||||||
|
|||||||
@@ -42,7 +42,12 @@ public partial class FighterVisual : Node2D
|
|||||||
_boundFighter.IsInFormation(HappeningData.enemyFighterFormation) ? -1 : 1,
|
_boundFighter.IsInFormation(HappeningData.enemyFighterFormation) ? -1 : 1,
|
||||||
_boundFighter.IsDead() ? .3f : 1);
|
_boundFighter.IsDead() ? .3f : 1);
|
||||||
|
|
||||||
healthBarVisual.UpdateHealth(_boundFighter.GetHealth(), _boundFighter.maxHealth);
|
UpdateHealthBarVisuals();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateHealthBarVisuals()
|
||||||
|
{
|
||||||
|
healthBarVisual.UpdateHealth(_boundFighter.Health, _boundFighter.maxHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetTargetSelectionActive(bool value)
|
public void SetTargetSelectionActive(bool value)
|
||||||
@@ -78,6 +83,7 @@ public partial class FighterVisual : Node2D
|
|||||||
|
|
||||||
public async Task AnimateHit()
|
public async Task AnimateHit()
|
||||||
{
|
{
|
||||||
|
UpdateHealthBarVisuals();
|
||||||
var tween = GetTree().CreateTween();
|
var tween = GetTree().CreateTween();
|
||||||
tween.TweenProperty(_squashParent, "scale", new Vector2(1.4f, 0.6f), 0.15);
|
tween.TweenProperty(_squashParent, "scale", new Vector2(1.4f, 0.6f), 0.15);
|
||||||
tween.TweenProperty(_squashParent, "scale", new Vector2(1, 1), 0.4)
|
tween.TweenProperty(_squashParent, "scale", new Vector2(1, 1), 0.4)
|
||||||
@@ -85,17 +91,18 @@ public partial class FighterVisual : Node2D
|
|||||||
await ToSignal(tween, "finished");
|
await ToSignal(tween, "finished");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep for reference for new Heal animation
|
public async Task AnimateHeal()
|
||||||
//public void HealAnimation()
|
|
||||||
//{
|
|
||||||
// EmitSignalHealed();
|
|
||||||
// var tween = GetTree().CreateTween();
|
|
||||||
// tween.TweenProperty(this, "scale", new Vector2(0.6f, 1.4f), 0.15);
|
|
||||||
// tween.TweenProperty(this, "scale", new Vector2(1, 1), 0.4)
|
|
||||||
// .SetTrans(Tween.TransitionType.Cubic).SetEase(Tween.EaseType.Out);
|
|
||||||
//}
|
|
||||||
public void SpawnDamageIndicatorNumber(int number)
|
|
||||||
{
|
{
|
||||||
_fighterDamageIndicatorVisual.SpawnFlyingNumber(number);
|
UpdateHealthBarVisuals();
|
||||||
|
var tween = GetTree().CreateTween();
|
||||||
|
tween.TweenProperty(_squashParent, "scale", new Vector2(0.6f, 1.4f), 0.15);
|
||||||
|
tween.TweenProperty(_squashParent, "scale", new Vector2(1, 1), 0.4)
|
||||||
|
.SetTrans(Tween.TransitionType.Cubic).SetEase(Tween.EaseType.Out);
|
||||||
|
await ToSignal(tween, "finished");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SpawnDamageIndicatorNumber(string text)
|
||||||
|
{
|
||||||
|
_fighterDamageIndicatorVisual.SpawnFlyingNumber(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+10
-4
@@ -3,13 +3,19 @@ using Godot;
|
|||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Fight;
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
public partial class FighterDamageIndicatorFlyingNumber : Node2D
|
public partial class FlyingIndicator : Node2D
|
||||||
{
|
{
|
||||||
[Export] private Label _label;
|
[Export] private Label _label = null!;
|
||||||
|
[Export] private TextureRect _sprite = null!;
|
||||||
|
|
||||||
public void Initialize(int number)
|
|
||||||
|
public void Initialize(string? text = null, Texture2D? icon = null)
|
||||||
{
|
{
|
||||||
_label.Text = number.ToString();
|
_label.Visible = text != null;
|
||||||
|
_sprite.Visible = icon != null;
|
||||||
|
|
||||||
|
if (text != null) _label.Text = text;
|
||||||
|
if (icon != null) _sprite.Texture = icon;
|
||||||
|
|
||||||
var tween = CreateTween();
|
var tween = CreateTween();
|
||||||
var xMovement = GD.RandRange(-150, 150);
|
var xMovement = GD.RandRange(-150, 150);
|
||||||
@@ -9,9 +9,15 @@ public partial class SwitchSceneOnFightEnd : Node
|
|||||||
|
|
||||||
public void OnFightStateEnter(FightHappening.FightState to)
|
public void OnFightStateEnter(FightHappening.FightState to)
|
||||||
{
|
{
|
||||||
if (to is FightHappening.FightState.PlayerWin
|
if (to is FightHappening.FightState.PlayerWin )
|
||||||
or FightHappening.FightState.EnemyWin)
|
|
||||||
_ = SwitchSceneAfterTime(2.0f);
|
_ = SwitchSceneAfterTime(2.0f);
|
||||||
|
|
||||||
|
if (to is FightHappening.FightState.EnemyWin)
|
||||||
|
{
|
||||||
|
_fightSceneSwitcher.ExitFight();
|
||||||
|
_fightSceneSwitcher.ExitFightWorld();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SwitchSceneAfterTime(float seconds)
|
private async Task SwitchSceneAfterTime(float seconds)
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight.UI;
|
||||||
|
|
||||||
|
public partial class HealButtonVisual : Button
|
||||||
|
{
|
||||||
|
[Export] private ItemResource _healItemBlueprint = null!;
|
||||||
|
|
||||||
|
public void UpdateText()
|
||||||
|
{
|
||||||
|
var healItemsLeft = InventoryManager.Instance.playerInventory!.TotalItemsOfBlueprint(_healItemBlueprint);
|
||||||
|
Text = $"x{healItemsLeft} - Heal";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://71mdwp2m4rta
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
|
public partial class UsedItemIndicatorVisual : Node2D
|
||||||
|
{
|
||||||
|
[Export] private PackedScene _flyingIndicatorPrefab = null!;
|
||||||
|
[Export] private Texture2D _itemTexture = null!;
|
||||||
|
|
||||||
|
|
||||||
|
public void SpawnIndicator()
|
||||||
|
{
|
||||||
|
var flyingNumberInstance = _flyingIndicatorPrefab.Instantiate<FlyingIndicator>();
|
||||||
|
AddChild(flyingNumberInstance);
|
||||||
|
flyingNumberInstance.Initialize(icon: _itemTexture);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://6nniwfxye8ss
|
||||||
@@ -101,7 +101,8 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
return InventoryActionResult.DestinationFull;
|
return InventoryActionResult.DestinationFull;
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemInstance = _slots[slotIndex].itemInstance ?? new ItemInstance { blueprint = newItem.blueprint, amount = 0 };
|
var itemInstance = _slots[slotIndex].itemInstance ??
|
||||||
|
new ItemInstance { blueprint = newItem.blueprint, amount = 0 };
|
||||||
var maxStack = itemInstance!.blueprint.maxStack;
|
var maxStack = itemInstance!.blueprint.maxStack;
|
||||||
var freeOnStack = maxStack - itemInstance.amount;
|
var freeOnStack = maxStack - itemInstance.amount;
|
||||||
var moveAmount = Math.Min(freeOnStack, newItem.amount);
|
var moveAmount = Math.Min(freeOnStack, newItem.amount);
|
||||||
@@ -133,7 +134,7 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
|
|
||||||
itemInstance.amount -= 1;
|
itemInstance.amount -= 1;
|
||||||
|
|
||||||
if(itemInstance.amount == 0)
|
if (itemInstance.amount == 0)
|
||||||
_slots[inventorySlot].itemInstance = null;
|
_slots[inventorySlot].itemInstance = null;
|
||||||
|
|
||||||
EmitSignal(SignalName.InventoryContentsChanged);
|
EmitSignal(SignalName.InventoryContentsChanged);
|
||||||
@@ -145,6 +146,38 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
return RemoveItem(inventorySlot, out _);
|
return RemoveItem(inventorySlot, out _);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public InventoryActionResult TryRemoveAllItems(ItemInstance items)
|
||||||
|
{
|
||||||
|
var hasItemsCount = TotalItemsOfBlueprint(items.blueprint);
|
||||||
|
if (hasItemsCount < items.amount)
|
||||||
|
return InventoryActionResult.SourceDoesNotExist;
|
||||||
|
|
||||||
|
var amountToRemove = items.amount;
|
||||||
|
foreach (var s in _slots)
|
||||||
|
{
|
||||||
|
if (s.IsEmpty() || s.itemInstance!.blueprint != items.blueprint)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var slotItem = s.itemInstance!;
|
||||||
|
if (slotItem.amount <= amountToRemove)
|
||||||
|
{
|
||||||
|
amountToRemove -= slotItem.amount;
|
||||||
|
s.itemInstance = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
slotItem.amount -= amountToRemove;
|
||||||
|
amountToRemove = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amountToRemove == 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
EmitSignal(SignalName.InventoryContentsChanged);
|
||||||
|
return InventoryActionResult.Success;
|
||||||
|
}
|
||||||
|
|
||||||
public InventoryActionResult AddItemToSlot(ItemInstance itemInstance, int destinationSlot)
|
public InventoryActionResult AddItemToSlot(ItemInstance itemInstance, int destinationSlot)
|
||||||
{
|
{
|
||||||
if (destinationSlot < 0 || destinationSlot >= _slots.Count)
|
if (destinationSlot < 0 || destinationSlot >= _slots.Count)
|
||||||
@@ -175,7 +208,7 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
return items.All(HasItems);
|
return items.All(HasItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region SAVE AND LOAD
|
#region SAVE AND LOAD
|
||||||
|
|
||||||
public void UpdateSaveData()
|
public void UpdateSaveData()
|
||||||
{
|
{
|
||||||
@@ -189,7 +222,7 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
string[] value = new string[2];
|
string[] value = new string[2];
|
||||||
value[0] = _slots[i].itemInstance.blueprint.ResourcePath;
|
value[0] = _slots[i].itemInstance.blueprint.ResourcePath;
|
||||||
value[1] = _slots[i].itemInstance.amount.ToString();
|
value[1] = _slots[i].itemInstance.amount.ToString();
|
||||||
payloadData.Add(key,value);
|
payloadData.Add(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +243,7 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
{
|
{
|
||||||
string[] savePayload = inventoryItemData.AsStringArray();
|
string[] savePayload = inventoryItemData.AsStringArray();
|
||||||
ItemResource resource = ResourceLoader.Load<ItemResource>(savePayload[0]);
|
ItemResource resource = ResourceLoader.Load<ItemResource>(savePayload[0]);
|
||||||
int _amount = int.Parse(savePayload[1]);
|
int _amount = int.Parse(savePayload[1]);
|
||||||
|
|
||||||
ItemInstance instance = new ItemInstance { blueprint = resource, amount = _amount };
|
ItemInstance instance = new ItemInstance { blueprint = resource, amount = _amount };
|
||||||
AddItem(instance);
|
AddItem(instance);
|
||||||
@@ -230,5 +263,6 @@ public partial class InventoryInstance : Node, ISaveable
|
|||||||
slot.itemInstance = null;
|
slot.itemInstance = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
// Do not instantiate this resource
|
// Do not instantiate this resource
|
||||||
// But it has to be a resource because Godot
|
// But it has to be a resource because Godot
|
||||||
[GlobalClass]
|
[GlobalClass]
|
||||||
public partial class ItemInstance: Resource
|
public partial class ItemInstance : Resource, IJsonSerializable
|
||||||
{
|
{
|
||||||
[Export] public ItemResource blueprint;
|
[Export] public required ItemResource blueprint;
|
||||||
[Export] public int amount = 1;
|
[Export] public int amount = 1;
|
||||||
|
|
||||||
public ItemInstance Clone()
|
public ItemInstance Clone()
|
||||||
@@ -17,4 +20,18 @@ public partial class ItemInstance: Resource
|
|||||||
amount = amount
|
amount = amount
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void LoadFromJson(JObject json)
|
||||||
|
{
|
||||||
|
var blueprintPath = json.GetStringValue("blueprint");
|
||||||
|
blueprint = GD.Load<ItemResource>(blueprintPath);
|
||||||
|
amount = json.GetIntValue("amount");
|
||||||
|
}
|
||||||
|
|
||||||
|
public JObject SaveToJson()
|
||||||
|
{
|
||||||
|
return new(
|
||||||
|
new JProperty("blueprint", blueprint.ResourcePath),
|
||||||
|
new JProperty("amount", amount));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,20 +1,16 @@
|
|||||||
using Babushka.scripts.CSharp.Common.Savegame;
|
using Babushka.scripts.CSharp.Common.Savegame;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
using Godot;
|
using Godot;
|
||||||
using Godot.Collections;
|
using Godot.Collections;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
public partial class ItemOnGround2D : Node, ISaveable
|
public partial class ItemOnGround2D : Node2D
|
||||||
{
|
{
|
||||||
private ItemInstance _itemInstance;
|
private ItemInstance _itemInstance;
|
||||||
|
|
||||||
[Export] public bool IsActive = true;
|
|
||||||
[Export] private bool _infiniteSupply = false;
|
|
||||||
[Export] private int _finiteSupply = 1;
|
|
||||||
[Export] private bool _saveToDisk = true;
|
|
||||||
|
|
||||||
private int pickUpCounter = 0;
|
|
||||||
|
|
||||||
[Signal] public delegate void SuccessfulPickUpEventHandler();
|
[Signal] public delegate void SuccessfulPickUpEventHandler();
|
||||||
|
|
||||||
|
|
||||||
@@ -34,16 +30,12 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
LoadFromSaveData();
|
|
||||||
UpdateVisuals();
|
UpdateVisuals();
|
||||||
_pickupErrorLabel.Text = "";
|
_pickupErrorLabel.Text = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TryPickUp()
|
public void TryPickUp()
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
|
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
|
||||||
EmitSignal(SignalName.SuccessfulPickUp);
|
EmitSignal(SignalName.SuccessfulPickUp);
|
||||||
if (result == InventoryActionResult.Success)
|
if (result == InventoryActionResult.Success)
|
||||||
@@ -58,16 +50,7 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
private void Pickup()
|
private void Pickup()
|
||||||
{
|
{
|
||||||
if (!_infiniteSupply)
|
// remove from entity manager
|
||||||
{
|
|
||||||
pickUpCounter++;
|
|
||||||
if (pickUpCounter >= _finiteSupply)
|
|
||||||
{
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateSaveData();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FailToPickup()
|
private void FailToPickup()
|
||||||
@@ -80,9 +63,6 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
|
|
||||||
public void UpdateVisuals()
|
public void UpdateVisuals()
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_iconSprite.Texture = itemInstance?.blueprint?.icon;
|
_iconSprite.Texture = itemInstance?.blueprint?.icon;
|
||||||
if (_iconSprite.Texture == null)
|
if (_iconSprite.Texture == null)
|
||||||
{
|
{
|
||||||
@@ -94,7 +74,22 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: What do we do with instances that are created at runtime?
|
/*
|
||||||
|
protected override void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.LoadEntity(json);
|
||||||
|
_itemInstance.LoadFromJson(json.GetObject("item"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.SaveEntity(json);
|
||||||
|
json["item"] = _itemInstance.SaveToJson();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// old save
|
||||||
|
/*
|
||||||
public void UpdateSaveData()
|
public void UpdateSaveData()
|
||||||
{
|
{
|
||||||
if (!_saveToDisk)
|
if (!_saveToDisk)
|
||||||
@@ -157,5 +152,5 @@ public partial class ItemOnGround2D : Node, ISaveable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using Godot;
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Inventory;
|
namespace Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
|
||||||
|
|||||||
@@ -108,6 +108,8 @@ public partial class MinigameController : Node2D
|
|||||||
|
|
||||||
[Signal] public delegate void ArmMovedEventHandler(float newPos);
|
[Signal] public delegate void ArmMovedEventHandler(float newPos);
|
||||||
|
|
||||||
|
[Signal] public delegate void RegionHitEventHandler(int regionIndex);
|
||||||
|
|
||||||
public override void _EnterTree()
|
public override void _EnterTree()
|
||||||
{
|
{
|
||||||
HideMinigame();
|
HideMinigame();
|
||||||
@@ -125,6 +127,7 @@ public partial class MinigameController : Node2D
|
|||||||
ShowMinigame();
|
ShowMinigame();
|
||||||
Setup(builder);
|
Setup(builder);
|
||||||
await _minigameComplete!.Task;
|
await _minigameComplete!.Task;
|
||||||
|
await ToSignal(GetTree().CreateTimer(.3), "timeout");
|
||||||
var returnValue = _hits!.Select(h => builder.regions[h].value).ToList();
|
var returnValue = _hits!.Select(h => builder.regions[h].value).ToList();
|
||||||
Reset();
|
Reset();
|
||||||
HideMinigame();
|
HideMinigame();
|
||||||
@@ -145,6 +148,7 @@ public partial class MinigameController : Node2D
|
|||||||
}
|
}
|
||||||
|
|
||||||
_hits.Add(i);
|
_hits.Add(i);
|
||||||
|
EmitSignalRegionHit(i);
|
||||||
|
|
||||||
_armSpeed = -_armSpeed;
|
_armSpeed = -_armSpeed;
|
||||||
|
|
||||||
@@ -174,16 +178,18 @@ public partial class MinigameController : Node2D
|
|||||||
|
|
||||||
// spawn regions
|
// spawn regions
|
||||||
var regionSum = 0f;
|
var regionSum = 0f;
|
||||||
foreach (var region in builder.regions)
|
foreach (var (region, i) in builder.regions.Select((region, i) => (region, i)))
|
||||||
{
|
{
|
||||||
var regionVisual = _regionVisualPrefab.Instantiate<RegionVisual>();
|
var regionVisual = _regionVisualPrefab.Instantiate<RegionVisual>();
|
||||||
_regionsParent.AddChild(regionVisual);
|
_regionsParent.AddChild(regionVisual);
|
||||||
|
|
||||||
|
RegionHit += regionVisual.HitAnimation;
|
||||||
|
|
||||||
var normalisedAngleStart = regionSum / totalRegionProportion;
|
var normalisedAngleStart = regionSum / totalRegionProportion;
|
||||||
var normalisedAngleEnd = (regionSum + region.proportion) / totalRegionProportion;
|
var normalisedAngleEnd = (regionSum + region.proportion) / totalRegionProportion;
|
||||||
var normalAngles = new Vector2(normalisedAngleStart, normalisedAngleEnd);
|
var normalAngles = new Vector2(normalisedAngleStart, normalisedAngleEnd);
|
||||||
|
|
||||||
regionVisual.Setup(normalAngles, _baseRegionColor.RandomHue(), region.text, region.theme);
|
regionVisual.Setup(normalAngles, region.text, region.theme, i);
|
||||||
|
|
||||||
regionSum += region.proportion;
|
regionSum += region.proportion;
|
||||||
|
|
||||||
@@ -207,6 +213,13 @@ public partial class MinigameController : Node2D
|
|||||||
{
|
{
|
||||||
_minigameComplete = null;
|
_minigameComplete = null;
|
||||||
_hits = null;
|
_hits = null;
|
||||||
_regionsParent.GetChildren().ForEach(c => c.QueueFree());
|
_regionsParent.GetChildren().ForEach(c =>
|
||||||
|
{
|
||||||
|
if (c is RegionVisual rv)
|
||||||
|
{
|
||||||
|
RegionHit -= rv.HitAnimation;
|
||||||
|
}
|
||||||
|
c.QueueFree();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,27 +1,42 @@
|
|||||||
using Godot;
|
|
||||||
using System;
|
using System;
|
||||||
using Babushka.scripts.CSharp.Common.Minigame;
|
using Godot;
|
||||||
using Godot.Collections;
|
using Godot.Collections;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Minigame;
|
||||||
|
|
||||||
public partial class RegionVisual : Node
|
public partial class RegionVisual : Node
|
||||||
{
|
{
|
||||||
[Export] private Sprite2D _sliceSprite;
|
[Export] private Sprite2D _sliceSprite = null!;
|
||||||
[Export] private Label _textLabel;
|
[Export] private Label _textLabel = null!;
|
||||||
[Export] private Node2D _labelPivot;
|
[Export] private Node2D _labelPivot = null!;
|
||||||
|
|
||||||
[Export(PropertyHint.DictionaryType)] private Dictionary<MinigameController.RegionTheme, Color> _fillColors = new();
|
[Export(PropertyHint.DictionaryType)] private Dictionary<MinigameController.RegionTheme, Color> _fillColors = new();
|
||||||
|
|
||||||
public void Setup(Vector2 normalAngles, Color color, string regionText, MinigameController.RegionTheme regionTheme)
|
private int _index;
|
||||||
|
|
||||||
|
public void Setup(Vector2 normalAngles, string regionText, MinigameController.RegionTheme regionTheme, int index)
|
||||||
{
|
{
|
||||||
var mat = (_sliceSprite.Material as ShaderMaterial)!;
|
var mat = (_sliceSprite.Material as ShaderMaterial)!;
|
||||||
mat.SetShaderParameter("angles", normalAngles);
|
mat.SetShaderParameter("angles", normalAngles);
|
||||||
mat.SetShaderParameter("fillColor", GetFillColor(regionTheme));
|
mat.SetShaderParameter("fillColor", GetFillColor(regionTheme));
|
||||||
|
|
||||||
var averageAngleRadians = (normalAngles.X + normalAngles.Y) * float.Pi; // '/ 2' from the average and '* 2' from the radians cancel out
|
// '/ 2' from the average and '* 2' from the radians cancel out
|
||||||
|
var averageAngleRadians = (normalAngles.X + normalAngles.Y) * float.Pi;
|
||||||
_labelPivot.Rotation = averageAngleRadians;
|
_labelPivot.Rotation = averageAngleRadians;
|
||||||
_textLabel.Rotation = -averageAngleRadians;
|
_textLabel.Rotation = -averageAngleRadians;
|
||||||
|
|
||||||
_textLabel.Text = regionText;
|
_textLabel.Text = regionText;
|
||||||
|
|
||||||
|
_index = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HitAnimation(int regionIndex)
|
||||||
|
{
|
||||||
|
if(regionIndex != _index) return;
|
||||||
|
|
||||||
|
var tween = GetTree().CreateTween();
|
||||||
|
tween.TweenProperty(_sliceSprite, "scale", new Vector2(1.5f, 1.5f), 0.1f);
|
||||||
|
tween.TweenProperty(_sliceSprite, "scale", new Vector2(1f, 1f), 0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Color GetFillColor(MinigameController.RegionTheme theme)
|
private Color GetFillColor(MinigameController.RegionTheme theme)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.Services;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.NPC;
|
namespace Babushka.scripts.CSharp.Common.NPC;
|
||||||
@@ -8,37 +9,28 @@ public partial class TalkingCharacter : Node2D
|
|||||||
[Export] private string[] _timelinesToPlay;
|
[Export] private string[] _timelinesToPlay;
|
||||||
[Export] private bool _retriggerSameTimeline = false;
|
[Export] private bool _retriggerSameTimeline = false;
|
||||||
|
|
||||||
private bool _isTalking = true;
|
|
||||||
private int _timelineIndex = 0;
|
private int _timelineIndex = 0;
|
||||||
|
|
||||||
[Signal] public delegate void TalkingEventHandler(string timelineName);
|
[Signal] public delegate void TalkingEventHandler(string timelineName);
|
||||||
[Signal] public delegate void FinishedTalkingEventHandler(bool hasTimeLinesToPlay);
|
|
||||||
|
|
||||||
public override void _Ready()
|
public void StartTalking()
|
||||||
{
|
{
|
||||||
ToggleTalking();
|
if (_sprite != null)
|
||||||
}
|
_sprite.Animation = "talk";
|
||||||
|
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
|
||||||
public void ToggleTalking()
|
if (!_retriggerSameTimeline)
|
||||||
{
|
_timelineIndex++;
|
||||||
if (_isTalking || _timelineIndex >= _timelinesToPlay.Length)
|
InputService.Instance.InputEnabled = false;
|
||||||
{
|
|
||||||
if (_sprite != null)
|
|
||||||
_sprite.Animation = "idle";
|
|
||||||
_isTalking = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (_sprite != null)
|
|
||||||
_sprite.Animation = "talk";
|
|
||||||
_isTalking = true;
|
|
||||||
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
|
|
||||||
if (!_retriggerSameTimeline)
|
|
||||||
_timelineIndex++;
|
|
||||||
}
|
|
||||||
if (_sprite != null)
|
if (_sprite != null)
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
|
}
|
||||||
|
|
||||||
EmitSignal(SignalName.FinishedTalking, _timelineIndex >= _timelinesToPlay.Length);
|
public void StopTalking()
|
||||||
|
{
|
||||||
|
if (_sprite != null)
|
||||||
|
_sprite.Animation = "idle";
|
||||||
|
InputService.Instance.InputEnabled = true;
|
||||||
|
if (_sprite != null)
|
||||||
|
_sprite.Play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public class Entity
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public virtual string EntityType => "";
|
||||||
|
|
||||||
|
public Entity()
|
||||||
|
{
|
||||||
|
id = new Random().NextInt64();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
json["id"] = id;
|
||||||
|
json["type"] = EntityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
id = json.GetLongValue("id");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://hnmpt23ovfgl
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Transactions;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public class LoadedScenesEntity : Entity
|
||||||
|
{
|
||||||
|
private HashSet<string> _loadedScenes = new();
|
||||||
|
public override string EntityType => OWN_TYPE_NAME;
|
||||||
|
public const string OWN_TYPE_NAME = "LoadedScenesEntity";
|
||||||
|
|
||||||
|
public void AddScene(string sceneName) => _loadedScenes.Add(sceneName);
|
||||||
|
|
||||||
|
public bool WasSceneLoaded(string sceneName) => _loadedScenes.Contains(sceneName);
|
||||||
|
|
||||||
|
public override void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.SaveEntity(json);
|
||||||
|
json["scenes"] = new JArray(_loadedScenes);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.LoadEntity(json);
|
||||||
|
JArray array = (JArray?) json["scenes"] ?? throw new Exception("No scenes found in LoadedScenesEntity.");
|
||||||
|
|
||||||
|
_loadedScenes = array.ToObject<HashSet<string>>()!;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://rabb1y637cm5
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public abstract class PositionalEntity : Entity
|
||||||
|
{
|
||||||
|
public Vector2 position;
|
||||||
|
public string sceneName = "none";
|
||||||
|
|
||||||
|
public override void SaveEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.SaveEntity(json);
|
||||||
|
json["posx"] = position.X;
|
||||||
|
json["posy"] = position.Y;
|
||||||
|
json["scene"] = sceneName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadEntity(JObject json)
|
||||||
|
{
|
||||||
|
base.LoadEntity(json);
|
||||||
|
position = new Vector2(
|
||||||
|
json.GetFloatValue("posx"),
|
||||||
|
json.GetFloatValue("posy"));
|
||||||
|
sceneName = json.GetStringValue("scene");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deals with Instantiation of the node
|
||||||
|
public abstract void InstantiateEntityNode(Node2D parent);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bs38dulqv7sop
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
|
||||||
|
public class TrashEntity : PositionalEntity
|
||||||
|
{
|
||||||
|
public override string EntityType => OWN_TYPE_NAME;
|
||||||
|
public const string OWN_TYPE_NAME = "TrashEntity";
|
||||||
|
private EntityNodeCreator _creator;
|
||||||
|
|
||||||
|
public TrashEntity()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void InstantiateEntityNode(Node2D parent)
|
||||||
|
{
|
||||||
|
if(_creator == null) _creator = EntityManager.Instance.NodeCreator;
|
||||||
|
var entityNode = _creator.InstantiateNode(EntityType);
|
||||||
|
parent.AddChild(entityNode);
|
||||||
|
entityNode.GlobalPosition = position;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://c31k34epunk5t
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.EntityNodes;
|
||||||
|
|
||||||
|
public partial class TrashEntityNode : Node2D
|
||||||
|
{
|
||||||
|
private TrashEntity _trashEntity;
|
||||||
|
|
||||||
|
public void Initialize(TrashEntity trashEntity)
|
||||||
|
{
|
||||||
|
_trashEntity = trashEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://d3n8kwva4pxx5
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.EntityPlacer;
|
||||||
|
|
||||||
|
public partial class TrashEntityPlacer : Node2D
|
||||||
|
{
|
||||||
|
private string _trashEntityType = TrashEntity.OWN_TYPE_NAME;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
string sceneName = EntityManager.Instance.CurrentEntitySceneContainer!.sceneName;
|
||||||
|
var loadedScenesEntity = EntityManager.Instance.GetUniqueEntity<LoadedScenesEntity>();
|
||||||
|
|
||||||
|
if (!loadedScenesEntity.WasSceneLoaded(sceneName))
|
||||||
|
{
|
||||||
|
TrashEntity entity = new TrashEntity();
|
||||||
|
entity.sceneName = sceneName;
|
||||||
|
entity.position = GlobalPosition;
|
||||||
|
EntityManager.Instance.AddEntity(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
QueueFree();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bilg7e33usxuv
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
|
||||||
|
public static class EntityLoadSaveUtil
|
||||||
|
{
|
||||||
|
private static void AssertTokenType(this JObject json, string key, JTokenType type)
|
||||||
|
{
|
||||||
|
var token = json[key];
|
||||||
|
if (token == null) throw new MalformedJsonException(json, key, "does not exist");
|
||||||
|
//if (!token.HasValues) throw new MalformedJsonException(json, key, "has no value");
|
||||||
|
if (token.Type != type) throw new MalformedJsonException(json, key, $"is not of type {type}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long GetLongValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Integer);
|
||||||
|
return json.Value<long>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetIntValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Integer);
|
||||||
|
return json.Value<int>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float GetFloatValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Float);
|
||||||
|
return json.Value<float>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JObject GetObject(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.Object);
|
||||||
|
return json.Value<JObject>(key)!;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetStringValue(this JObject json, string key)
|
||||||
|
{
|
||||||
|
AssertTokenType(json, key, JTokenType.String);
|
||||||
|
return json.Value<string>(key)!;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://ccu6p418viliu
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
|
||||||
|
public interface IJsonSerializable
|
||||||
|
{
|
||||||
|
public void LoadFromJson(JObject json);
|
||||||
|
public JObject SaveToJson();
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cuma3347l55mb
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.LoadSave;
|
||||||
|
|
||||||
|
public class MalformedJsonException(JObject actualJson, string key, string problem) : Exception
|
||||||
|
{
|
||||||
|
public override string Message => $"JsonObject was malformed: {key} {problem}";
|
||||||
|
public override IDictionary Data => new Dictionary<string, JObject> { { "json", actualJson } };
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://d1o066hh84ow
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Godot;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Entity = Babushka.scripts.CSharp.GameEntity.Entities.Entity;
|
||||||
|
using PositionalEntity = Babushka.scripts.CSharp.GameEntity.Entities.PositionalEntity;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Manages the lifecycle and interactions of all entities within the game, including their creation, retrieval,
|
||||||
|
/// and organization. The EntityManager serves as a centralized hub for managing both standard and positional entities.
|
||||||
|
/// </summary>
|
||||||
|
public partial class EntityManager : Node
|
||||||
|
{
|
||||||
|
public static EntityManager Instance;
|
||||||
|
|
||||||
|
[Export] private EntityNodeCreator _nodeCreator = null!;
|
||||||
|
[Export] private string saveDirectory = "user://save_data/";
|
||||||
|
|
||||||
|
private EntitySceneContainer? _currentEntitySceneContainer;
|
||||||
|
private readonly List<Entity> _allEntities = new();
|
||||||
|
|
||||||
|
public IEnumerable<Entity> AllEntities => _allEntities;
|
||||||
|
public IEnumerable<PositionalEntity> AllPositionalEntities => _allEntities.OfType<PositionalEntity>();
|
||||||
|
public EntitySceneContainer? CurrentEntitySceneContainer => _currentEntitySceneContainer;
|
||||||
|
public EntityNodeCreator NodeCreator => _nodeCreator;
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
Load();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent @event)
|
||||||
|
{
|
||||||
|
// for debugging purposes
|
||||||
|
if (@event.IsActionPressed("DebugEntities"))
|
||||||
|
{
|
||||||
|
GD.Print("Entities:");
|
||||||
|
foreach (var entity in AllEntities)
|
||||||
|
{
|
||||||
|
GD.Print(entity.EntityType + " " + entity.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(@event.IsActionPressed("SaveGame")) Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Save()
|
||||||
|
{
|
||||||
|
JArray array = new JArray();
|
||||||
|
foreach (var entity in AllEntities)
|
||||||
|
{
|
||||||
|
JObject saveData = new JObject();
|
||||||
|
entity.SaveEntity(saveData);
|
||||||
|
array.Add(saveData);
|
||||||
|
}
|
||||||
|
|
||||||
|
using var SaveFile = FileAccess.Open(saveDirectory + "save.json", FileAccess.ModeFlags.Write);
|
||||||
|
SaveFile.StoreString(array.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Load()
|
||||||
|
{
|
||||||
|
using var saveFile = FileAccess.Open(saveDirectory + "save.json", FileAccess.ModeFlags.Read);
|
||||||
|
if (saveFile == null) return;
|
||||||
|
|
||||||
|
JArray array = JArray.Parse(saveFile.GetAsText());
|
||||||
|
|
||||||
|
foreach (var token in array)
|
||||||
|
{
|
||||||
|
var jobj = (JObject)token;
|
||||||
|
|
||||||
|
if (jobj == null) continue;
|
||||||
|
|
||||||
|
if (jobj.TryGetValue("type", out var entityType))
|
||||||
|
{
|
||||||
|
string entityTypeString = (string) entityType!;
|
||||||
|
Entity entity = InitializeEntity(entityTypeString);
|
||||||
|
entity.LoadEntity(jobj);
|
||||||
|
AddEntity(entity);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Entity InitializeEntity(string type)
|
||||||
|
{
|
||||||
|
Entity entity = type switch
|
||||||
|
{
|
||||||
|
TrashEntity.OWN_TYPE_NAME => new TrashEntity(),
|
||||||
|
LoadedScenesEntity.OWN_TYPE_NAME => new LoadedScenesEntity(),
|
||||||
|
_ => throw new Exception($"Trying to load unknown entity type: {type}")
|
||||||
|
};
|
||||||
|
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region ENTITY MANAGEMENT
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds an entity to the list of managed entities. If the entity is a positional entity
|
||||||
|
/// and its scene matches the current scene container, it is also instantiated in the scene.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity">The entity to be added to the manager.</param>
|
||||||
|
public void AddEntity(Entity entity)
|
||||||
|
{
|
||||||
|
if (!_allEntities.Contains(entity))
|
||||||
|
_allEntities.Add(entity);
|
||||||
|
if(entity is PositionalEntity positionalEntity && positionalEntity.sceneName == _currentEntitySceneContainer?.sceneName)
|
||||||
|
InstantiatePositionalEntityNode(positionalEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InstantiatePositionalEntityNode(PositionalEntity entity)
|
||||||
|
{
|
||||||
|
if(_currentEntitySceneContainer == null) return;
|
||||||
|
entity.InstantiateEntityNode(_currentEntitySceneContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the first entity of the specified type from the list of managed entities.
|
||||||
|
/// If no such entity exists, creates a new instance of the specified type, adds it to the manager, and returns it.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The type of entity to retrieve or create. Must inherit from the Entity class and have a parameterless constructor.</typeparam>
|
||||||
|
/// <returns>The first entity of the specified type or a newly created entity of that type if none were found.</returns>
|
||||||
|
public T GetUniqueEntity<T>() where T : Entity, new()
|
||||||
|
{
|
||||||
|
var result = AllEntities.OfType<T>().FirstOrDefault();
|
||||||
|
if (result == null)
|
||||||
|
{
|
||||||
|
var newEntity = new T();
|
||||||
|
AddEntity(newEntity);
|
||||||
|
result = newEntity;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SCENE CONTAINER ACCESS
|
||||||
|
|
||||||
|
public void SetSceneContainer(EntitySceneContainer sceneContainer)
|
||||||
|
{
|
||||||
|
_currentEntitySceneContainer = sceneContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UnsetSceneContainer()
|
||||||
|
{
|
||||||
|
_currentEntitySceneContainer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://umop2b1m1qm8
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using PositionalEntity = Babushka.scripts.CSharp.GameEntity.Entities.PositionalEntity;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
|
||||||
|
public static class EntityManagerUtil
|
||||||
|
{
|
||||||
|
public static void AddIfNeeded(this EntitySceneContainer? self, PositionalEntity entity)
|
||||||
|
{
|
||||||
|
if(self == null) return;
|
||||||
|
if(self.sceneName != entity.sceneName) return;
|
||||||
|
|
||||||
|
self.AddEntity(entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dc3283h7sx4cl
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
|
||||||
|
public partial class EntityNodeCreator : Node
|
||||||
|
{
|
||||||
|
[Export] private Dictionary<string, PackedScene> _entityPrefabs;
|
||||||
|
|
||||||
|
public Node2D InstantiateNode(string type)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(type))
|
||||||
|
{
|
||||||
|
throw new NullReferenceException("The type provided for Node instantiation cannot be null or empty.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_entityPrefabs.ContainsKey(type))
|
||||||
|
{
|
||||||
|
throw new Exception($"The type provided for Node instantiation ({type}) is not specified in the EntityNodeCreator dictionary.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return _entityPrefabs[type].Instantiate<Node2D>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bogqp274y1pgr
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using Babushka.scripts.CSharp.GameEntity.Entities;
|
||||||
|
using Godot;
|
||||||
|
using PositionalEntity = Babushka.scripts.CSharp.GameEntity.Entities.PositionalEntity;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.GameEntity.Management;
|
||||||
|
|
||||||
|
public partial class EntitySceneContainer : Node2D
|
||||||
|
{
|
||||||
|
[Export] public string sceneName = "none";
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
EntityManager.Instance.SetSceneContainer(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
EntityManager.Instance.Save();
|
||||||
|
EntityManager.Instance.UnsetSceneContainer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
AddAllEntities();
|
||||||
|
CallDeferred(nameof(RegisterWithScenesEntity));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RegisterWithScenesEntity()
|
||||||
|
{
|
||||||
|
var loadedScenesEntity = EntityManager.Instance.GetUniqueEntity<LoadedScenesEntity>();
|
||||||
|
loadedScenesEntity.AddScene(sceneName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddAllEntities()
|
||||||
|
{
|
||||||
|
foreach (var positionalEntity in EntityManager.Instance.AllPositionalEntities.Where(x => x.sceneName == sceneName))
|
||||||
|
{
|
||||||
|
AddEntity(positionalEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddEntity(PositionalEntity entity)
|
||||||
|
{
|
||||||
|
entity.InstantiateEntityNode(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://ca1pg6k3gn47y
|
||||||
@@ -1,5 +1,18 @@
|
|||||||
extends Node
|
extends Node
|
||||||
class_name DialogicStarter
|
class_name DialogicStarter
|
||||||
|
|
||||||
|
signal timelineStarted
|
||||||
|
signal timelineEnded
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
Dialogic.timeline_ended.connect(_on_timeline_ended)
|
||||||
|
Dialogic.timeline_started.connect(_start_dialog)
|
||||||
|
|
||||||
func open(timeline: String):
|
func open(timeline: String):
|
||||||
Dialogic.start(timeline)
|
Dialogic.start(timeline)
|
||||||
|
|
||||||
|
func _start_dialog() -> void:
|
||||||
|
timelineStarted.emit()
|
||||||
|
|
||||||
|
func _on_timeline_ended() -> void:
|
||||||
|
timelineEnded.emit()
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ uniform float brightness_add : hint_range(-1.0, 1.0) = 0.0;
|
|||||||
// Contrast multiplier in RGB space. 1.0 means no change.
|
// Contrast multiplier in RGB space. 1.0 means no change.
|
||||||
uniform float contrast_mult : hint_range(0.0, 2.0) = 1.0;
|
uniform float contrast_mult : hint_range(0.0, 2.0) = 1.0;
|
||||||
|
|
||||||
|
//Cached Color value to reapply modulate
|
||||||
|
varying vec4 modulate;
|
||||||
|
|
||||||
// Converts an RGB color to HSV.
|
// Converts an RGB color to HSV.
|
||||||
vec3 rgb2hsv(vec3 c) {
|
vec3 rgb2hsv(vec3 c) {
|
||||||
float cMax = max(max(c.r, c.g), c.b);
|
float cMax = max(max(c.r, c.g), c.b);
|
||||||
@@ -65,6 +68,10 @@ vec3 hsv2rgb(vec3 c) {
|
|||||||
return rgb + vec3(m);
|
return rgb + vec3(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vertex(){
|
||||||
|
modulate = COLOR;
|
||||||
|
}
|
||||||
|
|
||||||
void fragment() {
|
void fragment() {
|
||||||
// Get the original texture color.
|
// Get the original texture color.
|
||||||
vec4 tex_color = texture(TEXTURE, UV);
|
vec4 tex_color = texture(TEXTURE, UV);
|
||||||
@@ -89,4 +96,6 @@ void fragment() {
|
|||||||
|
|
||||||
// Output the final color while preserving the original alpha.
|
// Output the final color while preserving the original alpha.
|
||||||
COLOR = vec4(col, tex_color.a);
|
COLOR = vec4(col, tex_color.a);
|
||||||
|
//reapply vertex color value to keep modulate changes
|
||||||
|
COLOR = COLOR * modulate;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,14 @@ shader_type canvas_item;
|
|||||||
|
|
||||||
uniform vec2 tiling_scale = vec2(5.0, 5.0);
|
uniform vec2 tiling_scale = vec2(5.0, 5.0);
|
||||||
uniform sampler2D noise : repeat_enable;
|
uniform sampler2D noise : repeat_enable;
|
||||||
|
varying vec4 modulate;
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
modulate = COLOR;
|
||||||
|
}
|
||||||
|
|
||||||
void fragment() {
|
void fragment() {
|
||||||
vec2 uv = vec2(UV.x * tiling_scale.x, UV.y * tiling_scale.y); // Change 10.0 to control tiling scale
|
vec2 uv = vec2(UV.x * tiling_scale.x, UV.y * tiling_scale.y); // Change 10.0 to control tiling scale
|
||||||
COLOR = texture(TEXTURE, fract(uv));
|
COLOR = texture(TEXTURE, fract(uv));
|
||||||
|
COLOR = COLOR * modulate;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ uniform float heightOffset : hint_range(0.0, 1.0);
|
|||||||
// With the offset value, you can if you want different moves for each asset. Just put a random value (1, 2, 3) in the editor. Don't forget to mark the material as unique if you use this
|
// With the offset value, you can if you want different moves for each asset. Just put a random value (1, 2, 3) in the editor. Don't forget to mark the material as unique if you use this
|
||||||
uniform float offset = 0;
|
uniform float offset = 0;
|
||||||
|
|
||||||
|
// caching color settings to reapply modulate value
|
||||||
|
varying vec4 modulate;
|
||||||
|
|
||||||
float getWind(vec2 vertex, vec2 uv, float time){
|
float getWind(vec2 vertex, vec2 uv, float time){
|
||||||
float diff = pow(maxStrength - minStrength, 2.0);
|
float diff = pow(maxStrength - minStrength, 2.0);
|
||||||
float strength = clamp(minStrength + diff + sin(time / interval) * diff, minStrength, maxStrength) * strengthScale;
|
float strength = clamp(minStrength + diff + sin(time / interval) * diff, minStrength, maxStrength) * strengthScale;
|
||||||
@@ -47,8 +50,13 @@ float noise(vec2 x) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void vertex() {
|
void vertex() {
|
||||||
|
modulate = COLOR;
|
||||||
vec4 pos = MODEL_MATRIX * vec4(0.0, 0.0, 0.0, 1.0);
|
vec4 pos = MODEL_MATRIX * vec4(0.0, 0.0, 0.0, 1.0);
|
||||||
//float time = TIME * speed + sin(VERTEX.x * noise(VERTEX.xy) * offset);
|
//float time = TIME * speed + sin(VERTEX.x * noise(VERTEX.xy) * offset);
|
||||||
float time = TIME * speed + sin(pos.x * offset) * cos( pos.x * offset) ;
|
float time = TIME * speed + sin(pos.x * offset) * cos( pos.x * offset) ;
|
||||||
VERTEX.x += getWind(VERTEX.xy, UV, time);
|
VERTEX.x += getWind(VERTEX.xy, UV, time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
COLOR = modulate * COLOR;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user