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,23 @@
~ start
if LevelManager.skill_check("gardening", 20)
if not get_save_value("jonaldGardeningSectionCompleted", false)
if get_save_value("jonaldPigeonEvidencePlanted", false)
if not get_save_value("jonaldGardeningSectionStarted", false)
Jonald: You already planted the Evidence in Pigeon Grove
Jonald: That was my task for you
Jonald: I do not understand your actions, but you are Worthy
else
Jonald: You planted Evidence in the secret Pigeon Grove, you are Worthy
do set_save_value("jonaldGardeningSectionStarted", true)
do set_save_value("jonaldGardeningSectionCompleted", true)
else
Jonald: Plant Evidence in the secret Pigeon Grove
Jonald: If you have not been there, follow the sunflower seeds
do set_save_value("jonaldGardeningSectionStarted", true)
else
Jonald: You planted the evidence, I have no further tasks for you
Jonald: You are Worthy
else
Jonald: You are not ready (Return with at least level 20 Gardening)
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://b12eu0yw88s5g"
path="res://.godot/imported/JonaldEvidencePlanter.dialogue-f3746bfe44aec75303e31149f4dccd7e.tres"
[deps]
source_file="res://NPCs/Jonald/BeachPathForestJonalds/JonaldEvidencePlanter.dialogue"
dest_files=["res://.godot/imported/JonaldEvidencePlanter.dialogue-f3746bfe44aec75303e31149f4dccd7e.tres"]
[params]
defaults=true

View file

@ -0,0 +1,24 @@
~ start
if LevelManager.skill_check("juiceDrinking", 20)
if not get_save_value("jonaldJuiceSectionCompleted", false)
if SaveManager.get_value_from_section("drank", "Ash Juice", 0) > 0
if not get_save_value("jonaldJuiceSectionStarted", false)
Jonald: I did not even have to ask you to drink Ash Juice
Jonald: That was my task for you
Jonald: You did it without prompt
Jonald: Greatness awaits you, you are Worthy
else
Jonald: You drank Ash Juice, you are Worthy
do set_save_value("jonaldJuiceSectionStarted", true)
do set_save_value("jonaldJuiceSectionCompleted", true)
else
Jonald: Drink Ash Juice
do set_save_value("jonaldJuiceSectionStarted", true)
else
Jonald: You drank Ash Juice, I have no further tasks for you
Jonald: You are Worthy
else
Jonald: You are not ready (Return with at least level 20 Juice Drinking)
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://yal41ebofbim"
path="res://.godot/imported/JonaldJuiceDrinker.dialogue-d4a6fe66df599e5810e6c3d25b30329f.tres"
[deps]
source_file="res://NPCs/Jonald/BeachPathForestJonalds/JonaldJuiceDrinker.dialogue"
dest_files=["res://.godot/imported/JonaldJuiceDrinker.dialogue-d4a6fe66df599e5810e6c3d25b30329f.tres"]
[params]
defaults=true

View file

@ -0,0 +1,38 @@
~ start
if get_save_value("jonaldJuiceSectionCompleted", false) and get_save_value("jonaldGardeningSectionCompleted", false)
if not get_save_value("jonaldTrialsQuestComplete", false)
Jonald: My Trial is a test of Knowledge and Truth
Jonald: Riddle me this: What ship sunk in the year 1912?
- The Titanic
- The Gigantic
- The Olympic => Correct_Answer
- The Britannic
Jonald: That, is not correct. I will teach you The Truth
=> Titanic_Truth
else
Jonald: You have passed my Trial, but would you like to hear the Truth again?
- Yes => Titanic_Truth
- No => END
else
Jonald: Complete the Trials of the other Jonalds here
Jonald: Then speak to me
=> END
~ Correct_Answer
Jonald: That is correct, you know Much
Jonald: You have proven yourself Worthy to Jonald today
Jonald: *Jonald stares at you intently with a fierce gaze*
do set_save_value("jonaldTrialsQuestComplete", true)
do QuestManager.complete_quest("The Trials of Jonald")
=> END
~ Titanic_Truth
Jonald: Many believe that the ship that famously sunk in 1912 was the Titanic
Jonald: This is a common misunderstanding and was debunked decades ago
Jonald: In reality the Titanic was swapped with one of its sister ships, The Olympic
Jonald: The swapped in Olympic was in disrepair, and was sunk to commit insurance fraud
Jonald: It's important to know the Truths of the world, thank you for listening
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://c6xnny6cm0qt2"
path="res://.godot/imported/JonaldTitanicTruther.dialogue-36d8c7a1a489f6bc359b7a881b40ac37.tres"
[deps]
source_file="res://NPCs/Jonald/BeachPathForestJonalds/JonaldTitanicTruther.dialogue"
dest_files=["res://.godot/imported/JonaldTitanicTruther.dialogue-36d8c7a1a489f6bc359b7a881b40ac37.tres"]
[params]
defaults=true

