Compare commits

..

58 Commits

Author SHA1 Message Date
jonathan 1edbe7aeb7 Live review changes 2025-11-03 20:21:30 +01:00
jonathan 45d4b26b6a ♻️ Implemented FightersFormation to keep track of the fight entered state of the fighters 2025-10-07 18:08:53 +02:00
jonathan 719b1fa800 ♻️Code cleanup 2025-10-07 15:50:33 +02:00
jonathan bd6432f568 🐛Exiting fight happening when one side wins 2025-10-05 19:50:05 +02:00
jonathan 224863f891 Added theme-based region colors 2025-10-03 20:02:25 +02:00
jonathan 7d35c991f3 Added minigame label for each region 2025-10-03 19:37:54 +02:00
jonathan ff8e4a85d2 Added minigame to attack action 2025-10-02 15:49:24 +02:00
jonathan 96df233496 Added minigame 2025-10-02 01:32:52 +02:00
jonathan 3f23f4471b cap health at minimum 0 2025-10-01 13:16:41 +02:00
jonathan f2bf44bf9e Added blob attack action 2025-10-01 01:42:29 +02:00
jonathan f0db6372e5 Added basic health bar 2025-09-30 19:00:52 +02:00
jonathan 52f1560c48 Added basic action animation 2025-09-30 17:36:35 +02:00
jonathan 8055381478 Made fight fightable 2025-09-30 16:23:05 +02:00
jonathan daabcdc5ee Fight happening base setup 2025-09-21 14:54:55 +02:00
jonathan 2929c5dd25 Bootstrap fight system
- Fight World data structure
- Generating basic fight world
- Opening correct fight room
- Block paths in fight rooms
- Transition between rooms
2025-09-12 13:20:27 +02:00
Jonathan 9bebe1a44d Merge pull request 'Implemented first demo quest line' (#15) from feature/implement_quests into develop
Reviewed-on: #15
2025-08-14 23:28:09 +02:00
jonathan 06a270e916 Renamed function to not sound like a unity signal 2025-08-14 23:27:15 +02:00
jonathan b621df5435 removed invisible character 2025-08-14 23:16:52 +02:00
jonathan 03dbc08293 quest status name refactoring 2025-08-14 21:54:18 +02:00
jonathan 8676bbb2f6 Fix spelling 2025-08-13 17:13:33 +02:00
jonathan 6e998810b6 Completed first demo quest line 2025-08-13 03:23:45 +02:00
jonathan c96be7467e Added Quest field 2025-08-11 19:15:12 +02:00
Jonathan 6aa7530502 Added speed hack for vesna 2025-08-06 21:25:28 +02:00
Jonathan d7ac1c6c22 Fixed retrigger yeli dialog 2025-08-06 20:04:24 +02:00
Jonathan 0170a53b5a Added more quest stuff including dialogic quest condition 2025-08-06 18:20:38 +02:00
cblech abc33fd06c Added first quests 2025-08-06 18:19:52 +02:00
cblech 2fbeb93018 Dialogic quest addition and plugin fix 2025-08-06 18:19:08 +02:00
Jonathan 9253a78a06 Merge pull request 'feature/showcase_bugfixing_kathi' (#14) from feature/showcase_bugfixing_kathi into develop
Reviewed-on: #14
2025-08-06 18:16:53 +02:00
kziolkowski 0008b16d48 Adjusted moving values and animations to make vesna not slide any more 2025-08-02 15:32:13 +02:00
kziolkowski 8e0dced918 Vesna can walk diagonally now 2025-08-02 15:08:38 +02:00
kziolkowski 2e21fb7e98 Made sure splash screen features logo 2025-08-02 13:55:11 +02:00
kziolkowski b69191e7f7 fixed pickup layering 2025-08-02 13:46:01 +02:00
kziolkowski 8f75b5b644 Added secondary outline mat and assigned it to inventory items 2025-08-02 13:38:07 +02:00
kziolkowski 6275bea52c MAde Vesna and Yeli disappear on dialogic start 2025-07-31 23:30:12 +02:00
kziolkowski 279cac22ee Fixed dialogic settings 2025-07-31 23:25:43 +02:00
kziolkowski e88ba2e1ef Updated interaction area setups to avoid nullrefs 2025-07-31 23:08:10 +02:00
kziolkowski f01143e887 cleaned up dialogue structure and removed vesna2 from dialogues 2025-07-31 22:09:37 +02:00
kziolkowski 18711776bb Fixed output error ERROR: Script class can only be set together with base class name 2025-07-31 21:45:22 +02:00
kziolkowski 0f246825fc Added Wellbehaviour and fixed door interaction to offer outlines 2025-07-31 20:36:17 +02:00
kziolkowski 19e30dd0b8 Removed disclaimer reference from bootstrap 2025-07-31 20:35:49 +02:00
kziolkowski 730c4999d7 Extracted FightAttack Enum in the hopes of fixing errors 2025-07-31 20:35:24 +02:00
kziolkowski cfe604d3b7 set duck body scale to 1,1 2025-07-31 18:55:06 +02:00
kziolkowski ad16b86171 wip exchanging interaction label with outline 2025-07-27 13:17:34 +02:00
kziolkowski 5ee295256b Fixed Yeli Layering issue in indoor scene 2025-07-26 17:05:17 +02:00
kziolkowski ab23d41496 Fixed ysorting on ducks and trash 2025-07-26 16:51:05 +02:00
Jonathan ae0944fe00 Merge pull request 'feature/showcase_kathi' (#12) from feature/showcase_kathi into develop
Reviewed-on: #12
2025-07-23 12:37:47 +02:00
kziolkowski 486cfb5546 WIP trying to fix the last plant stage bug on repeated farming rounds 2025-07-17 22:10:08 +02:00
kziolkowski b92eb909ad Removed no longer needed print statements 2025-07-17 20:47:34 +02:00
kziolkowski d2c7302ab2 Fixed farming (the way it was before) 2025-07-17 20:44:28 +02:00
kziolkowski 5affc48dc5 Added scene transitions between fighting scene, credits, and start 2025-07-11 04:12:42 +02:00
kziolkowski cdb6b83124 Merge remote-tracking branch 'origin/feature/fight_system' into feature/showcase_kathi 2025-07-11 03:55:56 +02:00
kziolkowski a4f9511892 WIP fixing farming mechanic again 2025-07-11 03:55:36 +02:00
kziolkowski 7a3e96d679 Merge remote-tracking branch 'origin/feature/fight_system' into feature/showcase_kathi 2025-07-11 03:13:08 +02:00
kziolkowski e38c391e1c Reworked flow to make it playable somehow 2025-07-11 03:12:29 +02:00
kziolkowski eaedf8c396 WIP Beetroot 2025-07-11 03:00:43 +02:00
kziolkowski ffa20bbdf8 Added trash to first outdoor scene 2025-07-11 00:56:51 +02:00
kziolkowski b77b6e3a52 Added second outdoor scene after tutorial 2025-07-11 00:17:31 +02:00
kziolkowski c7d56301fc Added counter script to count ducks (and other things) 2025-07-10 23:58:33 +02:00
289 changed files with 11901 additions and 1416 deletions
+1
View File
@@ -1,4 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=53eecf85_002Dd821_002D40e8_002Dac97_002Dfdb734542b84/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Instance" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Instance fields (not private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;Kind Name="READONLY_FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" WarnAboutPrefixesAndSuffixes="False" Prefix="" Suffix="" Style="aaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Description/@EntryValue">Godot Signal</s:String> <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Description/@EntryValue">Godot Signal</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Text/@EntryValue">[Signal] <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Text/@EntryValue">[Signal]
public delegate void $SignalName$EventHandler($END$);</s:String> public delegate void $SignalName$EventHandler($END$);</s:String>
+24 -1
View File
@@ -1,6 +1,29 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArea3D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F8a54226fa2e1c9371a8091f24cfd744aef11fe6869527dc23b9b837623a29b9_003FArea3D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArea3D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F8a54226fa2e1c9371a8091f24cfd744aef11fe6869527dc23b9b837623a29b9_003FArea3D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArray_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe37dc1faf08a4d5ea030ad59bdf77522523400_003Fa3_003Fe272a3a7_003FArray_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAudioStreamPlayer2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F848324b1c23114c3f5e8bbb5a42c4ade394c59a7a7a133a66b76581ca571_003FAudioStreamPlayer2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAudioStreamPlayer2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F848324b1c23114c3f5e8bbb5a42c4ade394c59a7a7a133a66b76581ca571_003FAudioStreamPlayer2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptMethods_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FLocal_003FTemp_003FSourceGeneratedDocuments_003F9509A9D00FD8A232B5E86A84_003FGodot_002ESourceGenerators_003FGodot_002ESourceGenerators_002EScriptMethodsGenerator_003FBabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptMethods_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptProperties_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FLocal_003FTemp_003FSourceGeneratedDocuments_003F9509A9D00FD8A232B5E86A84_003FGodot_002ESourceGenerators_003FGodot_002ESourceGenerators_002EScriptPropertiesGenerator_003FBabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptProperties_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptProperties_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F4298b0f293f987511fc1b7956ee691fd778f8378_003FBabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptProperties_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptProperties_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F4298b0f293f987511fc1b7956ee691fd778f8378_003FBabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EVesnaBehaviour2D_005FScriptProperties_002Egenerated_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABabushka_002Escripts_002ECSharp_002ECommon_002EQuest_002EQuestListItemUi_005FScriptMethods_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F48fad7e7f3c9e292b3fdbddf9d363f0d1752aa_003FBabushka_002Escripts_002ECSharp_002ECommon_002EQuest_002EQuestListItemUi_005FScriptMethods_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABabushka_002Escripts_002ECSharp_002ECommon_002EQuest_002EQuestManager_005FScriptSignals_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FLocal_003FTemp_003FSourceGeneratedDocuments_003F9509A9D00FD8A232B5E86A84_003FGodot_002ESourceGenerators_003FGodot_002ESourceGenerators_002EScriptSignalsGenerator_003FBabushka_002Escripts_002ECSharp_002ECommon_002EQuest_002EQuestManager_005FScriptSignals_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACanvasItem_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fef7b819b226fab796d1dfe66d415dd7510bcac87675020ddb8f03a828e763_003FCanvasItem_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F3c92637ae2e83da0a63791071c41eae291d594156062866d8621b7ed7245c_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd111abf504bf42b5968a609b168fd093b2e200_003Fbb_003F1c116fcd_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd111abf504bf42b5968a609b168fd093b2e200_003Fbb_003F1c116fcd_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACharacterBody2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fbba0bbd7a98ee58286e9484fbe86e01afff6232283f6efd3556eb7116453_003FCharacterBody2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACharacterBody2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fbba0bbd7a98ee58286e9484fbe86e01afff6232283f6efd3556eb7116453_003FCharacterBody2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Ff1d69ec2da76ccf9bc8a75c8e0fdca9a7ba1adf8c8c9d5047e2fa5991c02eca_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACount_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Ffe5a7cee5a1771b89077bd73292de84439b4f816799e2ad6c2615c6ff5bd748e_003FCount_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADictionary_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003Fhome_003Fjonathan_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe37dc1faf08a4d5ea030ad59bdf77522523400_003Fd4_003Fbd338aeb_003FDictionary_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEnumerable_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F76fabf6f8acf4a0099cae0bcf8b218467f10_003F7e_003F28cee476_003FEnumerable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGD_005Fconstants_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F4ef0bac6437b6a9567d44f62ae567d854fa7b8513ef7139ef349b49768bc9df_003FGD_005Fconstants_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Ff1d69ec2da76ccf9bc8a75c8e0fdca9a7ba1adf8c8c9d5047e2fa5991c02eca_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F5acc345db3c207bc9d886a36ff14867ef8d65557432172c2a42f19aeac04d1b_003FNullable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AResourceLoader_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F9f4e8eb124d11f8219cb513a19bed22b2120ed29f9d6785ba56e3367b48d581_003FResourceLoader_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASceneTree_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F8d6960554e939a669841b1ece03d27df4ab42f92bb80be3767eaec8cdaccf84b_003FSceneTree_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AShape2D_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F3671dbbd9b17cdf2bf9075b468b6bd7e3ab13fc3be7a116484085d3b6cc9fe_003FShape2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fc7102cd0ffb8973777e61b1942c3fffac7e14016a511d055c3adf73ff91748_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=bc5a80e4_002D7ba6_002D4f7d_002Db896_002Dc591eec7ab12/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="Tests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;NUnit3x::A6EF2269-9E64-40D4-BA0A-33CB234E2503::net9.0::BabushkaTest.Tests&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/SessionState&gt;</s:String></wpf:ResourceDictionary>
+22
View File
@@ -0,0 +1,22 @@
@tool
extends EditorPlugin
func _enter_tree() -> void:
if !ProjectSettings.has_setting("babushka/hacks/speed_hack"):
ProjectSettings.set_setting("babushka/hacks/speed_hack",-1)
var property_info = {
"name": "babushka/hacks/speed_hack",
"type": TYPE_FLOAT,
"hint": PROPERTY_HINT_RANGE,
"hint_string": "-1,20,0.5"
}
ProjectSettings.add_property_info(property_info)
ProjectSettings.set_initial_value("babushka/hacks/speed_hack",-1)
func _exit_tree() -> void:
# Clean-up of the plugin goes here.
pass
@@ -0,0 +1 @@
uid://buwfplh0xji8q
+7
View File
@@ -0,0 +1,7 @@
[plugin]
name="BabushkaHelpers"
description=""
author="Cozy Raven"
version=""
script="babushkahelpers.gd"
+2
View File
@@ -95,6 +95,8 @@ func _make_visible(visible:bool) -> void:
func _save_external_data() -> void: func _save_external_data() -> void:
if _editor_view_and_manager_exist(): if _editor_view_and_manager_exist():
editor_view.editors_manager.save_current_resource() editor_view.editors_manager.save_current_resource()
DialogicResourceUtil.update_directory('.tres')
func _get_unsaved_status(for_scene:String) -> String: func _get_unsaved_status(for_scene:String) -> String:
@@ -0,0 +1,55 @@
@tool
extends DialogicEvent
class_name DialogicQuestActivateEvent
# Define properties of the event here
var quest_resource: String
func _execute() -> void:
var resource = ResourceLoader.load(quest_resource)
QuestManager.ChangeQuestStatus(resource,QuestEventUtils.QuestStatus.AVAILABLE)
QuestManager.SetActiveQuest(resource)
finish() # called to continue with the next event
#region INITIALIZE
################################################################################
# Set fixed settings of this event
func _init() -> void:
event_name = "Activate Quest"
event_category = "Quest"
#endregion
#region SAVING/LOADING
################################################################################
func get_shortcode() -> String:
return "quest_activate"
func get_shortcode_parameters() -> Dictionary:
return {
#param_name : property_info
"quest_resource" : {"property": "quest_resource", "default": ""},
}
# You can alternatively overwrite these 3 functions: to_text(), from_text(), is_valid_event()
#endregion
#region EDITOR REPRESENTATION
################################################################################
func build_event_editor() -> void:
add_header_label("Activate Quest")
add_header_edit(
"quest_resource",
ValueType.DYNAMIC_OPTIONS,
{
"mode":2,
"suggestions_func":QuestEventUtils.quest_resource_suggestrions
})
#endregion
@@ -0,0 +1 @@
uid://br3a7napsjmg3
@@ -0,0 +1,55 @@
@tool
extends DialogicEvent
class_name DialogicQuestCompleteEvent
# Define properties of the event here
var quest_resource: String
func _execute() -> void:
var resource = ResourceLoader.load(quest_resource)
QuestManager.ChangeQuestStatus(resource,QuestEventUtils.QuestStatus.DONE)
QuestManager.SetActiveQuest(null)
finish() # called to continue with the next event
#region INITIALIZE
################################################################################
# Set fixed settings of this event
func _init() -> void:
event_name = "Complete Quest"
event_category = "Quest"
#endregion
#region SAVING/LOADING
################################################################################
func get_shortcode() -> String:
return "quest_complete"
func get_shortcode_parameters() -> Dictionary:
return {
#param_name : property_info
"quest_resource" : {"property": "quest_resource", "default": ""},
}
# You can alternatively overwrite these 3 functions: to_text(), from_text(), is_valid_event()
#endregion
#region EDITOR REPRESENTATION
################################################################################
func build_event_editor() -> void:
add_header_label("Complete Quest")
add_header_edit(
"quest_resource",
ValueType.DYNAMIC_OPTIONS,
{
"mode":2,
"suggestions_func":QuestEventUtils.quest_resource_suggestrions
})
#endregion
@@ -0,0 +1 @@
uid://c8mtjwpe7c0h
@@ -0,0 +1,163 @@
@tool
extends DialogicEvent
class_name DialogicQuestConditionEvent
## Event that allows branching a timeline based on a condition.
#enum ConditionTypes {IF, ELIF, ELSE}
### Settings
## condition type (see [ConditionTypes]). Defaults to if.
#var condition_type := ConditionTypes.IF
## The condition as a string. Will be executed as an Expression.
#var condition := ""
var quest_resource: String
var compare_status: QuestEventUtils.QuestStatusOrActive
################################################################################
## EXECUTE
################################################################################
func _execute() -> void:
var resource = ResourceLoader.load(quest_resource)
var result: bool
if compare_status == QuestEventUtils.QuestStatusOrActive.ACTIVE:
result = QuestManager.GetActiveQuest() == resource
elif compare_status == QuestEventUtils.QuestStatusOrActive.NOT_ACTIVE:
result = QuestManager.GetActiveQuest() != resource
else:
result = QuestManager.GetQuestStatus(resource).status == compare_status
if not result:
var idx: int = dialogic.current_event_idx
var ignore := 1
while true:
idx += 1
if not dialogic.current_timeline.get_event(idx) or ignore == 0:
break
elif dialogic.current_timeline.get_event(idx).can_contain_events:
ignore += 1
elif dialogic.current_timeline.get_event(idx) is DialogicEndBranchEvent:
ignore -= 1
dialogic.current_event_idx = idx-1
finish()
## only called if the previous event was an end-branch event
## return true if this event should be executed if the previous event was an end-branch event
func should_execute_this_branch() -> bool:
return true
################################################################################
## INITIALIZE
################################################################################
func _init() -> void:
event_name = "Quest Condition"
set_default_color('Color3')
event_category = "Quest"
event_sorting_index = 1
can_contain_events = true
# return a control node that should show on the END BRANCH node
func get_end_branch_control() -> Control:
return load(get_script().resource_path.get_base_dir().path_join('ui_quest_condition_end.tscn')).instantiate()
################################################################################
## SAVING/LOADING
################################################################################
func to_text() -> String:
return 'ifquest ' + quest_resource + ', ' + str(compare_status) + ':'
func from_text(string:String) -> void:
#if string.strip_edges().begins_with('if'):
# condition = string.strip_edges().trim_prefix('if ').trim_suffix(':').strip_edges()
# condition_type = ConditionTypes.IF
var strings:Array[String]
strings.assign(string.strip_edges().trim_prefix('ifquest ').trim_suffix(':').strip_edges().split(','))
quest_resource = strings[0].strip_edges()
var compare_string: String = strings[1].strip_edges()
if compare_string.is_valid_int():
compare_status = compare_string.to_int()
else:
compare_status = QuestEventUtils.QuestStatusOrActive.get(compare_string)
func is_valid_event(string:String) -> bool:
if string.strip_edges().begins_with('ifquest '):
return true
return false
################################################################################
## EDITOR REPRESENTATION
################################################################################
func build_event_editor() -> void:
add_header_label("IF")
add_header_edit(
"quest_resource",
ValueType.DYNAMIC_OPTIONS,
{
"mode":2,
"suggestions_func":QuestEventUtils.quest_resource_suggestrions
})
add_header_label("IS")
add_header_edit("compare_status",ValueType.FIXED_OPTIONS,{
'options': [
{
'label': 'HIDDEN',
'value': QuestEventUtils.QuestStatusOrActive.HIDDEN,
},
{
'label': 'AVAILABLE',
'value': QuestEventUtils.QuestStatusOrActive.AVAILABLE,
},
{
'label': 'DONE',
'value': QuestEventUtils.QuestStatusOrActive.DONE,
},
{
'label': 'CANCLED',
'value': QuestEventUtils.QuestStatusOrActive.CANCLED,
},
{
'label': 'ACTIVE',
'value': QuestEventUtils.QuestStatusOrActive.ACTIVE,
},
{
'label': 'NOT_ACTIVE',
'value': QuestEventUtils.QuestStatusOrActive.NOT_ACTIVE,
}
]})
func _get_icon() -> Resource:
return load("res://addons/dialogic/Modules/Condition/icon.svg")
####################### CODE COMPLETION ########################################
################################################################################
func _get_code_completion(CodeCompletionHelper:Node, TextNode:TextEdit, line:String, _word:String, symbol:String) -> void:
pass
func _get_start_code_completion(_CodeCompletionHelper:Node, TextNode:TextEdit) -> void:
TextNode.add_code_completion_option(CodeEdit.KIND_PLAIN_TEXT, 'ifquest', 'ifquest ', TextNode.syntax_highlighter.code_flow_color)
#################### SYNTAX HIGHLIGHTING #######################################
################################################################################
func _get_syntax_highlighting(Highlighter:SyntaxHighlighter, dict:Dictionary, line:String) -> Dictionary:
var word := line.get_slice(' ', 0)
dict[line.find(word)] = {"color":Highlighter.code_flow_color}
dict[line.find(word)+len(word)] = {"color":Highlighter.normal_color}
dict = Highlighter.color_condition(dict, line)
return dict
@@ -0,0 +1 @@
uid://b2ggc2f5kh61j
@@ -0,0 +1,43 @@
@tool
class_name QuestEventUtils
enum QuestStatus{
HIDDEN = 0,
AVAILABLE = 1,
DONE = 2,
CANCLED = 3
}
enum QuestStatusOrActive{
HIDDEN = 0,
AVAILABLE = 1,
DONE = 2,
CANCLED = 3,
ACTIVE = 4,
NOT_ACTIVE = 5
}
static func quest_resource_suggestrions(search_text:String) -> Dictionary:
var ret_val = {}
var quest_paths = get_all_file_paths("res://resources/quests")
for path in quest_paths:
var res = ResourceLoader.load(path)
ret_val[res.id]= {"value":path, "tooltip":res.title + "\n\n" + res.description}
return ret_val
static func get_all_file_paths(path: String) -> Array[String]:
var file_paths: Array[String] = []
var dir = DirAccess.open(path)
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
var file_path = path + "/" + file_name
if dir.current_is_dir():
file_paths += get_all_file_paths(file_path)
else:
file_paths.append(file_path)
file_name = dir.get_next()
return file_paths
@@ -0,0 +1 @@
uid://d1x2343wpkdku
+9
View File
@@ -0,0 +1,9 @@
@tool
extends DialogicIndexer
func _get_events() -> Array:
return [
this_folder.path_join('event_quest_activate.gd'),
this_folder.path_join('event_quest_complete.gd'),
this_folder.path_join('event_quest_condition.gd')
]
@@ -0,0 +1 @@
uid://wup1fvm05rqv
@@ -0,0 +1,51 @@
@tool
extends HBoxContainer
var parent_resource: DialogicEvent = null
func _ready() -> void:
$AddElif.button_up.connect(add_elif)
$AddElse.button_up.connect(add_else)
func refresh() -> void:
if parent_resource is DialogicQuestConditionEvent:
# hide add elif and add else button on ELSE event
$AddElif.visible = false# parent_resource.condition_type != DialogicConditionEvent.ConditionTypes.ELSE
$AddElse.visible = true# parent_resource.condition_type != DialogicConditionEvent.ConditionTypes.ELSE
$Label.text = "End of If Quest" #"End of "+["IF", "ELIF", "ELSE"][parent_resource.condition_type]+" ("+parent_resource.condition+")"
# hide add add else button if followed by ELIF or ELSE event
var timeline_editor := find_parent('VisualEditor')
if timeline_editor:
var next_event: DialogicEvent = null
if timeline_editor.get_block_below(get_parent()):
next_event = timeline_editor.get_block_below(get_parent()).resource
if next_event is DialogicConditionEvent:
if next_event.condition_type != DialogicConditionEvent.ConditionTypes.IF:
$AddElse.hide()
#if parent_resource.condition_type == DialogicConditionEvent.ConditionTypes.ELSE:
# $Label.text = "End of ELSE"
else:
hide()
func add_elif() -> void:
var timeline := find_parent('VisualEditor')
if timeline:
var resource := DialogicConditionEvent.new()
resource.condition_type = DialogicConditionEvent.ConditionTypes.ELIF
timeline.add_event_undoable(resource, get_parent().get_index()+1)
timeline.indent_events()
timeline.something_changed()
func add_else() -> void:
var timeline := find_parent('VisualEditor')
if timeline:
var resource := DialogicConditionEvent.new()
resource.condition_type = DialogicConditionEvent.ConditionTypes.ELSE
timeline.add_event_undoable(resource, get_parent().get_index()+1)
timeline.indent_events()
timeline.something_changed()
@@ -0,0 +1 @@
uid://dlrnhnnonum4o
@@ -0,0 +1,20 @@
[gd_scene load_steps=2 format=3 uid="uid://dnrpcgjkyoiau"]
[ext_resource type="Script" uid="uid://dlrnhnnonum4o" path="res://addons/dialogic_additions/Quest/ui_condition_end.gd" id="1_f3miq"]
[node name="Condition_End" type="HBoxContainer"]
offset_right = 90.0
offset_bottom = 23.0
script = ExtResource("1_f3miq")
[node name="Label" type="Label" parent="."]
layout_mode = 2
text = "End of condition X"
[node name="AddElif" type="Button" parent="."]
layout_mode = 2
text = "Add Elif"
[node name="AddElse" type="Button" parent="."]
layout_mode = 2
text = "Add Else"
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccy6bwunhfvrf"
path="res://.godot/imported/Babushka_house_frontDoor.png-345830acb7ae8cbbb97011f89455fd91.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/farm/Babushka_house_frontDoor.png"
dest_files=["res://.godot/imported/Babushka_house_frontDoor.png-345830acb7ae8cbbb97011f89455fd91.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5ade1s2ijunu"
path="res://.godot/imported/beetroot_icon.png-aef760d681bd7ef4c12802c6da8d93f5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/farm/farming/farmobjekte/beetroot/beetroot_icon.png"
dest_files=["res://.godot/imported/beetroot_icon.png-aef760d681bd7ef4c12802c6da8d93f5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://xtci0n8tquc0"
path="res://.godot/imported/beetroot_00.png-0c2234fc9109ef4b2bb1c7f568ee2fc7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/farm/farming/farmobjekte/beetroot_00.png"
dest_files=["res://.godot/imported/beetroot_00.png-0c2234fc9109ef4b2bb1c7f568ee2fc7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

@@ -0,0 +1,9 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bv3m12duf0dj6"]
[ext_resource type="Shader" uid="uid://dsa3lv2as7q3b" path="res://shader/outline.gdshader" id="1_fxlom"]
[resource]
shader = ExtResource("1_fxlom")
shader_parameter/allow_out_of_bounds = true
shader_parameter/outline_thickness = 8.0
shader_parameter/outline_color = Color(0.88, 0.54208, 0.4576, 1)
@@ -0,0 +1,9 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://blch5kdhkbj75"]
[ext_resource type="Shader" uid="uid://dsa3lv2as7q3b" path="res://shader/outline.gdshader" id="1_ovtva"]
[resource]
shader = ExtResource("1_ovtva")
shader_parameter/allow_out_of_bounds = true
shader_parameter/outline_thickness = 8.0
shader_parameter/outline_color = Color(0.88, 0.79684, 0.3256, 1)
@@ -4,12 +4,11 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://b3kyrsoobmkhp" uid="uid://b3kyrsoobmkhp"
path="res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn" valid=false
[deps] [deps]
source_file="res://art/mockups/3d/best_house_blender.blend" source_file="res://art/mockups/3d/best_house_blender.blend"
dest_files=["res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"]
[params] [params]
+13 -6
View File
@@ -15,8 +15,8 @@
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
overrides = { overrides = {
"global_bg_color": "Color(0.898375, 0.917922, 0.835355, 1)", "global_bg_color": "Color(0.898375, 0.917922, 0.835355, 1)",
"global_font_color": "Color(0.242786, 0.16463, 0.180255, 1)", "global_font_color": "Color(0.257812, 0.125248, 0.0533752, 1)",
"global_font_size": "20.0" "global_font_size": "30.0"
} }
[sub_resource type="Resource" id="Resource_uxnk3"] [sub_resource type="Resource" id="Resource_uxnk3"]
@@ -44,10 +44,10 @@ overrides = {
"name_label_alignment": "2", "name_label_alignment": "2",
"name_label_box_modulate": "Color(1, 1, 1, 1)", "name_label_box_modulate": "Color(1, 1, 1, 1)",
"name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"", "name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"",
"name_label_custom_font_size": "30.0",
"name_label_use_global_color": "false", "name_label_use_global_color": "false",
"next_indicator_enabled": "false", "next_indicator_enabled": "false",
"text_alignment": "1", "text_size": "40.0",
"text_size": "20.0",
"typing_sounds_end_sound": "\"res://audio/sfx/UI/Dialog/SFX_Dialog_Open_01.wav\"" "typing_sounds_end_sound": "\"res://audio/sfx/UI/Dialog/SFX_Dialog_Open_01.wav\""
} }
@@ -59,7 +59,14 @@ overrides = {}
[sub_resource type="Resource" id="Resource_umvdi"] [sub_resource type="Resource" id="Resource_umvdi"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
scene = ExtResource("7_rg32j") scene = ExtResource("7_rg32j")
overrides = {} overrides = {
"font_size_custom": "30.0",
"text_color_disabled": "Color(0.605469, 0.605469, 0.605469, 1)",
"text_color_focused": "Color(1, 0.628906, 0.628906, 1)",
"text_color_hovered": "Color(0.882353, 0.572549, 0.572549, 1)",
"text_color_pressed": "Color(1, 0.882812, 0.53125, 1)",
"text_color_use_global": "false"
}
[sub_resource type="Resource" id="Resource_ci2ul"] [sub_resource type="Resource" id="Resource_ci2ul"]
script = ExtResource("1_0jwhi") script = ExtResource("1_0jwhi")
@@ -94,4 +101,4 @@ layer_info = {
} }
base_overrides = {} base_overrides = {}
layers = Array[ExtResource("1_0jwhi")]([]) layers = Array[ExtResource("1_0jwhi")]([])
metadata/_latest_layer = "14" metadata/_latest_layer = "15"
@@ -0,0 +1,8 @@
[quest_complete quest_resource="res://resources/quests/demo/7_talk_yeli_inside_1.tres"]
join Yeli center
Yeli: Thank you for your help out there.
Yeli: You must be tired. Please rest. I prepared a bed for you. It's in the room to the left.
Yeli: There is nothing interesting to see here.
leave Yeli
[quest_activate quest_resource="res://resources/quests/demo/8_goto_bed.tres"]
[end_timeline]
@@ -1,18 +1,18 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
Everyone: Smachnoho! Everyone: Smachnoho!
Vesna2: Lovely soup, Yeli! vesna: Lovely soup, Yeli!
Yeli (_part_side): God bless you, my child! Thats also thanks to you. Yeli (_part_side): God bless you, my child! Thats also thanks to you.
Vesna2: So, how do you like it in Lasnoye so far? vesna: So, how do you like it in Lasnoye so far?
- It feels different from when Vasily and I used to live here. - It feels different from when Vasily and I used to live here.
- Its just as I remembered it. - Its just as I remembered it.
Yeli (_part_side): Indeed, it is. Yeli (_part_side): Indeed, it is.
Yeli (_part_side): Since the evacuation, Lasnoye and its people had to adapt to…new circumstances. Yeli (_part_side): Since the evacuation, Lasnoye and its people had to adapt to…new circumstances.
Yeli (_part_side): But at its core, its still our motherland from back then. Yeli (_part_side): But at its core, its still our motherland from back then.
Vesna2: …And the forest? Has anyone tried to go back and-- vesna: …And the forest? Has anyone tried to go back and--
Yeli (_part_side): The forest is strictly off-limits! Yeli (_part_side): The forest is strictly off-limits!
Yeli (_part_side): Dragana forbids it. Yeli (_part_side): Dragana forbids it.
Yeli (_part_side): The grime turned the forest into a dangerous place. Yeli (_part_side): The grime turned the forest into a dangerous place.
Yeli (_part_side): But here youre safe. After all, you can always count on your Yeli! Yeli (_part_side): But here youre safe. After all, you can always count on your Yeli!
Vesna2: In that case, pass me some more soup! vesna: In that case, pass me some more soup!
[end_timeline] [end_timeline]
-19
View File
@@ -1,19 +0,0 @@
{
"@path": "res://addons/dialogic/Resources/character.gd",
"@subpath": NodePath(""),
&"_translation_id": "",
&"color": Color(1, 1, 1, 1),
&"custom_info": {
"sound_mood_default": "",
"sound_moods": {},
"style": "NPC_narrative"
},
&"default_portrait": "",
&"description": "Main character",
&"display_name": "Vesna2",
&"mirror": false,
&"nicknames": [""],
&"offset": Vector2(0, 0),
&"portraits": {},
&"scale": 1.0
}
-1
View File
@@ -1 +0,0 @@
uid://c0vfdx7xal0py
-3
View File
@@ -1,3 +0,0 @@
join vesna left
Thats the last one. I should get back to Yeli.
[end_timeline]
-4
View File
@@ -1,4 +0,0 @@
join Vesna2 center
Vesna2: I just wish I liked tomatoes more.
Vesna2: Well…Yeli probably started with the cooking. I should go inside.
[end_timeline]
-10
View File
@@ -1,10 +0,0 @@
join Yeli center
join Vesna2 center
Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore.
Vesna2: But youre diligent! Youve started with the preparation for dinner.
Yeli (_part_side): Indeed, I have.
Yeli (_part_side): But, oh my, those ducks messed up the tomatos.
Yeli (_part_side): Oh, would you like to assist me?
Vesna2: What do I have to do?
Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me!
[end_timeline]
-15
View File
@@ -1,15 +0,0 @@
join Vesna2 center
join Domovoi center
Vesna2: Oh no, most of the beets arent ripe yet.
Domovoi: Pssss!
Domovoi: Yeah, you!
Domovoi: The code word is “Rosty Rosty”
Vesna2: What?
Domovoi: Just say it!
Vesna2: Rosty…rosty?
# Hier wächst die rote Beete magisch. Mit einem Signal/Ereignis?
[signal]
Vesna2: It worked! How did it work?
Vesna2: Thank y…and hes gone.
What a truly quirky individual.
[end_timeline]
-5
View File
@@ -1,5 +0,0 @@
join Chuga center
Chuga: I believe youve seen enough for today.
Chuga: And yes, you too.
Thank you for playing!
[end_timeline]
@@ -1,5 +1,5 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
Yeli (_part_side): Wow! So many? Yeli (_part_side): Wow! So many?
Yeli (_part_side): Good job! Put it in the kettle! Yeli (_part_side): Good job! Put it in the kettle!
[wait_input] [wait_input]
@@ -0,0 +1,15 @@
join vesna center
join Domovoi center
vesna: Oh no, most of the beets arent ripe yet.
Domovoi: Pssss!
Domovoi: Yeah, you!
Domovoi: The code word is “Rosty Rosty”
vesna: What?
Domovoi: Just say it!
vesna: Rosty…rosty?
# Hier wächst die rote Beete magisch. Mit einem Signal/Ereignis?
[signal arg="MagicWord"]
vesna: It worked! How did it work?
vesna: Thank y…and hes gone.
vesna: What a truly quirky individual.
[end_timeline]
+5
View File
@@ -0,0 +1,5 @@
join vesna center
[quest_complete quest_resource="res://resources/quests/demo/2_collect_ducks.tres"]
Thats the last one. I should get back to Yeli.
[quest_activate quest_resource="res://resources/quests/demo/3_talk_yeli_2.tres"]
[end_timeline]
@@ -1,8 +1,10 @@
join Yeli center join Yeli right
join vesna left join vesna left
[quest_complete quest_resource="res://resources/quests/demo/1_talk_yeli_1.tres"]
Yeli (_part_side): Come here, you little quacking beast! Yeli (_part_side): Come here, you little quacking beast!
- What a mess! - What a mess!
- You havent called me that way yet. - How did you call me?
Yeli (_part_side): Vesna, oh, thank goodness! Yeli (_part_side): Vesna, oh, thank goodness!
Yeli (_part_side): Please could you get the runner ducks back into their coop? Yeli (_part_side): Please could you get the runner ducks back into their coop?
[quest_activate quest_resource="res://resources/quests/demo/2_collect_ducks.tres"]
[end_timeline] [end_timeline]
@@ -0,0 +1,6 @@
join Chuga center
Chuga: I believe youve seen enough for today.
Chuga: And yes, you too.
vesna: Thank you for playing!
do SceneTransition.ChangeSceneToFileThreaded("res://scenes/Babushka_scene_credits.tscn")
[end_timeline]
@@ -1,22 +1,24 @@
join Vesna2 center [quest_complete quest_resource="res://resources/quests/demo/9_talk_to_chuga.tres"]
join vesna center
join Chuga center join Chuga center
Chuga: Look who it is! Chuga: Look who it is!
Vesna2: Your name was Chuga, right? I want to go to the forest! vesna: Your name was Chuga, right? I want to go to the forest!
Chuga: To the forest? After everything the others told you? Chuga: To the forest? After everything the others told you?
Vesna2: Will you let me through? vesna: Will you let me through?
Chuga: Will I? Chuga: Will I?
Chuga: Let us have a riddle! Chuga: Let us have a riddle!
Chuga: If you answer correctly, I let you through. Chuga: If you answer correctly, I let you through.
Chuga: If not, I let you through anyway. Chuga: If not, I let you through anyway.
Vesna2: So, whats the point of answering? vesna: So, whats the point of answering?
Chuga: You give me an answer, and I give you something to see in the dark. Chuga: You give me an answer, and I give you something to see in the dark.
Chuga: Or are you planning to return with bumps and bruises? Chuga: Or are you planning to return with bumps and bruises?
Chuga: So, listen\: “I wear a crown, but Im no king.” Vesna, what am I? Chuga: So, listen\: “I wear a crown, but Im no king.” Vesna, what am I?
- Queen - Queen
Chuga: What a boring answer. Chuga: What a boring answer.
- Tree - Tree
Thats it! Chuga: Thats it!
- Soup - Soup
Chuga: Hate the player, not the game. Chuga: Hate the player, not the game.
Chuga: Here you go! Chuga: Here you go!
[quest_activate quest_resource="res://resources/quests/demo/10_fight_the_monsters.tres"]
[end_timeline] [end_timeline]
@@ -0,0 +1,4 @@
join vesna center
vesna: I just wish I liked tomatoes more.
vesna: Well…Yeli probably started with the cooking. I should go inside.
[end_timeline]
@@ -1,5 +1,6 @@
join Yeli center join Yeli center
join Vesna2 center join vesna center
[quest_complete quest_resource="res://resources/quests/demo/5_talk_yeli_3.tres"]
Yeli (_part_side): Great! Now I need you to plant some tomatoes! Yeli (_part_side): Great! Now I need you to plant some tomatoes!
label plant tomatoes label plant tomatoes
Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields. Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields.
@@ -7,4 +8,5 @@ Yeli (_part_side): Got it?
- Of course! - Of course!
- Wait … How do I plant the tomatoes again? - Wait … How do I plant the tomatoes again?
jump plant tomatoes jump plant tomatoes
[quest_activate quest_resource="res://resources/quests/demo/6_till_and_water.tres"]
[end_timeline] [end_timeline]
@@ -0,0 +1,12 @@
join Yeli center
join vesna center
[quest_complete quest_resource="res://resources/quests/demo/3_talk_yeli_2.tres"]
Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore.
vesna: But youre diligent! Youve started with the preparation for dinner.
Yeli (_part_side): Indeed, I have.
Yeli (_part_side): But, oh my, those ducks messed up the tomatos.
Yeli (_part_side): Oh, would you like to assist me?
vesna: What do I have to do?
Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me!
[quest_activate quest_resource="res://resources/quests/demo/4_collect_tools.tres"]
[end_timeline]
+8
View File
@@ -0,0 +1,8 @@
join vesna center
[text_input text="What shold I say?" var="MAGICWORD" placeholder="Expelliarmus!" allow_empty="true"]
if {MAGICWORD} == "Rosty Rosty":
vesna: That did the trick!
[signal arg="MagicWord"]
else:
vesna: Didn't seem to work...
[end_timeline]
+1
View File
@@ -0,0 +1 @@
uid://dtcypgqal1ids
+15
View File
@@ -0,0 +1,15 @@
Quest\: {ACTIVEQUEST}
ifquest res://resources/quests/test/test_01.tres, 4:
Test 1 active
else:
Test 1 is not active
ifquest res://resources/quests/test/test_01.tres, 1:
But its available
else:
And not available
ifquest res://resources/quests/test/test_02.tres, 4:
Test 2 active
ifquest res://resources/quests/test/test_02.tres, 1:
And Available
else:
Else 2
+1
View File
@@ -0,0 +1 @@
uid://xfkdvitmhgln
-7
View File
@@ -1,7 +0,0 @@
join Yeli center
Yeli: Woah, what's going on here?
Yeli: Seems like this room isn't ready for business yet.
Yeli: Let's wait until the developers are done with it, shall we?
Yeli: See you at {SHOW}!
leave Yeli
[end_timeline]
+10
View File
@@ -0,0 +1,10 @@
ifquest res://resources/quests/demo/1_talk_yeli_1.tres, 1:
jump quest1_ducks_start/
[end_timeline]
ifquest res://resources/quests/demo/3_talk_yeli_2.tres, 1:
jump quest2_tomatoes_start/
[end_timeline]
ifquest res://resources/quests/demo/5_talk_yeli_3.tres, 1:
jump quest2_tomatoes_interim/
[end_timeline]
No Dialog for active quest "{ACTIVEQUEST}"
+1
View File
@@ -0,0 +1 @@
uid://do3c5uofv5m7b
+2 -2
View File
@@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="_builds/Babushka_win_0_3/Babushka.exe" export_path="_builds/Babushka_showcase_win_04/Babushka.exe"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
@@ -79,7 +79,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="_builds/Babushka_linux_0_2/Babushka.x86_64" export_path="_builds/Babushka_showcase_lux_04/Babushka.x86_64"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
+49
View File
@@ -0,0 +1,49 @@
[gd_scene load_steps=15 format=3 uid="uid://sbf12hin4kes"]
[ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"]
[ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"]
[ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"]
[ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"]
[ext_resource type="AudioStream" uid="uid://dd3qyaox6mx4i" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_02.wav" id="6_u7jgg"]
[ext_resource type="AudioStream" uid="uid://b1qhh35hugoy0" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_03.wav" id="7_bu430"]
[ext_resource type="AudioStream" uid="uid://ceob726q4obuw" path="res://audio/sfx/Kitchen/SFX_Cooking_Utensils_02.wav" id="8_gnu24"]
[ext_resource type="AudioStream" uid="uid://tjuxapc4wuss" path="res://audio/sfx/Kitchen/SFX_Cutlery_02.wav" id="9_vmxy4"]
[ext_resource type="AudioStream" uid="uid://duiyhe7yiyotb" path="res://audio/sfx/Kitchen/SFX_Cutlery_03.wav" id="10_aqih4"]
[ext_resource type="AudioStream" uid="uid://bc216pfieuc8h" path="res://audio/sfx/Kitchen/SFX_Cutlery_04.wav" id="11_kb03l"]
[ext_resource type="AudioStream" uid="uid://dp6qen84ptlvx" path="res://audio/sfx/Kitchen/SFX_Cutlery_05.wav" id="12_kka6u"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="13_wswkg"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dich4"]
streams_count = 10
stream_0/stream = ExtResource("3_ktmp7")
stream_1/stream = ExtResource("4_ic616")
stream_2/stream = ExtResource("5_dx175")
stream_3/stream = ExtResource("6_u7jgg")
stream_4/stream = ExtResource("7_bu430")
stream_5/stream = ExtResource("8_gnu24")
stream_6/stream = ExtResource("9_vmxy4")
stream_7/stream = ExtResource("10_aqih4")
stream_8/stream = ExtResource("11_kb03l")
stream_9/stream = ExtResource("12_kka6u")
[node name="trashObject" type="Sprite2D"]
z_index = 1
y_sort_enabled = true
texture = ExtResource("1_k4ca3")
offset = Vector2(1, -215)
region_enabled = true
region_rect = Rect2(44, 479, 356, 503)
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_gcgfd")]
position = Vector2(0, -172)
_spriteToOutline = NodePath("..")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = SubResource("AudioStreamRandomizer_dich4")
bus = &"SFX"
playback_type = 2
script = ExtResource("13_wswkg")
[connection signal="Interacted" from="InteractionArea" to="." method="queue_free"]
[connection signal="Interacted" from="InteractionArea" to="AudioStreamPlayer2D" method="PlayOneShot"]
+1 -1
View File
@@ -1,7 +1,7 @@
[gd_scene load_steps=11 format=3 uid="uid://cgjc4wurbgimy"] [gd_scene load_steps=11 format=3 uid="uid://cgjc4wurbgimy"]
[ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"] [ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="1_l3npx"] [ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="1_l3npx"]
[ext_resource type="Texture2D" uid="uid://3ln8aleyxgp1" path="res://art/ui/UI/UI_bag_export_01.png" id="3_vvo7l"] [ext_resource type="Texture2D" uid="uid://3ln8aleyxgp1" path="res://art/ui/UI/UI_bag_export_01.png" id="3_vvo7l"]
[ext_resource type="Texture2D" uid="uid://u0dku75l17re" path="res://art/ui/UI/UI_bag_export_highlight_01.png" id="5_df8i8"] [ext_resource type="Texture2D" uid="uid://u0dku75l17re" path="res://art/ui/UI/UI_bag_export_highlight_01.png" id="5_df8i8"]
[ext_resource type="PackedScene" uid="uid://c0kmdjeqkqrwv" path="res://prefabs/UI/Inventory/Slot.tscn" id="5_u7kje"] [ext_resource type="PackedScene" uid="uid://c0kmdjeqkqrwv" path="res://prefabs/UI/Inventory/Slot.tscn" id="5_u7kje"]
+6 -13
View File
@@ -1,10 +1,11 @@
[gd_scene load_steps=8 format=3 uid="uid://ddpl8cbck7e6s"] [gd_scene load_steps=9 format=3 uid="uid://ddpl8cbck7e6s"]
[ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_xix7p"] [ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_xix7p"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_udjjv"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_udjjv"]
[ext_resource type="Texture2D" uid="uid://bgba1uv0muxat" path="res://art/characters/chugeist_tmp.png" id="3_42og6"] [ext_resource type="Texture2D" uid="uid://bgba1uv0muxat" path="res://art/characters/chugeist_tmp.png" id="3_42og6"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="3_kd44q"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="43_xooq4"] [ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="43_xooq4"]
[ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_v6w16"] [ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_v6w16"]
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"] [sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
resource_local_to_scene = true resource_local_to_scene = true
@@ -20,24 +21,16 @@ z_index = 1
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_xix7p") script = ExtResource("1_xix7p")
[node name="InteractionArea" parent="." instance=ExtResource("2_udjjv")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_udjjv")]
position = Vector2(0, -450) position = Vector2(0, -450)
scale = Vector2(2.805, 2.805) scale = Vector2(2.805, 2.805)
_outlineMaterial = ExtResource("3_kd44q")
_spriteToOutline = NodePath("../TalkingControl/Visual")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
position = Vector2(-4.99109, 63.4581) position = Vector2(-4.99109, 63.4581)
shape = SubResource("CircleShape2D_at1n1") shape = SubResource("CircleShape2D_at1n1")
[node name="Label" parent="InteractionArea" index="1"]
z_index = 5
custom_minimum_size = Vector2(10, 10)
offset_left = -131.194
offset_top = -157.219
offset_right = 115.806
offset_bottom = -54.2193
theme_override_font_sizes/font_size = 60
text = "[E] talk"
[node name="TalkingControl" type="Node2D" parent="."] [node name="TalkingControl" type="Node2D" parent="."]
[node name="Visual" type="Sprite2D" parent="TalkingControl"] [node name="Visual" type="Sprite2D" parent="TalkingControl"]
+32 -23
View File
@@ -1,7 +1,8 @@
[gd_scene load_steps=476 format=3 uid="uid://c25udixd5m6l0"] [gd_scene load_steps=477 format=3 uid="uid://c25udixd5m6l0"]
[ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"] [ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"]
[ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/Player2D.cs" id="2_1vqmv"] [ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/PlayerMovement.cs" id="2_1vqmv"]
[ext_resource type="Script" uid="uid://n7oihifvqp23" path="res://scripts/CSharp/Common/Animation/VesnaAnimations.cs" id="3_f6xmn"]
[ext_resource type="Texture2D" uid="uid://7jrac5ii3ah3" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0001.png" id="3_tb2wl"] [ext_resource type="Texture2D" uid="uid://7jrac5ii3ah3" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0001.png" id="3_tb2wl"]
[ext_resource type="Texture2D" uid="uid://c06b551t2qlo6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0002.png" id="4_dy5kt"] [ext_resource type="Texture2D" uid="uid://c06b551t2qlo6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0002.png" id="4_dy5kt"]
[ext_resource type="Texture2D" uid="uid://bj2ssu0ixr0p1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0004.png" id="6_3sina"] [ext_resource type="Texture2D" uid="uid://bj2ssu0ixr0p1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0004.png" id="6_3sina"]
@@ -471,8 +472,8 @@
[ext_resource type="Texture2D" uid="uid://3pj2q7wtuion" path="res://art/farm/farming/farmobjekte/hoe.png" id="815_1ia2b"] [ext_resource type="Texture2D" uid="uid://3pj2q7wtuion" path="res://art/farm/farming/farmobjekte/hoe.png" id="815_1ia2b"]
[ext_resource type="Texture2D" uid="uid://x8hr8287ff2n" path="res://art/farm/farming/farmobjekte/tools atlas.png" id="816_1a3c1"] [ext_resource type="Texture2D" uid="uid://x8hr8287ff2n" path="res://art/farm/farming/farmobjekte/tools atlas.png" id="816_1a3c1"]
[ext_resource type="Script" uid="uid://bcskt5ckh3rqa" path="res://scripts/CSharp/Common/Farming/FarmingControls2D.cs" id="817_6nrw3"] [ext_resource type="Script" uid="uid://bcskt5ckh3rqa" path="res://scripts/CSharp/Common/Farming/FarmingControls2D.cs" id="817_6nrw3"]
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field_2d.tscn" id="818_16w6h"] [ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/tomato_field.tscn" id="818_16w6h"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"] [ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"] [sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"]
radius = 110.018 radius = 110.018
@@ -744,7 +745,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"back walking", "name": &"back walking",
"speed": 15.0 "speed": 20.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -824,7 +825,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"back walking backpack", "name": &"back walking backpack",
"speed": 25.0 "speed": 45.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -862,7 +863,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"back walking rake", "name": &"back walking rake",
"speed": 5.0 "speed": 20.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -900,7 +901,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"back walking wateringcan", "name": &"back walking wateringcan",
"speed": 15.0 "speed": 20.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -1471,7 +1472,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"front walking", "name": &"front walking",
"speed": 15.0 "speed": 20.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -1551,7 +1552,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"front walking backpack", "name": &"front walking backpack",
"speed": 25.0 "speed": 42.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -1589,7 +1590,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"front walking rake", "name": &"front walking rake",
"speed": 15.0 "speed": 20.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -1627,7 +1628,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"front walking wateringcan", "name": &"front walking wateringcan",
"speed": 15.0 "speed": 20.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -1948,7 +1949,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"side walking", "name": &"side walking",
"speed": 25.0 "speed": 38.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -1986,7 +1987,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"side walking rake", "name": &"side walking rake",
"speed": 15.0 "speed": 16.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -2024,7 +2025,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"side walking simplified", "name": &"side walking simplified",
"speed": 15.0 "speed": 16.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -2062,38 +2063,41 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"side walking wateringcan", "name": &"side walking wateringcan",
"speed": 11.0 "speed": 16.0
}] }]
[node name="Player2d" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d")] [node name="Vesna" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d", "_vesnaAnimations")]
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("1_yd5ep") script = ExtResource("1_yd5ep")
_farmingControls = NodePath("FarmingControls") _farmingControls = NodePath("FarmingControls")
_player2d = NodePath("CharacterBody2D") _player2d = NodePath("CharacterBody2D")
_vesnaAnimations = NodePath("CharacterBody2D/visuals")
[node name="CharacterBody2D" type="CharacterBody2D" parent="." node_paths=PackedStringArray("_sprite", "_wateringParticles") groups=["PlantGrowing"]] [node name="CharacterBody2D" type="CharacterBody2D" parent="." groups=["PlantGrowing"]]
position = Vector2(0, 374) position = Vector2(0, 374)
collision_layer = 4 collision_layer = 4
collision_mask = 3 collision_mask = 3
script = ExtResource("2_1vqmv") script = ExtResource("2_1vqmv")
_speed = 1500.0
_sprite = NodePath("visuals/Animated Sprites")
_wateringParticles = NodePath("../pouring water vfx")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
visible = false
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(-24, -13) position = Vector2(-24, -13)
shape = SubResource("CircleShape2D_ssqtd") shape = SubResource("CircleShape2D_ssqtd")
debug_color = Color(0.923708, 0.202722, 0.475262, 0.42) debug_color = Color(0.923708, 0.202722, 0.475262, 0.42)
[node name="visuals" type="Node2D" parent="CharacterBody2D"] [node name="visuals" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_sprite", "_wateringParticles")]
position = Vector2(0, -374) position = Vector2(0, -374)
script = ExtResource("3_f6xmn")
_sprite = NodePath("Animated Sprites")
_wateringParticles = NodePath("../../pouring water vfx")
[node name="Animated Sprites" type="AnimatedSprite2D" parent="CharacterBody2D/visuals"] [node name="Animated Sprites" type="AnimatedSprite2D" parent="CharacterBody2D/visuals"]
position = Vector2(0, 450) position = Vector2(0, 450)
sprite_frames = SubResource("SpriteFrames_4yiyq") sprite_frames = SubResource("SpriteFrames_4yiyq")
animation = &"front walking backpack" animation = &"side walking wateringcan"
frame_progress = 0.130831
offset = Vector2(0, -450) offset = Vector2(0, -450)
[node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"] [node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"]
@@ -2193,6 +2197,11 @@ scale_amount_max = 0.8
color = Color(0.400601, 0.62444, 0.791217, 1) color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4 hue_variation_max = 0.4
[node name="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")]
scale = Vector2(0.7, 0.7)
script = ExtResource("819_4na52")
itemToToggle = NodePath("../CharacterBody2D/visuals/Animated Sprites")
[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"] [connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"]
[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"] [connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"] [connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
+8 -15
View File
@@ -43,7 +43,7 @@
[ext_resource type="Texture2D" uid="uid://droj8w1mbm5k3" path="res://art/animation/Yeli2D/F02-Yeli_Talk/0019.png" id="39_vg7xi"] [ext_resource type="Texture2D" uid="uid://droj8w1mbm5k3" path="res://art/animation/Yeli2D/F02-Yeli_Talk/0019.png" id="39_vg7xi"]
[ext_resource type="Texture2D" uid="uid://by5vtadhdwwag" path="res://art/animation/Yeli2D/F02-Yeli_Talk/0020.png" id="40_ipyxb"] [ext_resource type="Texture2D" uid="uid://by5vtadhdwwag" path="res://art/animation/Yeli2D/F02-Yeli_Talk/0020.png" id="40_ipyxb"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="42_ahrat"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="42_ahrat"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_aqu1t"] [ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_aqu1t"]
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"] [sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
resource_local_to_scene = true resource_local_to_scene = true
@@ -192,22 +192,14 @@ y_sort_enabled = true
script = ExtResource("1_hn8at") script = ExtResource("1_hn8at")
_sprite = NodePath("TalkingControl/AnimatedSprite") _sprite = NodePath("TalkingControl/AnimatedSprite")
[node name="InteractionArea" parent="." instance=ExtResource("42_ahrat")] [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("42_ahrat")]
position = Vector2(0, -450) position = Vector2(0, -450)
scale = Vector2(2.805, 2.805) scale = Vector2(2.805, 2.805)
_spriteToOutline = NodePath("../TalkingControl/AnimatedSprite")
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_at1n1") shape = SubResource("CircleShape2D_at1n1")
[node name="Label" parent="InteractionArea" index="1"]
custom_minimum_size = Vector2(10, 10)
offset_left = -127.273
offset_top = -245.633
offset_right = 119.727
offset_bottom = -142.633
theme_override_font_sizes/font_size = 60
text = "[E] talk"
[node name="TalkingControl" type="Node2D" parent="."] [node name="TalkingControl" type="Node2D" parent="."]
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"] [node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"]
@@ -220,9 +212,6 @@ offset = Vector2(0, -450)
[node name="Dialogic starter" type="Node2D" parent="."] [node name="Dialogic starter" type="Node2D" parent="."]
script = ExtResource("1_at1n1") script = ExtResource("1_at1n1")
[node name="DialogicToggle" type="Node2D" parent="Dialogic starter"]
script = ExtResource("44_aqu1t")
[node name="AnimatableBody2D" type="AnimatableBody2D" parent="."] [node name="AnimatableBody2D" type="AnimatableBody2D" parent="."]
position = Vector2(0, -172) position = Vector2(0, -172)
@@ -230,8 +219,12 @@ position = Vector2(0, -172)
position = Vector2(0, 94) position = Vector2(0, 94)
shape = SubResource("CapsuleShape2D_aqu1t") shape = SubResource("CapsuleShape2D_aqu1t")
[node name="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")]
scale = Vector2(0.7, 0.7)
script = ExtResource("44_aqu1t")
itemToToggle = NodePath("../TalkingControl/AnimatedSprite")
[connection signal="Talking" from="." to="Dialogic starter" method="open"] [connection signal="Talking" from="." to="Dialogic starter" method="open"]
[connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"] [connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"]
[connection signal="timelineEnded" from="Dialogic starter/DialogicToggle" to="." method="ToggleTalking"]
[editable path="InteractionArea"] [editable path="InteractionArea"]
-69
View File
@@ -1,69 +0,0 @@
[gd_scene load_steps=11 format=3 uid="uid://b1d2e7ely6hyw"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_femni"]
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_femni"]
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_cus02"]
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_msuq8"]
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_21et0"]
[ext_resource type="PackedScene" uid="uid://c3hwbwo423nbm" path="res://prefabs/farm/base_plant_2d.tscn" id="5_femni"]
[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="6_4k6eh"]
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_rrmd3"]
[sub_resource type="CircleShape2D" id="CircleShape2D_yi42k"]
resource_local_to_scene = true
radius = 201.345
[sub_resource type="CircleShape2D" id="CircleShape2D_femni"]
resource_local_to_scene = true
radius = 194.926
[node name="BaseField" type="Node2D"]
[node name="InteractionArea2" parent="." instance=ExtResource("1_femni")]
visible = false
z_index = 1
scale = Vector2(2.225, 2.225)
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
z_index = -1
scale = Vector2(0.9, 1)
script = ExtResource("2_femni")
_fieldSprite = NodePath("MaskedField/FieldTexture")
_maskSprite = NodePath("MaskedField")
_maskTexture = Array[Texture2D]([ExtResource("3_cus02"), ExtResource("4_msuq8"), ExtResource("5_21et0")])
Tilled = ExtResource("6_4k6eh")
Watered = ExtResource("7_rrmd3")
_growingCollider = NodePath("BasePlant/InteractionArea")
[node name="BasePlant" parent="FieldBehaviour" node_paths=PackedStringArray("_field") instance=ExtResource("5_femni")]
_field = NodePath("..")
[node name="BigPlant" parent="FieldBehaviour/BasePlant" index="2"]
position = Vector2(6, -161)
[node name="InteractionArea" parent="FieldBehaviour/BasePlant" index="3"]
z_index = 3
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_yi42k")
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"]
shape = SubResource("CircleShape2D_femni")
[node name="ReadyPlant" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem" index="5"]
position = Vector2(0, -291.3)
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
clip_children = 1
scale = Vector2(1.5, 1.5)
texture = ExtResource("4_msuq8")
[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"]
texture = ExtResource("6_4k6eh")
[connection signal="Interacted" from="InteractionArea2" to="FieldBehaviour/BasePlant" method="Grow"]
[editable path="FieldBehaviour/BasePlant"]
[editable path="FieldBehaviour/BasePlant/InteractionArea"]
[editable path="FieldBehaviour/BasePlant/ReadyPlantInventoryItem"]
[editable path="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2"]
+90
View File
@@ -0,0 +1,90 @@
[gd_scene load_steps=14 format=3 uid="uid://d4m5iy5mwqpq3"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_tp1yj"]
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_c6u1a"]
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="2_pdgar"]
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_b5av1"]
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_yav45"]
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_pdgar"]
[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="6_a35l4"]
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_us3kg"]
[ext_resource type="PackedScene" uid="uid://c3hwbwo423nbm" path="res://prefabs/farm/beet_plant.tscn" id="8_tgwxi"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="9_b5av1"]
[ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="10_yav45"]
[ext_resource type="Script" uid="uid://drle5aies8ye4" path="res://scripts/GdScript/dialogic_event_forward.gd" id="11_yav45"]
[sub_resource type="CircleShape2D" id="CircleShape2D_a35l4"]
resource_local_to_scene = true
radius = 300.0
[node name="BaseField" type="Node2D"]
[node name="InteractionArea2" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("1_tp1yj")]
visible = false
z_index = 1
scale = Vector2(2.225, 2.225)
_outlineMaterial = ExtResource("2_pdgar")
_spriteToOutline = NodePath("../FieldBehaviour/MaskedField")
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
z_index = -1
scale = Vector2(0.9, 1)
script = ExtResource("2_c6u1a")
_fieldSprite = NodePath("MaskedField/FieldTexture")
_maskSprite = NodePath("MaskedField")
_maskTexture = Array[Texture2D]([ExtResource("3_b5av1"), ExtResource("4_yav45"), ExtResource("5_pdgar")])
Tilled = ExtResource("6_a35l4")
Watered = ExtResource("7_us3kg")
_growingCollider = NodePath("../InteractionArea2")
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
clip_children = 1
scale = Vector2(1.5, 1.5)
texture = ExtResource("4_yav45")
[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"]
texture = ExtResource("6_a35l4")
[node name="BeetRoot" parent="FieldBehaviour" node_paths=PackedStringArray("_smallPlants", "_field") groups=["PlantGrowing"] instance=ExtResource("8_tgwxi")]
_smallPlants = [NodePath("SmallPlant/01"), NodePath("SmallPlant/02"), null, null]
_state = 2
_field = NodePath("..")
[node name="01" parent="FieldBehaviour/BeetRoot/BigPlant" index="0"]
visible = true
[node name="CollisionShape3D" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_a35l4")
[node name="01" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="0"]
scale = Vector2(3, 3)
[node name="02" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="1"]
scale = Vector2(3, 3)
[node name="03" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="2"]
scale = Vector2(3, 3)
[node name="04" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="3"]
scale = Vector2(3, 3)
[node name="dialogic-starter" type="Node2D" parent="."]
script = ExtResource("9_b5av1")
[node name="DialogicOverlay" type="Node2D" parent="dialogic-starter"]
script = ExtResource("10_yav45")
_timelinesToPlay = PackedStringArray("talk_to_plant")
_startOnReady = false
[node name="DialogicEventListener" type="Node" parent="dialogic-starter"]
script = ExtResource("11_yav45")
eventName = "MagicWord"
[connection signal="Interacted" from="InteractionArea2" to="dialogic-starter/DialogicOverlay" method="ToggleDialogue"]
[connection signal="Interacted" from="InteractionArea2" to="dialogic-starter/DialogicEventListener" method="_register"]
[connection signal="Dialogue" from="dialogic-starter/DialogicOverlay" to="dialogic-starter" method="open"]
[connection signal="dialogicEventTriggered" from="dialogic-starter/DialogicEventListener" to="FieldBehaviour/BeetRoot" method="SayMagicWord"]
[editable path="FieldBehaviour/BeetRoot"]
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem"]
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/PickupInteractionArea"]
+207
View File
@@ -0,0 +1,207 @@
[gd_scene load_steps=10 format=3 uid="uid://c3hwbwo423nbm"]
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_0kfos"]
[ext_resource type="Texture2D" uid="uid://xtci0n8tquc0" path="res://art/farm/farming/farmobjekte/beetroot_00.png" id="2_rvwu0"]
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="3_up8td"]
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_cfgyx"]
[ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="5_25lcb"]
[ext_resource type="Resource" uid="uid://blr8tine5m0ma" path="res://resources/items/tomato.tres" id="6_aml5p"]
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="7_rvwu0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u4cty"]
shader = ExtResource("3_up8td")
shader_parameter/speed = 3.0
shader_parameter/minStrength = 0.05
shader_parameter/maxStrength = 0.36
shader_parameter/strengthScale = 100.0
shader_parameter/interval = 3.5
shader_parameter/detail = 1.0
shader_parameter/distortion = 0.0
shader_parameter/heightOffset = 0.635
shader_parameter/offset = 0.0
[sub_resource type="CircleShape2D" id="CircleShape2D_rvwu0"]
resource_local_to_scene = true
radius = 300.0
[node name="BeetRoot" type="Node2D" node_paths=PackedStringArray("_seeds", "_smallPlants", "_bigPlants", "_readyPlants", "_harvestablePlant", "_magicEffect")]
z_index = 1
y_sort_enabled = true
script = ExtResource("1_0kfos")
_seeds = [NodePath("Seeds/BeetSeet"), NodePath("Seeds/BeetSeet2"), NodePath("Seeds/BeetSeet3")]
_smallPlants = [NodePath("SmallPlant/01"), NodePath("SmallPlant/02"), null, null]
_bigPlants = [NodePath("BigPlant/01"), NodePath("BigPlant/02"), NodePath("BigPlant/03"), NodePath("BigPlant/04")]
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03"), NodePath("ReadyPlantInventoryItem/ReadyPlant/04")]
_harvestablePlant = NodePath("ReadyPlantInventoryItem")
_magicEffect = NodePath("magic vfx")
[node name="Seeds" type="Node2D" parent="."]
position = Vector2(0, 0.5)
[node name="BeetSeet" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
flip_v = true
region_enabled = true
region_rect = Rect2(166, 289, 28, 38)
[node name="BeetSeet2" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
flip_v = true
region_enabled = true
region_rect = Rect2(166, 289, 28, 38)
[node name="BeetSeet3" type="Sprite2D" parent="Seeds"]
visible = false
y_sort_enabled = true
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
flip_v = true
region_enabled = true
region_rect = Rect2(243, 207, 35, 69)
[node name="SmallPlant" type="Node2D" parent="."]
position = Vector2(0, 0.5)
[node name="01" type="Sprite2D" parent="SmallPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(37, 178, 72, 116)
[node name="02" type="Sprite2D" parent="SmallPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(313, 179, 73, 115)
[node name="BigPlant" type="Node2D" parent="."]
position = Vector2(0, 2)
[node name="01" type="Sprite2D" parent="BigPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(6, 5, 136, 151)
[node name="02" type="Sprite2D" parent="BigPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(148, 58, 111, 140)
[node name="03" type="Sprite2D" parent="BigPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(264, 4, 131, 152)
[node name="04" type="Sprite2D" parent="BigPlant"]
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
scale = Vector2(2, 2)
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(18, 311, 129, 142)
[node name="InteractionArea" parent="." instance=ExtResource("4_cfgyx")]
position = Vector2(0, 2.3)
_useOutline = false
_useSprite = false
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("5_25lcb")]
position = Vector2(0, 2.3)
IsActive = false
[node name="SpawnWithItem" parent="ReadyPlantInventoryItem" index="0"]
_blueprint = ExtResource("6_aml5p")
[node name="ItemLabel" parent="ReadyPlantInventoryItem" index="1"]
visible = false
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
visible = false
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_rvwu0")
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
visible = false
[node name="ReadyPlant" type="Node2D" parent="ReadyPlantInventoryItem"]
[node name="01" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(18, 311, 129, 142)
[node name="02" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(6, 5, 136, 151)
[node name="03" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(264, 4, 131, 152)
[node name="04" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
visible = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_u4cty")
texture = ExtResource("2_rvwu0")
region_enabled = true
region_rect = Rect2(148, 58, 111, 140)
[node name="magic vfx" type="CPUParticles2D" parent="."]
position = Vector2(-133, -347)
rotation = -0.333807
emitting = false
amount = 20
texture = ExtResource("7_rvwu0")
lifetime = 0.5
randomness = 1.0
local_coords = true
draw_order = 1
emission_shape = 2
emission_sphere_radius = 128.0
linear_accel_min = 44.07
linear_accel_max = 78.81
scale_amount_min = 0.01
scale_amount_max = 0.1
color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4
[connection signal="Interacted" from="InteractionArea" to="." method="Grow"]
[editable path="ReadyPlantInventoryItem"]
[editable path="ReadyPlantInventoryItem/PickupInteractionArea"]

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