OSDN Git Service

85b498923a182de4657fb8068a91500ebb1f7f32
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / nossifer.scm
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     ))