It's Cow Game! Version 2.04!

This commit is contained in:
PajamaBee 2024-09-19 23:06:51 -05:00
commit a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions

View file

@ -0,0 +1,27 @@
~ start
if DialogueBoxManager.currentSpeaker.eating_check():
Tomato: om nom nom
=> END
Tomato: I love eating tomatoes, what an experience.
Tomato: There are so many ways to experience an item.
Tomato: Eat, drink, behold, burn, weave, play, or caramellize them.
Tomato: Doing something for the first time is what makes an experience.
Tomato: Even watching me eat a tomato could be an experience.
Tomato: By the way, do you have a tomato I could have? Plain only please :)
- yes => attemptTomato
- no => no
~ attemptTomato
if DialogueBoxManager.currentSpeaker.tomato_check():
Tomato: Oh boy!
do DialogueBoxManager.currentSpeaker.eat_tomato()
Tomato: Om nom nom
=> END
else:
Tomato: Hm, I looked through all your stuff and don't see any plain tomatoes.
=> no
~ no
Tomato: Ok have good times :)
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://dr3mhfppniaxv"
path="res://.godot/imported/ExperiencingHorse.dialogue-7dce0f40041ce82e0a6997fda0d72855.tres"
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/ExperiencingHorse.dialogue"
dest_files=["res://.godot/imported/ExperiencingHorse.dialogue-7dce0f40041ce82e0a6997fda0d72855.tres"]
[params]
defaults=true

View file

