Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f6e0c4e615 | |||
| 6ae877f2ab | |||
| 3913143892 | |||
| 4734ae953c | |||
| 5992c390ee | |||
| 283caf282b | |||
| 7c03964d33 | |||
| 36c948f116 | |||
| d0ba4076b3 | |||
| 7fd26ffed3 | |||
| ce2d7eb773 | |||
| 41365fb5d4 | |||
| 96c7d35aa7 | |||
| c2f5359d0c | |||
| 9bebe1a44d | |||
| 06a270e916 | |||
| b621df5435 | |||
| 03dbc08293 | |||
| 8676bbb2f6 | |||
| 6e998810b6 | |||
| c96be7467e | |||
| 6aa7530502 | |||
| d7ac1c6c22 | |||
| 0170a53b5a | |||
| abc33fd06c | |||
| 2fbeb93018 | |||
| 9253a78a06 | |||
| 0008b16d48 | |||
| 8e0dced918 | |||
| 2e21fb7e98 | |||
| b69191e7f7 | |||
| 8f75b5b644 | |||
| 6275bea52c | |||
| 279cac22ee | |||
| e88ba2e1ef | |||
| f01143e887 | |||
| 18711776bb | |||
| 0f246825fc | |||
| 19e30dd0b8 | |||
| 730c4999d7 | |||
| cfe604d3b7 | |||
| ad16b86171 | |||
| 5ee295256b | |||
| ab23d41496 | |||
| ae0944fe00 | |||
| 486cfb5546 | |||
| b92eb909ad | |||
| d2c7302ab2 | |||
| 5affc48dc5 | |||
| cdb6b83124 | |||
| a4f9511892 | |||
| 7a3e96d679 | |||
| e38c391e1c | |||
| eaedf8c396 | |||
| ffa20bbdf8 | |||
| b77b6e3a52 | |||
| c7d56301fc |
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="AndroidProjectSystem">
|
|
||||||
<option name="providerId" value="RiderAndroidProjectSystem" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -1,6 +1,13 @@
|
|||||||
<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_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_002EFieldBehaviour2D_005FScriptMethods_002Egenerated_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FSourcesCache_003F75d11718f1abbc2572fd32e4b83acbec9d79ac_003FBabushka_002Escripts_002ECSharp_002ECommon_002EFarming_002EFieldBehaviour2D_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_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_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_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_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_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_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_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003FJonathan_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fc7102cd0ffb8973777e61b1942c3fffac7e14016a511d055c3adf73ff91748_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
[plugin]
|
||||||
|
|
||||||
|
name="BabushkaHelpers"
|
||||||
|
description=""
|
||||||
|
author="Cozy Raven"
|
||||||
|
version=""
|
||||||
|
script="babushkahelpers.gd"
|
||||||
@@ -96,6 +96,8 @@ 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:
|
||||||
if for_scene.is_empty():
|
if for_scene.is_empty():
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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]
|
||||||
|
|
||||||
|
|||||||
@@ -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! That’s also thanks to you.
|
Yeli (_part_side): God bless you, my child! That’s 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.
|
||||||
- It’s just as I remembered it.
|
- It’s 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, it’s still our motherland from back then.
|
Yeli (_part_side): But at its core, it’s 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 you’re safe. After all, you can always count on your Yeli!
|
Yeli (_part_side): But here you’re 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]
|
||||||
@@ -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 +0,0 @@
|
|||||||
uid://c0vfdx7xal0py
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
join vesna left
|
|
||||||
That’s the last one. I should get back to Yeli.
|
|
||||||
[end_timeline]
|
|
||||||
@@ -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]
|
|
||||||
@@ -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 you’re diligent! You’ve 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]
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
join Vesna2 center
|
|
||||||
join Domovoi center
|
|
||||||
Vesna2: Oh no, most of the beets aren’t 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 he’s gone.
|
|
||||||
What a truly quirky individual.
|
|
||||||
[end_timeline]
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
join Chuga center
|
|
||||||
Chuga: I believe you’ve 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 aren’t 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 he’s gone.
|
||||||
|
vesna: What a truly quirky individual.
|
||||||
|
[end_timeline]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
join vesna center
|
||||||
|
[quest_complete quest_resource="res://resources/quests/demo/2_collect_ducks.tres"]
|
||||||
|
That’s 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 haven’t 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 you’ve 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, what’s the point of answering?
|
vesna: So, what’s 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 I’m no king.” Vesna, what am I?
|
Chuga: So, listen\: “I wear a crown, but I’m no king.” Vesna, what am I?
|
||||||
- Queen
|
- Queen
|
||||||
Chuga: What a boring answer.
|
Chuga: What a boring answer.
|
||||||
- Tree
|
- Tree
|
||||||
That’s it!
|
Chuga: That’s 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]
|
||||||
+3
-1
@@ -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 you’re diligent! You’ve 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]
|
||||||
@@ -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]
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dtcypgqal1ids
|
||||||
@@ -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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://xfkdvitmhgln
|
||||||
@@ -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]
|
|
||||||
@@ -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}"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://do3c5uofv5m7b
|
||||||
+2
-2
@@ -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=""
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://bs4t0t7o4jmam"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://doxr432r22dd0" path="res://scripts/CSharp/Common/Items/InventoryDependentInteractable.cs" id="1_cu47d"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="2_s5peo"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="3_wsetd"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bleimj6jr1jka" path="res://art/general/rectangle.png" id="4_1dub8"]
|
||||||
|
|
||||||
|
[node name="InventoryDependentInteractableTest" type="Node2D" node_paths=PackedStringArray("_interactionArea")]
|
||||||
|
script = ExtResource("1_cu47d")
|
||||||
|
_interactionArea = NodePath("InteractionArea")
|
||||||
|
_itemsToReactTo = Array[Object]([ExtResource("2_s5peo")])
|
||||||
|
|
||||||
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("3_wsetd")]
|
||||||
|
_active = false
|
||||||
|
_spriteToOutline = NodePath("../Sprite2D")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
texture = ExtResource("4_1dub8")
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
[gd_scene load_steps=16 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="Script" uid="uid://dkk1vjijvgrd7" path="res://scripts/CSharp/Common/Items/NonInventoryPickup.cs" id="2_ic616"]
|
||||||
|
[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)
|
||||||
|
script = ExtResource("2_ic616")
|
||||||
|
|
||||||
|
[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="." method="PlayPickupAnimation"]
|
||||||
|
[connection signal="Interacted" from="InteractionArea" to="AudioStreamPlayer2D" method="PlayOneShot"]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=3 uid="uid://cgjc4wurbgimy"]
|
[gd_scene load_steps=12 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" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="1_l3npx"]
|
||||||
@@ -11,6 +11,9 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://2q1n6g2kj5er" path="res://prefabs/UI/Quest/QuestLog.tscn" id="7_vvo7l"]
|
[ext_resource type="PackedScene" uid="uid://2q1n6g2kj5er" path="res://prefabs/UI/Quest/QuestLog.tscn" id="7_vvo7l"]
|
||||||
[ext_resource type="Texture2D" uid="uid://qwia360i1ir1" path="res://art/ui/UI/inventory_active.png" id="8_df8i8"]
|
[ext_resource type="Texture2D" uid="uid://qwia360i1ir1" path="res://art/ui/UI/inventory_active.png" id="8_df8i8"]
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_l3npx"]
|
||||||
|
font_size = 50
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer"]
|
[node name="CanvasLayer" type="CanvasLayer"]
|
||||||
layer = 90
|
layer = 90
|
||||||
|
|
||||||
@@ -455,6 +458,22 @@ offset_bottom = 100.0
|
|||||||
texture = ExtResource("8_df8i8")
|
texture = ExtResource("8_df8i8")
|
||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Inventory/SlotsContainer/SlotsMover"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 6
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = 14.4142
|
||||||
|
offset_top = 184.286
|
||||||
|
offset_right = 54.4142
|
||||||
|
offset_bottom = 207.286
|
||||||
|
grow_horizontal = 0
|
||||||
|
grow_vertical = 2
|
||||||
|
text = "[I]"
|
||||||
|
label_settings = SubResource("LabelSettings_l3npx")
|
||||||
|
|
||||||
[node name="QuestLogRoot" parent="." instance=ExtResource("7_vvo7l")]
|
[node name="QuestLogRoot" parent="." instance=ExtResource("7_vvo7l")]
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="."]
|
[node name="Control" type="Control" parent="."]
|
||||||
@@ -488,6 +507,7 @@ offset_bottom = -20.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
text = "Switch to Unity"
|
text = "[Hier könnte Ihre Werbung stehen]"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
autowrap_mode = 2
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ size_flags_horizontal = 3
|
|||||||
size_flags_vertical = 1
|
size_flags_vertical = 1
|
||||||
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
theme_override_font_sizes/font_size = 17
|
theme_override_font_sizes/font_size = 17
|
||||||
text = "Switch to Unity"
|
text = "[ Hier könnte ihre Werbung stehen]"
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
autowrap_mode = 2
|
autowrap_mode = 2
|
||||||
|
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
[gd_scene load_steps=476 format=3 uid="uid://c25udixd5m6l0"]
|
[gd_scene load_steps=475 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="Resource" uid="uid://c5yg3lx756v4v" path="res://resources/items/hoe.tres" id="2_dnm27"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="3_e04c3"]
|
||||||
|
[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"]
|
||||||
@@ -270,15 +273,11 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://b37lpqrsjjuc0" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0010.png" id="466_pw1ip"]
|
[ext_resource type="Texture2D" uid="uid://b37lpqrsjjuc0" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0010.png" id="466_pw1ip"]
|
||||||
[ext_resource type="Script" uid="uid://er03dkj8axlr" path="res://scripts/CSharp/Common/UI/WateringCanUi.cs" id="467_j4m0f"]
|
[ext_resource type="Script" uid="uid://er03dkj8axlr" path="res://scripts/CSharp/Common/UI/WateringCanUi.cs" id="467_j4m0f"]
|
||||||
[ext_resource type="Texture2D" uid="uid://oi11ax6tml6j" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0012.png" id="468_08021"]
|
[ext_resource type="Texture2D" uid="uid://oi11ax6tml6j" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0012.png" id="468_08021"]
|
||||||
[ext_resource type="Texture2D" uid="uid://l0k3vh3kdprp" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-1.png" id="468_f6xmn"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://t4w7axbof7bq" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-2.png" id="469_nxglm"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://di2npqkvvst6x" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-3.png" id="470_8fyd7"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dsjj23763pej5" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0014.png" id="470_bmmei"]
|
[ext_resource type="Texture2D" uid="uid://dsjj23763pej5" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0014.png" id="470_bmmei"]
|
||||||
[ext_resource type="Texture2D" uid="uid://clti3basli30" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-4.png" id="471_dnm27"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://n1v4hgd467wp" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-5.png" id="472_e04c3"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
|
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="473_g32y8"]
|
[ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="473_g32y8"]
|
||||||
[ext_resource type="Texture2D" uid="uid://3t1m2xi4ks75" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0018.png" id="474_tu801"]
|
[ext_resource type="Texture2D" uid="uid://3t1m2xi4ks75" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0018.png" id="474_tu801"]
|
||||||
|
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="475_nxglm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://drtgi1qyq7fji" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0020.png" id="476_g4jjd"]
|
[ext_resource type="Texture2D" uid="uid://drtgi1qyq7fji" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0020.png" id="476_g4jjd"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3rdsclnqbx7" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0001.png" id="477_qko58"]
|
[ext_resource type="Texture2D" uid="uid://d3rdsclnqbx7" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0001.png" id="477_qko58"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dqubvx1a08kn4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0002.png" id="478_5myrm"]
|
[ext_resource type="Texture2D" uid="uid://dqubvx1a08kn4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0002.png" id="478_5myrm"]
|
||||||
@@ -468,10 +467,8 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://ds2y033vahyi5" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0016.png" id="810_224qh"]
|
[ext_resource type="Texture2D" uid="uid://ds2y033vahyi5" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0016.png" id="810_224qh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b0v61all3tsny" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0018.png" id="812_sf8kv"]
|
[ext_resource type="Texture2D" uid="uid://b0v61all3tsny" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0018.png" id="812_sf8kv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cao7vqax8cblo" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0020.png" id="814_3uq4g"]
|
[ext_resource type="Texture2D" uid="uid://cao7vqax8cblo" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0020.png" id="814_3uq4g"]
|
||||||
[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="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/base_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" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_ssqtd"]
|
||||||
@@ -744,7 +741,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 +821,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 +859,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 +897,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 +1468,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 +1548,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 +1586,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 +1624,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 +1945,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 +1983,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 +2021,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,106 +2059,73 @@ 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")]
|
[sub_resource type="AudioStream" id="AudioStream_8fyd7"]
|
||||||
|
|
||||||
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dnm27"]
|
||||||
|
streams_count = 1
|
||||||
|
stream_0/stream = SubResource("AudioStream_8fyd7")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
_hoe = ExtResource("2_dnm27")
|
||||||
|
_wateringCan = ExtResource("3_e04c3")
|
||||||
|
|
||||||
[node name="CharacterBody2D" type="CharacterBody2D" parent="." node_paths=PackedStringArray("_sprite", "_wateringParticles") groups=["PlantGrowing"]]
|
[node name="CharacterBody2D" type="CharacterBody2D" parent="."]
|
||||||
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") groups=["Pickup", "PlantGrowing"]]
|
||||||
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 = 7
|
||||||
|
frame_progress = 0.229832
|
||||||
offset = Vector2(0, -450)
|
offset = Vector2(0, -450)
|
||||||
|
|
||||||
[node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_slider")]
|
||||||
visible = false
|
|
||||||
position = Vector2(-35, -596)
|
|
||||||
rotation = 0.74351
|
|
||||||
scale = Vector2(0.24, 0.24)
|
|
||||||
texture = ExtResource("815_1ia2b")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(980, 179, 374, 1233)
|
|
||||||
|
|
||||||
[node name="WateringCanEmpty" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(-38, -603)
|
|
||||||
scale = Vector2(0.5, 0.5)
|
|
||||||
texture = ExtResource("816_1a3c1")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(-1, 1128, 417, 299)
|
|
||||||
|
|
||||||
[node name="WateringCanFull" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
|
||||||
visible = false
|
|
||||||
modulate = Color(0.286, 0.16, 1, 1)
|
|
||||||
position = Vector2(-38, -603)
|
|
||||||
scale = Vector2(0.5, 0.5)
|
|
||||||
texture = ExtResource("816_1a3c1")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(-1, 1128, 417, 299)
|
|
||||||
|
|
||||||
[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_stages")]
|
|
||||||
position = Vector2(0, -929)
|
position = Vector2(0, -929)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
script = ExtResource("467_j4m0f")
|
script = ExtResource("467_j4m0f")
|
||||||
_stages = [NodePath("6"), NodePath("5"), NodePath("4"), NodePath("3"), NodePath("2"), NodePath("1")]
|
_slider = NodePath("HSlider")
|
||||||
|
|
||||||
[node name="1" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
[node name="HSlider" type="HSlider" parent="CharacterBody2D/WateringCanUI"]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(1, 0)
|
modulate = Color(0.3515, 0.780425, 0.95, 1)
|
||||||
scale = Vector2(1.8, 1.8)
|
custom_minimum_size = Vector2(150, 50)
|
||||||
texture = ExtResource("468_f6xmn")
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
[node name="2" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
anchor_right = 0.5
|
||||||
visible = false
|
offset_left = -43.0
|
||||||
position = Vector2(2, 2)
|
offset_right = 57.0
|
||||||
scale = Vector2(1.6, 1.6)
|
offset_bottom = 64.0
|
||||||
texture = ExtResource("469_nxglm")
|
grow_horizontal = 2
|
||||||
|
max_value = 1.0
|
||||||
[node name="3" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
step = 0.0
|
||||||
visible = false
|
editable = false
|
||||||
position = Vector2(3, 5)
|
scrollable = false
|
||||||
scale = Vector2(1.4, 1.4)
|
|
||||||
texture = ExtResource("470_8fyd7")
|
|
||||||
|
|
||||||
[node name="4" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(3, 7)
|
|
||||||
scale = Vector2(1.2, 1.2)
|
|
||||||
texture = ExtResource("471_dnm27")
|
|
||||||
|
|
||||||
[node name="5" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(2, 7)
|
|
||||||
scale = Vector2(1.1, 1.1)
|
|
||||||
texture = ExtResource("472_e04c3")
|
|
||||||
|
|
||||||
[node name="6" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(3, 12)
|
|
||||||
texture = ExtResource("473_g32y8")
|
|
||||||
|
|
||||||
[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_wateringParticles")]
|
[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_wateringParticles")]
|
||||||
script = ExtResource("817_6nrw3")
|
script = ExtResource("817_6nrw3")
|
||||||
@@ -2193,11 +2157,23 @@ 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")
|
||||||
|
|
||||||
|
[node name="SFX" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="SFX"]
|
||||||
|
stream = SubResource("AudioStreamRandomizer_dnm27")
|
||||||
|
script = ExtResource("475_nxglm")
|
||||||
|
|
||||||
[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"]
|
||||||
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D/visuals" method="ActivateTool"]
|
||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
||||||
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D" method="PlayWateringAnimation"]
|
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/visuals" method="PlayWateringAnimation"]
|
||||||
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/WateringCanUI" method="Water"]
|
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/WateringCanUI" method="Water"]
|
||||||
[connection signal="timelineEnded" from="dialogic toggle" to="." method="EnableMovement"]
|
[connection signal="timelineEnded" from="dialogic toggle" to="." method="EnableMovement"]
|
||||||
[connection signal="timelineStarted" from="dialogic toggle" to="." method="DisableMovement"]
|
[connection signal="timelineStarted" from="dialogic toggle" to="." method="DisableMovement"]
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
[gd_scene load_steps=8 format=3 uid="uid://b1d2e7ely6hyw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="1_qa01x"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="2_w8caw"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="3_c014y"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="4_teirr"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="5_wx561"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="6_7m4xq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="7_2eegd"]
|
||||||
|
|
||||||
|
[node name="BaseField" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "PlantingInteraction", "PlantingPlaceholder")]
|
||||||
|
z_index = -1
|
||||||
|
scale = Vector2(0.9, 1)
|
||||||
|
script = ExtResource("1_qa01x")
|
||||||
|
_fieldSprite = NodePath("MaskedField/FieldTexture")
|
||||||
|
_maskSprite = NodePath("MaskedField")
|
||||||
|
_maskTexture = Array[Texture2D]([ExtResource("2_w8caw"), ExtResource("3_c014y"), ExtResource("4_teirr")])
|
||||||
|
Tilled = ExtResource("5_wx561")
|
||||||
|
Watered = ExtResource("6_7m4xq")
|
||||||
|
PlantingInteraction = NodePath("../InteractionArea")
|
||||||
|
PlantingPlaceholder = NodePath("PlantPlaceholder")
|
||||||
|
|
||||||
|
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
|
||||||
|
clip_children = 1
|
||||||
|
scale = Vector2(1.5, 1.5)
|
||||||
|
texture = ExtResource("3_c014y")
|
||||||
|
|
||||||
|
[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"]
|
||||||
|
texture = ExtResource("5_wx561")
|
||||||
|
|
||||||
|
[node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"]
|
||||||
|
|
||||||
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("7_2eegd")]
|
||||||
|
position = Vector2(-16, -54)
|
||||||
|
_active = false
|
||||||
|
_spriteToOutline = NodePath("../FieldBehaviour/MaskedField/FieldTexture")
|
||||||
|
|
||||||
|
[connection signal="Interacted" from="InteractionArea" to="FieldBehaviour" method="Farm"]
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user