-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdb.rkt
26 lines (21 loc) · 799 Bytes
/
db.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#lang racket
(provide
(contract-out
[init-dbs (-> path-string? state? any)]
[init-dbs-and-foes (-> path-string? state? any)]))
(require frosthaven-manager/manager/state
frosthaven-manager/observable-operator)
(define (init-dbs db s)
;; remove all monster groups from creatures
(<@ (state-@creatures s) {(remf* creature-is-mg*? _)})
(:= (state-@bestiary-path s) db)
(:= (state-@ability-decks s) (hash)))
(define (init-foes db s)
(define make-foes (dynamic-require db 'make-foes (const #f)))
(when make-foes
(define mgs (make-foes (@! (state-@level s)) (@! (state-@num-players s))))
(define events (map (λ (mg) `(add ,mg)) mgs))
(for-each (add-or-remove-monster-group s) events)))
(define (init-dbs-and-foes db s)
(init-dbs db s)
(init-foes db s))