1;;----------------------------------------------------------------------------
2;; Constants
3;;----------------------------------------------------------------------------
4
5;;----------------------------------------------------------------------------
6;; Schedule
7;;
8;; In Glasdrin.
9;;----------------------------------------------------------------------------
10(kern-mk-sched 'sch_jeff
11               (list 0  0  gcj-bed      "sleeping")
12               (list 7  0  gs-altar    "idle")
13               (list 8  0  ghg-s6      "eating")
14               (list 9  0  gc-hall     "working")
15               (list 12 0  ghg-s3      "eating")
16               (list 13 0  gc-train    "working")
17               (list 18 0  ghg-s3      "eating")
18               (list 19 0  ghg-hall    "idle")
19               (list 21 0  gcj-bed      "sleeping")
20               )
21
22;; Make another schedule which will be assigned when Jeffreys resigns after the
23;; trial.
24(kern-mk-sched 'sch_jeff_resigned
25               (list 0 0 kun-road "sleeping")
26               (list 9 0 campfire-4 "idle")
27               (list 13 0 cantina-5 "idle")
28               (list 20 0 kun-road "idle")
29               )
30
31;;----------------------------------------------------------------------------
32;; Gob
33;;----------------------------------------------------------------------------
34(define (jeff-mk) nil)
35
36;;----------------------------------------------------------------------------
37;; Conv
38;;
39;; Jeffreys is the Commander of the Paladins of Glasdrin.
40;; He lives in Glasdrin, and reports directly to the ruler there,
41;; currently the Stewardess, Victoria.
42;;----------------------------------------------------------------------------
43
44;; Basics...
45(define (jeff-hail knpc kpc)
46  (cond	((player-stewardess-trial-done?)
47         (say knpc "I want you to know Wanderer, I did not betray the Warritrix. I did not know about the ambush. "
48              "But I knew something was amiss, I should have acted on my suspicions. "
49              "The Commander of Glasdrin must never fail in diligence. "
50              "For that reason, I have resigned my post.")
51         (aside kpc 'ch_ini "Don't pretend innocence, you corrupt old toad. "
52                "Should we ever meet on the field it will be the end of one of us.")
53         (kern-conv-end)
54         )
55        (else
56         (say knpc "[You meet a splendid paladin] Well-met, sir.")
57         )))
58
59(define (jeff-default knpc kpc)
60  (say knpc "I cannot help you with that."))
61
62(define (jeff-name knpc kpc)
63  (say knpc "I am Commander Jeffreys."))
64
65(define (jeff-join knpc kpc)
66  (say knpc "I already have a job."))
67
68(define (jeff-job knpc kpc)
69  (say knpc "I command the paladins of Glasdrin."))
70
71(define (jeff-bye knpc kpc)
72  (say knpc "Fare thee well."))
73
74;; Special
75(define (jeff-comm knpc kpc)
76  (say knpc "I am the highest-ranking official in Glasdrin, "
77       "save the Stewardess. The military arm of Glasdrin reports to me."))
78
79(define (jeff-mili knpc kpc)
80  (say knpc "Glasdrin is unbeatable on land. All citizens of Glasdrin are "
81       "required to serve a tour. Since everyone has received basic training "
82       "they can be called to duty in a crisis."))
83
84(define (jeff-pala knpc kpc)
85  (say knpc "The paladins of Glasdrin are the finest warriors the Shard has "
86       "ever seen. Individually their skills vary, of course, but their "
87       "strength comes from fighting as a unit."))
88
89(define (jeff-skil knpc kpc)
90  (say knpc "Yes, whether they be a raw recruit or the Warritrix herself, "
91       "when fighting with others in a unit the paladins of Glasdrin are "
92       "nigh unbeatable."))
93
94(define (jeff-warr knpc kpc)
95  (cond ((player-found-warritrix?)
96         (if (ask? knpc kpc "[Cough] Yes. Most unfortunate. We all mourn her loss. "
97                   "But to lose her whole squad like that she must have made some error in judgment. "
98                   "Don't you think so?")
99             (say knpc "Yes. It happens to the best of us. Every military leader makes mistakes, "
100                  "and it costs lives. Now I'm afraid I'm very busy. Good day, sir.")
101             (if (ask? knpc kpc "Are you implying that she was led into some kind of trap?")
102                 (say knpc "Ridiculous. I do not have to answer to you. "
103                      "Speak to the Stewardess if you have a complaint. "
104                      "And if you try to make trouble, the guards will expel you from the city. "
105                      "In fact, it might be best if you left now.")
106                 (say knpc "Good. Mistakes happen in war. Sometimes even friends are slain, "
107                      "when they are mistaken for foes. I hope you take care, friend. Good day.")
108                 ))
109         (kern-conv-end)
110         )
111	 ((quest-data-assigned? 'questentry-wise)
112         (say knpc "The Warritrix is a living treasure; the most cunning, versatile "
113              "warrior of the age. I've seen her beat men twice her size and "
114              "slay fearsome beasts. At the moment she has been called away on an "
115              "errand.")
116              (quest-data-update 'questentry-warritrix 'assignment 1)
117         )
118	 (else
119         (say knpc "The Warritrix is a living treasure; the most cunning, versatile "
120              "warrior of the age. I've seen her beat men twice her size and "
121              "slay fearsome beasts. At the moment she is out on patrol.")
122              (quest-data-update 'questentry-warritrix 'general-loc 1)
123         )
124	 ))
125
126(define (jeff-warr-ready subfn)
127	(if (quest-data-assigned? 'questentry-wise)
128		(subfn)
129		(jeff-default knpc kpc)
130		))
131
132(define (jeff-erra knpc kpc)
133	(jeff-warr-ready (lambda ()
134  (say knpc "[He looks a bit uneasy] Yes, she took a squad to the Lost Halls. "
135       "It's odd that she hasn't reported back yet... "
136       "Normally I would send a search party, "
137       "but at the moment I haven't the troops to spare.")
138      (quest-data-update-with 'questentry-rune-l 'located 1 (quest-notify nil))
139      (quest-data-update 'questentry-warritrix 'lost-hall 1)
140       )))
141
142(define (jeff-sear knpc kpc)
143	(jeff-warr-ready (lambda ()
144	(say knpc "[He grows exasperated] I can spare no one to search for the "
145       "Warritrix! Now, if you don't mind, I'm a busy man...")
146  (kern-conv-end)
147  (if (is-player-party-member? ch_ini)
148      (say ch_ini "Something smells rotten in Denmark. "
149           "We've got to find her!"))
150  )))
151
152;; Townspeople...
153(define (jeff-glas knpc kpc)
154  (say knpc "A mighty city, Glasdrin has never fallen to invaders."))
155
156(define (jeff-ange knpc kpc)
157  (say knpc "Angela is a most gracious, hospitable woman."))
158
159(define (jeff-patc knpc kpc)
160  (say knpc "Doc Patch is an experienced medik and head of our hospital."))
161
162(define (jeff-stew knpc kpc)
163  (say knpc "The Stewardess bears the weight of leadership well."))
164
165(define (jeff-ini knpc kpc)
166  (say knpc "Lt. Inago is a natural warrior and a fine officer."))
167
168(define (jeff-jess knpc kpc)
169  (say knpc "Jess is a cheery lass, and a welcome sight at the end of a "
170       "hard day as she pours a glass."))
171
172(define (jeff-ches knpc kpc)
173  (say knpc "We miss his mighty arm in battle, but his weapons and armor "
174       "serve us well, too."))
175
176(define (jeff-lost knpc kpc)
177  (say knpc "The Lost Halls are very dangerous. No place for amateurs. "
178       "I'd advise you to stay away! Now good day, sir!")
179  (kern-conv-end)
180  (if (is-player-party-member? ch_ini)
181	(begin
182      (say ch_ini "Don't worry. I know where to find the Lost Halls. "
183           "We'll need to get a ship and sail to ["
184           (loc-x lost-halls-loc) " "
185           (loc-y lost-halls-loc) "].")
186	   (quest-data-update-with 'questentry-rune-l 'know-hall 1 (quest-notify nil))
187	   (quest-data-update 'questentry-warritrix 'lost-hall-loc 1)
188	   )
189	   )
190  )
191
192(define jeff-conv
193  (ifc glasdrin-conv
194
195       ;; basics
196       (method 'default jeff-default)
197       (method 'hail jeff-hail)
198       (method 'bye  jeff-bye)
199       (method 'job  jeff-job)
200       (method 'name jeff-name)
201       (method 'join jeff-join)
202
203       (method 'comm jeff-comm)
204       (method 'jani (lambda (knpc kpc) (say knpc "My assistant Janice is invaluable as a tactician.")))
205       (method 'mili jeff-mili)
206       (method 'pala jeff-pala)
207       (method 'warr jeff-warr)
208       (method 'erra jeff-erra)
209       (method 'glas jeff-glas)
210       (method 'ange jeff-ange)
211       (method 'lost jeff-lost)
212       (method 'patc jeff-patc)
213       (method 'stew jeff-stew)
214       (method 'vict jeff-stew)  ;; A synonym
215       (method 'ini  jeff-ini)
216       (method 'inag jeff-ini)
217       (method 'jess jeff-jess)
218       (method 'ches jeff-ches)
219       ))
220
221(define (mk-jeffreys)
222  (bind
223   (kern-mk-char 'ch_jeffreys       ; tag
224                 "Jeffreys"          ; name
225                 sp_human            ; species
226                 oc_warrior          ; occ
227                 s_companion_paladin ; sprite
228                 faction-glasdrin         ; starting alignment
229                 2 1 1               ; str/int/dex
230                 0 0                 ; hp mod/mult
231                 0 0                 ; mp mod/mult
232                 max-health -1 max-health 0 5  ; hp/xp/mp/AP_per_turn/lvl
233                 #f                  ; dead
234                 'jeff-conv         ; conv
235                 sch_jeff           ; sched
236                 'townsman-ai                 ; special ai
237                 nil                 ; container
238                 (list t_armor_chain
239                       t_chain_coif
240                       t_sword
241                       ))         ; readied
242   (jeff-mk)))
243