1 ;;----------------------------------------------------------------------------
3 ;;----------------------------------------------------------------------------
4 (define mouse-start-lvl 8)
6 ;;----------------------------------------------------------------------------
8 ;;----------------------------------------------------------------------------
10 ;;----------------------------------------------------------------------------
13 ;; Quest flags, etc, go here.
14 ;;----------------------------------------------------------------------------
15 (define (mouse-mk) (list #t))
16 (define (mouse-first-meeting? mouse) (car mouse))
17 (define (mouse-set-first-meeting! mouse val) (set-car! mouse val))
18 (define (mouse-talked)
19 (quest-data-update-with 'questentry-thiefrune 'talked 1 (quest-notify (grant-party-xp-fn 10)))
23 (define (mouse-meet-first-time knpc kpc)
25 (define (mouse-disappear)
26 (say knpc "¤ª¤Ã¤È·»Äï¤è¡¢¤â¤¦²ñ¤¤¤¿¤¯¤Ê¤«¤Ã¤¿¤Ê¡ª")
27 (kern-obj-add-effect knpc ef_invisibility nil)
32 (say knpc "¤ä¤¢¡£ÀÖ¤¤½÷¤Î¥Ñ¥·¥ê¤«¤¤¡©")
36 (say knpc "¥Ò¥§¡¼¡ª¤Ó¤Ã¤¯¤ê¤·¤¿¤è¡£")
41 (define (mouse-gratitude)
42 (say knpc "¥¢¥í¥Ú¥¯¥¹¤è´¶¼Õ¤·¤Þ¤¹¡ªÀÖ¤¤½÷¤Ï»à¤ó¤À¡ª"
43 "¤¢¤ó¤¿¡¢¤è¤¯¤ä¤Ã¤Æ¤¯¤ì¤¿¤Ê¡£")
47 (define (kathryn-speech)
48 (say ch_kathryn "¥Ð¥«¤Ê¿Í¤Í¡ªÅ¥ËÀ¤Î½ê¤Þ¤Ç°ÆÆ⤷¤Æ¤¯¤ì¤ë¤Ê¤ó¤Æ¡ª")
49 (kern-obj-set-conv ch_kathryn nil)
50 (kern-being-set-base-faction ch_kathryn faction-monster))
53 (say ch_thud "Å¥ËÀ¤¬¡¡¤¤¤¿¡ª»¦¤¹¡ª»¦¤¹¡ª»¦¤¹¡ª")
54 (kern-obj-set-conv ch_thud nil)
55 (kern-being-set-base-faction ch_thud faction-monster))
58 (open-moongate (mk-loc (loc-place (kern-obj-get-location knpc)) 7 2)))
60 (define (warp-in-kathryn kgate)
62 (kern-obj-get-location kgate)
66 (define (warp-in-thud kgate)
68 (kern-obj-get-location kgate)
72 (mouse-set-first-meeting! (kobj-gob-data knpc) #f)
73 (if (defined? 'ch_kathryn)
74 (if (is-alive? ch_kathryn)
75 (if (is-player-party-member? ch_kathryn)
77 ;; kathryn is alive in the party (if thud is defined then he must
78 ;; be in the party, too; see kathryn.scm)
80 (kern-char-leave-player ch_kathryn)
82 (if (defined? 'ch_thud)
84 (if (is-alive? ch_thud)
86 (kern-char-leave-player ch_thud)))
89 ;; kathryn is alive but not in the party so gate her in, and
90 ;; thud, too, if he's alive
91 (let ((kgate (open-gate))
92 (use-thud? (and (defined? 'ch_thud)
93 (is-alive? ch_thud))))
95 (warp-in-kathryn kgate)
102 (close-moongate kgate)
106 (if (is-player-party-member? ch_kathryn)
108 ;; but in the party so remove her and thud, too, if he's defined
110 (kern-char-leave-player ch_kathryn)
111 (if (defined? 'ch_thud)
112 (if (is-alive? ch_thud)
115 (kern-char-leave-player ch_thud)
118 (kern-char-leave-player ch_thud)
122 ;; kathryn is dead but not in the party (since she is not in the
123 ;; party, thud cannot be either)
126 ;; kathryn is undefined (so she could never have been in the party, and
127 ;; thus neither could thud)
130 ;;----------------------------------------------------------------------------
132 ;;----------------------------------------------------------------------------
133 (define (mouse-hail knpc kpc)
134 (let ((mouse (kobj-gob-data knpc)))
135 (if (mouse-first-meeting? mouse)
136 (mouse-meet-first-time knpc kpc)
138 (say knpc "¤¢¡¢¤³¤ó¤Ë¤Á¤Ï¡£¤Ø¤Ø¤Ã¡£")
143 (define (mouse-default knpc kpc)
144 (say knpc "¤µ¤¢¤É¤¦¤«¤Ê¡£"))
146 (define (mouse-name knpc kpc)
147 (say knpc "¥Í¥º¥ß¤Ç¤¹¡£"))
149 (define (mouse-join knpc kpc)
150 (say knpc "°¤¤¤Ê¤¢¡£¶¦Æ±ºî¶È¤Ë¤Ï¸þ¤¤¤Æ¤Ê¤¤¤ó¤À¡£¤Ø¤Ø¡£"))
152 (define (mouse-job knpc kpc)
153 (say knpc "¤¨¡¼¡¢Êª¤ò¡Ä½¸¤á¤ë¤³¤È¡£"))
156 (define (mouse-coll knpc kpc)
157 (say knpc "Å¥ËÀ¤È¸Æ¤Ö¿Í¤â¤¤¤ë¡£"))
159 (define (mouse-thie knpc kpc)
160 (say knpc "ºÇ¶á¤Þ¤Ç¤Ï¤¤¤¤»Å»ö¤À¤Ã¤¿¤Í¤¨¡£"
161 "²¿¤«Íߤ·¤¤Êª¤¬¤¢¤ì¤Ð¡¢¤½¤ì¤ò¼ê¤ËÆþ¤ì¤ë¤¿¤á¤Ë¤¢¤Ã¤·¤Ë¶â¤òʧ¤Ã¤¿¡£"
162 "¤Ç¡¢¤³¤ÎÊѤÊÀÖ¤¤½÷¤Ë¸Û¤ï¤ì¤¿¤ó¤À¡£"))
164 (define (mouse-lady knpc kpc)
165 (say knpc "¤½¤ÎÀÖ¤¤½÷¤Ï¤¢¤Ã¤·¤ò¤¢¤ëʪ¤ò¼ê¤ËÆþ¤ì¤ë¤¿¤á¤Ë¸Û¤Ã¤¿¡£¤½¤Î¸å¡¢¶â¤È¸ò´¹¤¹¤ë¤¿¤á¤Ë²ñ¤Ã¤¿¡£"
166 "¤³¤³¤Þ¤Ç¤Ï¤è¤¯¤¢¤ë¤³¤È¤À¡£¤ï¤«¤ë¤À¤í¡©"
167 "¤Ç¤â¡¢¤³¤Î½÷¤Ï¶â¤òʧ¤¦¤«¤ï¤ê¤Ë¡¢¤¢¤Ã¤·¤ò»¦¤½¤¦¤È¤·¤¿¤ó¤À¡ª"))
169 (define (mouse-kill knpc kpc)
170 (say knpc "ÀÖ¤¤½÷¤È¥´¥Ä¤¤¼ê²¼¤ÏÍƼϤʤ«¤Ã¤¿¡ª"
171 "¤³¤¤¤Ä¤é¤òÅݤ·¤¿¤³¤È¤À¤±¤Ï´¶¼Õ¤¹¤ë¤è¡£¤À¤¬¡¢¤³¤¤¤Ä¤é¤¬Ã±ÆȤǤä¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤µ¤¤¬¤¹¤ë¡£"
172 "¤³¤Î¤¯¤À¤é¤Ê¤¤ÀÐÈǤȤª¤µ¤é¤Ð¤·¤Ê¤¤¸Â¤ê¤º¤Ã¤ÈÁÀ¤ï¤ì¤½¤¦¤À¡ª"))
174 (define (mouse-rune knpc kpc)
175 (if (not (in-inventory? knpc t_rune_k))
176 (say knpc "¤½¤ì¤Ï¤â¤¦¤¢¤ó¤¿¤ÎÌäÂê¤À¡¢¿Æͧ¤è¡ª")
179 (define (give-rune gold)
180 (let* ((pgold (kern-player-get-gold)))
182 (kern-obj-add-gold kpc (- 0 gold))
183 (let ((price (min pgold gold)))
184 (say knpc "¤ª¤Ã¤È¡¢¶â¤¬Â¤ê¤Ê¤¤¤Ê¡ª"
185 "ʧ¤¨¤ëʬ¤À¤±¼õ¤±¼è¤Ã¤Æ¤ª¤³¤¦¡£")
186 (kern-obj-add-gold kpc (- 0 price)))))
187 (kern-obj-remove-from-inventory knpc t_rune_k 1)
188 (kern-obj-add-to-inventory kpc t_rune_k 1)
189 (quest-data-update-with 'questentry-thiefrune 'recovered 1 (quest-notify (grant-party-xp-fn 50)))
192 (say knpc "ÀÖ¤¤½÷¤Î¤¿¤á¤Ë¼ê¤ËÆþ¤ì¤¿¤³¤ÎÀÐÈǤϡ¢ºÇ½é¤Ëʹ¤¤¤¿¤È¤¤«¤é¤º¤Ã¤È¤ä¤Ã¤«¤¤¤´¤È¤Ë²á¤®¤Ê¤«¤Ã¤¿¡£"
193 "¤³¤ì¤¬²¿¤Ê¤Î¤«¤â¤ï¤«¤é¤Ê¤¤¡ª"
194 "¤ªÇ㤤ÆÀ²Á³Ê¤Ç¤¢¤ó¤¿¤ËÇä¤Ã¤Æ¤ä¤í¤¦¡£¤É¤¦¡©¶â²ß500Ëç¤À¡£")
195 (if (kern-conv-get-yes-no? kpc)
198 (say knpc "¤¦¡¼¤ó¡¢ÀÖ¤¤½÷¤«¤é½õ¤±¤Æ¤â¤é¤Ã¤¿¼Ú¤ê¤¬¤¢¤ë¤«¤é¤Ê¡£250Ëç¤Ï¤É¤¦¤À¡©")
199 (if (kern-conv-get-yes-no? kpc)
202 (say knpc "¾¦Çä¾å¼ê¤À¤Ê¤¢¡¢¿Æͧ¤è¡£100Ëç¡©")
203 (if (kern-conv-get-yes-no? kpc)
207 (if (kern-conv-get-yes-no? kpc)
210 (say knpc "¤ï¤«¤Ã¤¿¡£»ý¤Ã¤Æ¤±¡£¤³¤ì¤Ç¤¤¤¤¤Ê¡©")
211 (if (kern-conv-get-yes-no? kpc)
214 (say knpc "¤¿¤Î¤à¤è¡ª"
215 "¶â¤ò½Ð¤¹¤«¤é»ý¤Ã¤Æ¹Ô¤Ã¤Æ¤¯¤ì¡ª"
217 (give-rune (- 0 100))))))
220 (define (mouse-bye knpc kpc)
221 (say knpc "°µ¤¤Ï¤Ê¤¤¤¬¡¢¤â¤¦ÆóÅ٤Ȳñ¤¤¤¿¤¯¤Ê¤¤¤Í¡£"))
223 (define (mouse-alopex knpc kpc)
224 (say knpc "¥¢¥í¥Ú¥¯¥¹¡©¤¢¤¢¡¢¸Å¤¤Å¥ËÀ¤Î¿À¤À¡£"
229 (method 'default mouse-default)
230 (method 'hail mouse-hail)
231 (method 'bye mouse-bye)
232 (method 'job mouse-job)
233 (method 'name mouse-name)
234 (method 'join mouse-join)
236 (method 'coll mouse-coll)
237 (method 'kill mouse-kill)
238 (method 'lady mouse-lady)
239 (method 'rune mouse-rune)
240 (method 'thie mouse-thie)
241 (method 'alop mouse-alopex)
244 ;;----------------------------------------------------------------------------
245 ;; First-time constructor
246 ;;----------------------------------------------------------------------------
249 (kern-char-force-drop
254 sp_human ;;.....species
255 nil ;;..........occupation
256 s_brigand ;;.....sprite
257 faction-men ;;..faction
258 0 ;;............custom strength modifier
259 0 ;;............custom intelligence modifier
260 6 ;;............custom dexterity modifier
261 2 ;;............custom base hp modifier
262 2 ;;............custom hp multiplier (per-level)
263 1 ;;............custom base mp modifier
264 1 ;;............custom mp multiplier (per-level)
265 max-health ;;..current hit points
266 -1 ;;...........current experience points
267 max-health ;;..current magic points
269 mouse-start-lvl ;;..current level
270 #f ;;...........dead?
271 'mouse-conv ;;...conversation (optional)
272 nil ;;..........schedule (optional)
273 nil ;;..........custom ai (optional)
275 ;;..........container (and contents)
279 (list 1 t_armor_leather)
280 (list 1 t_leather_helm)
285 nil ;;..........readied arms (in addition to the container contents)
286 nil ;;..........hooks in effect