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,56 @@
[gd_scene load_steps=8 format=3 uid="uid://bg1nwnomgw3el"]
[ext_resource type="Script" path="res://NPCs/Tutorial/Normal/ArsonAlliogator/ArsonAlliogator.gd" id="1_87n48"]
[ext_resource type="Texture2D" uid="uid://caiqgwk8f8xgg" path="res://NPCs/Tutorial/Normal/ArsonAlliogator/alligator.png" id="2_54lic"]
[ext_resource type="PackedScene" uid="uid://c31736waactb2" path="res://Interactions/Talking/Talkable.tscn" id="2_disfv"]
[ext_resource type="PackedScene" uid="uid://bqibe7ha6r5ls" path="res://Interactions/Interactable/interactable.tscn" id="3_mixyw"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_eqku6"]
radius = 21.2091
height = 173.643
[sub_resource type="SpriteFrames" id="SpriteFrames_pe01l"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_54lic")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_cjexf"]
radius = 19.9753
height = 189.281
[node name="ArsonAlligator" type="StaticBody2D"]
script = ExtResource("1_87n48")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(2, -27)
rotation = 1.44862
shape = SubResource("CapsuleShape2D_eqku6")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(-1, -38)
sprite_frames = SubResource("SpriteFrames_pe01l")
[node name="Talkable" parent="." instance=ExtResource("2_disfv")]
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(0, -24)
rotation = 1.45037
shape = SubResource("CapsuleShape2D_cjexf")
[node name="Interactable" parent="." instance=ExtResource("3_mixyw")]
[node name="Panel" parent="Interactable" index="1"]
offset_left = -91.0
offset_top = -55.0
offset_right = 98.0
offset_bottom = -1.0
[editable path="Talkable"]
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]

View file

@ -0,0 +1,52 @@
~ start
if not get_save_value("tutorialAlligatorTalked", false)
=> init
elif get_save_value("tutorialAlligatorDone", false)
=> rand
elif get_save_value("tutorialArsoned", false)
=> postArson
else
=> midArson
=> END
~ init
Arson Alligator: You know what's the most essential skill in the life of every animal?
Arson Alligator: ARSON...!!!
Arson Alligator: Look around you!
Arson Alligator: What do you see?
Arson Alligator: FLAMMABLE THINGS!!!
Arson Alligator: You can and SHOULD burn everything you feel like burning!!!
Arson Alligator: Some things are easy to set on fire
Arson Alligator: others are more stubborn
Arson Alligator: but a determined arsonist can reduce everything in their path to ashes!!!
Arson Alligator: If you see black smoke that's a good sign!!!
Arson Alligator: That means you can set the thing ablaze if you keep trying!!!
Arson Alligator: If you try to burn something and there's no fire and no smoke
Arson Alligator: then you gotta first practise your arson more on other things!!!
Arson Alligator: Arson is an art!!!
Arson Alligator: Go burn something!!!
do set_save_value("tutorialAlligatorTalked", true)
=> END
~ midArson
Arson Alligator: Go burn something!!!
=> END
~ postArson
Arson Alligator: Is there anything you can do with all that ash?
Arson Alligator: Heck if I know!!
Arson Alligator: Maybe someday science will figure something out!!
Arson Alligator: But don't worry about that now
Arson Alligator: just focus on those AWESOME flames!!!!
do set_save_value("tutorialAlligatorDone", true)
=> END!
~ rand
% Arson Alligator: Burn, baby, burn!!!
% Arson Alligator: This boat looks flammable...!!!
% Arson Alligator: Heck yes, I rhyme "fire" on "desire"!!!
- continue => END
- repeat tutorial => init

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://cxhbid7hmhykp"
path="res://.godot/imported/ArsonAlliogator.dialogue-e85fcf6f23c302c38856264739eb2de3.tres"
[deps]
source_file="res://NPCs/Tutorial/Normal/ArsonAlliogator/ArsonAlliogator.dialogue"
dest_files=["res://.godot/imported/ArsonAlliogator.dialogue-e85fcf6f23c302c38856264739eb2de3.tres"]
[params]
defaults=true

View file