View file

@ -0,0 +1,12 @@
[gd_scene load_steps=2 format=3 uid="uid://dv3125d1biqmn"]
[ext_resource type="PackedScene" uid="uid://coslo600kkkwb" path="res://NPCs/Jonald/jonald.tscn" id="1_xr515"]
[node name="Jonald" instance=ExtResource("1_xr515")]
[node name="Sprite" parent="." index="0"]
position = Vector2(1, -8)
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://fnbuemfbt64x"]
[ext_resource type="PackedScene" uid="uid://coslo600kkkwb" path="res://NPCs/Jonald/jonald.tscn" id="1_4ykab"]
[node name="Jonald" instance=ExtResource("1_4ykab")]
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://clt8qyawat1u"]
[ext_resource type="PackedScene" uid="uid://coslo600kkkwb" path="res://NPCs/Jonald/jonald.tscn" id="1_f751r"]
[node name="Jonald" instance=ExtResource("1_f751r")]
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

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

View file

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

View file

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

View file

@ -0,0 +1,20 @@
~ start
Jonald: *Jonald stares intently with a fierce gaze*
if get_save_value("edgeKnowledgePartook", false):
Jonald: Now you know
=> END
Jonald: I have observed The Edge
Jonald: Partake in my knowledge?
- Yes => partake
- No => noPartake
~ partake
Jonald: *Jonald's wise gaze fills you with the knowledge of everything*
do DialogueBoxManager.currentSpeaker.partake_knowledge()
Jonald: *Just a little bit of everything*
Jonald: Use this well
=> END
~ noPartake
Jonald: Goodbye
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://djwowugben84s"
path="res://.godot/imported/EdgeJonald.dialogue-745a501d2f0cbc9a6e035a14dcaf4c4f.tres"
[deps]
source_file="res://NPCs/Jonald/EdgeJonald/EdgeJonald.dialogue"
dest_files=["res://.godot/imported/EdgeJonald.dialogue-745a501d2f0cbc9a6e035a14dcaf4c4f.tres"]
[params]
defaults=true

View file

@ -0,0 +1,8 @@
extends NPC
func _ready():
dialogueResource = load("res://NPCs/Jonald/EdgeJonald/EdgeJonald.dialogue")
func partake_knowledge():
SaveManager.set_save_value("edgeKnowledgePartook", true)
LevelManager.add_all_xp(99)

View file

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=3 uid="uid://cvny0mnv36wsm"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_3r8er"]
[ext_resource type="Script" path="res://NPCs/Jonald/EdgeJonald/EdgeJonald.gd" id="2_ok1yn"]
[ext_resource type="Texture2D" uid="uid://nevhel5mtr64" path="res://NPCs/Jonald/Jonald.png" id="3_5cvp7"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xh8md"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_5cvp7")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="EdgeJonald" instance=ExtResource("1_3r8er")]
script = ExtResource("2_ok1yn")
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_xh8md")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -27.0
offset_top = -15.0
offset_right = 30.0
offset_bottom = 12.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
visible = false
[node name="CollisionShape2D" parent="." index="3"]
visible = false
disabled = true
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,3 @@
~ start
Jonald: *Jonald stares intently with a fierce gaze*
=> END

View file

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

