1;;----------------------------------------------------------------------------
2;; Constants
3;;----------------------------------------------------------------------------
4
5;;----------------------------------------------------------------------------
6;; Schedule
7;;
8;; In Glasdrin
9;;----------------------------------------------------------------------------
10(kern-mk-sched 'sch_stew
11               (list 0  0  gv-bed       "sleeping")
12               (list 7  0  ghg-s4       "eating")
13               (list 8  0  gc-hall "idle")
14               (list 12 0  ghg-s1       "eating")
15               (list 13 0  gc-hall "idle")
16               (list 18 0  ghg-s1       "eating")
17               (list 19 0  gc-hall "idle")
18               (list 20 0  gv-bed       "sleeping")
19               )
20
21;;----------------------------------------------------------------------------
22;; Gob
23;;----------------------------------------------------------------------------
24(define (stew-mk) (list 'townsman #f))
25(define (stew-met? stew) (cadr stew))
26(define (stew-met! stew) (set-car! (cdr stew) #t))
27
28;;----------------------------------------------------------------------------
29;; Conv
30;;
31;; Victoria is the temporal ruler of Glasdrin,
32;; bearing the title of Stewardess.
33;;----------------------------------------------------------------------------
34
35;; Basics...
36(define (stew-hail knpc kpc)
37  (if (not (stew-met? (kobj-gob-data knpc)))
38      (begin
39        (say knpc "[You meet a stately woman with an air of authority] "
40             "Hail, Wanderer. I have heard of your coming.")
41        (stew-met! (kobj-gob-data knpc)))
42      (say knpc "[You meet a stately woman with an air of authority] "
43           "Hail again, Wanderer.")))
44
45(define (stew-default knpc kpc)
46  (say knpc "I cannot help you with that."))
47
48(define (stew-name knpc kpc)
49  (say knpc "I am Victoria, Stewardess of Glasdrin."))
50
51(define (stew-join knpc kpc)
52  (say knpc "How bold!"))
53
54(define (stew-job knpc kpc)
55  (say knpc "I am the Stewardess of Glasdrin."))
56
57(define (stew-bye knpc kpc)
58  (say knpc "Keep to the path, Wanderer."))
59
60;; Warritrix...
61(define (stew-warr knpc kpc)
62  (cond ((player-found-warritrix?)
63      (if (ask? knpc kpc "I heard of her passing. Surely you do not think I had anything to do with it?")
64          (begin
65            (say knpc "If you dare to accuse me, strike the statue in the courtyard. "
66                 "But I warn you: you are a homeless vagrant, and I am ruler of the most powerful city in the land. "
67                 "It will be my word against yours, and we deal harshly with false accusers.")
68            (aside kpc 'ch_ini "Doubt not, you treacherous witch, that we will accuse you, "
69                   "and with more than just words.")
70            )
71          (say knpc "Of course not. Ignore the rumours. They are spread by jealous political rivals.")
72          ))
73      ((quest-data-assigned? 'questentry-wise)
74		(say knpc "I have not seen her in some time. I believe she has been called away on some errand.")
75		(quest-data-update 'questentry-warritrix 'assignment 1)
76		)
77	(else
78		(say knpc "One of our finest warriors. I believe she is out on patrol right now.")
79		 (quest-data-update 'questentry-warritrix 'general-loc 1)
80		 )
81      ))
82
83(define (stew-erra knpc kpc)
84  (say knpc "Speak with Commander Jeffries, he may know the details."))
85
86;; Steward...
87(define (stew-stew knpc kpc)
88  (say knpc "Glasdrin is ruled by an elected Steward, "
89       "who is charged with the safekeeping of the City and the Realm. "
90       ))
91
92(define (stew-real knpc kpc)
93  (say knpc "The Realm of Glasdrin extends west to the Fens and southeast to "
94       "the Great Wood. We also maintain a presence between the surface and "
95       "the Underworld."))
96
97;; Rune...
98(define (stew-rune knpc kpc)
99	(if (quest-data-assigned? 'questentry-wise)
100		(say knpc "I know the Warritrix wore... wears a Rune about her neck, "
101			"but I know not what it signifies.")
102		(say knpc "I know the Warritrix wears a Rune about her neck, "
103			"but I know not what it signifies.")
104		)
105       (quest-data-assign-once 'questentry-rune-l)
106       )
107
108(define (stew-wore knpc kpc)
109	(if (quest-data-assigned? 'questentry-wise)
110		(say knpc "What are you implying? It was merely a slip of the tongue.")
111		(stew-default knpc kpc)
112	))
113
114;; Absalot...
115(define (stew-absa knpc kpc)
116  (say knpc "Absalot was a cancer on the land. It had to be removed "
117       "completely before its evil spread. Surely you see the wisdom "
118       "of this?")
119  (if (kern-conv-get-yes-no? kpc)
120      (say knpc "The loss of innocent lives is always a tragedy, but it is "
121           "impossible to fight wars without them.")
122      (say knpc "What do you know of affairs of state? You are little more "
123           "than a common rogue.")))
124
125(define (stew-inno knpc kpc)
126  (say knpc "Not all the citizens of Absalot were wicked, "
127       "but they tolerated wickedness in their midst."))
128
129(define (stew-wick knpc kpc)
130  (say knpc "The people of Absalot engaged in human sacrifice and "
131       "demon-worship. They began to have converts in other cities, even "
132       "here."))
133
134(define (stew-conv knpc kpc)
135  (say knpc "When we learned of them, we burned them at the stake. "
136       "I met with the Wise and the leaders of the other cities to decide "
137       "what to do.")
138  (prompt-for-key)
139  (say knpc "Some of the Wise were squeamish, but in the end "
140       "we overruled their dissent and formed a coalition army. "
141       "It marched on Absalot, razed it and sealed "
142       "the passage so that none may build on that site ever again."))
143
144(define (stew-wise knpc kpc)
145  (say knpc "The Wise are an aid to the rulers of the cities, but alone they "
146       "have little power. Even the Enchanter could not stand against the "
147       "armed might of Glasdrin should he ever stand in our way.")
148       (quest-wise-subinit 'questentry-enchanter)
149       )
150
151(define (stew-rogu knpc kpc)
152  (say knpc "Where do you come from? What is your purpose in our land? "
153       "For all we know you are a spy, a scout at the vanguard of an alien "
154       "army. Are you?")
155  (if (kern-conv-get-yes-no? kpc)
156      (say knpc "Hmm. If I believed you I would throw you to the inquisitors "
157           "and torture the truth out of you. But I think you are a poser "
158           "and a self-inflated fool. You will vanish into obscurity like "
159           "the Wanderers that preceded you.")
160      (say knpc "No, I think you are merely a vagabond, here by "
161           "accident. All the same, I will be watching you carefully, "
162           "Wanderer. If you betray my city you will know my wrath at the "
163           "hands of our torturers."))
164  (kern-conv-end))
165
166;; Townspeople...
167(define (stew-glas knpc kpc)
168  (say knpc "Glasdrin is a beacon of light in these dark times. "
169       "Time and again her paladins have sacrificed for the good of "
170       "the realm, and turned back the tide of darkness. The Peninsula "
171       "owes much to this city."))
172
173(define (stew-unde knpc kpc)
174  (say knpc "The Underworld is a sunless realm where monsters breed. "
175       "I am committed to purging it of these evil creatures, "
176       "for they are a menace to all."))
177
178(define stew-conv
179  (ifc glasdrin-conv
180
181       ;; basics
182       (method 'default stew-default)
183       (method 'hail stew-hail)
184       (method 'bye  stew-bye)
185       (method 'job  stew-job)
186       (method 'name stew-name)
187       (method 'join stew-join)
188
189       (method 'city stew-glas)
190       (method 'glas stew-glas)
191       (method 'warr stew-warr)
192       (method 'erra stew-erra)
193       (method 'stew stew-stew)
194       (method 'real stew-real)
195       (method 'absa stew-absa)
196       (method 'wore stew-wore)
197       (method 'rune stew-rune)
198       (method 'inno stew-inno)
199       (method 'wick stew-wick)
200       (method 'conv stew-conv)
201       (method 'wise stew-wise)
202       (method 'rogu stew-rogu)
203       (method 'unde stew-unde)
204       ))
205
206(define (mk-steward)
207  (bind
208   (kern-char-force-drop
209    (kern-mk-char 'ch_steward         ; tag
210                  "Victoria"          ; name
211                  sp_human            ; species
212                  nil                 ; occ
213                  s_lady              ; sprite
214                  faction-glasdrin         ; starting alignment
215                  1 3 0               ; str/int/dex
216                  0 0                 ; hp mod/mult
217                  0 0                 ; mp mod/mult
218                  max-health -1 max-health 0 6  ; hp/xp/mp/AP_per_turn/lvl
219                  #f                  ; dead
220                  'stew-conv          ; conv
221                  sch_stew            ; sched
222                  'townsman-ai                 ; special ai
223                  (mk-inventory (list (list 1 t_sword_4)
224                                      (list 1 t_stewardess_chest_key)
225                                      ))    ; container
226                  nil                 ; readied
227                  )
228    #t)
229   (stew-mk)))
230