It's Cow Game! Version 2.04!
This commit is contained in:
commit
a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions
60
Quests/Adventurous/FillingJuiceLake.gd
Normal file
60
Quests/Adventurous/FillingJuiceLake.gd
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "Filling Juice Lake"
|
||||
questScale = Quest.Scales.Adventurous
|
||||
questPointReward = 3
|
||||
|
||||
func get_progress_report():
|
||||
var result = ""
|
||||
|
||||
if not SaveManager.get_save_value("refillQuestStarted", false):
|
||||
return "Speak to the Largest Jonald"
|
||||
|
||||
if SaveManager.get_save_value("refillQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
I unlocked the wisdom within.
|
||||
I met with the Juice Consultant Jonald.
|
||||
I got the Ultimate Juice.
|
||||
I refilled Juice Lake."
|
||||
elif SaveManager.get_save_value("juiceLakeRefilled", false):
|
||||
return "Someone near Juice Lake wants to speak to me."
|
||||
|
||||
if SaveManager.get_save_value("juiceKnowledgeObtained", false):
|
||||
result += "I ate the Brass Key and spoke the wisdom:
|
||||
\"Upon a circle ever spinning. I must board a creature ever buzzing. Upon them I must shout with glee: Yippee!\""
|
||||
else:
|
||||
result += "I somehow need to find the Juice Consultant Jonald. The Largest Jonald said I must unlock the solution within. They gave me an Empty Key Packet."
|
||||
|
||||
if SaveManager.get_save_value("juiceJonaldMet", false):
|
||||
result = "I met the Juice Consultant Jonald by saying \"Yippee!\" while riding the Bee Box of the Ferris Wheel.
|
||||
I need 1 Banana Juice, 1 Iron Ingot Juice, and 1 Silica Gel Juice to make the Ultimate Juice.
|
||||
They can tell me where to get Silica Gel."
|
||||
|
||||
return result
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
360 Juice Drinking XP
|
||||
230 Swimming XP
|
||||
110 Experiencing XP
|
||||
3 Quest Points"
|
||||
|
||||
func get_requirements_report():
|
||||
return "Requirements
|
||||
Drinking Juice Lake
|
||||
The Trials of Jonald
|
||||
Level 30 Juice Drinking
|
||||
Level 28 Experiencing
|
||||
Level 25 Swimming"
|
||||
|
||||
func complete():
|
||||
SaveManager.set_save_value("refillQuestComplete", true)
|
||||
LevelManager.add_XP("juiceDrinking", 3600)
|
||||
LevelManager.add_XP("swimming", 2300)
|
||||
LevelManager.add_XP("appreciating", 1100)
|
||||
|
||||
func is_completed():
|
||||
if SaveManager.get_save_value("refillQuestComplete", false):
|
||||
return true
|
||||
return false
|
||||
48
Quests/Adventurous/LakeOfJuice.gd
Normal file
48
Quests/Adventurous/LakeOfJuice.gd
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
extends Quest
|
||||
|
||||
var strawItemClass = preload("res://Items/Dishes/Straw.gd")
|
||||
var strawItem
|
||||
|
||||
func _init():
|
||||
questName = "Drinking Juice Lake"
|
||||
questScale = Quest.Scales.Adventurous
|
||||
questPointReward = 3
|
||||
|
||||
strawItem = strawItemClass.new()
|
||||
|
||||
func get_progress_report():
|
||||
if not SaveManager.get_save_value("juiceLakeQuestStarted", false):
|
||||
return "Talk to the Witch in Pigeon Park"
|
||||
|
||||
if SaveManager.get_save_value("juiceLakeQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
I entered the Museum Cave and found The Straw.
|
||||
I drank the Juice Lake.
|
||||
A secret entrance was uncovered."
|
||||
|
||||
if InventoryManager.check_if_in_inventory(strawItem, 1, "keyItems"):
|
||||
return "I entered the Museum Cave and found The Straw.
|
||||
Now I need to show it to the Witch Cow and drink the lake."
|
||||
|
||||
return "The Witch Cow told me I need to pass through an Ancient Gateway somewhere east of Juice Lake and find The Straw."
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
250 Juice Drinking XP
|
||||
100 Experiencing XP
|
||||
3 Quest Points"
|
||||
|
||||
func get_requirements_report():
|
||||
return "Requirements
|
||||
Level 25 Juice Drinking
|
||||
Level 15 Experiencing"
|
||||
|
||||
func complete():
|
||||
SaveManager.set_save_value("juiceLakeQuestComplete", true)
|
||||
LevelManager.add_XP("juiceDrinking", 2500)
|
||||
LevelManager.add_XP("appreciating", 1000)
|
||||
|
||||
func is_completed():
|
||||
if SaveManager.get_save_value("juiceLakeQuestComplete", false):
|
||||
return true
|
||||
return false
|
||||
55
Quests/Humble/BeaverLove.gd
Normal file
55
Quests/Humble/BeaverLove.gd
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
extends Quest
|
||||
|
||||
const loveNovelItemClass = preload("res://Items/Paper/LoveNovel.gd")
|
||||
var loveNovel
|
||||
|
||||
const loveTomeItemClass = preload("res://Items/Paper/LoveTome.gd")
|
||||
var loveTome
|
||||
|
||||
const damFireStarterClass = preload("res://Items/Artificial/Products/DamFireStarter.gd")
|
||||
|
||||
func _init():
|
||||
questName = "Beaver Love"
|
||||
questScale = Quest.Scales.Humble
|
||||
questPointReward = 2
|
||||
|
||||
loveNovel = loveNovelItemClass.new()
|
||||
loveTome = loveTomeItemClass.new()
|
||||
|
||||
func get_progress_report():
|
||||
if SaveManager.get_save_value("BeaverLoveQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
My Dam withstood the Love Novel
|
||||
I delivered the Love Novel
|
||||
My Dam withstood the Love Tome
|
||||
I delivered the Love Tome
|
||||
I learnt how to build Beaver Dams and got an item to help burn them"
|
||||
|
||||
if InventoryManager.check_if_in_inventory(loveTome):
|
||||
return "I delivered a Love Novel to the beaver across the river.
|
||||
Now I need to deliver the Love Tome to the first beaver."
|
||||
|
||||
if InventoryManager.check_if_in_inventory(loveNovel) or !SaveManager.get_save_value("BeaverLoveQuestStarted", false):
|
||||
return "I need to deliver a Love Novel to the beaver across the river."
|
||||
|
||||
return "Speak to the Longing Beaver on the path to the Beach"
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
170 Building XP
|
||||
You learnt the Beaver Dam Building Technique
|
||||
Lammy gave you a kit to start Dam Fires easier
|
||||
2 Quest Point"
|
||||
|
||||
func get_requirements_report():
|
||||
return "Requirements
|
||||
Level 10 Building
|
||||
Level 10 Swimming"
|
||||
|
||||
func complete():
|
||||
InventoryManager.add_item_to_inventory(damFireStarterClass.new(), 1, "keyItems")
|
||||
LevelManager.add_XP("building", 1700)
|
||||
|
||||
func is_completed():
|
||||
return SaveManager.get_save_value("BeaverLoveQuestComplete", false)
|
||||
|
||||
30
Quests/Humble/BeesleyJuice.gd
Normal file
30
Quests/Humble/BeesleyJuice.gd
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "Beesley's Lime Move"
|
||||
questScale = Quest.Scales.Humble
|
||||
questPointReward = 2
|
||||
|
||||
func get_progress_report():
|
||||
if SaveManager.get_save_value("BeesleyQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
I watched Beesley do a cool Lime Move!
|
||||
Then I helped him turn back into a bee.
|
||||
Seeing such an awesome maneuver is its own reward."
|
||||
|
||||
if SaveManager.get_save_value("BeesleyHasLimed", false):
|
||||
return "Find a way to turn Beesley back into a bee"
|
||||
|
||||
return "Watch Beesley go Lime Mode in the Pigeon Park Maze"
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
You got to see Beesley turn into a lime
|
||||
2 Quest Points"
|
||||
|
||||
func get_requirements_report():
|
||||
return "No Requirements"
|
||||
|
||||
func is_completed():
|
||||
return SaveManager.get_save_value("BeesleyQuestComplete", false)
|
||||
|
||||
27
Quests/Humble/PaxBalloon.gd
Normal file
27
Quests/Humble/PaxBalloon.gd
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "Wombat in the Sky"
|
||||
questScale = Quest.Scales.Humble
|
||||
|
||||
func get_progress_report():
|
||||
if SaveManager.get_save_value("PaxFlyQuestCompleted", false):
|
||||
return "QUEST COMPLETE!
|
||||
I brought Pax a balloon!
|
||||
In return Pax flew up high and retrieved a cloud"
|
||||
elif SaveManager.get_save_value("PaxFlyQuestStarted", false):
|
||||
return "I talked to Pax and fae really wants to fly.
|
||||
I need to bring Pax another balloon to increase faer buoyancy."
|
||||
else:
|
||||
return "Talk to Pax outside at The Faire"
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
Cloud
|
||||
1 Quest Point"
|
||||
|
||||
func get_requirements_report():
|
||||
return "No Requirements"
|
||||
|
||||
func is_completed():
|
||||
return SaveManager.get_save_value("PaxFlyQuestCompleted", false)
|
||||
28
Quests/Humble/SugarTime.gd
Normal file
28
Quests/Humble/SugarTime.gd
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "Sugar for Yuri"
|
||||
questScale = Quest.Scales.Humble
|
||||
|
||||
func get_progress_report():
|
||||
if SaveManager.get_save_value("YuriQuestCompleted", false):
|
||||
return "QUEST COMPLETE!
|
||||
I brought Yuri some sugar!
|
||||
In return she'll put sugar on things if I ask."
|
||||
elif SaveManager.get_save_value("YuriQuestStarted", false):
|
||||
return "I talked to Yuri and she's having trouble opening sugar packets.
|
||||
I need to bring Yuri some sugar, and not in a packet."
|
||||
else:
|
||||
return "Talk to Yuri in Julie's Juice Cafe"
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
Yuri will put sugar on things for me
|
||||
1 Quest Point"
|
||||
|
||||
func get_requirements_report():
|
||||
return "No Requirements"
|
||||
|
||||
func is_completed():
|
||||
return SaveManager.get_save_value("YuriQuestCompleted", false)
|
||||
|
||||
26
Quests/Humble/TaleOfJonald.gd
Normal file
26
Quests/Humble/TaleOfJonald.gd
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "The Tale of Jonald"
|
||||
questScale = Quest.Scales.Humble
|
||||
questPointReward = 1
|
||||
|
||||
func get_progress_report():
|
||||
if SaveManager.get_save_value("JonaldTaleQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
I spoke to the largest Jonald
|
||||
I heard The Tale of Jonald"
|
||||
|
||||
return "Speak to the largest Jonald"
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
You heard The Tale of Jonald
|
||||
1 Quest Point"
|
||||
|
||||
func get_requirements_report():
|
||||
return "Requirements\nThe Trials of Jonald\nDrinking Juice Lake"
|
||||
|
||||
func is_completed():
|
||||
return SaveManager.get_save_value("JonaldTaleQuestComplete", false)
|
||||
|
||||
89
Quests/Moderate/ConstellationOfBaskets.gd
Normal file
89
Quests/Moderate/ConstellationOfBaskets.gd
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "Constellation of Baskets"
|
||||
questScale = Quest.Scales.Moderate
|
||||
questPointReward = 2
|
||||
|
||||
func get_progress_report():
|
||||
var resultText = ""
|
||||
|
||||
if not SaveManager.get_save_value("ambiQuestStarted", false):
|
||||
return "Talk to the Ambrose on the Beach"
|
||||
|
||||
if SaveManager.get_save_value("ambiQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
I found the Basket Plans.
|
||||
I arranged the Basket Formation.
|
||||
I learned the Infinite Basket Technique."
|
||||
|
||||
if !notes_check():
|
||||
return get_missing_notes_info()
|
||||
else:
|
||||
return "I need to set up 6 baskets near Ambrose, following his notes I found."
|
||||
|
||||
return resultText
|
||||
|
||||
func get_missing_notes_info():
|
||||
var result = ""
|
||||
if !note_check_1():
|
||||
result += "I need to find a note that flew towards the Snak Shak."
|
||||
else:
|
||||
result += "I found the first note behind the Snak Shak."
|
||||
|
||||
if !note_check_2():
|
||||
result += "\nI need to find a note that flew towards the rocky island."
|
||||
else:
|
||||
result += "\nI got the second note from Bradrek."
|
||||
|
||||
if !note_check_2():
|
||||
result += "\nI need to find a note that flew north and got stuck in a log."
|
||||
else:
|
||||
result += "\nI got the third note from inside a mushroom-covered log."
|
||||
|
||||
return result
|
||||
|
||||
func notes_check():
|
||||
if !note_check_1():
|
||||
return false
|
||||
if !note_check_2():
|
||||
return false
|
||||
if !note_check_3():
|
||||
return false
|
||||
|
||||
return true
|
||||
|
||||
func note_check_1():
|
||||
if InventoryManager.get_item_count_by_name("Basket Plan 1", "keyItems") > 0:
|
||||
return true
|
||||
return false
|
||||
|
||||
func note_check_2():
|
||||
if InventoryManager.get_item_count_by_name("Basket Plan 2", "keyItems") > 0:
|
||||
return true
|
||||
return false
|
||||
|
||||
func note_check_3():
|
||||
if InventoryManager.get_item_count_by_name("Basket Plan 3", "keyItems") > 0:
|
||||
return true
|
||||
return false
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
260 Basket Weaving XP
|
||||
75 Scavenging XP
|
||||
2 Quest Points"
|
||||
|
||||
func get_requirements_report():
|
||||
return "Requirements
|
||||
Level 22 Basket Weaving
|
||||
Level 15 Scavenging"
|
||||
|
||||
func complete():
|
||||
LevelManager.add_XP("basketWeaving", 2600)
|
||||
LevelManager.add_XP("scavenging", 750)
|
||||
|
||||
func is_completed():
|
||||
if SaveManager.get_save_value("ambiQuestComplete", false):
|
||||
return true
|
||||
return false
|
||||
68
Quests/Moderate/TrialsOfJonald.gd
Normal file
68
Quests/Moderate/TrialsOfJonald.gd
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
extends Quest
|
||||
|
||||
func _init():
|
||||
questName = "The Trials of Jonald"
|
||||
questScale = Quest.Scales.Moderate
|
||||
questPointReward = 2
|
||||
|
||||
func get_progress_report():
|
||||
var resultText = ""
|
||||
|
||||
if not SaveManager.get_save_value("jonaldGardeningSectionStarted", false) and not SaveManager.get_save_value("jonaldJuiceSectionStarted", false):
|
||||
return "Talk to the Jonalds in the Forest"
|
||||
|
||||
if SaveManager.get_save_value("jonaldTrialsQuestComplete", false):
|
||||
return "QUEST COMPLETE!
|
||||
I drank the Ash Juice and planted the Evidence.
|
||||
I learned the Titanic Truth."
|
||||
|
||||
if not SaveManager.get_save_value("jonaldGardeningSectionStarted", false):
|
||||
resultText += "I need to talk to the southern Jonald in the Forest"
|
||||
elif not SaveManager.get_save_value("jonaldGardeningSectionCompleted", false):
|
||||
resultText += "The southern Jonald told me to plant Evidence in the Pigeon Grove and report back."
|
||||
if SaveManager.get_save_value("jonaldPigeonEvidencePlanted", false):
|
||||
resultText += " I have planted the Evidence."
|
||||
else:
|
||||
resultText += " Jonald said to find the grove I should follow the Sunflower Seeds."
|
||||
else:
|
||||
resultText += "The southern Jonald told me to plant some Evidence and I did."
|
||||
|
||||
if resultText != "":
|
||||
resultText += "\n"
|
||||
|
||||
if not SaveManager.get_save_value("jonaldJuiceSectionStarted", false):
|
||||
resultText += "I need to talk to the northern Jonald in the Forest"
|
||||
elif not SaveManager.get_save_value("jonaldJuiceSectionCompleted", false):
|
||||
resultText += "The northern Jonald told me to drink Ash Juice and report back."
|
||||
if SaveManager.get_value_from_section("drank", "Ash Juice", 0) > 0:
|
||||
resultText += " I drank Ash Juice."
|
||||
else:
|
||||
resultText += "The northern Jonald told me to drink Ash Juice and I did."
|
||||
|
||||
if resultText != "":
|
||||
resultText += "\n"
|
||||
|
||||
if SaveManager.get_save_value("jonaldGardeningSectionCompleted", false) and SaveManager.get_save_value("jonaldJuiceSectionCompleted", false):
|
||||
resultText += "I need to complete the central Jonald's task"
|
||||
|
||||
return resultText
|
||||
|
||||
func get_completion_message():
|
||||
return "Rewards
|
||||
100 Juice Drinking XP
|
||||
100 Gardening XP
|
||||
2 Quest Points"
|
||||
|
||||
func get_requirements_report():
|
||||
return "Requirements
|
||||
Level 20 Juice Drinking
|
||||
Level 20 Gardening"
|
||||
|
||||
func complete():
|
||||
LevelManager.add_XP("juiceDrinking", 1000)
|
||||
LevelManager.add_XP("gardening", 1000)
|
||||
|
||||
func is_completed():
|
||||
if SaveManager.get_save_value("jonaldTrialsQuestComplete", false):
|
||||
return true
|
||||
return false
|
||||
38
Quests/Quest.gd
Normal file
38
Quests/Quest.gd
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
extends RefCounted
|
||||
|
||||
class_name Quest
|
||||
|
||||
enum Scales {Humble, Moderate, Adventurous, Epic}
|
||||
|
||||
var questName:String
|
||||
var questScale:Scales
|
||||
|
||||
var questRequirements
|
||||
|
||||
var questPointReward = 1
|
||||
|
||||
func get_scale_name():
|
||||
if questScale == Scales.Humble:
|
||||
return "Humble"
|
||||
if questScale == Scales.Moderate:
|
||||
return "Moderate"
|
||||
if questScale == Scales.Adventurous:
|
||||
return "Adventurous"
|
||||
if questScale == Scales.Epic:
|
||||
return "Epic"
|
||||
|
||||
func get_progress_report():
|
||||
return "You are questing :)"
|
||||
|
||||
func get_requirements_report():
|
||||
return ""
|
||||
|
||||
func get_completion_message():
|
||||
return "QUEST COMPLETE!"
|
||||
|
||||
func complete():
|
||||
pass
|
||||
|
||||
func is_completed():
|
||||
return false
|
||||
|
||||
54
Quests/QuestManager.gd
Normal file
54
Quests/QuestManager.gd
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
extends Node
|
||||
|
||||
signal questCompleted
|
||||
|
||||
var quests = {}
|
||||
|
||||
var questCompletedPopupScene = preload("res://UI/MenuBar/Quests/QuestCompletedPopup.tscn")
|
||||
|
||||
func _ready():
|
||||
initialize_quests()
|
||||
|
||||
func complete_quest(questName:String):
|
||||
var currentQuest = get_quest_by_name(questName)
|
||||
var questCompletePopup = questCompletedPopupScene.instantiate()
|
||||
|
||||
currentQuest.complete()
|
||||
award_quest_points(currentQuest)
|
||||
|
||||
questCompletePopup.set_quest(currentQuest)
|
||||
add_child(questCompletePopup)
|
||||
questCompletePopup.popup_centered()
|
||||
get_tree().get_root().get_node("MainGame/QuestCompleteAudio").play()
|
||||
|
||||
questCompleted.emit()
|
||||
|
||||
func award_quest_points(quest):
|
||||
var currentQuestPoints = SaveManager.get_save_value("questPoints", 0)
|
||||
currentQuestPoints += quest.questPointReward
|
||||
SaveManager.set_save_value("questPoints", currentQuestPoints)
|
||||
|
||||
func is_completed(questName:String):
|
||||
var currentQuest = get_quest_by_name(questName)
|
||||
return currentQuest.is_completed()
|
||||
|
||||
func get_all_quests():
|
||||
return quests.values()
|
||||
|
||||
func get_quest_by_name(questName:String):
|
||||
return quests[questName]
|
||||
|
||||
func initialize_quests():
|
||||
var questPaths = [
|
||||
"res://Quests/Humble/SugarTime.gd",
|
||||
"res://Quests/Humble/PaxBalloon.gd",
|
||||
"res://Quests/Humble/BeesleyJuice.gd",
|
||||
"res://Quests/Humble/BeaverLove.gd",
|
||||
"res://Quests/Moderate/ConstellationOfBaskets.gd",
|
||||
"res://Quests/Moderate/TrialsOfJonald.gd",
|
||||
"res://Quests/Adventurous/LakeOfJuice.gd",
|
||||
"res://Quests/Adventurous/FillingJuiceLake.gd"]
|
||||
|
||||
for questPath in questPaths:
|
||||
var newQuest = load(questPath).new()
|
||||
quests[newQuest.questName] = newQuest
|
||||
Loading…
Add table
Add a link
Reference in a new issue