1 ;;----------------------------------------------------------------------------
5 ;;----------------------------------------------------------------------------
6 (kern-mk-sched 'sch_ilya
7 (list 0 0 gh-ilyas-bed "sleeping")
8 (list 6 0 gh-stable "working")
9 (list 7 0 gh-kitchen "working")
10 (list 12 0 gh-table-1 "eating")
11 (list 13 0 gh-pasture "working")
12 (list 15 0 gh-all "idle")
13 (list 17 0 gh-table-1 "eating")
14 (list 18 0 gh-living-room "idle")
15 (list 20 0 gh-ilyas-bed "sleeping"))
17 ;;----------------------------------------------------------------------------
20 ;; ¥¤¥ê¥¢¤Ë´Ø¤¹¤ëËÁ¸±¤Ï¡¢Èà½÷¤Î²È²¤ò»¦¤·¤¿¥È¥í¥ë¤«¤éƨ¤²¤¿¤È¤¡¢²È¤ËÃ֤˺¤ì
21 ;; ¤¿ÇϤΤ̤¤¤°¤ë¤ß¤òõ¤¹¤³¤È¤Ç¤¢¤ë¡£ËÁ¸±¤Î¥Õ¥é¥°¤ÏÈà½÷¤Îgob¤Ë³ÊǼ¤µ¤ì¤ë¡£
22 ;;----------------------------------------------------------------------------
23 (define (ilya-mk gave-quest? finished-quest?)
24 (list gave-quest? finished-quest?))
25 (define (ilya-gave-quest? ilya) (car ilya))
26 (define (ilya-quest-done? ilya) (cadr ilya))
27 (define (ilya-give-quest ilya) (set-car! ilya #t))
28 (define (ilya-finish-quest ilya) (set-car! (cdr ilya) #t))
30 ;;----------------------------------------------------------------------------
33 ;; Puska -- ilya's stuffed horse toy -- is a quest item. Nothing special about
34 ;; it really but it is unique and needs its own object type. The object itself
35 ;; is declared in the p_abandoned_cellar constructor. But the type declaration
36 ;; needs to be in a file that is reloaded, so here is as good a place as any.
37 ;;----------------------------------------------------------------------------
40 (method 'get (lambda (kobj getter)
41 (kern-log-msg "»Ò¶¡¤¬¤Ê¤¯¤·¤¿¤â¤Î¤Ë°ã¤¤¤Ê¤¤¡ª")
42 (kobj-get kobj getter)))))
44 (mk-obj-type 't_puska "ÇϤΤ̤¤¤°¤ë¤ß" s_toy_horse layer-item puska-ifc)
46 ;;----------------------------------------------------------------------------
49 ;; This is a single response in Ilya's conversation. I've called it our here
50 ;; separately to make it obvious.
51 ;;----------------------------------------------------------------------------
52 (define (ilya-quest knpc kpc)
53 (let ((ilya (kobj-gob-data knpc)))
54 (display ilya)(newline)
55 (if (ilya-gave-quest? ilya)
57 ;; yes - gave quest already
58 (if (ilya-quest-done? ilya)
59 (say knpc "¥Ñ¥¹¥«¤Ïº£¤È¤Ã¤Æ¤â¹¬¤»¡ª")
61 (say knpc "¥Ñ¥¹¥«¤Ï¸«¤Ä¤«¤Ã¤¿¡©")
62 (if (kern-conv-get-yes-no? kpc)
66 (say knpc "ÊÖ¤·¤Æ¤¯¤ì¤ë¡©")
67 (if (kern-conv-get-yes-no? kpc)
69 ;; yes - ilya may have puska
70 (if (kern-obj-has? kpc t_puska)
72 ;; yes - player has puska
74 (kern-obj-remove-from-inventory kpc t_puska 1)
75 (say knpc "¤³¤³¡¢¤³¤³¤è¡¢¥Ñ¥¹¥«¡£"
76 "¤â¤¦°Â¿´¤è¡£¡ÎÈà½÷¤Ï¿¶¤êÊ֤ä¿¡£¡Ï¤¢¤ê¤¬¤È¤¦¡ª¤ªÎ餬¤Ç¤¤ì¤Ð¤¤¤¤¤±¤ì¤É¡£"
77 "ÂԤäơ¢¤³¤ì¤ò»ý¤Ã¤Æ¤¤¤Ã¤Æ¡£ËâË¡»È¤¤¤¬»È¤¦¤â¤Î¤À¤Ã¤Æ¡¢¤ªÊ줵¤ó¤¬¸À¤Ã¤Æ¤¿¡£¸«¤Ä¤±¤¿¤È¤¤Ï¤¤¤Ä¤â¼è¤Ã¤Æ¤¤¤¿¤Î¡£")
78 (ilya-finish-quest ilya)
79 (kern-obj-add-to-inventory kpc nightshade 23)
82 ;; no - puska not in player inventory
84 (say knpc "¡Îµã¤¤Ê¤¬¤é¡Ï¤¤¤Ê¤¤¤¸¤ã¤Ê¤¤¡ª")
87 ;; no - ilya can't have puska
89 (say knpc "Âç¿Í¤Ë¤Ê¤Ã¤¿¤éËâË¡»È¤¤¤Ë¤Ê¤ë¡ª"
90 "¤½¤·¤Æ¤¢¤Ê¤¿¤ò¾Ã¤·Ãº¤Ë¤·¤Æ¤ä¤ë¤Î¡ª")
93 ;; no - didn't find her yet
95 (say knpc "ÇÀ¾ì¤Î¾ì½ê¤Ï¤ª¤Ü¤¨¤Æ¤ë¡©")
96 (if (kern-conv-get-yes-no? kpc)
97 (say knpc "¤¤Ã¤È¤½¤³¤Ë¤¤¤ë¤Î¡ª")
98 (say knpc "À¾¤Ø¹Ô¤Ã¤Æ»³Æ»¤òÄ̤ꡢË̤˵֤˹Ԥ±¤Ð¤¢¤ë¤Î¡£"))))))
100 ;; no - didn't give quest yet
102 (say knpc "¥Ñ¥¹¥«¤Ï»ä¤ÎÇϤΤ̤¤¤°¤ë¤ß¤Ê¤Î¡£¤Ç¤â¤Ê¤¯¤·¤Æ¤·¤Þ¤Ã¤¿¡ª"
103 "¸«¤Ä¤±¤¿¤é¶µ¤¨¤Æ¤¯¤ì¤ë¡©")
104 (if (kern-conv-get-yes-no? kpc)
106 (say knpc "ÇÀ¾ì¤ÏÀ¾Â¦¤Ø¤ÎÆ»¤ÎË̤ε֤ˤ¢¤ë¤ï¡£"
107 "¥È¥í¥ë¤Ëµ¤¤ò¤Ä¤±¤Æ¡ª")
108 (ilya-give-quest ilya))
110 (say knpc "¥Ñ¥¹¥«¤ò¼è¤Ã¤¿¤ê¤·¤¿¤é¡¢Âç¿Í¤Ë¤Ê¤Ã¤¿¤È¤¡¢¤¢¤Ê¤¿¤ò¸«¤Ä¤±¤ë¤ï¡£")
111 (kern-conv-end)))))))
113 (define (ilya-join knpc kpc)
114 (say knpc "»ä»Ò¶¡¤Ê¤Î¤Ë¡£ÊѤʤΡª")
117 ;;----------------------------------------------------------------------------
120 ;; Ilya has an odd relationship with spiders. She'll teach the player a spell
121 ;; to ward off spiders if he plays along. Spiders will dominate the woods
122 ;; around the Abandoned Farm (Ilya's old home). In fact, I intend to have them
123 ;; locked in a battle with the trolls the first time the player enters the
124 ;; Abandoned Farm. I'm planning on having a "great mother" spider known around
125 ;; these parts as Angril or Angriss, perhaps she was one of Ilya's pets as a
126 ;; child - I'm not sure how I want to play that one out yet.
127 ;;----------------------------------------------------------------------------
128 (define (ilya-animals knpc kpc)
129 (say knpc "ÍӤȡ¢Ç¤Î¥Á¥ã¡¼¥à¤È¡¢·Ü¤ò»ô¤Ã¤Æ¤¤¤ë¤Î¡£"
131 (if (kern-conv-get-yes-no? kpc)
133 ;; yes - the player likes animals
135 (say knpc "¤É¤Îưʪ¤¬¹¥¤¡©")
136 (let ((fav (kern-conv-get-string kpc)))
137 (if (or (string=? fav "spider") (string=? fav "¥¯¥â"))
139 ;; yes - the player's favorite animal is spiders
141 (say knpc "»ä¤â¡ª¤É¤¦¤¹¤ì¤Ð½±¤ï¤ì¤Ê¤¤¤«ÃΤäƤ¤¤ë¤Î¡£"
143 (if (kern-conv-get-yes-no? kpc)
145 ;; yes - the player wants to learn the spider ward
146 (say knpc "´Êñ¡ªÃØéá¤Î»å¤ÈÂçÉǤòº®¤¼¤Æ¡¢"
147 "¥¢¥ó¡¦¥¼¥ó¡¦¥Ù¥Ã¥È<An Xen Bet>¤È¾§¤¨¤ë¤Î¡£")
149 ;; no - the player does not want to learn the spider ward
150 (say knpc "¤½¤¦¡£¤Ç¤â»þ¡¹¿Í¤ò½±¤¦¤³¤È¤â¤¢¤ë¤Î¤è¡£")))
153 ;; no - the player's favorite animal is NOT spiders
154 (say knpc "»ä¤Ï¥¯¥â¤¬¹¥¤¡ª"))))
156 ;; no - the player does not like animals
157 (say knpc "Éݤ¯¤Ê¤¤¤è¡ª")))
159 (define (ilya-fire knpc kpc)
160 (say knpc "²Ð¤ò¤ª¤³¤¹¤Î¤Ï´Êñ¤Ê¤Î¡£¹õ¿¿¼î¤Èⲫ¤òº®¤¼¤Æ¡Ä"
162 "¤½¤·¤Æ¥ô¥¡¥¹¡¦¥Õ¥é¥à<Vas Flam>¤È¸À¤¦¤Î¡ª"))
164 (define (ilya-died knpc kpc)
165 (say knpc "¥È¥í¥ë¤¬ÇÀ¾ì¤ò½±¤Ã¤¿¤Î¡ª"
166 "¤ªÊ줵¤ó¤Ï»ä¤òÃϲ¼¼¼¤Ë±£¤·¤¿¡£"
167 "¤½¤·¤Æ¥È¥í¥ë¤¬¿²¤Æ¤¤¤ë´Ö¤ËÈ´¤±½Ð¤·¤¿¡£"
168 "¤Ç¤â¡¢¥Ñ¥¹¥«¤ò˺¤ì¤Æ¤·¤Þ¤Ã¤¿¡Ä¡£"))
170 ;;----------------------------------------------------------------------------
172 ;;----------------------------------------------------------------------------
175 ;; default if the only "keyword" which may (indeed must!) be longer than
176 ;; 4 characters. The 4-char limit arises from the kernel's practice of
177 ;; truncating all player queries to the first four characters. Default,
178 ;; on the other hand, is a feature of the ifc mechanism (see ifc.scm).
179 (method 'default (lambda (knpc kpc) (say knpc "ÃΤé¤Ê¤¤¡£")))
180 (method 'hail (lambda (knpc kpc) (say knpc "¤³¤ó¤Ë¤Á¤Ï¡£")))
181 (method 'bye (lambda (knpc kpc) (say knpc "¥Ð¥¤¥Ð¥¤¡£")))
182 (method 'job (lambda (knpc kpc) (say knpc "¤ª¤¸¤¤¤µ¤ó¤Î¼êÅÁ¤¤¤ò¤·¤Æ¤¤¤ë¤Î¡£")))
183 (method 'name (lambda (knpc kpc) (say knpc "¥¤¥ê¥¢¡£")))
184 (method 'age (lambda (knpc kpc) (say knpc "8ºÐ¡£")))
185 (method 'chor (lambda (knpc kpc) (say knpc "ưʪ¤ÎÀ¤Ïäò¤·¤¿¤ê¡¢²Ð¤ò¤ª¤³¤·¤¿¤ê¡¢ÎÁÍý¤·¤¿¤ê¤¹¤ë¤Î¡£")))
186 (method 'anim ilya-animals)
187 (method 'gran (lambda (knpc kpc) (say knpc "¤ªÉ㤵¤ó¤È¤ªÊ줵¤ó¤¬»à¤ó¤Ç¤·¤Þ¤Ã¤¿¤«¤é¡¢¤ª¤¸¤¤¤µ¤ó¤È½»¤ó¤Ç¤¤¤ë¤Î¡£")))
188 (method 'died ilya-died)
189 (method 'dead ilya-died)
190 (method 'trol (lambda (knpc kpc) (say knpc "¥È¥í¥ë¤ÏÂç·ù¤¤¡ªÂç¿Í¤Ë¤Ê¤Ã¤¿¤é¤ß¤ó¤Ê»¦¤·¤Æ¤·¤Þ¤¤¤¿¤¤¡£")))
191 (method 'hate (lambda (knpc kpc) (say knpc "¤¤¤Ä¤«ËâË¡»È¤¤¤Ë¤Ê¤Ã¤Æ¡¢Âç·ù¤¤¤Ê¤¢¤¤¤Ä¤é¤ò»¦¤·¤Æ¤·¤Þ¤¤¤¿¤¤¡ª"
192 "¤Þ¤¿Æ±¤¸¤³¤È¤¬µ¯¤³¤Ã¤Æ¤âÉݤ¬¤é¤Ê¤¤¤ï¡ª")))
193 (method 'afra (lambda (knpc kpc) (say knpc "Ãϲ¼¼¼¤Ë¤¤¤ë¤È¤Éݤ«¤Ã¤¿¡£"
194 "¤ªÉ㤵¤ó¤È¤ªÊ줵¤ó¤¬¥È¥í¥ë¤Ë¿©¤Ù¤é¤ì¤¿¤È¤¡¢¶«¤ÓÀ¼¤¬Ê¹¤³¤¨¤¿¡Ä"
195 "¡ÎÎÞ¤°¤ó¤Ç¡Ï¤â¤·¸«¤Ä¤«¤Ã¤Æ¤¿¤é¡¢¤¤Ã¤ÈƱ¤¸¤è¤¦¤Ë¿©¤Ù¤é¤ì¤Æ¤¤¤¿¡Ä¡£")))
196 (method 'momm (lambda (knpc kpc) (say knpc "¤ªÊ줵¤ó¤Ï¤â¤¦¤¤¤Ê¤¤¡£²Ð¤Î¤ª¤³¤·Êý¤ò¶µ¤¨¤Æ¤¯¤ì¤¿¤³¤È¤ò»×¤¤½Ð¤¹¡£"
197 "¥È¥í¥ë¤¬½±¤Ã¤Æ¤¤¿¤È¤¡¢°ìɤ¤òdz¤ä¤·¤Æ¤¤¤¿¤ï¡ª")))
198 (method 'dadd (lambda (knpc kpc) (say knpc "¤ªÉ㤵¤ó¤Ï¤â¤¦¤¤¤Ê¤¤¡£"
199 "¥È¥í¥ë¤ÈÀï¤Ã¤¿¤±¤É¡¢¤É¤¦¤¹¤ë¤³¤È¤â¤Ç¤¤Ê¤«¤Ã¤¿¡£")))
200 (method 'pusk ilya-quest)
201 (method 'home (lambda (knpc kpc) (say knpc "»äã¤ÎÇÀ¾ì¤ÎË̤ÈÆî¤Ë¤Ï¿¹¤¬¤¢¤Ã¤¿¤Î¡£")))
202 (method 'spid (lambda (knpc kpc) (say knpc "¤³¤Î¤¢¤¿¤ê¤Î¿¹¤Ë¤Ï¥¯¥â¤¬¤¿¤¯¤µ¤ó¤¤¤ë¤Ã¤Æ¡¢¤ª¤¸¤¤¤µ¤ó¤¬¸À¤Ã¤Æ¤¿¡£")))
203 (method 'wood (lambda (knpc kpc) (say knpc "¿¹¤ËÆþ¤ë¤Ê¤Ã¤Æ¡¢¤ª¤¸¤¤¤µ¤ó¤¬¸À¤Ã¤Æ¤¿¡£")))
205 (method 'fire ilya-fire)
206 (method 'hi ilya-fire)
207 (method 'vas ilya-fire)
208 (method 'flam ilya-fire)
209 (method 'greg (lambda (knpc kpc) (say knpc "»ä¤Î¤ª¤¸¤¤¤µ¤ó¤è¡£")))
210 (method 'join ilya-join)