1;;---------------------------------------------------------------------------- 2;; Schedule 3;; 4;; In Green Tower. 5;;---------------------------------------------------------------------------- 6(kern-mk-sched 'sch_doris 7 (list 0 0 doris-bed "sleeping") 8 (list 8 0 white-stag-counter "working")) 9 10;;---------------------------------------------------------------------------- 11;; Gob 12;;---------------------------------------------------------------------------- 13(define (doris-mk) nil) 14 15;;---------------------------------------------------------------------------- 16;; Conv 17;; 18;; Doris is the female innkeeper of the White Stag Lodge in Green Tower. 19;;---------------------------------------------------------------------------- 20(define (doris-name kdoris kplayer) 21 (say kdoris "Hi, I'm Doris, innkeeper of the White Stag Lodge.")) 22 23(define (doris-default) 24 (say kdoris "Let me think... nope, can't help you there.")) 25 26(define (doris-join kdoris kplayer) 27 (say kdoris "[laughing] No thanks! I've got my hands full with the lodge.")) 28 29(define (doris-doris knpc kpc) 30 (say knpc "Yep. That's me.")) 31 32(define (doris-trade knpc kpc) 33 (let ((door (eval 'white-stag-door)) 34 (price 15)) 35 ;; is the room still open? 36 (if (not (door-locked? (kobj-gob door))) 37 ;; yes - remind player 38 (say knpc "Your room is still open, silly! You can use it as long as " 39 "you're in town.") 40 ;; no - ask if player needs a room 41 (begin 42 (say knpc "My room is " price " gold. I'll unlock the door and you " 43 "can use it for as long as you are in town. Agreed?") 44 (if (kern-conv-get-yes-no? kpc) 45 ;; yes - player agrees to the price 46 (let ((gold (kern-player-get-gold))) 47 ;; does player have enough gold? 48 (if (>= gold price) 49 ;; yes - player has enough gold 50 (begin 51 (kern-player-set-gold (- gold price)) 52 (say knpc "Very well. Take the west passage. First room " 53 "at the end of the hall.") 54 (send-signal knpc door 'unlock) 55 (kern-conv-end) 56 ) 57 ;; no - player does not have enouvh gold) 58 (say knpc "Seems you're short of funds. Why don't you " 59 "walk around and kill things until you loot enough " 60 "corpses? Or whatever you bold adventurers do. [She " 61 "smiles a bit too sweetly]"))) 62 ;; no - player does not want the room 63 (say knpc "Maybe some other time, then")))))) 64 65(define (doris-lodge knpc kpc) 66 (say knpc "Yep. It's all mine. It used to belong to my Daddy, God rest his " 67 "soul. Most of my customers are local folk, woodsman or travellers " 68 "wandering through.")) 69 70(define (doris-daddy knpc kpc) 71 (say knpc "Daddy hunted and trapped his way to a small fortune then he " 72 "built this lodge. When he died, I got the lodge.")) 73 74(define (doris-local knpc kpc) 75 (say knpc "The people here are varied, odd and secretive. They are also " 76 "trustworthy, competent and interesting. You will not find better " 77 "friends or worse enemies then the ones you make here.")) 78 79(define (doris-woodsman knpc kpc) 80 (say knpc "Hunters, lumberjacks and foragers usually pass through here if " 81 "they are in the area. Wealthier sport hunters from the city take " 82 "lodging here, but usually those who work in the woods camp in the " 83 "woods. They come here for a bit of drink, company and a decent meal.")) 84 85(define (doris-travelers knpc kpc) 86 (say knpc "Yes, folk like yourself.")) 87 88(define (doris-gen knpc kpc) 89 (say knpc "An old goblin-fighter. Something of a local legend. You can " 90 "find him pottering around in the woods, and he usually stops in at " 91 "night for a drink.")) 92 93(define (doris-deric knpc kpc) 94 (say knpc "Yes, Deric. Well, if you've met Deric then you know Deric. He's " 95 "competent enough but doesn't want to spend his life in the obscurity " 96 "of a frontier post.")) 97 98(define (doris-shroom knpc kpc) 99 (say knpc "Some say she is a witch, and that she knows some goblin magic. " 100 "She certainly is handy when anyone falls ill. She often takes her " 101 "meals here.")) 102 103(define (doris-abe knpc kpc) 104 (say knpc "Some kind of scholar from Glasdrin. He spends all his time " 105 "studying the ruins. Bookish fellow.")) 106 107(define (doris-abigail knpc kpc) 108 (say knpc "She was orphaned, so I adopted her. I always wanted a child, " 109 "but that was not to be. I worry about her future... I know she " 110 "belongs among her own kind but I can't bear the thought of losing " 111 "her.")) 112 113(define (doris-goblins knpc kpc) 114 (say knpc "They trade with the townsfolk, I even have one as a customer " 115 "from time-to-time. But they are forbidden by law to enter cities in " 116 "large numbers, so they're always outnumbered. Most of them are hasty " 117 "to conclude their business and get back into the woods.")) 118 119(define (doris-orphaned knpc kpc) 120 (say knpc "Shroom brought her to me when she was just a baby. Said she " 121 "found her in the woods besides her dead parents. I don't know what - " 122 "or who - killed them, Shroom wouldn't say. Perhaps I don't want to " 123 "know.")) 124 125(define (doris-hail knpc kpc) 126 (say knpc "Welcome to the White Stag")) 127 128(define (doris-bye knpc kpc) 129 (say knpc "Come back anytime")) 130 131(define (doris-default knpc kpc) 132 (say knpc "Can't help you there")) 133 134(define (doris-thie knpc kpc) 135 (say knpc "I haven't had any odd guests lately. Check with Deric, who gets " 136 "reports from ranger patrols. And Gen may have seen something in his " 137 "wanderings, too.")) 138 139(define (doris-band knpc kpc) 140 (say knpc "Travelers have been complaining about them! " 141 "I wish Deric would do something, they're bad for business!")) 142 143(define doris-conv 144 (ifc green-tower-conv 145 (method 'band doris-band) 146 (method 'hail doris-hail) 147 (method 'bye doris-bye) 148 (method 'default doris-default) 149 (method 'name doris-name) 150 (method 'room doris-trade) 151 (method 'defa doris-default) 152 (method 'job doris-trade) 153 (method 'join doris-join) 154 (method 'dori doris-doris) 155 (method 'buy doris-trade) 156 (method 'innk doris-trade) 157 (method 'whit doris-lodge) 158 (method 'stag doris-lodge) 159 (method 'lodg doris-lodge) 160 (method 'dadd doris-daddy) 161 (method 'loca doris-local) 162 (method 'wood doris-woodsman) 163 (method 'trav doris-travelers) 164 (method 'gen doris-gen) 165 (method 'deri doris-deric) 166 (method 'shro doris-shroom) 167 (method 'abe doris-abe) 168 (method 'abig doris-abigail) 169 (method 'orph doris-orphaned) 170 (method 'gobl doris-goblins) 171 (method 'thie doris-thie) 172 )) 173 174;;---------------------------------------------------------------------------- 175;; First-time constructor 176;;---------------------------------------------------------------------------- 177(define (mk-doris tag) 178 (bind 179 (kern-mk-char tag ; tag 180 "Doris" ; name 181 sp_human ; species 182 nil ; occ 183 s_townswoman ; sprite 184 faction-men ; starting alignment 185 0 1 0 ; str/int/dex 186 0 0 ; hp mod/mult 187 0 0 ; mp mod/mult 188 max-health -1 max-health 0 2 ; hp/xp/mp/AP_per_turn/lvl 189 #f ; dead 190 'doris-conv ; conv 191 sch_doris ; sched 192 'townsman-ai ; special ai 193 nil ; container 194 (list t_dagger) ; readied 195 ) 196 (doris-mk))) 197