@ -0,0 +1,27 @@
extends NPC
var eatingTomato = false
var tomatoItem = preload("res://Items/Foods/Fruits/Tomato.gd")
func _ready():
dialogueResource = load("res://NPCs/HomeArea/ExperiencingHorse/ExperiencingHorse.dialogue")
tomatoItem = tomatoItem.new()
func tomato_check():
var tomatoCount = InventoryManager.get_item_count(tomatoItem)
if tomatoCount > 0:
return true
return false
func eat_tomato():
InventoryManager.remove_item_from_inventory(tomatoItem)
$Sprite.play("tomatoEating")
eatingTomato = true
LevelManager.get_skill("appreciating").experience_event("Tomato eat a tomato", "watched", 50)
func eating_check():
return eatingTomato
func _on_sprite_animation_finished():
$Sprite.play("default")
eatingTomato = false

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://r06mrqjsmm1r"
path="res://.godot/imported/ExperiencingHorse.png-3bcabebd2f22df024254f53bb8598558.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/ExperiencingHorse.png"
dest_files=["res://.godot/imported/ExperiencingHorse.png-3bcabebd2f22df024254f53bb8598558.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

View file

@ -0,0 +1,80 @@
[gd_scene load_steps=13 format=3 uid="uid://cgmn87axlg0pg"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_v5oq0"]
[ext_resource type="Script" path="res://NPCs/HomeArea/ExperiencingHorse/ExperiencingHorse.gd" id="2_2vft7"]
[ext_resource type="Texture2D" uid="uid://r06mrqjsmm1r" path="res://NPCs/HomeArea/ExperiencingHorse/ExperiencingHorse.png" id="2_165vk"]
[ext_resource type="Texture2D" uid="uid://c3u5couyvm7a4" path="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat2.png" id="3_wr38y"]
[ext_resource type="Texture2D" uid="uid://dfbxxfc4aseut" path="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat3.png" id="4_33yp1"]
[ext_resource type="Texture2D" uid="uid://c4qh3denpaqj2" path="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat4.png" id="5_fe2qm"]
[ext_resource type="Texture2D" uid="uid://e8g36cavq5ja" path="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat5.png" id="6_e5a66"]
[ext_resource type="Texture2D" uid="uid://cu7qs036rruuk" path="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat6.png" id="7_gnl3d"]
[ext_resource type="Texture2D" uid="uid://8o33qodny3ld" path="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat7.png" id="8_shug0"]
[sub_resource type="SpriteFrames" id="SpriteFrames_gjq7k"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_165vk")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_wr38y")
}, {
"duration": 1.0,
"texture": ExtResource("4_33yp1")
}, {
"duration": 1.0,
"texture": ExtResource("5_fe2qm")
}, {
"duration": 1.0,
"texture": ExtResource("6_e5a66")
}, {
"duration": 1.0,
"texture": ExtResource("7_gnl3d")
}, {
"duration": 1.0,
"texture": ExtResource("8_shug0")
}],
"loop": false,
"name": &"tomatoEating",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_1udna"]
radius = 62.1289
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_sp5mq"]
radius = 8.0
height = 100.0
[node name="ExperiencingHorse" instance=ExtResource("1_v5oq0")]
script = ExtResource("2_2vft7")
[node name="Sprite" parent="." index="0"]
position = Vector2(0, -36)
sprite_frames = SubResource("SpriteFrames_gjq7k")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -69.0
offset_top = -65.0
offset_right = 60.0
offset_bottom = 14.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(0, -22)
shape = SubResource("CircleShape2D_1udna")
[node name="CollisionShape2D" parent="." index="3"]
position = Vector2(10, 8)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_sp5mq")
[connection signal="animation_finished" from="Sprite" to="." method="_on_sprite_animation_finished"]
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbgwnxof4trld"
path="res://.godot/imported/ExperiencingHorse1.png-3bc9136252ce142993470c5bc343847d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/ExperiencingHorse1.png"
dest_files=["res://.godot/imported/ExperiencingHorse1.png-3bc9136252ce142993470c5bc343847d.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: 1.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://crjlty63r4bnv"
path="res://.godot/imported/ExperiencingHorseTomatoEat1.png-4cb0b26a1f345ef0fe68bf400d52453c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat1.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat1.png-4cb0b26a1f345ef0fe68bf400d52453c.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: 1.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3u5couyvm7a4"
path="res://.godot/imported/ExperiencingHorseTomatoEat2.png-18226bb4d0aa61d50b4f32bc1b7d6b4f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat2.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat2.png-18226bb4d0aa61d50b4f32bc1b7d6b4f.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: 1.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dfbxxfc4aseut"
path="res://.godot/imported/ExperiencingHorseTomatoEat3.png-368f7553142fd3dd9adae58694e94793.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat3.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat3.png-368f7553142fd3dd9adae58694e94793.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: 1.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4qh3denpaqj2"
path="res://.godot/imported/ExperiencingHorseTomatoEat4.png-512f5e120441de1985f5e6514010bfed.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat4.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat4.png-512f5e120441de1985f5e6514010bfed.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: 1.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://e8g36cavq5ja"
path="res://.godot/imported/ExperiencingHorseTomatoEat5.png-71673e3b922931e4f33d951aef2580dd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat5.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat5.png-71673e3b922931e4f33d951aef2580dd.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: 1.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cu7qs036rruuk"
path="res://.godot/imported/ExperiencingHorseTomatoEat6.png-069d6c827c76327d1c7f0eecf10ff59a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat6.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat6.png-069d6c827c76327d1c7f0eecf10ff59a.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: 1.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://8o33qodny3ld"
path="res://.godot/imported/ExperiencingHorseTomatoEat7.png-253bead86c25263a57ec8952687af3b7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExperiencingHorse/TomatoEatAnim/ExperiencingHorseTomatoEat7.png"
dest_files=["res://.godot/imported/ExperiencingHorseTomatoEat7.png-253bead86c25263a57ec8952687af3b7.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

View file

@ -0,0 +1,7 @@
~ start
Ellimoco: This is my Secret Island. Welcome to my Secret Island.
Ellimoco: I use this island to practice my Secret Harvesting Technique.
Ellimoco: It's so secret I bet if there was a guide website for life, like a cowlifesimrpg.com or something, it wouldn't even be on there.
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://ypthqjkgvdk5"
path="res://.godot/imported/ExpertCow.dialogue-a79614329aedcd05a1bb05b89421baf9.tres"
[deps]
source_file="res://NPCs/HomeArea/ExpertCow/ExpertCow.dialogue"
dest_files=["res://.godot/imported/ExpertCow.dialogue-a79614329aedcd05a1bb05b89421baf9.tres"]
[params]
defaults=true

View file

@ -0,0 +1,4 @@
extends NPC
func _ready():
dialogueResource = load("res://NPCs/HomeArea/ExpertCow/ExpertCow.dialogue")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtraendfvyg4u"
path="res://.godot/imported/ExpertCow.png-648759d1011a93cca87f762b6c814e9e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/ExpertCow/ExpertCow.png"
dest_files=["res://.godot/imported/ExpertCow.png-648759d1011a93cca87f762b6c814e9e.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

View file

@ -0,0 +1,45 @@
[gd_scene load_steps=6 format=3 uid="uid://nkp5ri04jggj"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_bjhrx"]
[ext_resource type="Script" path="res://NPCs/HomeArea/ExpertCow/ExpertCow.gd" id="2_b8g8y"]
[ext_resource type="Texture2D" uid="uid://dtraendfvyg4u" path="res://NPCs/HomeArea/ExpertCow/ExpertCow.png" id="3_rj6ux"]
[sub_resource type="SpriteFrames" id="SpriteFrames_d7yyh"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_rj6ux")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_c5tey"]
radius = 6.0
height = 90.0
[node name="ExpertCow" instance=ExtResource("1_bjhrx")]
script = ExtResource("2_b8g8y")
[node name="Sprite" parent="." index="0"]
position = Vector2(-10, -33)
sprite_frames = SubResource("SpriteFrames_d7yyh")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -63.0
offset_top = -63.0
offset_right = 49.0
offset_bottom = 6.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(1, -21)
[node name="CollisionShape2D" parent="." index="3"]
position = Vector2(4, 3)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_c5tey")
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,7 @@
~ start
% Frederick: Only veggies understand me.
% Frederick: Do you think the tomatoes talk about me when I'm not around.
% Frederick: I know tomatoes are actually fruits PLEASE do not say this to me I KNOW it is FALSE.
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://bvymgi7cfq2tf"
path="res://.godot/imported/VeggieDonkey.dialogue-6a6a4cd51e77d67c881169caf097a34e.tres"
[deps]
source_file="res://NPCs/HomeArea/VeggieDonkey/VeggieDonkey.dialogue"
dest_files=["res://.godot/imported/VeggieDonkey.dialogue-6a6a4cd51e77d67c881169caf097a34e.tres"]
[params]
defaults=true

View file

@ -0,0 +1,4 @@
extends NPC
func _ready():
dialogueResource = load("res://NPCs/HomeArea/VeggieDonkey/VeggieDonkey.dialogue")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bnfr2d113lgqf"
path="res://.godot/imported/VeggieDonkey.png-c32f1881050319c92f636b47be0ea020.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/HomeArea/VeggieDonkey/VeggieDonkey.png"
dest_files=["res://.godot/imported/VeggieDonkey.png-c32f1881050319c92f636b47be0ea020.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

View file

@ -0,0 +1,45 @@
[gd_scene load_steps=6 format=3 uid="uid://6rmwb8532nk0"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_n572a"]
[ext_resource type="Texture2D" uid="uid://bnfr2d113lgqf" path="res://NPCs/HomeArea/VeggieDonkey/VeggieDonkey.png" id="2_4mjsu"]
[ext_resource type="Script" path="res://NPCs/HomeArea/VeggieDonkey/VeggieDonkey.gd" id="2_gaavt"]
[sub_resource type="SpriteFrames" id="SpriteFrames_oi451"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_4mjsu")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_st5nc"]
radius = 6.0
height = 90.0
[node name="VeggieDonkey" instance=ExtResource("1_n572a")]
script = ExtResource("2_gaavt")
[node name="Sprite" parent="." index="0"]
position = Vector2(-10, -34)
sprite_frames = SubResource("SpriteFrames_oi451")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -82.0
offset_top = -83.0
offset_right = 66.0
offset_bottom = 14.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(1, -21)
[node name="CollisionShape2D" parent="." index="3"]
position = Vector2(9, 9)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_st5nc")
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]