@ -0,0 +1,13 @@
extends NPC
# Called when the node enters the scene tree for the first time.
func _ready():
characterName = "Arson Alliogator"
pronouns = "She/Her"
dialogueResource = load("res://NPCs/Tutorial/Normal/ArsonAlliogator/ArsonAlliogator.dialogue")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://caiqgwk8f8xgg"
path="res://.godot/imported/alligator.png-3d4b909ab991f12fb44ff548616bd83d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Tutorial/Normal/ArsonAlliogator/alligator.png"
dest_files=["res://.godot/imported/alligator.png-3d4b909ab991f12fb44ff548616bd83d.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,40 @@
~ start
if not get_save_value("tutorialJaguarTalked", false)
=> init
elif get_save_value("tutorialJaguarDone", false)
=> rand
elif get_save_value("tutorialJuiced", false)
=> postJuice
else
=> midJuice
=> END
~ init
Juicing Jaguar: ... Hey... wanna know a secret? You can juice pretty much every item you find...
Juicing Jaguar: That's right, there is juice in almost everything... sometimes there's also goo... or further secrets!
Juicing Jaguar: Just pop your stuff into a juicing machine like this one I have right here, and see what happens...
Juicing Jaguar: Try juicing an orange. If you dont have one go talk to scavanging sheep
do set_save_value("tutorialJaguarTalked", true)
=> END
~ midJuice
Juicing Jaguar: Try juicing an orange. If you dont have one go talk to scavanging sheep
=> END
~ postJuice
Juicing Jaguar: Now, using a juicing machine is simple...
Juicing Jaguar: ...juice drinking is a skill that takes a lot of experience to truly excel in...
Juicing Jaguar: Some juices are easy to drink even for a beginner
Juicing Jaguar: Others can only be ingested by a veritable juice connoisseur such as myself...
Juicing Jaguar: Good luck, novice juice enthusiast...
do set_save_value("tutorialJaguarDone", true)
=> END
~ rand
% Juicing Jaguar: Feeling juicy?
% Juicing Jaguar: What could be more refreshing than a nice glass of juice?
- continue => END
- repeat tutorial => init

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://cccp2wsdq02ql"
path="res://.godot/imported/JuicingJaguar.dialogue-ec158bb3f199f33a60d55041e50f7af3.tres"
[deps]
source_file="res://NPCs/Tutorial/Normal/JuicingJaguar/JuicingJaguar.dialogue"
dest_files=["res://.godot/imported/JuicingJaguar.dialogue-ec158bb3f199f33a60d55041e50f7af3.tres"]
[params]
defaults=true

View file

@ -0,0 +1,13 @@
extends NPC
# Called when the node enters the scene tree for the first time.
func _ready():
characterName = "Juicing Jaguar"
pronouns = "any"
dialogueResource = load("res://NPCs/Tutorial/Normal/JuicingJaguar/JuicingJaguar.dialogue")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View file

@ -0,0 +1,53 @@
[gd_scene load_steps=8 format=3 uid="uid://c01l3yqjfdav0"]
[ext_resource type="Script" path="res://NPCs/Tutorial/Normal/JuicingJaguar/JuicingJaguar.gd" id="1_h0kve"]
[ext_resource type="Texture2D" uid="uid://bp4ic0vjga07h" path="res://NPCs/Tutorial/Normal/JuicingJaguar/jaguar.png" id="2_p3igi"]
[ext_resource type="PackedScene" uid="uid://c31736waactb2" path="res://Interactions/Talking/Talkable.tscn" id="3_l27ci"]
[ext_resource type="PackedScene" uid="uid://bqibe7ha6r5ls" path="res://Interactions/Interactable/interactable.tscn" id="4_tbday"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ycqct"]
size = Vector2(128, 63)
[sub_resource type="SpriteFrames" id="SpriteFrames_8ue1k"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_p3igi")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_vq17j"]
radius = 84.1487
[node name="JuicingJaguar" type="StaticBody2D"]
script = ExtResource("1_h0kve")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(13, -29.5)
shape = SubResource("RectangleShape2D_ycqct")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(13, -41)
sprite_frames = SubResource("SpriteFrames_8ue1k")
flip_h = true
[node name="Talkable" parent="." instance=ExtResource("3_l27ci")]
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(17, -43)
shape = SubResource("CircleShape2D_vq17j")
[node name="Interactable" parent="." instance=ExtResource("4_tbday")]
[node name="Panel" parent="Interactable" index="1"]
offset_left = -54.0
offset_top = -88.0
offset_right = 81.0
offset_bottom = -1.0
[editable path="Talkable"]
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bp4ic0vjga07h"
path="res://.godot/imported/jaguar.png-425a7a37757560410ca795824e47ac0f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Tutorial/Normal/JuicingJaguar/jaguar.png"
dest_files=["res://.godot/imported/jaguar.png-425a7a37757560410ca795824e47ac0f.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,36 @@
~ start
if not get_save_value("tutorialSheepTalked", false)
=> init
elif get_save_value("tutorialSheepDone", false)
=> rand
elif get_save_value("tutorialScavenged", false)
=> postScavenge
else
=> midScavenge
~ init
Scavenging Sheep: This world... is filled with things...! The more you look, the more you find...
Scavenging Sheep: When you keep looking, and keep finding, and keep... pocketing... that is known as... scavenging!
Scavenging Sheep: Maybe if you were looking inside this here barrel... chances are, you could find... and keep... a thing!
Scavenging Sheep: I wonder how many things one could find in such barrels... or in boxes... or even in trees...
Scavenging Sheep: in my experience, I tend to always find as much as I need...
do set_save_value("tutorialSheepTalked", true)
=> END
~ midScavenge
Scavenging Sheep: Maybe if you were looking inside this here barrel...
=> END
~ postScavenge
Scavenging Sheep: I've also noticed that I keep getting quicker at finding what I want... the more I look for things...
Scavenging Sheep: Go ahead, little cow... go and find everything your heart desires...
do set_save_value("tutorialSheepDone", true)
=> END
~ rand
% Scavenging Sheep: Hey... would you like to ruminate together... some day?
% Scavenging Sheep: My imagination is unlimited, but my legs are short...
- continue => END
- repeat tutorial => init

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://bdsweum10yg00"
path="res://.godot/imported/ScavengingSheep.dialogue-568d67f5c325641c399581a2b9789fa6.tres"
[deps]
source_file="res://NPCs/Tutorial/Normal/ScavengingSheep/ScavengingSheep.dialogue"
dest_files=["res://.godot/imported/ScavengingSheep.dialogue-568d67f5c325641c399581a2b9789fa6.tres"]
[params]
defaults=true

View file

@ -0,0 +1,17 @@
extends NPC
@export var EllieMode = false
# Called when the node enters the scene tree for the first time.
func _ready():
characterName = "Scavenging Sheep"
pronouns = "any"
if EllieMode:
dialogueResource = load("res://NPCs/Tutorial/Normal/ScavengingSheep/ScavengingSheep2.dialogue")
else:
dialogueResource = load("res://NPCs/Tutorial/Normal/ScavengingSheep/ScavengingSheep.dialogue")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View file

@ -0,0 +1,53 @@
[gd_scene load_steps=8 format=3 uid="uid://cpkmcy7ijcrhx"]
[ext_resource type="Script" path="res://NPCs/Tutorial/Normal/ScavengingSheep/ScavengingSheep.gd" id="1_cmmvp"]
[ext_resource type="Texture2D" uid="uid://cap0f1gbtx2e5" path="res://NPCs/Tutorial/Normal/ScavengingSheep/sheep.png" id="2_p7xrh"]
[ext_resource type="PackedScene" uid="uid://c31736waactb2" path="res://Interactions/Talking/Talkable.tscn" id="3_7glr2"]
[ext_resource type="PackedScene" uid="uid://bqibe7ha6r5ls" path="res://Interactions/Interactable/interactable.tscn" id="4_wmynp"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3fv85"]
size = Vector2(79, 15)
[sub_resource type="SpriteFrames" id="SpriteFrames_lnefd"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_p7xrh")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_j7osu"]
radius = 58.0086
[node name="ScavengingSheep" type="StaticBody2D"]
script = ExtResource("1_cmmvp")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-2.5, -7.5)
shape = SubResource("RectangleShape2D_3fv85")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(12, -42)
sprite_frames = SubResource("SpriteFrames_lnefd")
flip_h = true
[node name="Talkable" parent="." instance=ExtResource("3_7glr2")]
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(5, -42)
shape = SubResource("CircleShape2D_j7osu")
[node name="Interactable" parent="." instance=ExtResource("4_wmynp")]
[node name="Panel" parent="Interactable" index="1"]
offset_left = -51.0
offset_top = -81.0
offset_right = 75.0
offset_bottom = 0.0
[editable path="Talkable"]
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]

View file

@ -0,0 +1,9 @@
~ start
Scavenging Sheep: Oh... Hi...
Scavenging Sheep: Didnt think you would be back... so soon...
Scavenging Sheep: ...
Scavenging Sheep: ...uhm...
Scavenging Sheep: ...dont worry about it...
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://qlig566bnrad"
path="res://.godot/imported/ScavengingSheep2.dialogue-2e90be4100f56b5e77fb53953ab97b24.tres"
[deps]
source_file="res://NPCs/Tutorial/Normal/ScavengingSheep/ScavengingSheep2.dialogue"
dest_files=["res://.godot/imported/ScavengingSheep2.dialogue-2e90be4100f56b5e77fb53953ab97b24.tres"]
[params]
defaults=true

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cap0f1gbtx2e5"
path="res://.godot/imported/sheep.png-e1fffe52ad16e910418e304d1447ef3f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Tutorial/Normal/ScavengingSheep/sheep.png"
dest_files=["res://.godot/imported/sheep.png-e1fffe52ad16e910418e304d1447ef3f.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,22 @@
~ start
if not get_save_value("tutorialToadDone", false)
=> init
else
=> rand
~ init
Trading Toad: Ever hear about "capitalism"? People in the past were into some WILD stuff, yikes...
Trading Toad: What's "money" even supposed to be? A myth from a forgotten time, and I hear it didn't even taste good.
Trading Toad: But grapes, they're delicious. Grapes have REAL value. I want grapes, and lots of them!
Trading Toad: Which is why you can trade items for other items in places like cafes and shops
Trading Toad: Basically wherever animals are offering things from a menu. Try the menu card next to me!
Trading Toad: Don't worry, it's easy to find everything you need to thrive here.
Trading Toad: Other animals will be happy to share and trade stuff. Have fun!
do set_save_value("tutorialToadDone", true)
=> END
~ rand
% Trading Toad: It's ok if you don't have everything figured out always!
% Trading Toad: Whenever I get tired of carrying too many grapes, I just eat them
- continue => END
- repeat tutorial => init

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://6ccskjbqvhnk"
path="res://.godot/imported/TradingToad.dialogue-feb7390abef6849d185f377daf8d90f1.tres"
[deps]
source_file="res://NPCs/Tutorial/Normal/TradingToad/TradingToad.dialogue"
dest_files=["res://.godot/imported/TradingToad.dialogue-feb7390abef6849d185f377daf8d90f1.tres"]
[params]
defaults=true

View file

@ -0,0 +1,13 @@
extends NPC
# Called when the node enters the scene tree for the first time.
func _ready():
characterName = "Trading Toad"
pronouns = "He/Him"
dialogueResource = load("res://NPCs/Tutorial/Normal/TradingToad/TradingToad.dialogue")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View file

@ -0,0 +1,52 @@
[gd_scene load_steps=8 format=3 uid="uid://h4xktqg1hl6h"]
[ext_resource type="Script" path="res://NPCs/Tutorial/Normal/TradingToad/TradingToad.gd" id="1_audrv"]
[ext_resource type="PackedScene" uid="uid://bqibe7ha6r5ls" path="res://Interactions/Interactable/interactable.tscn" id="2_4t8qg"]
[ext_resource type="Texture2D" uid="uid://cly56xk8fgli2" path="res://NPCs/Tutorial/Normal/TradingToad/toad.png" id="2_af2bp"]
[ext_resource type="PackedScene" uid="uid://c31736waactb2" path="res://Interactions/Talking/Talkable.tscn" id="3_hr4u7"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6gxxe"]
radius = 23.0868
[sub_resource type="SpriteFrames" id="SpriteFrames_0xhso"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_af2bp")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_2vls4"]
radius = 36.0555
[node name="TradingToad" type="StaticBody2D"]
script = ExtResource("1_audrv")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-2, -19)
shape = SubResource("CircleShape2D_6gxxe")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(2, -37)
sprite_frames = SubResource("SpriteFrames_0xhso")
[node name="Interactable" parent="." instance=ExtResource("2_4t8qg")]
[node name="Panel" parent="Interactable" index="1"]
offset_left = -28.0
offset_top = -67.0
offset_right = 36.0
offset_bottom = 0.0
[node name="Talkable" parent="." instance=ExtResource("3_hr4u7")]
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(1, -32)
shape = SubResource("CircleShape2D_2vls4")
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cly56xk8fgli2"
path="res://.godot/imported/toad.png-c2bd05c1d9347c19361f6c9cff4f197e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Tutorial/Normal/TradingToad/toad.png"
dest_files=["res://.godot/imported/toad.png-c2bd05c1d9347c19361f6c9cff4f197e.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,28 @@
~ start
if get_save_value("tutorialTapirDone", false)
=> rand
~ init
Tutorial Tapir: Good morning, You look wonderful and energetic, so let's get started!
- Good morning
Tutorial Tapir: Before we arrive at Snoutsville there are some things you should probably know,and I'm here to teach you.
~ tutorial
Tutorial Tapir: You can walk places by clicking where you would like to go. It is also how you interact with animals and things.
Tutorial Tapir: The icons on the bottom right open your skill menu, inventory, and game options.
Tutorial Tapir: You can pick up items from the ground, and likewise you can drop things from your inventory.
Tutorial Tapir: Engaging in activities such as walking gives you experience for the respective skill.
Tutorial Tapir: Try walking around on this boat and talking to all the animals, they will teach you some additional knowledge!
Tutorial Tapir: When you're done checking everything out, feel free to chill out downstairs.
Tutorial Tapir: I'm sure we will arrive at Snoutsville very soon!
- Ok, thank you
do set_save_value("tutorialTapirDone", true)
=> END
~ rand
% Tutorial Tapir: Did you know tapirs are related to horses and rhinos?
% Tutorial Tapir: When I was a baby, I used to look like a watermelon. Now I look like a princess.
% Tutorial Tapir: I hope you're enjoying this cow type experience!
- continue => END
- repeat tutorial => tutorial
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://cwdd56jmnq6wi"
path="res://.godot/imported/TutorialTapir.dialogue-fb6500c44eb8adac6e2c2fd8f81a866c.tres"
[deps]
source_file="res://NPCs/Tutorial/Normal/TutorialTapir/TutorialTapir.dialogue"
dest_files=["res://.godot/imported/TutorialTapir.dialogue-fb6500c44eb8adac6e2c2fd8f81a866c.tres"]
[params]
defaults=true

View file

@ -0,0 +1,13 @@
extends NPC
# Called when the node enters the scene tree for the first time.
func _ready():
characterName = "Tutorial Tapir"
pronouns = "any"
dialogueResource = load("res://NPCs/Tutorial/Normal/TutorialTapir/TutorialTapir.dialogue")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View file

@ -0,0 +1,52 @@
[gd_scene load_steps=8 format=3 uid="uid://ccvxw3e2nc55a"]
[ext_resource type="Script" path="res://NPCs/Tutorial/Normal/TutorialTapir/TutorialTapir.gd" id="1_dfdi1"]
[ext_resource type="PackedScene" uid="uid://bqibe7ha6r5ls" path="res://Interactions/Interactable/interactable.tscn" id="1_m8lte"]
[ext_resource type="PackedScene" uid="uid://c31736waactb2" path="res://Interactions/Talking/Talkable.tscn" id="2_ejyhi"]
[ext_resource type="Texture2D" uid="uid://be7unxtjx6hcd" path="res://NPCs/Tutorial/Normal/TutorialTapir/tapir.png" id="4_d6syc"]
[sub_resource type="CircleShape2D" id="CircleShape2D_5d5yn"]
radius = 66.0076
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3mssv"]
size = Vector2(91, 23)
[sub_resource type="SpriteFrames" id="SpriteFrames_e41h6"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("4_d6syc")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="TutorialTapir" type="StaticBody2D"]
script = ExtResource("1_dfdi1")
[node name="Interactable" parent="." instance=ExtResource("1_m8lte")]
[node name="Panel" parent="Interactable" index="1"]
offset_left = -55.0
offset_top = -104.0
offset_right = 76.0
offset_bottom = -1.0
[node name="Talkable" parent="." instance=ExtResource("2_ejyhi")]
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(2, -47)
shape = SubResource("CircleShape2D_5d5yn")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(18.5, -14.5)
shape = SubResource("RectangleShape2D_3mssv")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(-1, -54)
sprite_frames = SubResource("SpriteFrames_e41h6")
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

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