1;;---------------------------------------------------------------------------- 2;; Sched 3;; 4;; In Green Tower. 5;;---------------------------------------------------------------------------- 6(define (mk-zone x y w h) (list 'p_green_tower x y w h)) 7(kern-mk-sched 'sch_deric 8 (list 0 0 (mk-zone 17 4 1 1) "sleeping") 9 (list 6 0 (mk-zone 30 30 5 5) "working") 10 (list 12 0 (mk-zone 52 54 1 1) "eating") 11 (list 13 0 (mk-zone 30 30 5 5) "working") 12 (list 18 0 (mk-zone 52 54 1 1) "eating") 13 (list 19 0 (mk-zone 30 30 5 5) "working") 14 (list 21 0 (mk-zone 13 2 4 4) "idle") 15 (list 22 0 (mk-zone 17 4 1 1) "sleeping") 16 ) 17 18;;---------------------------------------------------------------------------- 19;; Gob 20;;---------------------------------------------------------------------------- 21(define (deric-mk tell-secret?) (list tell-secret? (mk-quest))) 22(define (deric-tell-secret? deric) (car deric)) 23(define (deric-set-tell-secret! deric) (set-car! deric #t)) 24(define (deric-bandit-quest deric) (cadr deric)) 25 26;;---------------------------------------------------------------------------- 27;; Conv 28;; 29;; Deric is a Captain of the Rangers in Green Tower. 30;;---------------------------------------------------------------------------- 31 32(define (deric-name knpc kpc) 33 (say knpc "I am Captain Deric, commander of the Rangers, at your service.")) 34 35(define (deric-job knpc kpc) 36 (say knpc "I command the Rangers, though I aspire to greater things. I " 37 "think I have proved myself quite well as a leader, but around here " 38 "you have to wait for someone to die before you get promoted!")) 39 40(define (deric-health knpc kpc) 41 (say knpc "I am the very definition of good health!")) 42 43(define (deric-rangers knpc kpc) 44 (say knpc "Right then! The Rangers are charged with keeping the peace in " 45 "the Great Wood. We enforce the law, keep an eye on the goblins, that " 46 "sort of thing. We're also charged with maintenance of the forest and " 47 "keeping the roads in and out clear. If I say so myself, we have done " 48 "an amazing job under my leadership. Thanks to the hard work of my " 49 "people, of course. Ahem.")) 50 51(define (deric-two knpc kpc) 52 (say knpc "The upper level of the tower is mostly fortifications. The lower " 53 "level is where the council chamber, barracks, kitchen and other " 54 "facilities are. We also have a prison down there. Some think the " 55 "lower level is haunted.")) 56 57(define (deric-haunted knpc kpc) 58 (say knpc "They say the lower level is haunted, and I for one have heard " 59 "some strange noises. They sound like they're coming from deep within " 60 "the walls - chanting, or shrieking. But I've never seen any ghosts. " 61 "And of course I am not afraid of such things!")) 62 63(define (deric-gen knpc kpc) 64 (say knpc "A splendid old chap, if a bit daft. He's a legend among the " 65 "Rangers for his efforts during the Goblin War, and one of the last " 66 "surviving veterans. Still looks to be in good shape physically, but " 67 "he's gone a bit native, if you know what I mean.")) 68 69(define (deric-native knpc kpc) 70 (say knpc "Yes, he's adopted some of the habits of the Wood Folk - the " 71 "forest goblins. But I don't suspect him of conspiring against us - if " 72 "I did I would turn him in and perhaps get a promotion! But alas, 'tis " 73 "not the case.")) 74 75(define (deric-shroom knpc kpc) 76 (say knpc "A nice old hag. Bit of a witch, but not any trouble. Keeps a " 77 "reagent shop in the northeast corner of town.")) 78 79(define (deric-abe knpc kpc) 80 (say knpc "A queer young man. Queer as in strange, you know, not that " 81 "other... well, maybe... it's hard to say. Anyway, he studies the " 82 "ruins in the southwest corner. Working for the Royal Library or some " 83 "such.")) 84 85 86(define (deric-tower knpc kpc) 87 (say knpc "Yes, the Tower itself which gives Green Tower its name is " 88 "located in the center of town. It is my command post and headquarters " 89 "for the Rangers. A fascinating building! Did you know it is built on " 90 "the ruins of an older tower?") 91 (if (kern-conv-get-yes-no? kpc) 92 (say knpc "Interesting, eh? Not that I'm an expert on such things. " 93 "You'd have to talk with old Abe, or perhaps Shroom, to learn " 94 "more.") 95 (say knpc "'Tis true! What is now the Tower was once only the central " 96 "spire of a very great structure that reached much higher! And " 97 "much lower as well, if young Abe is to be believed. Currently " 98 "there are only two stories."))) 99 100(define (deric-ambition knpc kpc) 101 (say knpc "Yes, I am quite ambitious and not afraid to admit it! No point " 102 "sneaking about when one is ambitious, it just makes people nervous. " 103 "I wouldn't do anything immoral to advance my position, of course, " 104 "I believe too firmly in the principles of our great society. Do you " 105 "have any ambitions?") 106 (if (kern-conv-get-yes-no? kpc) 107 (begin 108 (say knpc "Well, enough about you! I hope someday to be a Lord. " 109 "Do you think I have a chance?") 110 (if (kern-conv-get-yes-no? kpc) 111 (begin 112 (say knpc "I knew it! You know, I wasn't sure if I could trust " 113 "you, but you're obviously a person of insight, so I'll " 114 "let you in on a secret.") 115 (deric-set-tell-secret! (kobj-gob-data knpc))) 116 (say knpc "[laughing] I'm sorry if I must disagree! People of " 117 "destiny are never appreciated by their fellows."))) 118 (say knpc "[sigh] So many people lead worthless, wasted lives. I'm glad " 119 "I'm not one of them!"))) 120 121(define (deric-secret knpc kpc) 122 (if (deric-tell-secret? (kobj-gob-data knpc)) 123 (say knpc "In the lower level of the Tower there is a hidden passage. " 124 "Go down the ladder and enter the southeast supply room. " 125 "On the east wall is a secret door! " 126 "I have no idea what it was for.") 127 (say knpc "Nothing I want to tell a stranger like you!"))) 128 129(define (deric-afraid knpc kpc) 130 (say knpc "Of course not! Fear is the hobgoblin of little minds. " 131 "Or is it hobgoblins are the fear of little minds? " 132 "Damn, I can never remember that silly saying.")) 133 134(define (deric-prison knpc kpc) 135 (say knpc "Yes. Very secure. We currently only have one prisoner, " 136 "a forest goblin we caught skulking around here. " 137 "A quite vicious-looking brute, I must say. " 138 "Not that I am afraid of him. Ahem.")) 139 140(define (deric-gobl knpc kpc) 141 (say knpc "Sneaky fellows! Why, just the other day I caught one here in town and had him thrown into prison.")) 142 143(define (deric-brute knpc kpc) 144 (say knpc "Very suspicious. He obviously did not come to trade, " 145 "for he carried no merchandise. And he speaks not a lick of Common. " 146 "In fact, he refuses to say anything! Well, some time spent " 147 "underground should loosen his tongue. I'll find out what he's " 148 "scheming.")) 149 150(define (deric-default knpc kpc) 151 (say knpc "You must ask another of that!")) 152 153;; Scan the player party looking for mercs 154 155 156(define (deric-hail knpc kpc) 157 158 (define (get-ranger-merc) 159 (let ((mercs (filter (lambda (kchar) 160 (kbeing-is-npc-type? kchar 'ranger)) 161 (kern-party-get-members (kern-get-player))))) 162 (cond ((null? mercs) nil) 163 (else 164 (car mercs))))) 165 166 (define (rm-ranger-merc) 167 (let ((kmerc (get-ranger-merc))) 168 (if (not (null? kmerc)) 169 (begin 170 (prompt-for-key) 171 (say knpc "I'll need to re-assign that ranger to a patrol.") 172 (kern-char-leave-player kmerc) 173 )))) 174 175 (cond ((in-player-party? 'ch_nate) 176 (say knpc "I see you have apprehended the bandit leader! " 177 "Deliver him downstairs to the jailer and I will give you the " 178 "reward.") 179 (rm-ranger-merc) 180 (quest-data-update-with 'questentry-bandits 'captured-nate-and-talked-to-deric 1 (quest-notify nil)) 181 ) 182 ((has? kpc t_prisoner_receipt 1) 183 (say knpc "Putting that bandit behind bars will look very good on my " 184 "record! Here is your reward.") 185 (give-player-gold 100) 186 (kern-char-add-experience kpc 64) 187 (take kpc t_prisoner_receipt 1) 188 (quest-done! (deric-bandit-quest (kobj-gob-data knpc)) #t) 189 (rm-ranger-merc) 190 (quest-data-update-with 'questentry-bandits 'done 1 (grant-party-xp-fn 30)) 191 (quest-data-complete 'questentry-bandits) 192 ) 193 (else 194 (say knpc "Well met, indeed!") 195 ))) 196 197(define (deric-bye knpc kpc) 198 (say knpc "Until next time")) 199 200(define (deric-thie knpc kpc) 201 (say knpc "Hm. The goblin brute we have locked up below may be a thief. But " 202 "he's been in our prison for some time. Now, our rangers did report " 203 "a lone man traveling north through the forest, but we know not " 204 "whence. The only thing to the north is Bole.") 205 (quest-data-update 'questentry-thiefrune 'tower 1) 206 (quest-data-update-with 'questentry-thiefrune 'bole 1 (quest-notify (grant-party-xp-fn 10))) 207 ) 208 209(define (deric-accu knpc kpc) 210 (say knpc "I assure you, my good man, there are no Accursed around here.")) 211 212 213(define (deric-band knpc kpc) 214 (let ((quest (deric-bandit-quest (kobj-gob-data knpc)))) 215 (cond ((quest-done? quest) 216 (say knpc "I don't expect any more trouble from bandits since I " 217 "had their leader apprehended. " 218 "By you, of course. " 219 "But I had it done. " 220 "Ahem.")) 221 ((quest-accepted? quest) 222 (say knpc "The bandits have a hideout somewhere in these " 223 "woods. Keep searching! And bring me their leader " 224 "back alive.") 225 ) 226 (else 227 (say knpc "So you've heard of our bandit problem. " 228 "Yes, they have a secret hideout somewhere in these woods. " 229 "I would have flushed them out long ago, " 230 "but I haven't the men to spare. You understand. ") 231 (prompt-for-key) 232 (say knpc 233 "Say, you seem like a plucky sort. " 234 "If you capture the bandit leader and bring him here I'll " 235 "gladly reward you for your trouble. What do you say?") 236 (if (yes? kpc) 237 (begin 238 (quest-accepted! quest #t) 239 (say knpc "Good! You may need some help. " 240 "[He gives you a parchment]." 241 "These orders will temporarily assign one of my Rangers " 242 "to you. Just ask one to join your party.") 243 (give kpc t_ranger_orders 1) 244 (quest-data-update-with 'questentry-bandits 'talked-to-deric 1 (quest-notify nil)) 245 ) 246 (say knpc "You'll never gain a reputation that way!"))) 247 ))) 248 249 250(define deric-conv 251 (ifc green-tower-conv 252 (method 'abe deric-abe) 253 (method 'afra deric-afraid) 254 (method 'ambi deric-ambition) 255 (method 'aspi deric-ambition) 256 (method 'band deric-band) 257 (method 'brut deric-brute) 258 (method 'bye deric-bye) 259 (method 'comm deric-rangers) 260 (method 'default deric-default) 261 (method 'die deric-ambition) 262 (method 'gen deric-gen) 263 (method 'hail deric-hail) 264 (method 'haun deric-haunted) 265 (method 'heal deric-health) 266 (method 'job deric-job) 267 (method 'name deric-name) 268 (method 'nati deric-native) 269 (method 'pris deric-prison) 270 (method 'prom deric-ambition) 271 (method 'rang deric-rangers) 272 (method 'secr deric-secret) 273 (method 'shro deric-shroom) 274 (method 'skul deric-brute) 275 (method 'stor deric-two) 276 (method 'thie deric-thie) 277 (method 'towe deric-tower) 278 (method 'two deric-two) 279 (method 'gobl deric-gobl) 280)) 281 282(define (mk-deric tag) 283 (bind 284 (kern-mk-char tag ; tag 285 "Deric" ; name 286 sp_human ; species 287 nil ; occ 288 s_ranger_captain ; sprite 289 faction-men ; starting alignment 290 1 3 2 ; str/int/dex 291 0 0 ; hp mod/mult 292 0 0 ; mp mod/mult 293 max-health -1 max-health 0 4 ; hp/xp/mp/AP_per_turn/lvl 294 #f ; dead 295 'deric-conv ; conv 296 sch_deric ; sched 297 'townsman-ai ;; special ai 298 nil ; container 299 (list t_sword_2 300 t_armor_leather_2 301 t_leather_helm_2 302 ) ; readied 303 ) 304 (deric-mk #f))) 305