1;;----------------------------------------------------------------------------
2;; Constants
3;;----------------------------------------------------------------------------
4(define nossifer-x 16)
5(define nossifer-y 6)
6(define noss-lvl 20)
7(define noss-species sp_balron)
8(define noss-occ oc_wizard)
9
10;;----------------------------------------------------------------------------
11;; Gob
12;;----------------------------------------------------------------------------
13(define (noss-mk) (list #f))
14(define (noss-spoke? gob) (car gob))
15(define (noss-spoke! gob) (set-car! gob #t))
16
17;;----------------------------------------------------------------------------
18;; Conv
19;;----------------------------------------------------------------------------
20
21;; Basics...
22(define (noss-hail knpc kpc)
23  (say knpc "I am summoned at last! Whom shall I punish for this delay?"))
24
25(define (noss-default knpc kpc)
26  (say knpc "I slay fools who waste words with me."))
27
28(define (noss-name knpc kpc)
29  (say knpc "I am Nossifer, the Sleeper."))
30
31(define (begin-last-battle knpc kpc)
32  (say knpc "Your soul will never know the bliss of the Void. "
33       "I will torment it FOREVER!")
34  (kern-being-set-base-faction knpc faction-demon)
35  (kern-conv-end))
36
37(define (noss-job knpc kpc)
38  (say knpc "I bring oblivion to worlds. You've heard of wizards who summon demons to do their bidding?")
39  (yes? kpc)
40  (say knpc "I summon men to do mine. What do you think YOU are?")
41  (kern-log-msg "He laughs, and the air reeks of sulphur.")
42  (say knpc "You have opened the way, and served your purpose well. "
43       "Now, receive your reward... ")
44  (quest-data-update 'questentry-whereami 'nossifer 1)
45  (kern-being-set-base-faction knpc faction-demon)
46  (kern-conv-end))
47
48(define (noss-bye knpc kpc)
49  (say knpc "Not yet. We have unfinished business to discuss.")
50  (prompt-for-key)
51  (noss-job knpc kpc))
52
53(define noss-conv
54  (ifc nil
55
56       ;; basics
57       (method 'default noss-default)
58       (method 'hail noss-hail)
59       (method 'bye noss-bye)
60       (method 'job noss-job)
61       (method 'name noss-name)
62
63       ))
64
65(define (noss-ai kchar)
66  (warlock-ai kchar))
67
68(define (mk-nossifer)
69  (let ((kchar (bind
70                 (kern-mk-char
71                  'ch_nossifer           ; tag
72                  "Nossifer"             ; name
73                  noss-species         ; species
74                  noss-occ              ; occ
75                  s_balron          ; sprite
76                  faction-men      ; starting alignment
77                  20 5 20            ; str/int/dex
78                  0 5              ; hp mod/mult
79                  0 2              ; mp mod/mult
80                  max-health ; hp
81                  0                   ; xp
82                  max-health ; mp
83                  0
84                  noss-lvl
85                  #f               ; dead
86                  'noss-conv       ; conv
87                  nil           ; sched
88                  'noss-ai  ; special ai
89                  nil              ; container
90                  (list
91                   t_flaming_sword
92                   t_armor_plate
93                   ))
94                (noss-mk))))
95    (map (lambda (eff) (kern-obj-add-effect kchar eff nil))
96         demon-effects)
97    (kern-obj-add-effect kchar ef_charm_immunity nil)
98    kchar
99    ))
100