1;;----------------------------------------------------------------------------
2;; Valus
3;;
4;; Initially a prisoner of Glasdrin, he becomes the new Steward after the
5;; trial.
6;;----------------------------------------------------------------------------
7
8;;----------------------------------------------------------------------------
9;; Schedule
10;;
11;; Initially, in a prison cell in the dungeons below Glasdrin.
12;; After the trial of the Stewardess, Valus is assigned Jeffries schedule.
13;;----------------------------------------------------------------------------
14
15;;----------------------------------------------------------------------------
16;; Gob
17;;----------------------------------------------------------------------------
18(define (valus-mk) (list 'townsman))
19
20;;----------------------------------------------------------------------------
21;; Conv
22;;
23;; Valus is an imprisoned nobleman, once in the service of the late
24;; Steward of Glasdrin, now languishing in the dungeons below Glasdrin.
25;;
26;;----------------------------------------------------------------------------
27
28;; Basics...
29(define (valus-hail knpc kpc)
30  (say knpc "Welcome, stranger.")
31  )
32
33(define (valus-name knpc kpc)
34  (if (player-stewardess-trial-done?)
35      (say knpc "I am Valus, Steward of Glasdrin.")
36      (say knpc "I am Valus, lord of all I survey [he gestures around the cell].")
37  ))
38
39(define (valus-job knpc kpc)
40  (cond ((player-stewardess-trial-done?)
41         (say knpc "The people of Glasdrin released me from prison, thanks to the evidence in that diary you found. "
42              "It seems I am in your debt.")
43         (prompt-for-key)
44         (say knpc "After I was released they elected me their new Steward.")
45         )
46        (else
47         (say knpc "I'm just enjoying my retirement.")
48         )))
49
50(define (valus-join kpc kpc)
51  (cond ((player-stewardess-trial-done?) (say knpc "My duties keep me here."))
52        (else (say knpc "On the contrary, why don't you open the door and join me?"))
53        ))
54
55;; Special
56(define (valus-comm knpc kpc)
57  (if (player-stewardess-trial-done?)
58         (say knpc "Janice will make a fine commander. I remember when she was just a squad leader.")
59         (say knpc "Jeffries is the new Commander. He makes a good pet for the Stewardess. I wasn't such a good dog, myself.")
60         ))
61
62(define (valus-pet knpc kpc)
63  (say knpc "After Absalot, she blamed me for the deaths of civilians, "
64       "and accused me of drunkenness and unnatural acts with trolls.")
65  (aside 'ch_ini "I thought the part about the trolls was true.")
66  )
67
68(define (valus-trol knpc kpc)
69  (say knpc "What can I say? Those trolls know how to party. [He smiles dryly]")
70  (prompt-for-key)
71  (say knpc "But seriously, she had me imprisoned for asking too many questions. "
72       "The former Steward went insane under mysterious circumstances. "
73       "For some reason she didn't like me poking into the matter.")
74  )
75
76(define (valus-absa knpc kpc)
77  (say knpc "War is hell, friend. All of this nonsense about the Accursed aside, "
78       "the mages of Absalot were growing too powerful. "
79       "Every commander knows the legend of Isin.")
80  )
81
82(define (valus-isin knpc kpc)
83  (say knpc "According to legend, the sorceress Isin almost single-handedly defeated two armies. "
84       "The army of Tulemane was so utterly vanquished that their city has been forgotten. ")
85  (prompt-for-key)
86  (say knpc "Glasdrin's army finally overcame her, but with such heavy losses that it had to abandon its objective. "
87       "We have never forgotten the lesson.")
88  )
89
90(define (valus-less knpc kpc)
91  (say knpc "The lesson of the Battle of Isin is to never let wizards get too powerful. "
92       "And if they do, don't try to face them in open combat. "
93       "You know, I've always wondered why that battle took place.")
94  )
95
96;; new....
97(define (valus-stew knpc kpc)
98  (if (player-stewardess-trial-done?)
99      (say knpc "Now that I am steward there will be some changes around here.")
100      (say knpc "That mad-woman's policies will be the ruin of Glasdrin.")
101      ))
102
103(define (valus-poli knpc kpc)
104  (say knpc "The goal of the Stewardess is to increase her own power at the expense of all else. ")
105  )
106
107(define (valus-chan knpc kpc)
108  (say knpc "My first concern is the security, stability and dominance of Glasdrin.")
109  )
110
111(define (valus-domi knpc kpc)
112  (if (ask? knpc kpc "The only way a city or state can ensure its own security is to dominate others, don't you agree?")
113      (say knpc "Yes, all wise statesmen know this, and strive to make their own state the strongest.")
114      (say knpc "If we permit other states to surpass us in strength, then they will dominate us. "
115           "As Steward, I am responsible for taking action to prevent that.")
116      ))
117
118(define valus-conv
119  (ifc glasdrin-conv
120
121       ;; basics
122       (method 'hail valus-hail)
123       (method 'job  valus-job)
124       (method 'name valus-name)
125       (method 'join valus-join)
126
127       (method 'absa valus-absa)
128       (method 'chan valus-chan)
129       (method 'civi valus-absa)
130       (method 'comm valus-comm)
131       (method 'dog  valus-pet)
132       (method 'domi valus-domi)
133       (method 'drun valus-trol)
134       (method 'isin valus-isin)
135       (method 'jeff valus-comm)
136       (method 'less valus-less)
137       (method 'pet  valus-pet)
138       (method 'poli valus-poli)
139       (method 'reti (lambda (knpc kpc) (say knpc "Formerly, I was the Commander of Glasdrin.")))
140       (method 'ruin valus-poli)
141       (method 'secu valus-domi)
142       (method 'stab valus-domi)
143       (method 'stew valus-stew)
144       (method 'trol valus-trol)
145       (method 'unna valus-trol)
146       ))
147
148(define (mk-valus)
149  (bind
150   (kern-mk-char 'ch_valus       ; tag
151                 "Valus"          ; name
152                 sp_human            ; species
153                 oc_warrior          ; occ
154                 s_fallen_paladin ; sprite
155                 faction-glasdrin         ; starting alignment
156                 2 1 1               ; str/int/dex
157                 0 0                 ; hp mod/mult
158                 0 0                 ; mp mod/mult
159                 max-health -1 max-health 0 5  ; hp/xp/mp/AP_per_turn/lvl
160                 #f                  ; dead
161                 'valus-conv         ; conv
162                 nil           ; sched
163                 'townsman-ai                 ; special ai
164                 nil                 ; container
165                 (list t_armor_chain
166                       t_chain_coif
167                       t_sword
168                       ))         ; readied
169   (valus-mk)))
170