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