1;;----------------------------------------------------------------------------
2;; Constants
3;;----------------------------------------------------------------------------
4(define kathryn-start-lvl  6)
5
6;;----------------------------------------------------------------------------
7;; Schedule
8;;
9;; In Bole.
10;;----------------------------------------------------------------------------
11(kern-mk-sched 'sch_kathryn
12               (list 0  0  bole-bed-kathryn "sleeping")
13               (list 9  0  bole-table-1 "eating")
14               (list 10 0  bole-courtyard   "idle")
15               (list 12 0  bole-table-1 "eating")
16               (list 13 0  bole-dining-hall "idle")
17               (list 18 0  bole-table-1 "eating")
18               (list 19 0  bole-dining-hall "idle")
19               (list 23 0  bole-bed-kathryn "sleeping")
20               )
21
22;;----------------------------------------------------------------------------
23;; Gob
24;;
25;; Quest flags, etc, go here.
26;;----------------------------------------------------------------------------
27(define (kathryn-mk) nil)
28
29;;----------------------------------------------------------------------------
30;; Conv
31;;
32;; Kathryn is a female mercenary wizard, currently in Bole on a mission
33;; to retrieve the Rune of Knowledge from the thief (Mouse) contracted to
34;; purloin it from the Enchanter...and ensure he tells no tales.
35;; She is manipulative and ruthless.
36;;
37;; Kathryn is a potential party member (and an eventual betrayer).
38;; She is accompanied by the brute Thud, who will join the party if she does.
39;;----------------------------------------------------------------------------
40(define (kathryn-hail knpc kpc)
41  (say knpc "[You meet a lovely woman who regards you with contempt]. Yes?"))
42
43(define (kathryn-default knpc kpc)
44  (say knpc "[She studiously ignores you]"))
45
46(define (kathryn-name knpc kpc)
47  (say knpc "I don't give my name to vagabonds. Say, why don't you go PUMP "
48       "one of the locals for information? I saw some farm animals on the "
49       "way in..."))
50
51(define (kathryn-join knpc kpc)
52  (say knpc "[She chokes with laughter]"))
53
54(define (kathryn-job knpc kpc)
55  (say knpc "[Sneering] I'm a nun. Blowjobs are 500 gold."))
56
57
58(define (kathryn-blowjob knpc kpc)
59  (say knpc "It's called SARCASM. Beat it, creep."))
60
61(define (kathryn-clients knpc kpc)
62  (say knpc "My clients prefer to remain anonymous. All you need to know is "
63       "that you don't want to piss them off."))
64
65(define (kathryn-things knpc kpc)
66  (say knpc "I'm afraid a thug like you wouldn't understand."))
67
68(define (kathryn-thief knpc kpc)
69  (say knpc "[She gives you a cunning look] You know, perhaps we can help "
70       "each other. I came here on behalf of my clients to purchase an item "
71       "in good faith from an anonymous seller."))
72
73(define (kathryn-seller knpc kpc)
74  (say knpc "Imagine my shock when I discovered the item was stolen! "
75       "Of course, I demanded that he hand over the item immediately so I "
76       "could return it to its rightful owner. No sooner did I make my "
77       "intentions clear when he vanished before my eyes!"))
78
79(define (kathryn-vanish knpc kpc)
80  (say knpc "Poof! Gone! The villian must have a ring of invisibility. "
81       "Thud and I have been searching for him everywhere."))
82
83(define (kathryn-search knpc kpc)
84  (define (do-join)
85    (say knpc "Excellent! Let's see if anyone around here knows about a thief.")
86    (if (in-inventory? knpc t_wis_quas_scroll)
87        (begin
88          (say knpc "Oh, this scroll may come in handy. "
89               "You take it, I really don't understand these magical "
90               "thingies very well.")
91          (kern-obj-remove-from-inventory knpc t_wis_quas_scroll 1)
92          (kern-obj-add-to-inventory kpc t_wis_quas_scroll 1)))
93    (kern-char-join-player knpc)
94    (if (and (defined? 'ch_thud)
95             (is-alive? ch_thud))
96        (begin
97          (say knpc "You won't mind if my cousin Thud joins us. "
98               "He's really such a child, and quite helpless without me.")
99          (kern-char-join-player ch_thud)))
100    (kern-conv-end))
101  (say knpc "It seems we have a common goal. Join us, and when we catch the "
102       "villian we'll all return the item. You can keep any reward. "
103       "Knowing that we have done the right thing will "
104       "be enough for me and Thud. What do you say, tough guy, will you join "
105       "us?")
106  (if (kern-conv-get-yes-no? kpc)
107      (do-join)
108      (begin
109        (say knpc "[She becomes distressed] Oh, please won't you help me! "
110             "My masters are powerful and cruel! If I don't return with the "
111             "item they seek there will be nowhere I can hide in this life "
112             "or the next! Won't you please join me?")
113        (if (kern-conv-get-yes-no? kpc)
114            (do-join)
115            (begin
116              (say knpc "[She leans close with parted lips and lidded eyes] "
117                   "Okay, tough guy, you win. I don't want the silly item. "
118                   "I just find you irresistible. Let me come with you, "
119                   "pretty-please? I can be oh... so... grateful...")
120              (if (kern-conv-get-yes-no? kpc)
121                  (do-join)
122                  (say knpc "[She turns red and shrieks with rage] Fool! "
123                       "You have no idea who you are dealing with! What you "
124                       "seek draws the gaze of the darkest wizards in the "
125                       "land! That thief will know eternal torment when we "
126                       "catch him! And YOU HAD BETTER STAY OUT OF OUR WAY!")
127                  (kern-conv-end)))))))
128
129(define (kathryn-tavern knpc kpc)
130  (say knpc "Nice place. If you're a cockroach."))
131
132(define (kathryn-companion knpc kpc)
133  (say knpc "Thud? He's my... cousin."))
134
135(define (kathryn-cousin knpc kpc)
136  (say knpc "A DISTANT cousin."))
137
138(define (kathryn-bill knpc kpc)
139  (say knpc "The village idiot? He's probably out using his tool in the "
140       "forest. Why don't you go give him a hand?"))
141
142(define (kathryn-hackle knpc kpc)
143  (say knpc "Crazy bitch? Lives across the creek? I'm afraid she can't cure "
144       "ugly. Sorry."))
145
146(define (kathryn-may knpc kpc)
147  (say knpc "The innkeeper? Nosy old crone. Obviously you don't have money, "
148       "but if you did I'd warn you to sleep with it under your pillow."))
149
150(define (kathryn-melvin knpc kpc)
151  (say knpc "The cook? A dirty old man and a drunk."))
152
153(define (kathryn-sorceress knpc kpc)
154  (say knpc "[She covers her mouth in mock fright] Ooh! You guessed my dirty "
155       "little secret! Now beat it or I'll use you as a torch."))
156
157(define (kathryn-scro knpc kpc)
158  (if (is-player-party-member? knpc)
159      (say knpc "But I already gave you the only one I had. "
160           "I don't even know where I got it!")
161      (say knpc "A scroll? [She laughs] Shall I turn out my pockets for you? "
162           "Mind your own business.")))
163
164
165(define kathryn-conv
166  (ifc nil
167       (method 'default kathryn-default)
168       (method 'hail kathryn-hail)
169       (method 'bye  (lambda (knpc kpc) (say knpc "Good riddance.")))
170       (method 'job  kathryn-job)
171       (method 'name kathryn-name)
172       (method 'join kathryn-join)
173
174       (method 'blow kathryn-blowjob)
175       (method 'bill kathryn-bill)
176       (method 'clie kathryn-clients)
177       (method 'comp kathryn-companion)
178       (method 'cous kathryn-cousin)
179       (method 'fait kathryn-seller)
180       (method 'hack kathryn-hackle)
181       (method 'item kathryn-seller)
182       (method 'inn  kathryn-tavern)
183       (method 'may  kathryn-may)
184       (method 'meet kathryn-thief)
185       (method 'melv kathryn-melvin)
186       (method 'nun  kathryn-blowjob)
187       (method 'ring kathryn-search)
188       (method 'sear kathryn-search)
189       (method 'sell kathryn-seller)
190       (method 'sorc kathryn-sorceress)
191       (method 'tave kathryn-tavern)
192       (method 'thud kathryn-companion)
193       (method 'thie kathryn-thief)
194       (method 'vani kathryn-vanish)
195       (method 'vill kathryn-search)
196       (method 'scro kathryn-scro)
197       ))
198
199;;----------------------------------------------------------------------------
200;; First-time constructor
201;;----------------------------------------------------------------------------
202(define (mk-kathryn)
203  (bind
204   (kern-char-force-drop
205    (kern-char-arm-self
206     (kern-mk-char
207      'ch_kathryn ;;..tag
208      "Kathryn" ;;....name
209      sp_human ;;.....species
210      oc_wizard ;;....occupation
211      s_wizard ;;.....sprite
212      faction-men ;;..faction
213      0 ;;............custom strength modifier
214      4 ;;............custom intelligence modifier
215      0 ;;............custom dexterity modifier
216      2 ;;............custom base hp modifier
217      1 ;;............custom hp multiplier (per-level)
218      4 ;;............custom base mp modifier
219      2 ;;............custom mp multiplier (per-level)
220      max-health ;; current hit points
221      -1  ;;...........current experience points
222      max-health ;; current magic points
223      0
224      kathryn-start-lvl  ;;..current level
225      #f ;;...........dead?
226      'kathryn-conv ;;conversation (optional)
227      sch_kathryn ;;..schedule (optional)
228      'spell-sword-ai ;;...custom ai (optional)
229      ;;..............container (and contents)
230      (mk-inventory
231       (list
232        (list 1 t_kathryns_letter)
233        (list 100 t_gold_coins)
234        (list 5 sulphorous_ash )
235        (list 5 ginseng )
236        (list 5 garlic )
237        (list 3 spider_silk )
238        (list 3 blood_moss )
239        (list 2 black_pearl )
240        (list 1 nightshade )
241        (list 1 mandrake )
242        (list 1 t_wis_quas_scroll)
243        ))
244      ;;..............readied arms (in addition to the container contents)
245      (list
246       t_staff
247       )
248      nil ;;..........hooks in effect
249      ))
250    #t)
251   (kathryn-mk)))
252