BIN
NPCs/Jonald/Jonald.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://nevhel5mtr64"
path="res://.godot/imported/Jonald.png-f661271473cf5782c9cbf963de661016.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Jonald/Jonald.png"
dest_files=["res://.godot/imported/Jonald.png-f661271473cf5782c9cbf963de661016.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,17 @@
~ start
if get_save_value("jonaldTrialsQuestComplete", false):
Jonald: You are Worthy
Jonald: Would you like to enter our sanctum?
- Yes => enter
- Not right now => noThanks
else:
Jonald: You are not Worthy
Jonald: Speak to the Trial Masters in the woods and pass their trials
=> END
~ enter
do DialogueBoxManager.currentSpeaker.enter_lair()
~ noThanks
Jonald: Goodbye
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://cu325vkwnr2pj"
path="res://.godot/imported/JonaldLairGuard.dialogue-7ae69852b96a7e52186db9ad126f9d6e.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairEntranceJonald/JonaldLairGuard.dialogue"
dest_files=["res://.godot/imported/JonaldLairGuard.dialogue-7ae69852b96a7e52186db9ad126f9d6e.tres"]
[params]
defaults=true

View file

@ -0,0 +1,7 @@
extends NPC
func enter_lair():
LocationManager.changeLocation(LocationManager.Locations.JonaldLair, 0)
func _ready():
dialogueResource = load("res://NPCs/Jonald/JonaldLairEntranceJonald/JonaldLairGuard.dialogue")

View file

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=3 uid="uid://ct4nhawaciqdp"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_v6gls"]
[ext_resource type="Script" path="res://NPCs/Jonald/JonaldLairEntranceJonald/jonaldLairGuard.gd" id="2_l0km3"]
[ext_resource type="Texture2D" uid="uid://nevhel5mtr64" path="res://NPCs/Jonald/Jonald.png" id="3_rmhlw"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xh8md"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_rmhlw")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="Jonald" instance=ExtResource("1_v6gls")]
script = ExtResource("2_l0km3")
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_xh8md")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -27.0
offset_top = -15.0
offset_right = 30.0
offset_bottom = 12.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
visible = false
[node name="CollisionShape2D" parent="." index="3"]
visible = false
disabled = true
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,15 @@
~ start
Jonald: *Jonald stares intently with a fierce gaze*
Jonald: Hello is it your time to leave?
- Yes => yes
- No => no
~ yes
Jonald: Goodbye
do DialogueBoxManager.currentSpeaker.enter_lair()
=> END
~ no
Jonald: Ok
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://doug0qvt4v1xq"
path="res://.godot/imported/JonaldLairEntranceGuard.dialogue-2e683de1c929dd4f4d440de37b4497ee.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/EntranceJonald/JonaldLairEntranceGuard.dialogue"
dest_files=["res://.godot/imported/JonaldLairEntranceGuard.dialogue-2e683de1c929dd4f4d440de37b4497ee.tres"]
[params]
defaults=true

View file

@ -0,0 +1,7 @@
extends NPC
func enter_lair():
LocationManager.changeLocation(LocationManager.Locations.JonaldLairEntrance, 0)
func _ready():
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/EntranceJonald/JonaldLairEntranceGuard.dialogue")

