OSDN Git Service

日本語版
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / bart.scm
1 ;;----------------------------------------------------------------------------
2 ;; Constants
3 ;;----------------------------------------------------------------------------
4
5 ;;----------------------------------------------------------------------------
6 ;; Schedule
7 ;; 
8 ;; ¥ª¥Ñ¡¼¥ê¥ó
9 ;;----------------------------------------------------------------------------
10 (kern-mk-sched 'sch_bart
11                (list 0  0  black-barts-bed      "sleeping")
12                (list 11 0  black-barts-ship     "working")
13                (list 18 0  bilge-water-hall     "idle")
14                (list 23 0  black-barts-bed      "sleeping")
15                )
16
17 ;;----------------------------------------------------------------------------
18 ;; Gob
19 ;;----------------------------------------------------------------------------
20 (define (bart-mk) nil)
21
22 ;;----------------------------------------------------------------------------
23 ;; Conv
24 ;; 
25 ;; ¥Ð¡¼¥È¤Ï°û¤ó¤À¤¯¤ì¤Î¥´¥Ö¥ê¥ó¤Î¤Á¥¿¦¿Í¤Ç¡¢¥ª¥Ñ¡¼¥ê¥ó¤Ë½»¤ó¤Ç¤¤¤ë¡£
26 ;;----------------------------------------------------------------------------
27
28 ;; Basics...
29 (define (bart-hail knpc kpc)
30   (say knpc "¡Î¤¢¤Ê¤¿¤Ï¸ý¿ô¤Î¾¯¤Ê¤½¤¦¤Ê¡¢¥¦¥£¥¹¥­¡¼¤Î½­¤¤¤Î¤¹¤ë¥´¥Ö¥ê¥ó¤È²ñ¤Ã¤¿¡£¡Ï"
31        "¥¦¥ó¡£"))
32
33 (define (bart-default knpc kpc)
34   (say knpc "¥¨¡¼¡©"))
35
36 (define (bart-name knpc kpc)
37   (say knpc "¥Ð¡¼¥È¡£"))
38
39 (define (bart-join knpc kpc)
40   (say knpc "¡ÎÈà¤Ï¤¢¤Ê¤¿¤ò´ñ̯¤½¤¦¤Ë¤ß¤Æ¡¢Æ¬¤ò¿¶¤Ã¤¿¡£¡Ï"))
41
42 (define (bart-job knpc kpc)
43   (say knpc "¥Ð¡¼¥È¤ÏÁ¥¤òºî¤ë¡£¤è¤¤Á¥¡£"))
44
45 (define (bart-bye knpc kpc)
46   (say knpc "¥¸¥ã¡£"))
47
48 ;; Trade...
49 (define (bart-trade knpc kpc)
50
51   (define (buy-ship)
52     (let* ((town (loc-place (kern-obj-get-location knpc)))
53            (town-loc (kern-place-get-location town))
54            (ship-loc (loc-offset town-loc east)))
55       (if (ship-at? ship-loc)
56           (say knpc "¥à¡£Á¥Ãå¾ì¡¢¾ì½ê¤Ê¤¤¡£¤Þ¤ºÁ¥Æ°¤«¤»¡£")
57           (begin
58             (kern-obj-relocate (mk-ship) ship-loc nil)
59             (take-player-gold oparine-ship-price)
60             (say knpc "Á¥¡¢³°¤Ë¤¢¤ë¡£")
61             ))))
62
63   (define (sell-ship)
64     (let* ((town (loc-place (kern-obj-get-location knpc)))
65            (town-loc (kern-place-get-location town))
66            (ship-loc (loc-offset town-loc east))
67            (kship (kern-place-get-vehicle ship-loc)))
68       (if (null? kship)
69           (say knpc "¥Ð¡¼¥ÈÁ¥¸«¤¨¤Ê¤¤¡£Á¥Ãå¾ì»ß¤á¤í¡£¤Þ¤¿Í褤¡£")
70           (begin
71             (say knpc "¤³¤Î¥Ü¥íÁ¥Çä¤ë¡©¥Ð¡¼¥È¶â²ß" 
72                  oparine-ship-tradein-price
73                  "ËçÅϤ¹¡£¤¤¤¤¡©")
74             (if (kern-conv-get-yes-no? kpc)
75                 (begin
76                   (say knpc "¥Ð¡¼¥Èµ¤Á°¤¤¤¤¡£¤¢¤ó¤¿±¿¤¤¤¤¡£")
77                   (kern-obj-remove kship)
78                   (give-player-gold oparine-ship-tradein-price))
79                 (say knpc "¥à¡£Á¥¤¹¤°ÄÀ¤à¡£"))))))
80
81   (if (not (string=? "working" (kern-obj-get-activity knpc)))
82       (say knpc "º£Æ¯¤«¤Ê¤¤¡£º£°û¤à¡ª")
83       (begin
84         (say knpc "Á¥¡¢Ç㤦¡©")
85         (if (yes? kpc)
86             (begin
87               (say knpc "Á¥¡¢¶â²ß" oparine-ship-price "Ëç¡£Á¥Íߤ·¤¤¡©")
88               (if (kern-conv-get-yes-no? kpc)
89                   (if (player-has-gold? oparine-ship-price)
90                       (buy-ship)
91                       (begin
92                         (say knpc "¶â²ß­¤ê¤Ê¤¤¡£¥Ð¡¼¥È¤À¤Þ¤¹¡©"
93                              "¡ÎÈà¤ÏÃÏÌ̤ËÂäòÅǤ¤¤¿¡£¡Ï")
94                         (kern-conv-end)))
95                   (say knpc "¤¤¤¤¡£±Ë¤²¡£")))
96             (begin
97               (say knpc "Á¥¡¢Çä¤ë¡©")
98               (if (yes? kpc)
99                   (sell-ship)
100                   (begin
101                     (say knpc "¤Ê¤é¤Ð¡¢¥Ð¡¼¥È²¿¤¹¤ë¡©")
102                     (kern-conv-end))))))))
103
104 ;; Drink...
105 (define (bart-drink knpc kpc)
106   (if (not (string=? "working" (kern-obj-get-activity knpc)))
107       (say knpc "°û¤à¡ª")
108       (say knpc "º£Æ¯¤¯¡£¸å°û¤à¡£")))
109
110
111 ;; Townspeople...
112 (define (bart-opar knpc kpc)
113   (say knpc "µû¤Î½­¤¤¤¹¤ë¡£"))
114
115 (define (bart-gher knpc kpc)
116   (say knpc "¥Ä¡¦¥°¡£°­¤¤º²¡£¡ÎÈà¤Ï¶õÃæ¤Ë´ñ̯¤Ê¿Þ·Á¤òÉÁ¤¤¤¿¡£¡Ï"))
117
118 (define (bart-alch knpc kpc)
119   (say knpc "¥Ò¡¦¥ê¥å¡¦¥È¡£Ç³¤¨¤ëÄ®¤«¤éÍ褿¡£"
120        "°ì²¤ª¤Ü¤¨¤Æ¤ë¡£"))
121
122 (define (bart-seaw knpc kpc)
123   (say knpc "µû¤Î½­¤¤¤¹¤ë¡£"))
124
125 (define (bart-osca knpc kpc)
126   (say knpc "¥Ä¡¦¥È¡£¥Ð¡¼¥È¤è¤¤ÏÃÃΤé¤Ê¤¤¡£"))
127
128 (define (bart-henr knpc kpc)
129   (say knpc "¥Ð¡¼¥Èͧ¤À¤Á¡£¤è¤¤¼òºî¤ë¡ª¥Ð¡¼¥È°û¤à¹¥¤­¡£"))
130
131 (define bart-conv
132   (ifc basic-conv
133
134        ;; basics
135        (method 'default bart-default)
136        (method 'hail bart-hail)
137        (method 'bye bart-bye)
138        (method 'job bart-job)
139        (method 'name bart-name)
140        (method 'join bart-join)
141        
142        ;; drink
143        (method 'drin bart-drink)
144
145        ;; trade
146        (method 'trad bart-trade)
147        (method 'ship bart-trade)
148        (method 'buy bart-trade)
149        (method 'sell bart-trade)
150
151        ;; town & people
152        (method 'opar bart-opar)
153        (method 'alch bart-alch)
154        (method 'gher bart-gher)
155        (method 'witc bart-seaw)
156        (method 'lia bart-seaw)
157        (method 'osca bart-osca)
158        (method 'henr bart-henr)
159        (method 'ja   bart-bye)
160
161        ))
162
163 (define (mk-bart)
164   (bind 
165    (kern-mk-char 'ch_bart           ; tag
166                  "¥Ð¡¼¥È"           ; name
167                  sp_forest_goblin    ; species
168                  nil                 ; occ
169                  s_fgob_civilian     ; sprite
170                  faction-men         ; starting alignment
171                  0 0 0               ; str/int/dex
172                  0 0                 ; hp mod/mult
173                  0 0                 ; mp mod/mult
174                  max-health -1 max-health 0 1  ; hp/xp/mp/AP_per_turn/lvl
175                  #f                  ; dead
176                  'bart-conv         ; conv
177                  sch_bart           ; sched
178                  'townsman-ai                 ; special ai
179                  (mk-inventory (list (list 1 t_axe)))                 ; container
180                  nil                 ; readied
181                  )
182    (bart-mk)))