Files
jak-project/goal_src/jak1/engine/game/task/task-control.gc
T
2026-07-26 14:43:53 -04:00

5090 lines
247 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
(bundles "ENGINE.CGO" "GAME.CGO")
(require "engine/game/game-info.gc")
(require "engine/game/task/game-task-h.gc")
;; DECOMP BEGINS
(defun-debug task-status->string ((status task-status))
"Return status's task-status name, or *unknown* for an unrecognized value."
(enum->string task-status status))
(defmethod get-task ((this task-cstage))
"Return this stage's game task."
(-> this game-task))
(defmethod get-status ((this task-cstage))
"Return this stage's progress status."
(-> this status))
(defmethod closed? ((this task-cstage))
"Return whether this stage is currently closed."
(declare (inline))
(logtest? (-> this flags) (task-flags closed)))
(defmethod closed-by-default? ((this task-cstage))
"Return whether non-game resets leave this stage closed."
(declare (inline))
(logtest? (-> this flags) (task-flags closed-by-default)))
(defmethod task-available? ((this task-cstage) (control task-control))
"Return whether this open stage may become current. Permanently close it when saved progress
has reached its status or the task is complete; otherwise evaluate its condition against control."
(cond
((closed? this)
;; we're already closed.
#f)
((>= (the-as int (-> (get-entity-task-perm *game-info* (-> this game-task)) user-uint8 0)) (the-as int (-> this status)))
;; the permanent entity for this task has stored that we have progresssed past
;; our status. Remember that we are closed, and return #f.
(logior! (-> this flags) (task-flags closed))
#f)
((task-complete? *game-info* (-> this game-task))
;; the game-info thinks that we have completed this task already.
;; remember we are closed and return #f
(logior! (-> this flags) (task-flags closed))
#f)
(else
;; we aren't closed. Check the condition.
((-> this condition) control))))
(defmethod close-task! ((this task-cstage))
"Close this stage. When it has an associated entity, mark its persistent task status as
user-authored and advance that status monotonically to this stage."
(if (= (-> this game-task) (game-task none))
;; invalid task.
(return (the-as int #f)))
;; flag as closed
(logior! (-> this flags) (task-flags closed))
;; do we have an entity to update?
(when (logtest? (-> this flags) (task-flags has-entity))
;; look up the permanent storage for the entity associated with our task
(let ((task-perm (get-entity-task-perm *game-info* (-> this game-task))))
;; we set a bit to indicate that we are storing a non-default status
(logior! (-> task-perm status) (entity-perm-status user-set-from-cstage))
;; and store the actual status (only increment)
(if (< (-> task-perm user-uint8 0) (the-as uint (-> this status)))
(set! (-> task-perm user-int8 0) (the-as int (-> this status))))))
0)
(defmethod open-task! ((this task-cstage))
"Clear the closed flag."
(logclear! (-> this flags) (task-flags closed))
0)
;; a task-control containing no cstages
(define *null-task-control*
(new 'static 'task-control :current-stage -1 :stage (new 'static 'boxed-array :type task-cstage)))
(defmethod current-task ((this task-control))
"Return the current stage's task, or game-task.none when this is the null control or no stage
is current."
(cond
((= this *null-task-control*) (format 0 "ERROR<GMJ>: current-task received *null-task-control*~%") (game-task none))
((= (-> this current-stage) -1)
;; state unknown
(game-task none))
(else
;; look up the current cstage's task
(-> this stage (-> this current-stage) game-task))))
(defmethod current-status ((this task-control))
"Return the current stage's status, or task-status.invalid when this is the null control or no
stage is current."
(cond
((= this *null-task-control*)
(format 0 "ERROR<GMJ>: current-status received self of *null-task-control*~%~%")
(task-status invalid))
((= (-> this current-stage) -1) (task-status invalid))
(else (-> this stage (-> this current-stage) status))))
(defmethod close-current! ((this task-control))
"Close the current stage when one exists, then select and return the first available task."
(cond
((= this *null-task-control*) (format 0 "ERROR<GMJ>: close-current! received self of *null-task-control*~%~%"))
((= (-> this current-stage) -1)
;; no current stage, do nothing
)
(else (close-task! (-> this stage (-> this current-stage)))))
;; attempt to update the current task
(first-any this #t))
(defmethod close-status! ((this task-control) (status task-status))
"Close the stage with status for the current task, then select the first available task.
Report an error and return game-task.none when no matching stage exists."
(let ((task (current-task this)))
;; iterate over all cstages
(dotimes (i (-> this stage length))
(when (and (= task (-> this stage i game-task)) (= status (-> this stage i status)))
;; found it! close and update current stage
(close-task! (-> this stage i))
(return (first-any this #t))))
;; nope, complain.
(format 0
"ERROR<GMJ>: close-status! received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string task)
(task-status->string status)))
(game-task none))
(defmethod first-any ((this task-control) (warn-on-null? symbol))
"Select the first available stage in array order and return its task. Clear current-stage and
return game-task.none when none is available; warn for the null control when requested."
;; check for null
(when (= this *null-task-control*)
(if warn-on-null? (format 0 "ERROR<GMJ>: first-any received self of *null-task-control*~%~%"))
(return (game-task none)))
;; iterate through all tasks
(dotimes (i (-> this stage length))
(when (task-available? (-> this stage i) this)
;; found an available task, set it.
(set! (-> this current-stage) i)
(return (-> this stage i game-task))))
;; none available.
(set! (-> this current-stage) -1)
(game-task none))
(defmethod reset! ((this task-control) (reset-mode symbol) (warn-on-null? symbol))
"Reset stage closure. A game reset opens every stage; other resets open only stages that are
not closed by default. Reapply persistent closure for stages that remain closed."
(when (= this *null-task-control*)
(if warn-on-null? (format 0 "ERROR<GMJ>: reset! received self of *null-task-control*~%~%"))
(return 0))
(dotimes (i (-> this stage length))
;; do we open the task?
(if (or (= reset-mode 'game) ;; open every task on game reset
(not (closed-by-default? (-> this stage i))))
(open-task! (-> this stage i)))
;; call close-task! to send closed stuff to entities
(if (closed? (-> this stage i)) (close-task! (-> this stage i))))
(the-as int #f))
(defmethod closed? ((this task-control) (task game-task) (status task-status))
"Return whether the matching task and status stage is closed. Report an error and return true
when no matching stage exists."
(when (= this *null-task-control*)
(format 0 "ERROR<GMJ>: closed? received self of *null-task-control*~%~%")
(return #f))
;; iterate all and check for match
(dotimes (i (-> this stage length))
(when (and (= task (-> this stage i game-task)) (= status (-> this stage i status)))
(return (closed? (-> this stage i)))))
(format 0
"ERROR<GMJ>: closed? received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string task)
(task-status->string status))
#t)
(defmethod exists? ((this task-control) (task game-task) (status task-status))
"Return whether a stage with the given task and status exists."
(when (= this *null-task-control*)
(format 0 "ERROR<GMJ>: exists? received self of *null-task-control*~%~%")
(return #f))
(dotimes (i (-> this stage length))
(if (and (= task (-> this stage i game-task)) (= status (-> this stage i status))) (return #t)))
#f)
(defmethod get-reminder ((this task-control) (reminder-index int))
"Return reminder byte index from the persistent task record associated with the first stage."
(when (= this *null-task-control*)
(format 0 "ERROR<GMJ>: get-reminder received self of *null-task-control*~%~%")
(return 0))
(let ((task-perm (get-entity-task-perm *game-info* (-> this stage 0 game-task))))
(the-as int (-> task-perm user-uint8 (+ reminder-index 1)))))
(defmethod save-reminder ((this task-control) (value int) (reminder-index int))
"Store value in reminder byte index of the first stage's persistent task record and mark the
record as user-modified."
(when (= this *null-task-control*)
(format 0 "ERROR<GMJ>: save-reminder received self of *null-task-control*~%~%")
(return 0))
(let ((task-perm (get-entity-task-perm *game-info* (-> this stage 0 game-task))))
;; remember that we have a change.
(logior! (-> task-perm status) (entity-perm-status user-set-from-cstage))
(set! (-> task-perm user-int8 (+ reminder-index 1)) value))
0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Task Control Definitions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Each control is an ordered dialogue/progression program for one task-giving character. A task
;; normally appears several times with successively later task-status values; closing one stage
;; advances persistent progress and exposes a later stage. first-any selects the first open stage
;; whose condition succeeds, so the order below is also the character's task priority.
;;
;; Conditions are process-taskable behaviors: they run in the current character's context and use
;; the control argument to inspect sibling stages and reminder counters. They combine permanent task
;; completion, earlier conversations, collectible totals, level progress, and other character
;; controls to decide which conversation is available without duplicating that policy in the NPC
;; state files.
;; tasks for assistant (note: keira)
(define *assistant-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-eggtop)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-eggtop)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task jungle-eggtop) (task-status need-reminder))
(and (closed? control (game-task jungle-eggtop) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task misty-bike)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task jungle-eggtop) (task-status need-reminder))
(and (closed? control (game-task jungle-eggtop) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task jungle-eggtop)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike)
:status (task-status need-reminder-a)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status unknown)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(task-closed? (game-task village4-button) (task-status need-reward-speech))))
(new 'static
'task-cstage
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-eggtop)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *assistant-village2-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village2-levitator)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-levitator)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-levitator)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-levitator)
:status (task-status need-reminder-a)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-levitator)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) 45)))
(new 'static
'task-cstage
:game-task (game-task sunken-room)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-room)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-flutflut)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(and (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? control (game-task sunken-room) (task-status need-reminder))
(and (closed? control (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3)))))))
(new 'static
'task-cstage
:game-task (game-task swamp-flutflut)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(and (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? control (game-task sunken-room) (task-status need-reminder))
(and (closed? control (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3)))))))
(new 'static
'task-cstage
:game-task (game-task rolling-robbers)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(if (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? control (game-task swamp-flutflut) (task-status need-reminder))
(and (closed? control (game-task swamp-flutflut) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))
(or (closed? control (game-task sunken-room) (task-status need-reminder))
(and (closed? control (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3)))))))
(new 'static
'task-cstage
:game-task (game-task rolling-robbers)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(if (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? control (game-task swamp-flutflut) (task-status need-reminder))
(and (closed? control (game-task swamp-flutflut) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))
(or (closed? control (game-task sunken-room) (task-status need-reminder))
(and (closed? control (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3)))))))
(new 'static
'task-cstage
:game-task (game-task sunken-room)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-room)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-flutflut)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
(task-closed? (game-task beach-flutflut) (task-status need-reminder))))
(new 'static
'task-cstage
:game-task (game-task swamp-flutflut)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(task-closed? (game-task beach-flutflut) (task-status need-reminder))))
(new 'static
'task-cstage
:game-task (game-task rolling-robbers)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-robbers)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-room)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-robbers)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-flutflut)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-levitator)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *gambler-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-race)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-race)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-gambler-money)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-gambler-money)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-race)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-race) (task-status need-reward-speech))))
(new 'static
'task-cstage
:game-task (game-task village2-gambler-money)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task village2-gambler-money) (task-status need-reward-speech))))
(new 'static
'task-cstage
:game-task (game-task rolling-race)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-race) (task-status need-reminder))))
(new 'static
'task-cstage
:game-task (game-task village2-gambler-money)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task rolling-race)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-race) (task-status need-introduction))))
(new 'static
'task-cstage
:game-task (game-task village2-gambler-money)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-race) (task-status need-introduction)))))))
(define *geologist-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-moles)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-moles)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-geologist-money)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-geologist-money)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-moles)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-moles) (task-status need-reward-speech))))
(new 'static
'task-cstage
:game-task (game-task village2-geologist-money)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task village2-geologist-money) (task-status need-reward-speech))))
(new 'static
'task-cstage
:game-task (game-task rolling-moles)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-moles) (task-status need-reminder))))
(new 'static
'task-cstage
:game-task (game-task village2-geologist-money)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task rolling-moles)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-moles) (task-status need-introduction))))
(new 'static
'task-cstage
:game-task (game-task village2-geologist-money)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task rolling-moles) (task-status need-introduction)))))))
(define *mayor-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-lurkerm)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-lurkerm)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-mayor-money)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-mayor-money)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-lurkerm)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task jungle-lurkerm) (task-status need-reward-speech))))
(new 'static
'task-cstage
:game-task (game-task village1-mayor-money)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task village1-mayor-money) (task-status need-reward-speech))))
(new 'static
'task-cstage
:game-task (game-task jungle-lurkerm)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task jungle-lurkerm) (task-status need-reminder))))
(new 'static
'task-cstage
:game-task (game-task village1-mayor-money)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task jungle-lurkerm)
:status (task-status need-reminder-a)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task jungle-lurkerm) (task-status need-introduction))))
(new 'static
'task-cstage
:game-task (game-task jungle-lurkerm)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task jungle-lurkerm) (task-status need-introduction))))
(new 'static
'task-cstage
:game-task (game-task village1-mayor-money)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
(closed? control (game-task jungle-lurkerm) (task-status need-introduction)))))))
(define *sage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task intro)
:status (task-status need-introduction)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task intro)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task intro)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-ecorocks)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-ecorocks)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-cannon)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task beach-ecorocks) (task-status need-reminder))
(and (closed? control (game-task beach-ecorocks) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task misty-cannon)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task beach-ecorocks) (task-status need-reminder))
(and (closed? control (game-task beach-ecorocks) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task beach-ecorocks)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-cannon)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-cannon)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status unknown)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(task-closed? (game-task village4-button) (task-status need-reward-speech))))
(new 'static
'task-cstage
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-ecorocks)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-cannon)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *sage-bluehut-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-plants)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-plants)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-arm)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task rolling-plants) (task-status need-reminder))
(and (closed? control (game-task rolling-plants) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task swamp-arm)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task rolling-plants) (task-status need-reminder))
(and (closed? control (game-task rolling-plants) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task rolling-plants)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-arm)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-arm)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-plants)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-arm)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *oracle-village1-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money2)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money2)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money1)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-oracle-inc))))))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money1)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money2)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-oracle-inc))))))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money2)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-oracle-money2)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *oracle-village2-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money2)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money2)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money1)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-oracle-inc))))))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money1)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money2)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-oracle-inc))))))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money2)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-oracle-money2)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *oracle-village3-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money2)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money2)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money1)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-oracle-inc))))))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money1)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money2)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-oracle-inc))))))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money2)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-oracle-money2)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *miners-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task cave-gnawers)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task village3-miner-money4) (task-status need-reminder))
(and (closed? control (game-task village3-miner-money4) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task cave-gnawers)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task village3-miner-money4) (task-status need-reminder))
(and (closed? control (game-task village3-miner-money4) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task snow-eggtop)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task cave-gnawers) (task-status need-reminder))
(and (closed? control (game-task cave-gnawers) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task snow-eggtop)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task cave-gnawers) (task-status need-reminder))
(and (closed? control (game-task cave-gnawers) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-gnawers)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-gnawers)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-eggtop)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-eggtop)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-gnawers)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-eggtop)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *sage-villagec-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village3-button)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-button)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-button)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-dark-crystals)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-dark-crystals)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ram)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task cave-dark-crystals) (task-status need-reminder))
(and (closed? control (game-task cave-dark-crystals) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task snow-ram)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(or (closed? control (game-task cave-dark-crystals) (task-status need-reminder))
(and (closed? control (game-task cave-dark-crystals) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) (+ (get-reminder control 1) 3))))))
(new 'static
'task-cstage
:game-task (game-task cave-dark-crystals)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ram)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ram)
:status (task-status need-reminder-a)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ram)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-dark-crystals)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ram)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *citb-greensage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task citadel-sage-green)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-sage-green)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *citb-bluesage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task citadel-sage-blue)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-sage-blue)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *citb-redsage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task citadel-sage-red)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-sage-red)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *citb-yellowsage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task citadel-sage-yellow)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-sage-yellow)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))
(define *task-controls*
(the-as (array task-control)
(new 'static
'boxed-array
:type
basic
'*null-task-control*
'*null-task-control*
'*assistant-tasks*
'*mayor-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-tower)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-tower)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-tower)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-tower)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-fishgame)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-fishgame)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-fishgame)
:status (task-status need-reminder-a)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-fishgame)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-fishgame)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-fishgame)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-plant)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-plant)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-plant)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-plant)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-canyon-end)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-canyon-end)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-canyon-end)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-canyon-end)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task jungle-temple-door)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-temple-door)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-temple-door)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task jungle-temple-door)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village1-yakow)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-yakow)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-yakow)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-yakow)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-yakow)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*mayor-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village1-uncle-money)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-uncle-money)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-uncle-money)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task village1-uncle-money)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-uncle-money)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*oracle-village1-tasks*
'*oracle-village1-tasks*
'*sage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-pelican)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-pelican)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-pelican)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-pelican)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-flutflut)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-flutflut)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-flutflut)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-flutflut)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-flutflut)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-seagull)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-seagull)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-seagull)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-seagull)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-cannon)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-cannon)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-cannon)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-cannon)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-gimmie)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-gimmie)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-gimmie)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-gimmie)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task beach-sentinel)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-sentinel)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-sentinel)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task beach-sentinel)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task misty-muse)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-muse)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-muse)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-muse)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-muse)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task misty-boat)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-boat)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-boat)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-boat)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task misty-warehouse)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-warehouse)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-warehouse)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-warehouse)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*sage-tasks*
'*assistant-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task misty-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task misty-bike-jump)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike-jump)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike-jump)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-bike-jump)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task misty-eco-challenge)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-eco-challenge)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-eco-challenge)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task misty-eco-challenge)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*gambler-tasks*
'*geologist-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village2-warrior-money)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(and (not (task-closed? (game-task ogre-boss) (task-status need-reminder)))
(not (task-closed? (game-task village2-levitator) (task-status need-reward-speech))))))
(new 'static
'task-cstage
:game-task (game-task village2-warrior-money)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
(and (not (task-closed? (game-task ogre-boss) (task-status need-reminder)))
(not (task-closed? (game-task village2-levitator) (task-status need-reward-speech))))))
(new 'static
'task-cstage
:game-task (game-task village2-warrior-money)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(the-as symbol
(and *target*
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))))))
(new 'static
'task-cstage
:game-task (game-task village2-warrior-money)
:status (task-status need-reminder)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-warrior-money)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*oracle-village2-tasks*
'*oracle-village2-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-billy)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-billy)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-billy)
:status (task-status need-reminder-a)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-billy)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-billy)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-billy)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*assistant-village2-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-battle)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-battle)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-battle)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-battle)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-tether-1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-1)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-tether-2)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-2)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-2)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-2)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-tether-3)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-3)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-3)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-3)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-tether-4)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-4)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-4)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-tether-4)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task swamp-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task swamp-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-platforms)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-platforms)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-platforms)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-platforms)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-pipe)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-pipe)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-pipe)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-pipe)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-slide)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-slide)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-slide)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-slide)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*assistant-village2-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-sharks)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-sharks)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-sharks)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-sharks)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-top-of-helix)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-top-of-helix)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-top-of-helix)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-top-of-helix)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task sunken-spinning-room)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-spinning-room)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-spinning-room)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task sunken-spinning-room)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*gambler-tasks*
'*assistant-village2-tasks*
'*geologist-tasks*
'*sage-bluehut-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-lake)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-lake)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-lake)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-lake)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-1)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-2)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-2)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-2)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task rolling-ring-chase-2)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*miners-tasks*
'*sage-villagec-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task snow-fort)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-fort)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-fort)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-fort)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task snow-ball)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ball)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ball)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-ball)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task snow-bunnies)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-bunnies)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-bunnies)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-bunnies)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task snow-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task snow-bumpers)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-bumpers)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-bumpers)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-bumpers)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task snow-cage)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-cage)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-cage)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task snow-cage)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task firecanyon-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task firecanyon-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task firecanyon-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task firecanyon-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task firecanyon-end)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task firecanyon-end)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task firecanyon-end)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task firecanyon-end)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*citb-greensage-tasks*
'*citb-bluesage-tasks*
'*citb-redsage-tasks*
'*citb-yellowsage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village3-extra1)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-extra1)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-extra1)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-extra1)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village1-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village1-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village2-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village2-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village3-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village3-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*miners-tasks*
'*sage-villagec-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task cave-dark-climb)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-dark-climb)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-dark-climb)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-dark-climb)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task cave-robot-climb)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-robot-climb)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-robot-climb)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-robot-climb)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task cave-swing-poles)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-swing-poles)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-swing-poles)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-swing-poles)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task cave-spider-tunnel)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-spider-tunnel)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-spider-tunnel)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-spider-tunnel)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task cave-platforms)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-platforms)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-platforms)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-platforms)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task cave-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task cave-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task ogre-boss)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-boss)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-boss)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-boss)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task ogre-end)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-end)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-end)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-end)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task ogre-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task lavatube-end)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-end)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-end)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-end)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task lavatube-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task citadel-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task citadel-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task training-gimmie)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-gimmie)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-gimmie)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-gimmie)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task training-door)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-door)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-door)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-door)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task training-climb)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-climb)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-climb)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-climb)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task training-buzzer)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-buzzer)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-buzzer)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task training-buzzer)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*miners-tasks*
'*miners-tasks*
'*miners-tasks*
'*miners-tasks*
'*oracle-village3-tasks*
'*oracle-village3-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task firecanyon-assistant)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) 20)))
(new 'static
'task-cstage
:game-task (game-task firecanyon-assistant)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*assistant-village2-tasks*
'*sage-bluehut-tasks*
'*sage-villagec-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task red-eggtop)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task red-eggtop)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task red-eggtop)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task red-eggtop)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task lavatube-balls)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-balls)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-balls)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task lavatube-balls)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task lavatube-start)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell)))) 72)))
(new 'static
'task-cstage
:game-task (game-task lavatube-start)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
'*sage-tasks*
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task ogre-secret)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-secret)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-secret)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task ogre-secret)
:status (task-status need-resolution)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task village4-button)
:status (task-status unknown)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village4-button)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task village4-button)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task finalboss-movies)
:status (task-status unknown)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task finalboss-movies)
:status (task-status need-introduction)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task finalboss-movies)
:status (task-status need-reminder-a)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task finalboss-movies)
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task finalboss-movies)
:status (task-status need-reward-speech)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task plunger-lurker-hit)
:status (task-status unknown)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task plunger-lurker-hit)
:status (task-status need-hint)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:game-task (game-task leaving-misty)
:status (task-status need-introduction)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))
(new 'static
'task-cstage
:game-task (game-task leaving-misty)
:status (task-status need-reminder)
:flags (task-flags has-entity closed-by-default)
:condition
(lambda :behavior process-taskable ((control task-control))
#t))))
(new 'static
'task-control
:current-stage -1
:stage
(new 'static
'boxed-array
:type
task-cstage
(new 'static
'task-cstage
:status (task-status unknown)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
(task-closed? (game-task village4-button) (task-status need-reward-speech))))
(new 'static
'task-cstage
:status (task-status need-reminder)
:flags (task-flags has-entity)
:condition
(lambda :behavior process-taskable ((control task-control))
#t)))))))
(defun task-control-reset ((reset-mode symbol))
"Reset every task control with reset-mode, then select each control's first available stage."
(let ((controls *task-controls*))
(countdown (i (-> controls length))
(reset! (-> controls i) reset-mode #f)
(first-any (-> controls i) #f)))
0
(none))
(defun get-task-control ((task game-task))
"Return the control selected by task in *task-controls*. Report an error and return the null
control for values outside the shipped task range."
(cond
((or (>= (the-as uint 1) (the-as uint task)) (>= (the-as uint task) (the-as uint 116)))
;; invalid game task
(format 0 "ERROR<GMJ>: get-task-control received invalid task ~D/~S~%" task (game-task->string task))
*null-task-control*)
(else
;; otherwise look up in table
(-> *task-controls* task))))
(defun get-task-status ((task game-task))
"Return the first available stage status matching task. Refresh the control's current stage
before returning; return task-status.invalid when no matching available stage exists."
(let ((control (get-task-control task)))
(when control
(dotimes (i (-> control stage length))
(when (and (= task (-> control stage i game-task)) (task-available? (-> control stage i) control))
(first-any control #t)
(return (the-as task-status (-> control stage i status))))))
(first-any control #t))
(task-status invalid))
(defun close-specific-task! ((task game-task) (status task-status))
"Close the stage matching task and status, then select and return the first available task in
that control. Report an error and return game-task.none when no matching stage exists."
(let ((control (get-task-control task)))
(when control
(dotimes (i (-> control stage length))
(when (and (= task (-> control stage i game-task)) (= status (-> control stage i status)))
(close-task! (-> control stage i))
(return (first-any control #t))))
(format 0
"ERROR<GMJ>: close-specific! received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string task)
(task-status->string status))))
(game-task none))
(defun open-specific-task! ((task game-task) (status task-status))
"Open the stage matching task and status, then select and return the first available task in that
control. Report an error and return game-task.none when no matching stage exists."
(let ((control (get-task-control task)))
(when control
(dotimes (i (-> control stage length))
(when (and (= task (-> control stage i game-task)) (= status (-> control stage i status)))
(open-task! (-> control stage i))
(return (first-any control #t))))
(format 0
"ERROR<GMJ>: open-specific! received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string task)
(task-status->string status))))
(game-task none))
(defun task-closed? ((task game-task) (status task-status))
"Return whether the stage matching task and status is closed. The underlying control method
reports an error and returns true when that stage does not exist."
(closed? (get-task-control task) task status))
(defun task-exists? ((task game-task) (status task-status))
"Return whether a stage matching task and status exists in task's control."
(exists? (get-task-control task) task status))
(defun task-known? ((task game-task))
"Return true when task's current status is introduction, either reminder, resolution, reward
speech, or invalid; return false for need-hint and unknown."
(case (get-task-status task)
(((task-status need-reward-speech)
(task-status need-introduction)
(task-status need-reminder)
(task-status need-reminder-a)
(task-status need-resolution)
(task-status invalid))
#t)
(else #f)))
(defun sages-kidnapped? ()
"Return whether the village4-button reward-speech stage is closed."
(task-closed? (game-task village4-button) (task-status need-reward-speech)))
;; replace symbols in task-controls with their value.
(let ((controls *task-controls*))
(countdown (i (-> controls length))
(when (and (-> controls i) (= (-> controls i type) symbol))
;; found a symbol
(let ((value (-> (the-as symbol (-> controls i)) value)))
(cond
((and (nonzero? value) (type-type? (rtype-of value) task-control))
;; symbol holds a task-control, replace it
(set! (-> controls i) (the-as task-control value)))
(else
;; invalid symbol
(format 0 "ERROR<GMJ>: value of symbol ~A in task-controls is not a task-control~%")
(set! (-> controls i) (the-as task-control '*null-task-control*))))))))
(task-control-reset 'game)