View file

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=3 uid="uid://dmis0qb56b23e"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_v6gls"]
[ext_resource type="Script" path="res://NPCs/Jonald/JonaldLairJonalds/EntranceJonald/jonaldLairEntranceGuard.gd" id="2_l0km3"]
[ext_resource type="Texture2D" uid="uid://nevhel5mtr64" path="res://NPCs/Jonald/Jonald.png" id="3_rmhlw"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xh8md"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_rmhlw")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="Jonald" instance=ExtResource("1_v6gls")]
script = ExtResource("2_l0km3")
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_xh8md")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -27.0
offset_top = -15.0
offset_right = 30.0
offset_bottom = 12.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
visible = false
[node name="CollisionShape2D" parent="." index="3"]
visible = false
disabled = true
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,74 @@
~ start
if get_save_value("refillQuestComplete", false):
Jonald: Once again we are safe to continue our operations.
Jonald: We have no further missions for you at this time.
Jonald: Thank you for everything you've done, and for being you.
Jonald: I hope you continue to experience a good Cow Life.
=> END!
if get_save_value("juiceLakeRefilled", false):
Jonald: There's someone near the lake who wants to speak to you.
=> END!
if not get_save_value("refillQuestStarted", false):
Jonald: *Jonald stares intently with a fierce gaze and then lowers their eyes to you*
Jonald: Welcome to the Jonald Lair.
Jonald: You have done well to arrive here.
Jonald: However, it seems our lair is now undefended.
- I'll help => startQuest
- Well... => declineQuest
if DialogueBoxManager.currentSpeaker.ultimate_juice_check():
Jonald: Very well done. I see you have the Ultimate Juice.
Jonald: Now go. Refill the lake.
do DialogueBoxManager.currentSpeaker.refill_lake()
Jonald: Good work. Welcome back.
Jonald: Someone near the lake would like to speak to you.
=> END
Jonald: *Jonald stares intently with a fierce gaze and then lowers their eyes to you*
Jonald: I cannot help you any further.
Jonald: If you need more empty key packets I'll set some next to me as I find them.
Jonald: We've had many problems to solve before.
Jonald: Remember: The solution may be locked, but it lies within you.
Jonald: Good Luck.
=> END
~ startQuest
if not LevelManager.skill_check("swimming", 25) or not LevelManager.skill_check("appreciating", 28) or not LevelManager.skill_check("juiceDrinking", 30):
Jonald: Unfortunately the answers to our problem are not yet within you.
Jonald: (Requires level 30 Juice Drinking, level 28 Experiencing, and level 25 Swimming)
=> END
Jonald: Wonderful.
Jonald: We must replace the Juice Barrier protecting our lair.
Jonald: Unfortunately we have lost the contact info for our Lead Juice Consultant.
Jonald: The answer to this problem lies within you.
do DialogueBoxManager.currentSpeaker.give_key_packet()
do set_save_value("refillQuestStarted", true)
Jonald: *Jonald hands you an empty packet*
Jonald: This would have held the key to unlock it, but we already used it the last time this happened.
Jonald: Good Luck.
=> END
~ declineQuest
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: ...
Jonald: Please move along.
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://bhcwyqige50uv"
path="res://.godot/imported/LargeJonald.dialogue-92d7d9b87ca4023822ca0a9bceb33501.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/LargeJonald.dialogue"
dest_files=["res://.godot/imported/LargeJonald.dialogue-92d7d9b87ca4023822ca0a9bceb33501.tres"]
[params]
defaults=true

View file

@ -0,0 +1,27 @@
extends NPC
var ultimateJuiceItem
func _ready():
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/LargeJonald.dialogue")
ultimateJuiceItem = preload("res://Items/Juice/UltimateJuice.gd").new()
func refill_lake():
SaveManager.set_save_value("juiceLakeRefilled", true)
InventoryManager.remove_item_from_inventory(ultimateJuiceItem)
var cutscene = preload("res://Cutscenes/RefillingJuiceLake/RefillLakeCutscene.tscn").instantiate()
add_child(cutscene)
func give_key_packet():
var emptyKeyPacketItem = preload("res://Items/Artificial/Products/EmptyKeyPacket.gd").new()
InventoryManager.add_item_to_inventory(emptyKeyPacketItem)
MessageManager.item_popup(emptyKeyPacketItem.duplicate())
func ultimate_juice_check():
if InventoryManager.check_if_in_inventory(ultimateJuiceItem):
return true
return false
func refill_juice_lake():
pass

View file

@ -0,0 +1,15 @@
extends NPC
class_name TennisJonald
var soundDelay = 0.3
var soundDelayTimer = 0
var rng = RandomNumberGenerator.new()
var delayRange = 0.1
func _process(delta):
soundDelayTimer -= delta
if soundDelayTimer <= 0:
soundDelayTimer = soundDelay + rng.randf_range(0, delayRange)
$AudioStreamPlayer2D.play()

View file

@ -0,0 +1,3 @@
~ start
Jonald: *Jonald is too focused on shaking their Woomote to notice you*
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://cs8e22xyorlok"
path="res://.godot/imported/TennisJonald1.dialogue-f1d65a143b306849ba43569752869684.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald1.dialogue"
dest_files=["res://.godot/imported/TennisJonald1.dialogue-f1d65a143b306849ba43569752869684.tres"]
[params]
defaults=true

View file

@ -0,0 +1,5 @@
extends TennisJonald
func _ready():
soundDelayTimer = 0.11
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald1.dialogue")

View file

