Files
jak-project/goal_src/engine/game/task/task-control.gc
T
ManDude 7ce58f709f process-spawn + pretty printer improvements (#1428)
* some jp support to fix some errors in the original game

* music fade toggle

* recognize `process-new` macros!!

* strip casts in this macro

* rename macro

* fix cast typecheck

* update source 1

* detect kernel stack case

* less boilerplate

* `manipy-spawn` special case

* pretty printer improvements

* revert dumb thing from earlier

* use shell detection on `send-event`

* fix some events

* remove unused argument

* detect `static-attack-info` and add `CondNoElse` to shell detect

* better `attack-info` detect

* support `process-spawn` in multi-lets

* detect `rand-float-gen` pt 1

* detect as return value

* detect in `countdown` and  `dotimes`

* oops this wasnt working

* fancier `send-event`s

* clang

* update source!!

* fix tests

* fine jeez

* uh okay

* fix some accidental regressions

* fix more regressions

* regression fixes

* fix big bug...

* extra safety!
2022-06-10 02:18:08 +01:00

4221 lines
172 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: task-control.gc
;; name in dgo: task-control
;; dgos: GAME, ENGINE
;; DECOMP BEGINS
(defun-debug task-status->string ((arg0 task-status))
(enum->string task-status arg0)
)
(defmethod get-task task-cstage ((obj task-cstage))
"Get the game task for this cstage"
(-> obj game-task)
)
(defmethod get-status task-cstage ((obj task-cstage))
"Get the status for this cstage"
(-> obj status)
)
(defmethod closed? task-cstage ((obj task-cstage))
"Is the closed flag set?"
(declare (inline))
(logtest? (-> obj flags) (task-flags closed))
)
(defmethod closed-by-default? task-cstage ((obj task-cstage))
"Is the closed-by-default flag set?"
(declare (inline))
(logtest? (-> obj flags) (task-flags closed-by-default))
)
(defmethod task-available? task-cstage ((obj task-cstage) (arg0 task-control))
"Is this task available to be the current task?"
(cond
((closed? obj)
;; we're already closed.
#f
)
((>= (the-as int (-> (get-entity-task-perm *game-info* (-> obj game-task)) user-uint8 0))
(the-as int (-> obj 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! (-> obj flags) (task-flags closed))
#f
)
((task-complete? *game-info* (-> obj game-task))
;; the game-info thinks that we have completed this task already.
;; remember we are closed and return #f
(logior! (-> obj flags) (task-flags closed))
#f
)
(else
;; we aren't closed. Check the condition.
((-> obj condition) arg0)
)
)
)
(defmethod close-task! task-cstage ((obj task-cstage))
"Close this task!"
(if (= (-> obj game-task) (game-task none))
;; invalid task.
(return (the-as int #f))
)
;; flag as closed
(logior! (-> obj flags) (task-flags closed))
;; do we have an entity to update?
(when (logtest? (-> obj flags) (task-flags has-entity))
;; look up the permanent storage for the entity associated with our task
(let ((v1-9 (get-entity-task-perm *game-info* (-> obj game-task))))
;; we set a bit to indicate that we are storing a non-default status
(logior! (-> v1-9 status) (entity-perm-status user-set-from-cstage))
;; and store the actual status (only increment)
(if (< (-> v1-9 user-uint8 0) (the-as uint (-> obj status)))
(set! (-> v1-9 user-int8 0) (the-as int (-> obj status)))
)
)
)
0
)
(defmethod open-task! task-cstage ((obj task-cstage))
"Clear the closed flag."
(logclear! (-> obj 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 :length 0 :allocated-length 0)
)
)
(defmethod current-task task-control ((obj task-control))
"Get the current task that is being played. If unknown returns the none task"
(cond
((= obj *null-task-control*)
(format 0 "ERROR<GMJ>: current-task received *null-task-control*~%")
(game-task none)
)
((= (-> obj current-stage) -1)
;; state unknown
(game-task none)
)
(else
;; look up the current cstage's task
(-> obj stage (-> obj current-stage) game-task)
)
)
)
(defmethod current-status task-control ((obj task-control))
"Get the status of the cstage that is being played.
Will return invalid if not possible"
(cond
((= obj *null-task-control*)
(format 0 "ERROR<GMJ>: current-status received self of *null-task-control*~%~%")
(task-status invalid)
)
((= (-> obj current-stage) -1)
(task-status invalid)
)
(else
(-> obj stage (-> obj current-stage) status)
)
)
)
(defmethod close-current! task-control ((obj task-control))
(cond
((= obj *null-task-control*)
(format 0 "ERROR<GMJ>: close-current! received self of *null-task-control*~%~%")
)
((= (-> obj current-stage) -1)
;; no current stage, do nothing
)
(else
(close-task! (-> obj stage (-> obj current-stage)))
)
)
;; attempt to update the current task
(first-any obj #t)
)
(defmethod close-status! task-control ((obj task-control) (arg0 task-status))
"Close the cstage that:
- is associated with the task for the current cstage
- is for the given status
"
(let ((a0-2 (current-task obj)))
;; iterate over all cstages
(dotimes (v1-1 (-> obj stage length))
(when (and (= a0-2 (-> obj stage v1-1 game-task)) (= arg0 (-> obj stage v1-1 status)))
;; found it! close and update current stage
(close-task! (-> obj stage v1-1))
(return (first-any obj #t))
)
)
;; nope, complain.
(format 0 "ERROR<GMJ>: close-status! received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string a0-2)
(task-status->string arg0)
)
)
(game-task none)
)
(defmethod first-any task-control ((obj task-control) (arg0 symbol))
"Iterate through tasks, finding an unclosed one to mark as current
If arg0 is #t, warn on receiving null-task-control"
;; check for null
(when (= obj *null-task-control*)
(if arg0
(format 0 "ERROR<GMJ>: first-any received self of *null-task-control*~%~%")
)
(return (game-task none))
)
;; iterate through all tasks
(dotimes (s5-0 (-> obj stage length))
(when (task-available? (-> obj stage s5-0) obj)
;; found an available task, set it.
(set! (-> obj current-stage) s5-0)
(return (-> obj stage s5-0 game-task))
)
)
;; none available.
(set! (-> obj current-stage) -1)
(game-task none)
)
(defmethod reset! task-control ((obj task-control) (reset-mode symbol) (arg1 symbol))
"Reset a task control. arg1 to warn on null, reset-mode 'game for a game reset"
(when (= obj *null-task-control*)
(if arg1
(format 0 "ERROR<GMJ>: reset! received self of *null-task-control*~%~%")
)
(return 0)
)
(dotimes (s4-0 (-> obj stage length))
;; do we open the task?
(if (or (= reset-mode 'game) ;; open every task on game reset
(not (closed-by-default? (-> obj stage s4-0))) ;; todo this flag?
)
(open-task! (-> obj stage s4-0))
)
;; call close-task! to send closed stuff to entities
(if (closed? (-> obj stage s4-0))
(close-task! (-> obj stage s4-0))
)
)
(the-as int #f)
)
(defmethod closed? task-control ((obj task-control) (arg0 game-task) (arg1 task-status))
"Is the given task/status cstage closed?"
(when (= obj *null-task-control*)
(format 0 "ERROR<GMJ>: closed? received self of *null-task-control*~%~%")
(return #f)
)
;; iterate all and check for match
(dotimes (v1-3 (-> obj stage length))
(when (and (= arg0 (-> obj stage v1-3 game-task))
(= arg1 (-> obj stage v1-3 status))
)
(return (closed? (-> obj stage v1-3)))
)
)
(format 0 "ERROR<GMJ>: closed? received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string arg0)
(task-status->string arg1)
)
#t
)
(defmethod exists? task-control ((obj task-control) (arg0 game-task) (arg1 task-status))
"Is there a cstage for the given task and status?"
(when (= obj *null-task-control*)
(format 0 "ERROR<GMJ>: exists? received self of *null-task-control*~%~%")
(return #f)
)
(dotimes (v1-3 (-> obj stage length))
(if (and (= arg0 (-> obj stage v1-3 game-task)) (= arg1 (-> obj stage v1-3 status)))
(return #t)
)
)
#f
)
(defmethod get-reminder task-control ((obj task-control) (arg0 int))
"Get the arg0th reminder. "
(when (= obj *null-task-control*)
(format 0 "ERROR<GMJ>: get-reminder received self of *null-task-control*~%~%")
(return 0)
)
(let ((v1-4 (get-entity-task-perm *game-info* (-> obj stage 0 game-task))))
(the-as int (-> v1-4 user-uint8 (+ arg0 1)))
)
)
(defmethod save-reminder task-control ((obj task-control) (arg0 int) (arg1 int))
"Set the arg1th reminder to arg0"
(when (= obj *null-task-control*)
(format 0 "ERROR<GMJ>: save-reminder received self of *null-task-control*~%~%")
(return 0)
)
(let ((v1-4 (get-entity-task-perm *game-info* (-> obj stage 0 game-task))))
;; remember that we have a change.
(logior! (-> v1-4 status) (entity-perm-status user-set-from-cstage))
(set! (-> v1-4 user-int8 (+ arg1 1)) arg0)
)
0
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Task Control Definitions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 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 ((arg0 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 ((arg0 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
((arg0 task-control))
(or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder))
(and (closed? arg0 (game-task jungle-eggtop) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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
((arg0 task-control))
(or (closed? arg0 (game-task jungle-eggtop) (task-status need-reminder))
(and (closed? arg0 (game-task jungle-eggtop) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task misty-bike)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status unknown)
:flags (task-flags has-entity)
:condition (lambda :behavior process-taskable
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(and (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? arg0 (game-task sunken-room) (task-status need-reminder))
(and (closed? arg0 (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(and (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? arg0 (game-task sunken-room) (task-status need-reminder))
(and (closed? arg0 (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(if (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? arg0 (game-task swamp-flutflut) (task-status need-reminder))
(and (closed? arg0 (game-task swamp-flutflut) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 1) 3)
)
)
)
(or (closed? arg0 (game-task sunken-room) (task-status need-reminder))
(and (closed? arg0 (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(if (task-closed? (game-task beach-flutflut) (task-status need-reminder))
(or (closed? arg0 (game-task swamp-flutflut) (task-status need-reminder))
(and (closed? arg0 (game-task swamp-flutflut) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 1) 3)
)
)
)
(or (closed? arg0 (game-task sunken-room) (task-status need-reminder))
(and (closed? arg0 (game-task sunken-room) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 1) 3)
)
)
)
)
)
)
(new 'static 'task-cstage
:game-task (game-task sunken-room)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task swamp-flutflut)
:status (task-status unknown)
:condition (lambda :behavior process-taskable
((arg0 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
((arg0 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 ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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
((arg0 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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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
((arg0 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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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
((arg0 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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 task-control) (arg1 task-control))
(closed? arg0 (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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task beach-ecorocks) (task-status need-reminder))
(and (closed? arg0 (game-task beach-ecorocks) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task beach-ecorocks) (task-status need-reminder))
(and (closed? arg0 (game-task beach-ecorocks) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task misty-cannon)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status unknown)
:flags (task-flags has-entity)
:condition (lambda :behavior process-taskable
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task rolling-plants) (task-status need-reminder))
(and (closed? arg0 (game-task rolling-plants) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task rolling-plants) (task-status need-reminder))
(and (closed? arg0 (game-task rolling-plants) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task swamp-arm)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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
((arg0 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
((arg0 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
((arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task village3-miner-money4) (task-status need-reminder))
(and (closed? arg0 (game-task village3-miner-money4) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task village3-miner-money4) (task-status need-reminder))
(and (closed? arg0 (game-task village3-miner-money4) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task cave-gnawers) (task-status need-reminder))
(and (closed? arg0 (game-task cave-gnawers) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task cave-gnawers) (task-status need-reminder))
(and (closed? arg0 (game-task cave-gnawers) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 1) 3)
)
)
)
)
)
(new 'static 'task-cstage
:game-task (game-task village3-miner-money1)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task village3-miner-money2)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task village3-miner-money3)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task village3-miner-money4)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task cave-gnawers)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task snow-eggtop)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task cave-dark-crystals) (task-status need-reminder))
(and (closed? arg0 (game-task cave-dark-crystals) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control) (arg1 task-control))
(or (closed? arg0 (game-task cave-dark-crystals) (task-status need-reminder))
(and (closed? arg0 (game-task cave-dark-crystals) (task-status need-introduction))
(>= (the int (the float (send-event *target* 'query 'pickup (pickup-type fuel-cell))))
(+ (get-reminder arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:game-task (game-task snow-ram)
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status unknown)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 task-control)) #t)
)
(new 'static 'task-cstage
:status (task-status need-reminder)
:condition (lambda :behavior process-taskable ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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
((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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 ((arg0 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
((arg0 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 ((arg0 task-control)) #t)
)
)
)
)
)
)
(defun task-control-reset ((arg0 symbol))
"Reset all task controls and set their current stage"
(let ((s5-0 *task-controls*))
(countdown (s4-0 (-> s5-0 length))
(reset! (-> s5-0 s4-0) arg0 #f)
(first-any (-> s5-0 s4-0) #f)
)
)
0
(none)
)
(defun get-task-control ((arg0 game-task))
"Get the task control for a given game-task"
(cond
((or (>= (the-as uint 1) (the-as uint arg0)) (>= (the-as uint arg0) (the-as uint 116)))
;; invalid game task
(format 0 "ERROR<GMJ>: get-task-control received invalid task ~D/~S~%" arg0 (game-task->string arg0))
*null-task-control*
)
(else
;; otherwise look up in table
(-> *task-controls* arg0)
)
)
)
(defun get-task-status ((arg0 game-task))
"Get the staus of a game-task"
(let ((gp-0 (get-task-control arg0)))
(when gp-0
(dotimes (s5-0 (-> gp-0 stage length))
(when (and (= arg0 (-> gp-0 stage s5-0 game-task)) (task-available? (-> gp-0 stage s5-0) gp-0))
(first-any gp-0 #t)
(return (the-as task-status (-> gp-0 stage s5-0 status)))
)
)
)
(first-any gp-0 #t)
)
(task-status invalid)
)
(defun close-specific-task! ((arg0 game-task) (arg1 task-status))
"Close a cstage for a game-task"
(let ((gp-0 (get-task-control arg0)))
(when gp-0
(dotimes (v1-1 (-> gp-0 stage length))
(when (and (= arg0 (-> gp-0 stage v1-1 game-task)) (= arg1 (-> gp-0 stage v1-1 status)))
(close-task! (-> gp-0 stage v1-1))
(return (first-any gp-0 #t))
)
)
(format
0
"ERROR<GMJ>: close-specific! received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string arg0)
(task-status->string arg1)
)
)
)
(game-task none)
)
(defun open-specific-task! ((arg0 game-task) (arg1 task-status))
"Open a cstage for a game-task"
(let ((gp-0 (get-task-control arg0)))
(when gp-0
(dotimes (v1-1 (-> gp-0 stage length))
(when (and (= arg0 (-> gp-0 stage v1-1 game-task)) (= arg1 (-> gp-0 stage v1-1 status)))
(open-task! (-> gp-0 stage v1-1))
(return (first-any gp-0 #t))
)
)
(format
0
"ERROR<GMJ>: open-specific! received non-existent task-cstage(~S ~S)--returning #t.~%"
(game-task->string arg0)
(task-status->string arg1)
)
)
)
(game-task none)
)
(defun task-closed? ((arg0 game-task) (arg1 task-status))
(closed? (get-task-control arg0) arg0 arg1)
)
(defun task-exists? ((arg0 game-task) (arg1 task-status))
(exists? (get-task-control arg0) arg0 arg1)
)
(defun task-known? ((arg0 game-task))
"Is there a cstage with a non-unknown status?"
(case (get-task-status arg0)
(((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? ()
(task-closed? (game-task village4-button) (task-status need-reward-speech))
)
;; replace symbols in task-controls with their value.
(let ((gp-0 *task-controls*))
(countdown (s5-0 (-> gp-0 length))
(when (and (-> gp-0 s5-0) (= (-> gp-0 s5-0 type) symbol))
;; found a symbol
(let ((s4-0 (-> (the-as symbol (-> gp-0 s5-0)) value)))
(cond
((and (nonzero? s4-0) (type-type? (rtype-of s4-0) task-control))
;; symbol holds a task-control, replace it
(set! (-> gp-0 s5-0) (the-as task-control s4-0))
)
(else
;; invalid symbol
(format 0 "ERROR<GMJ>: value of symbol ~A in task-controls is not a task-control~%")
(set! (-> gp-0 s5-0) (the-as task-control '*null-task-control*))
)
)
)
)
)
)
(task-control-reset 'game)