OSDN Git Service

日本語版
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / ilya.scm
1 ;;----------------------------------------------------------------------------
2 ;; Schedule
3 ;;
4 ;; ¥°¥ì¥´¡¼¥ë¤Î¾®²°
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"))
16
17 ;;----------------------------------------------------------------------------
18 ;; Gob
19 ;;
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))
29
30 ;;----------------------------------------------------------------------------
31 ;; ¥Ñ¥¹¥«
32 ;;
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 ;;----------------------------------------------------------------------------
38 (define puska-ifc
39   (ifc '()
40        (method 'get (lambda (kobj getter)
41                       (kern-log-msg "»Ò¶¡¤¬¤Ê¤¯¤·¤¿¤â¤Î¤Ë°ã¤¤¤Ê¤¤¡ª")
42                       (kobj-get kobj getter)))))
43
44 (mk-obj-type 't_puska "ÇϤΤ̤¤¤°¤ë¤ß" s_toy_horse layer-item puska-ifc)
45
46 ;;----------------------------------------------------------------------------
47 ;; Quest
48 ;;
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)
56
57         ;; yes - gave quest already
58         (if (ilya-quest-done? ilya)
59             (say knpc "¥Ñ¥¹¥«¤Ïº£¤È¤Ã¤Æ¤â¹¬¤»¡ª")
60             (begin
61               (say knpc "¥Ñ¥¹¥«¤Ï¸«¤Ä¤«¤Ã¤¿¡©")
62               (if (kern-conv-get-yes-no? kpc)
63
64                   ;; yes - puska found
65                   (begin 
66                     (say knpc "ÊÖ¤·¤Æ¤¯¤ì¤ë¡©")
67                     (if (kern-conv-get-yes-no? kpc)
68
69                         ;; yes - ilya may have puska
70                         (if (kern-obj-has? kpc t_puska)
71
72                             ;; yes - player has puska
73                             (begin
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)
80                               )
81
82                             ;; no - puska not in player inventory
83                             (begin
84                               (say knpc "¡Îµã¤­¤Ê¤¬¤é¡Ï¤¤¤Ê¤¤¤¸¤ã¤Ê¤¤¡ª")
85                               (kern-conv-end)))
86
87                         ;; no - ilya can't have puska
88                         (begin
89                           (say knpc "Âç¿Í¤Ë¤Ê¤Ã¤¿¤éËâË¡»È¤¤¤Ë¤Ê¤ë¡ª"
90                                "¤½¤·¤Æ¤¢¤Ê¤¿¤ò¾Ã¤·Ãº¤Ë¤·¤Æ¤ä¤ë¤Î¡ª")
91                           (kern-conv-end))))
92
93                   ;; no - didn't find her yet
94                   (begin
95                     (say knpc "ÇÀ¾ì¤Î¾ì½ê¤Ï¤ª¤Ü¤¨¤Æ¤ë¡©")
96                     (if (kern-conv-get-yes-no? kpc)
97                         (say knpc "¤­¤Ã¤È¤½¤³¤Ë¤¤¤ë¤Î¡ª")
98                         (say knpc "À¾¤Ø¹Ô¤Ã¤Æ»³Æ»¤òÄ̤ꡢË̤˵֤˹Ԥ±¤Ð¤¢¤ë¤Î¡£"))))))
99
100         ;; no - didn't give quest yet
101         (begin
102           (say knpc "¥Ñ¥¹¥«¤Ï»ä¤ÎÇϤΤ̤¤¤°¤ë¤ß¤Ê¤Î¡£¤Ç¤â¤Ê¤¯¤·¤Æ¤·¤Þ¤Ã¤¿¡ª"
103                "¸«¤Ä¤±¤¿¤é¶µ¤¨¤Æ¤¯¤ì¤ë¡©")
104           (if (kern-conv-get-yes-no? kpc)
105               (begin
106                 (say knpc "ÇÀ¾ì¤ÏÀ¾Â¦¤Ø¤ÎÆ»¤ÎË̤ε֤ˤ¢¤ë¤ï¡£"
107                      "¥È¥í¥ë¤Ëµ¤¤ò¤Ä¤±¤Æ¡ª")
108                 (ilya-give-quest ilya))
109               (begin
110                 (say knpc "¥Ñ¥¹¥«¤ò¼è¤Ã¤¿¤ê¤·¤¿¤é¡¢Âç¿Í¤Ë¤Ê¤Ã¤¿¤È¤­¡¢¤¢¤Ê¤¿¤ò¸«¤Ä¤±¤ë¤ï¡£")
111                 (kern-conv-end)))))))
112
113 (define (ilya-join knpc kpc)
114   (say knpc "»ä»Ò¶¡¤Ê¤Î¤Ë¡£ÊѤʤΡª")
115   )
116
117 ;;----------------------------------------------------------------------------
118 ;; ưʪ
119 ;;
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 "ÍӤȡ¢Ç­¤Î¥Á¥ã¡¼¥à¤È¡¢·Ü¤ò»ô¤Ã¤Æ¤¤¤ë¤Î¡£"
130        "ưʪ¤Ï¹¥¤­¡©")
131   (if (kern-conv-get-yes-no? kpc)
132
133       ;; yes - the player likes animals
134       (begin
135         (say knpc "¤É¤Îưʪ¤¬¹¥¤­¡©")
136         (let ((fav (kern-conv-get-string kpc)))
137           (if (or (string=? fav "spider") (string=? fav "¥¯¥â"))
138
139               ;; yes - the player's favorite animal is spiders
140               (begin
141                 (say knpc "»ä¤â¡ª¤É¤¦¤¹¤ì¤Ð½±¤ï¤ì¤Ê¤¤¤«ÃΤäƤ¤¤ë¤Î¡£"
142                      "¶µ¤¨¤ÆÍߤ·¤¤¡©")
143                 (if (kern-conv-get-yes-no? kpc)
144
145                     ;; yes - the player wants to learn the spider ward
146                     (say knpc "´Êñ¡ªÃØéá¤Î»å¤ÈÂçÉǤòº®¤¼¤Æ¡¢"
147                          "¥¢¥ó¡¦¥¼¥ó¡¦¥Ù¥Ã¥È<An Xen Bet>¤È¾§¤¨¤ë¤Î¡£")
148
149                     ;; no - the player does not want to learn the spider ward
150                     (say knpc "¤½¤¦¡£¤Ç¤â»þ¡¹¿Í¤ò½±¤¦¤³¤È¤â¤¢¤ë¤Î¤è¡£")))
151                     
152
153               ;; no - the player's favorite animal is NOT spiders
154               (say knpc "»ä¤Ï¥¯¥â¤¬¹¥¤­¡ª"))))
155
156       ;; no - the player does not like animals
157       (say knpc "Éݤ¯¤Ê¤¤¤è¡ª")))
158
159 (define (ilya-fire knpc kpc)
160   (say knpc "²Ð¤ò¤ª¤³¤¹¤Î¤Ï´Êñ¤Ê¤Î¡£¹õ¿¿¼î¤Èⲫ¤òº®¤¼¤Æ¡Ä"
161        "ⲫ¡Ä³¥¤Ï¤É¤³¡©"
162        "¤½¤·¤Æ¥ô¥¡¥¹¡¦¥Õ¥é¥à<Vas Flam>¤È¸À¤¦¤Î¡ª"))
163
164 (define (ilya-died knpc kpc)
165   (say knpc "¥È¥í¥ë¤¬ÇÀ¾ì¤ò½±¤Ã¤¿¤Î¡ª"
166        "¤ªÊ줵¤ó¤Ï»ä¤òÃϲ¼¼¼¤Ë±£¤·¤¿¡£"
167        "¤½¤·¤Æ¥È¥í¥ë¤¬¿²¤Æ¤¤¤ë´Ö¤ËÈ´¤±½Ð¤·¤¿¡£"
168        "¤Ç¤â¡¢¥Ñ¥¹¥«¤ò˺¤ì¤Æ¤·¤Þ¤Ã¤¿¡Ä¡£"))
169
170 ;;----------------------------------------------------------------------------
171 ;; Conv
172 ;;----------------------------------------------------------------------------
173 (define ilya-conv
174   (ifc basic-conv
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 "¿¹¤ËÆþ¤ë¤Ê¤Ã¤Æ¡¢¤ª¤¸¤¤¤µ¤ó¤¬¸À¤Ã¤Æ¤¿¡£")))
204        
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)
211        ))
212