Quick-Tasks/Quick Tasks/Scripts/Tasks Interface.gd
2025-04-15 11:57:44 -07:00

84 lines
3.3 KiB
GDScript

extends Control
@export var GoodJobStarQuotes: PackedStringArray
@onready var CurrentTime = Time.get_date_dict_from_system()
var Experience: float = 0
var Level: int = 1
func _process(_delta):
if !get_node("LoopingAnim").is_playing():
get_node("LoopingAnim").play("Loop")
get_node("ExperienceBar").value = Experience
func _ready():
randomize()
get_node("SaveNode").LoadVars("Tasks", 0)
get_node("SaveNode").LoadVars("Daily Task", 1)
get_node("SaveNode").SaveVars("Daily Task", 1)
if get_node("SaveNode").SideVars["System Time"] == CurrentTime.day && get_node("SaveNode").SideVars["Current Tasks"].front() != "":
# Don't do anything, just load!
Load()
else:
# Put the new stuff in before loading
get_node("SaveNode").SideVars["System Time"] = CurrentTime.day
# Store the fun fun stuff
var TempArray = get_node("SaveNode").MainVars.values()
var PlacementArray: Array = ["", "", ""]
for i in range(0, 3):
var random1 = randi_range(0, TempArray.size() - 1)
var random2 = randi_range(0, TempArray[random1].size() - 1)
PlacementArray[i] = TempArray[random1][random2]
get_node("SaveNode").SideVars["Current Tasks"] = PlacementArray
# Store incomplete nums
get_node("SaveNode").SaveVars("Daily Task", 1)
Load()
func Load():
# Load the current tasks.
var file = get_node("SaveNode").SideVars["Current Tasks"]
get_node("Task1/RichTextLabel").text = file[0]
get_node("Task2/RichTextLabel").text = file[1]
get_node("Task3/RichTextLabel").text = file[2]
# Experience stuff
Level = get_node("SaveNode").SideVars["Level"]
Experience = get_node("SaveNode").SideVars["Experience"]
# Play animation to give it some cool factor
get_node("SpecificAnim1").play("Beginning")
func _on_COMPLETE_pressed(extra_arg_0):
# I don't want animation to break.
var TaskThing = "Task" + str(extra_arg_0 + 1) + "/RichTextLabel"
if !get_node("SpecificAnim1").is_playing() && !get_node("SpecificAnim2").is_playing() && get_node(TaskThing).text != "COMPLETE":
get_node(TaskThing).text = "COMPLETE"
# do animation related things
get_node("SpecificAnim1").play(str(extra_arg_0))
var quote = GoodJobStarQuotes[randi_range(0, GoodJobStarQuotes.size() - 1)]
get_node("GoodJobStar/Label").text = quote
get_node("SpecificAnim2").play("Completion")
# Now save that crap so I know I completed it.
get_node("SaveNode").SideVars["Current Tasks"][extra_arg_0] = "COMPLETE"
get_node("SaveNode").SaveVars("Daily Task", 1)
func EarnExperience():
var ExperiencedGained = randf_range(21, 144)
if randf_range(0, 10) > 9:
ExperiencedGained = ExperiencedGained * 3
get_node("SpecificAnim1").play("ExperienceGainedCritical")
get_node("ExperienceEarned").text = "CRITICAL!\nGained " + str(round(ExperiencedGained)) + " EXP"
else:
get_node("SpecificAnim1").play("ExperienceGained")
get_node("ExperienceEarned").text = "Gained " + str(round(ExperiencedGained)) + " EXP"
Experience = Experience + ExperiencedGained
while Experience >= 250:
Level = Level + 1
Experience = Experience - 250
get_node("LevelGained").text = "LEVEL INCREASE!\nYour level: " + str(Level)
get_node("SpecificAnim2").play("LevelIncrease")
# Save the experience that was earned
get_node("SaveNode").SideVars["Level"] = Level
get_node("SaveNode").SideVars["Experience"] = Experience
get_node("SaveNode").SaveVars("Daily Task", 1)