1;;---------------------------------------------------------------------------- 2;; Schedule 3;; 4;; In Bole. 5;;---------------------------------------------------------------------------- 6(kern-mk-sched 'sch_hackle 7 (list 0 0 bole-hackles-hut "idle") 8 (list 2 0 bole-bed-hackle "sleeping") 9 (list 10 0 bole-hackles-hut "idle") 10 (list 20 0 bole-hackles-yard "idle") 11 ) 12 13;;---------------------------------------------------------------------------- 14;; Gob 15;; 16;; Quest flags, etc, go here. 17;;---------------------------------------------------------------------------- 18(define (hackle-mk) nil) 19 20;;---------------------------------------------------------------------------- 21;; Conv 22;; 23;; Hackle is a female hedge-witch dwelling in Bole. 24;; Her mind was shattered by some misadventure with Gazer(s), 25;; though she is still capable of serving as a healer. 26;;---------------------------------------------------------------------------- 27(define (hackle-trade knpc kpc) 28 (say knpc "She can heal it, or one of its friends. She requires a piece of " 29 "gold for each piece of life! Does it agree?") 30 (define (hackle-heal) 31 (say knpc "Which shall she heal?") 32 (let ((kchar (kern-ui-select-party-member))) 33 (if (null? kchar) 34 (say knpc "How else can she help it?") 35 (let* ((gold (kern-player-get-gold)) 36 (pts (- (kern-char-get-max-hp kchar) 37 (kern-char-get-hp kchar)))) 38 (if (= 0 gold) 39 (say knpc "No gold, no life! It is the law of the world!") 40 (begin 41 (if (= 0 pts) 42 (say knpc "It is well! She can do nothing for it!") 43 (let ((n (min gold pts))) 44 (say knpc "She heals it!") 45 (kern-obj-heal kchar n) 46 (kern-player-set-gold (- gold n)))) 47 (say knpc "Will it heal another?") 48 (if (kern-conv-get-yes-no? kpc) 49 (hackle-heal) 50 (say knpc "Then something else it wants.") 51 ))))))) 52 (if (kern-conv-get-yes-no? kpc) 53 (hackle-heal) 54 (say knpc "Have it its way!"))) 55 56 57 58 59;; basics... 60(define (hackle-default knpc kpc) 61 (say knpc "She cannot help it with that.")) 62 63(define (hackle-hail knpc kpc) 64 (if (in-player-party? 'ch_mesmeme) 65 (begin 66 (say knpc "[She shrinks back in horror at the sight of Mesmeme] AHHH! It frightens her!") 67 (aside kpc 'ch_mesmeme "No frighten.") 68 ) 69 (say knpc "[You meet a disheveled, middle-aged woman] It comes to her! " 70 "It wants something!") 71 )) 72 73(define (hackle-name knpc kpc) 74 (say knpc "She is Hackle.")) 75 76(define (hackle-job knpc kpc) 77 (say knpc "She is mad! But she can heal it!")) 78 79(define (hackle-join knpc kpc) 80 (say knpc "She cannot join it! She must mind her sheep!")) 81 82(define (hackle-bye knpc kpc) 83 (say knpc "She bids it farewell, but knows it will return!")) 84 85 86;; other characters & town... 87(define (hackle-may knpc kpc) 88 (say knpc "It is a hard woman, hard but kind to Hackle!")) 89 90(define (hackle-kath knpc kpc) 91 (say knpc "A woman clothed in red! A fiend clothed in woman!")) 92 93(define (hackle-bill knpc kpc) 94 (say knpc "It is careless. Yes, the wood gods will have it for supper one " 95 "day.")) 96 97(define (hackle-thud knpc kpc) 98 (say knpc "[She laughs, a surprising, golden sound] That is no toy! They " 99 "called for a servant, but summoned a demon!")) 100 101(define (hackle-melv knpc kpc) 102 (say knpc "It is a good soul.")) 103 104(define (hackle-bole knpc kpc) 105 (say knpc "Not Bole! Hole! The keyhole to the deep! She knows it!")) 106 107;; misc... 108(define (hackle-mesm knpc kpc) 109 (say knpc "It is only a child. Deaf and dumb it is, to its own kind. " 110 "But the pet will make a pet of its master.") 111 (aside kpc 'ch_mesmeme "No pet") 112 ) 113 114(define (hackle-shee knpc kpc) 115 (say knpc "The sheep hides in wolf's clothing! How it howls when it " 116 "bleats!")) 117 118(define (hackle-wood knpc kpc) 119 (say knpc "She has seen them sleeping in the old oaks. She wakes them " 120 "not! They do not like us, they do not like anyone! The goblins " 121 "appease them but she does not know the words.")) 122 123(define (hackle-mad knpc kpc) 124 (say knpc "The gazers caught her as a girl! She escaped, but her mind did " 125 "not!")) 126 127(define (hackle-gaze knpc kpc) 128 (say knpc "If it meets one, it should kill one without question! They know " 129 "the answer to any question, and in the answer lies bondage!") 130 (aside kpc 'ch_mesmeme "[Blinks nervously]") 131) 132 133;; thief quest... 134(define (hackle-thie knpc kpc) 135 (say knpc "It is a mighty wrogue indeed that robs a mighty wizard!")) 136 137(define (hackle-robs knpc kpc) 138 (say knpc "It robs and runs, down its little mouse-hole!")) 139 140(define (hackle-hole knpc kpc) 141 (say knpc "Does it like riddles?\n" 142 " An 'o' has a hole!\n" 143 " And hole has an 'o'!\n" 144 " And a mouse has both!\n" 145 " In the middle of the night\n" 146 " Down it will go!\n" 147 "Does it know what ^c+mreveals^c-?") 148 (if (kern-conv-get-yes-no? kpc) 149 (say knpc "Then let it ^c+mreveal^c- and understand my riddle!") 150 (begin 151 (say knpc "Wis Quas! The Red Bitch has a scroll, but has not the " 152 "wisdom."))) 153 ) 154 155(define (hackle-reve knpc kpc) 156 (say knpc "The Bill-boy knows where the mouse disappeared! " 157 "Let it ^c+mreveal^c- there!")) 158 159(define (hackle-midd knpc kpc) 160 (say knpc "Yes! The middle of the night!")) 161 162(define hackle-conv 163 (ifc basic-conv 164 ;; default if the only "keyword" which may (indeed must!) be longer than 165 ;; 4 characters. The 4-char limit arises from the kernel's practice of 166 ;; truncating all player queries to the first four characters. Default, 167 ;; on the other hand, is a feature of the ifc mechanism (see ifc.scm). 168 (method 'default hackle-default) 169 (method 'hail hackle-hail) 170 (method 'bye hackle-bye) 171 (method 'job hackle-job) 172 (method 'name hackle-name) 173 (method 'join hackle-join) 174 175 (method 'trad hackle-trade) 176 (method 'buy hackle-trade) 177 (method 'sell hackle-trade) 178 (method 'heal hackle-trade) 179 180 (method 'bill hackle-bill) 181 (method 'kath hackle-kath) 182 (method 'red hackle-kath) 183 (method 'bitc hackle-kath) 184 (method 'may hackle-may) 185 (method 'melv hackle-melv) 186 (method 'thud hackle-thud) 187 188 (method 'bole hackle-bole) 189 (method 'gaze hackle-gaze) 190 (method 'god hackle-wood) 191 (method 'gods hackle-wood) 192 (method 'hole hackle-hole) 193 (method 'mad hackle-mad) 194 (method 'mesm hackle-mesm) 195 (method 'migh hackle-robs) 196 (method 'mous hackle-hole) 197 (method 'reve hackle-reve) 198 (method 'rob hackle-robs) 199 (method 'robs hackle-robs) 200 (method 'wrog hackle-robs) 201 (method 'wiza hackle-robs) 202 (method 'shee hackle-shee) 203 (method 'thie hackle-thie) 204 (method 'wood hackle-wood) 205 (method 'midd hackle-midd) 206 (method 'nigh hackle-midd) 207 )) 208 209;;---------------------------------------------------------------------------- 210;; First-time constructor 211;;---------------------------------------------------------------------------- 212(define (mk-hackle) 213 (bind 214 (kern-mk-char 'ch_hackle ; tag 215 "Hackle" ; name 216 sp_human ; species 217 nil ; occ 218 s_beggar ; sprite 219 faction-men ; starting alignment 220 0 0 1 ; str/int/dex 221 0 0 ; hp mod/mult 222 0 0 ; mp mod/mult 223 max-health -1 max-health 0 6 ; hp/xp/mp/AP_per_turn/lvl 224 #f ; dead 225 'hackle-conv ; conv 226 sch_hackle ; sched 227 'townsman-ai ; special ai 228 nil ; container 229 nil ; readied 230 ) 231 (hackle-mk))) 232