52 lines
983 B
GDScript
52 lines
983 B
GDScript
class_name Quest extends Object
|
|
|
|
|
|
enum Status{
|
|
OPEN,
|
|
TAKEN,
|
|
IN_PROGRESS,
|
|
COMPLETED
|
|
}
|
|
|
|
|
|
var name : String = "A Basic Quest"
|
|
var desc : String = "The default quest, with no special anything."
|
|
var difficulty : int = 1
|
|
var location : String
|
|
var steps : int = 1
|
|
var rewards : Dictionary
|
|
var step_outcomes : Array = [
|
|
{"pass":"I succeeded!", "fail":"I failed!"}
|
|
]
|
|
|
|
|
|
|
|
var progress : float = 0
|
|
var current_step : int = 0
|
|
var taken : bool = false
|
|
|
|
var questor : AdventurerData = null
|
|
signal status_changed(status : Status)
|
|
|
|
func _init() -> void:
|
|
print("TEST!")
|
|
|
|
func initiate(member : AdventurerData) -> void:
|
|
questor = member
|
|
taken = true
|
|
status_changed.emit(Status.TAKEN)
|
|
|
|
#TODO: Put in quest requirements
|
|
func is_eligible(member : AdventurerData) -> bool:
|
|
return !taken
|
|
|
|
func difficulty_name() -> String:
|
|
match(difficulty):
|
|
0: return "None"
|
|
1: return "Trivial"
|
|
2: return "Moderate"
|
|
3: return "Severe"
|
|
4: return "Extreme"
|
|
5: return "Legendary"
|
|
_: return "Unknown"
|