@ -0,0 +1,6 @@
~ start
Jonald: (Jonald's Woomote seems to be out of battery but they haven't noticed)
- Your Woomote is out of battery
- Let them be => END!
Jonald: *Jonald is too focused to hear you*
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://dta8yrgu7frtt"
path="res://.godot/imported/TennisJonald2.dialogue-04cd9408913d0bf2cbd4b6568a730e61.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald2.dialogue"
dest_files=["res://.godot/imported/TennisJonald2.dialogue-04cd9408913d0bf2cbd4b6568a730e61.tres"]
[params]
defaults=true

View file

@ -0,0 +1,4 @@
extends NPC
func _ready():
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald2.dialogue")

View file

@ -0,0 +1,5 @@
~ start
Jonald: *Jonald turns towards you shaking their Woomote dangerously close to your face*
Jonald: Hello
- Back away
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://cbwlkinirpmtn"
path="res://.godot/imported/TennisJonald3.dialogue-3221754ff682b59b1e217411b8a832ae.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald3.dialogue"
dest_files=["res://.godot/imported/TennisJonald3.dialogue-3221754ff682b59b1e217411b8a832ae.tres"]
[params]
defaults=true

View file

@ -0,0 +1,6 @@
extends TennisJonald
func _ready():
soundDelayTimer = 0.15
delayRange = 0.04
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald3.dialogue")

View file

@ -0,0 +1,6 @@
~ start
Jonald: (Jonald's Woomote is not connected)
- Your Woomote isn't connected
- Let them be => END!
Jonald: *Jonald stares you while shaking their Woomote*
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://bwdinrokwaip"
path="res://.godot/imported/TennisJonald4.dialogue-c45d6a46564158c3777e317c58e541ef.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald4.dialogue"
dest_files=["res://.godot/imported/TennisJonald4.dialogue-c45d6a46564158c3777e317c58e541ef.tres"]
[params]
defaults=true

View file

@ -0,0 +1,4 @@
extends NPC
func _ready():
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald4.dialogue")

View file

@ -0,0 +1,11 @@
~ start
Jonald: I have never lost, have you?
- I have => yes
- I haven't => no
~ yes
Jonald: Don't do that
=> END
~ no
Jonald: Very good
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://xdlnl3l42y8n"
path="res://.godot/imported/TennisJonald5.dialogue-080e1919bb00cf9749eb759fa9ffc341.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald5.dialogue"
dest_files=["res://.godot/imported/TennisJonald5.dialogue-080e1919bb00cf9749eb759fa9ffc341.tres"]
[params]
defaults=true

View file

@ -0,0 +1,6 @@
extends TennisJonald
func _ready():
soundDelayTimer = 0.3
delayRange = 0.04
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald5.dialogue")

View file

@ -0,0 +1,3 @@
~ start
Jonald: I like the swords game but we can't all play on that one
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://bvha1pa08a5uc"
path="res://.godot/imported/TennisJonald6.dialogue-327d5dc7528fe2df916ce6837bb3a5c5.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald6.dialogue"
dest_files=["res://.godot/imported/TennisJonald6.dialogue-327d5dc7528fe2df916ce6837bb3a5c5.tres"]
[params]
defaults=true

View file

@ -0,0 +1,5 @@
extends TennisJonald
func _ready():
soundDelayTimer = 0.31
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TennisJonalds/TennisJonald6.dialogue")

View file

@ -0,0 +1,4 @@
~ start
do DialogueBoxManager.currentSpeaker.earn_achievement()
Jonald: *The tiny Jonald stares into your eyes with a deep wisdom, then winks*
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://ddwa86kp5vj4u"
path="res://.godot/imported/TinyJonald.dialogue-82583819cb83f658bfd32e3671e9d5f8.tres"
[deps]
source_file="res://NPCs/Jonald/JonaldLairJonalds/TinyJonald/TinyJonald.dialogue"
dest_files=["res://.godot/imported/TinyJonald.dialogue-82583819cb83f658bfd32e3671e9d5f8.tres"]
[params]
defaults=true

View file

@ -0,0 +1,7 @@
extends NPC
func _ready():
dialogueResource = load("res://NPCs/Jonald/JonaldLairJonalds/TinyJonald/TinyJonald.dialogue")
func earn_achievement():
AchievementManager.complete_achievement(";)")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnbcmhh6q3ogn"
path="res://.godot/imported/JonaldWiiTennis1.png-904cf5cc24f6c5a88d81bd8e4a6d5141.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Jonald/JonaldPlayingTennis/JonaldWiiTennis1.png"
dest_files=["res://.godot/imported/JonaldWiiTennis1.png-904cf5cc24f6c5a88d81bd8e4a6d5141.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.7 KiB

View file

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

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dykmo74bxtwpt"
path="res://.godot/imported/JonaldWiiTennis3.png-951c6da313268f7d820f804369724d9e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Jonald/JonaldPlayingTennis/JonaldWiiTennis3.png"
dest_files=["res://.godot/imported/JonaldWiiTennis3.png-951c6da313268f7d820f804369724d9e.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,65 @@
[gd_scene load_steps=9 format=3 uid="uid://cqbc8kenvs6f2"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_p302e"]
[ext_resource type="Script" path="res://NPCs/Jonald/jonald.gd" id="2_66qr4"]
[ext_resource type="Texture2D" uid="uid://cnbcmhh6q3ogn" path="res://NPCs/Jonald/JonaldPlayingTennis/JonaldWiiTennis1.png" id="3_cc4yr"]
[ext_resource type="Texture2D" uid="uid://bcw2qhntr5ned" path="res://NPCs/Jonald/JonaldPlayingTennis/JonaldWiiTennis2.png" id="4_4010q"]
[ext_resource type="Texture2D" uid="uid://dykmo74bxtwpt" path="res://NPCs/Jonald/JonaldPlayingTennis/JonaldWiiTennis3.png" id="5_6b2sq"]
[ext_resource type="Script" path="res://Utils/PlayOnReady.gd" id="6_dw2bv"]
[ext_resource type="AudioStream" uid="uid://5hnu7ghqpehj" path="res://Sounds/SFX/Tennis/Whoosh2.mp3" id="7_m1lq7"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xh8md"]
animations = [{
"frames": [{
"duration": 2.0,
"texture": ExtResource("3_cc4yr")
}, {
"duration": 1.0,
"texture": ExtResource("4_4010q")
}, {
"duration": 2.0,
"texture": ExtResource("5_6b2sq")
}],
"loop": true,
"name": &"default",
"speed": 20.0
}]
[node name="Jonald" instance=ExtResource("1_p302e")]
script = ExtResource("2_66qr4")
[node name="Sprite" parent="." index="0"]
position = Vector2(0, -10)
sprite_frames = SubResource("SpriteFrames_xh8md")
frame_progress = 0.790351
script = ExtResource("6_dw2bv")
randDelayMax = 0.4
[node name="Interactable" parent="." index="1"]
position = Vector2(0, -10)
[node name="Panel" parent="Interactable" index="1"]
offset_left = -6.0
offset_top = -3.0
offset_right = 44.0
offset_bottom = 22.0
metadata/_edit_use_anchors_ = true
[node name="Talkable" parent="." index="2"]
position = Vector2(0, -10)
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
visible = false
[node name="CollisionShape2D" parent="." index="3"]
visible = false
disabled = true
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="." index="4"]
stream = ExtResource("7_m1lq7")
max_distance = 1500.0
bus = &"SFX"
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,37 @@
~ start
Jonald: *Jonald stares intently with a fierce gaze*
Jonald: Welcome to my office.
- I need Juice => JuiceInquiry
- Silica Gel? => SilicaGel
- Bye => Bye
~ JuiceInquiry
if DialogueBoxManager.currentSpeaker.ingredients_check():
Jonald: Excellent. You've got the ingredients.
Jonald: *Jonald takes your juices and stares into the distance for a moment*
Jonald: Here you go. Enjoy The Ultimate Juice.
do DialogueBoxManager.currentSpeaker.give_ultimate_juice()
- I need Juice => JuiceInquiry
- Silica Gel? => SilicaGel
- Bye => Bye
Jonald: Wonderful. All you need to do is bring me the following:
Jonald: 1 Banana Juice.
Jonald: 1 Iron Ingot Juice.
Jonald: And 1 Silica Gel Juice. All Unmodified.
Jonald: Bring this to me and I will make you The Ultimate Juice.
- Silica Gel? => SilicaGel
- Bye => Bye
~ SilicaGel
Jonald: I wrote down where to find Silica Gel on this form here you can have it.
do DialogueBoxManager.currentSpeaker.give_taxes()
Jonald: I got it grubbed up I was eating snacks.
Jonald: You'll have to find a way to clean it.
Jonald: This info is very important. I wrote it on many forms. Got them all grubbed up.
Jonald: Come back if you need another one.
- I need Juice => JuiceInquiry
- Bye => Bye
~ Bye
Jonald: Goodbye.
=> END

View file

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

View file

@ -0,0 +1,51 @@
extends NPC
var bananaJuiceItem
var ironIngotJuiceItem
var silicaGelJuiceItem
func _ready():
dialogueResource = load("res://NPCs/Jonald/JuiceConsultantJonald/JuiceConsultantJonald.dialogue")
visible = false
bananaJuiceItem = JuiceGenerator.generate_juice(preload("res://Items/Foods/Fruits/Banana.gd").new())
ironIngotJuiceItem = JuiceGenerator.generate_juice(preload("res://Items/Artificial/Industrial/IronIngot.gd").new())
silicaGelJuiceItem = JuiceGenerator.generate_juice(preload("res://Items/Artificial/Products/SilicaGel.gd").new())
func give_taxes():
var taxesItem:Item = preload("res://Items/Paper/Taxes.gd").new()
taxesItem.set_modification(Item.modifications.Grubby)
InventoryManager.add_item_to_inventory(taxesItem)
MessageManager.item_popup(taxesItem.duplicate())
func give_ultimate_juice():
InventoryManager.spend_item(bananaJuiceItem)
InventoryManager.spend_item(ironIngotJuiceItem)
InventoryManager.spend_item(silicaGelJuiceItem)
var ultimateJuiceItem = preload("res://Items/Juice/UltimateJuice.gd").new()
InventoryManager.add_item_to_inventory(ultimateJuiceItem)
MessageManager.item_popup(ultimateJuiceItem.duplicate())
func ingredients_check():
if !banana_juice_check():
return false
if !iron_ingot_juice_check():
return false
if !silica_gel_juice_check():
return false
return true
func banana_juice_check():
return InventoryManager.check_if_in_inventory(bananaJuiceItem)
func iron_ingot_juice_check():
return InventoryManager.check_if_in_inventory(ironIngotJuiceItem)
func silica_gel_juice_check():
return InventoryManager.check_if_in_inventory(silicaGelJuiceItem)
func _on_ferris_wheel_jonald_dropped_off():
SaveManager.set_save_value("juiceJonaldMet", true)
visible = true

View file

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=3 uid="uid://c4v4bb6pjay15"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_u130t"]
[ext_resource type="Script" path="res://NPCs/Jonald/JuiceConsultantJonald/JuiceConsultantJonald.gd" id="2_tc32j"]
[ext_resource type="Texture2D" uid="uid://nevhel5mtr64" path="res://NPCs/Jonald/Jonald.png" id="3_odjow"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xh8md"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_odjow")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="Jonald" instance=ExtResource("1_u130t")]
script = ExtResource("2_tc32j")
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_xh8md")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -27.0
offset_top = -15.0
offset_right = 30.0
offset_bottom = 12.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
visible = false
[node name="CollisionShape2D" parent="." index="3"]
visible = false
disabled = true
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

4
NPCs/Jonald/jonald.gd Normal file
View file

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

39
NPCs/Jonald/jonald.tscn Normal file
View file

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=3 uid="uid://coslo600kkkwb"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_pufxv"]
[ext_resource type="Script" path="res://NPCs/Jonald/jonald.gd" id="2_fv8n0"]
[ext_resource type="Texture2D" uid="uid://nevhel5mtr64" path="res://NPCs/Jonald/Jonald.png" id="2_yl3mx"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xh8md"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_yl3mx")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="Jonald" instance=ExtResource("1_pufxv")]
script = ExtResource("2_fv8n0")
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_xh8md")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -27.0
offset_top = -15.0
offset_right = 30.0
offset_bottom = 12.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
visible = false
[node name="CollisionShape2D" parent="." index="3"]
visible = false
disabled = true
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]