OSDN Git Service

日本語版
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / parties.scm
1 ;;----------------------------------------------------------------------------
2 ;; pgroup -- one type of npc within an npc party type
3 (define (pgroup-mk npct dice)
4   (list 'pgroup npct dice))
5 (define (pgroup-npct pgrp) (cadr pgrp))
6 (define (pgroup-dice pgrp) (caddr pgrp))
7 (define (pgroup-size pgrp)
8   (define (loop n sum)
9     ;;(println "  pgroup-size loop n=" n "sum=" sum)
10     (if (= n 0)
11         sum
12         (loop (- n 1)
13               (+ sum (max 0 (kern-dice-roll (pgroup-dice pgrp))))
14               )))
15   (loop (min 3
16              (max 1 
17                   (length (filter is-alive? 
18                                   (kern-party-get-members (kern-get-player))))))
19         0)
20   )
21 (define (pgroup-generate pgrp)
22   ;;(println " pgroup-generate")
23   (define (loop n)
24     ;;(println "  n=" n)
25     (if (<= n 0)
26         nil
27         (cons (mk-npc (pgroup-npct pgrp) (calc-level))
28               (loop (- n 1)))))
29   (loop (pgroup-size pgrp)))
30
31 ;;----------------------------------------------------------------------------
32 ;; ptype -- npc party type
33 (define (ptype-mk name sprite faction dc scarce . groups)
34   (list 'ptype sprite faction groups name dc scarce nil))
35 (define (ptype-sprite ptype) (cadr ptype))
36 (define (ptype-faction ptype) (caddr ptype))
37 (define (ptype-groups ptype) (cadddr ptype))
38 (define (ptype-name ptype) (list-ref ptype 4))
39 (define (ptype-dc ptype) (list-ref ptype 5))
40 (define (ptype-scarcity ptype) (list-ref ptype 6))
41 (define (ptype-vehicle-type-tag ptype) (list-ref ptype 7))
42 (define (ptype-set-vehicle-type-tag! ptype vtag)
43   (set-car! (list-tail ptype 7) vtag))
44 (define (ptype-generate ptype)
45   ;;(println "ptype-generate")
46   (let ((kparty (kern-mk-party)))
47     (kern-being-set-name kparty (ptype-name ptype))
48     (kern-obj-set-sprite kparty (ptype-sprite ptype))
49     (kern-being-set-base-faction kparty (ptype-faction ptype))
50     (map (lambda (pgroup)
51            (map (lambda (kchar)
52                   (kern-party-add-member kparty kchar))
53                 (pgroup-generate pgroup)))
54          (ptype-groups ptype))
55     (let ((vtag (ptype-vehicle-type-tag ptype)))
56       ;;(println "vtag=" vtag)
57       (if (not (null? vtag))
58           (kern-party-set-vehicle kparty 
59                                   (mk-vehicle (eval vtag)))))
60     kparty
61     ))
62
63 ;;----------------------------------------------------------------------------
64 ;; mk-npc-party
65 (define (mk-npc-party ptype-tag) 
66   (ptype-generate (eval ptype-tag)))
67
68 ;;----------------------------------------------------------------------------
69 ;; NPC PARTY TYPES
70 (define forest-goblin-party-l1
71   (ptype-mk "¥´¥Ö¥ê¥ó¤ÎÄÉ·â¼Ô" s_fgob_stalker faction-forest-goblin 1 2
72             (pgroup-mk 'forest-goblin-stalker "1")
73             ))            
74 (define forest-goblin-party-l2
75   (ptype-mk "¥´¥Ö¥ê¥ó¤ÎÄ廡Ââ" s_fgob_archer faction-forest-goblin 2 2
76             (pgroup-mk 'forest-goblin-stalker "1")
77             (pgroup-mk 'forest-goblin-hunter  "1")
78             ))
79             
80 (define forest-goblin-party-l3 
81   (ptype-mk "¥´¥Ö¥ê¥ó¤Î¼íÎÄÂâ" s_fgob_archer faction-forest-goblin 3 2
82             (pgroup-mk 'forest-goblin-stalker "1d2")
83             (pgroup-mk 'forest-goblin-hunter  "1d2")
84             (pgroup-mk 'wolf "1d2")
85             ))
86 (define forest-goblin-party-l4 
87   (ptype-mk "¥´¥Ö¥ê¥ó¤Î°ì²"  s_fgob_civilian faction-forest-goblin 4 2
88             (pgroup-mk 'forest-goblin-stalker "1d2")
89             (pgroup-mk 'forest-goblin-hunter  "1d2")
90             (pgroup-mk 'wolf "1d2")
91             (pgroup-mk 'forest-goblin-shaman "1")
92             ))
93 (define bandit-party-l1
94   (ptype-mk "Äɤ¤¤Ï¤®¤Î½¸ÃÄ" s_brigand faction-outlaw 1 4
95             (pgroup-mk 'footpad "1d2")
96             ))
97 (define bandit-party-l2
98   (ptype-mk "Åð±ÃÄ" s_brigand faction-outlaw 2 4
99             (pgroup-mk 'bandit "1d2")
100             ))
101 (define bandit-party-l3
102   (ptype-mk "ÌîÅð¤Î½¸ÃÄ" s_brigand faction-outlaw 3 4
103             (pgroup-mk 'highwayman "1d2")
104             ))
105 (define bandit-party-l4
106   (ptype-mk "¤´¤í¤Ä¤­¤Î½¸ÃÄ" s_brigand faction-outlaw 4 4
107             (pgroup-mk 'blackguard "1d2")
108             ))
109 (define bandit-party-l5
110   (ptype-mk "¶§°­¤Ê¤´¤í¤Ä¤­¤Î½¸ÃÄ" s_brigand faction-outlaw 5 4
111             (pgroup-mk 'blackguard "1d2")
112             (pgroup-mk 'bomber "1d2")
113             ))
114 (define pirate-party-l3
115   (ptype-mk "³¤Â±Á¥" s_brigand faction-outlaw 3 5
116             (pgroup-mk 'highwayman "1d2")
117             ))
118 (ptype-set-vehicle-type-tag! pirate-party-l3 't_ship)
119 (define pirate-party-l4
120   (ptype-mk "³¤Â±Á¥" s_brigand faction-outlaw 3 5
121             (pgroup-mk 'blackguard "1d2")
122             ))
123 (ptype-set-vehicle-type-tag! pirate-party-l4 't_ship)
124 (define troll-party-l3
125   (ptype-mk "¥È¥í¥ë¤Î½¸ÃÄ" s_troll faction-troll 3 5
126             (pgroup-mk 'troll "1")
127             ))
128 (define troll-party-l4
129   (ptype-mk "¥´¥Ö¥ê¥ó¤ÎÅÛÎì¤ò½¾¤¨¤¿¥È¥í¥ë¤Î½¸ÃÄ" s_troll faction-troll 4 5
130             (pgroup-mk 'troll "1")
131             (pgroup-mk 'forest-goblin-stalker "1d3-1")
132             ))
133 (define green-slime-party-l2
134   (ptype-mk "Ç´¶Ý¤Î²ô" s_slime faction-monster 2 3
135             (pgroup-mk 'green-slime "1d3")
136             ))
137 (define yellow-slime-party-l3
138   (ptype-mk "²«¿§¤¤Ç´¶Ý¤Î³ô" s_yellow_slime faction-monster 3 3
139             (pgroup-mk 'green-slime "1d3")
140             (pgroup-mk 'yellow-slime "1")
141             ))
142 (define fire-slime-party-l4
143   (ptype-mk "±ê¤ÎÇ´¶Ý¤Î³ô" s_red_slime faction-monster 4 3
144             (pgroup-mk 'fire-slime "1d2")
145             ))
146 (define hydra-party-l5
147   (ptype-mk "¥Ò¥É¥é¤ÈÇ´¶Ý" s_hydra faction-monster 5 3
148             (pgroup-mk 'green-slime "1d3")
149             (pgroup-mk 'yellow-slime "1d2")
150             (pgroup-mk 'hydra "1")
151             ))
152
153 (define dryad-party-l3
154   (ptype-mk "ÌÚ¤ÎÀº" s_reaper faction-monster 3 5
155             (pgroup-mk 'dryad "1")
156             ))
157
158 (define dryad-party-l4
159   (ptype-mk "ÌÚ¤ÎÀº¤Èϵ" s_reaper faction-monster 4 5
160             (pgroup-mk 'dryad "1")
161             (pgroup-mk 'wolf "1d3")
162             ))
163
164 (define dryad-party-l5
165   (ptype-mk "ÌÚ¤ÎÀº¤È¼ö½Ñ»Õ" s_reaper faction-monster 5 5
166             (pgroup-mk 'dryad "1")
167             (pgroup-mk 'forest-goblin-shaman "1d3")
168             ))
169
170 (define wolf-party-l1 
171   (ptype-mk "ϵ¤Î·²¤ì" s_wolf faction-monster 2 5
172             (pgroup-mk 'wolf "1")
173             ))
174
175 (define wolf-party-l2 
176   (ptype-mk "ϵ¤Î·²¤ì" s_wolf faction-monster 2 5
177             (pgroup-mk 'wolf "1d3")
178             ))
179
180 (define skeleton-party-l2
181   (ptype-mk "³¼¹ü¤ÎιÃÄ" s_skeleton faction-monster 2 5
182             (pgroup-mk 'skeletal-warrior "1")
183             ))
184
185 (define skeleton-party-l3
186   (ptype-mk "³¼¹ü¤ÎιÃÄ" s_skeleton faction-monster 3 5
187             (pgroup-mk 'skeletal-warrior "1")
188             (pgroup-mk 'skeletal-spear-thrower "1")
189             ))
190 (define skeleton-party-l4 
191   (ptype-mk "³¼¹ü¤ÎιÃÄ" s_skeleton faction-monster 4 5
192             (pgroup-mk 'skeletal-warrior "1d2")
193             (pgroup-mk 'skeletal-spear-thrower "1d3")
194             ))
195 (define skeleton-pirates-l4 
196   (ptype-mk "Í©ÎîÁ¥" s_skeleton faction-monster 4 5
197             (pgroup-mk 'skeletal-warrior "1d2")
198             (pgroup-mk 'skeletal-spear-thrower "1d3")
199             ))
200 (ptype-set-vehicle-type-tag! skeleton-pirates-l4 't_ship)
201
202 (define lich-party-l5
203   (ptype-mk "¥ê¥Ã¥Á¤ÈÉÔ»à¤Î¤·¤â¤Ù" s_lich faction-monster 5 5
204             (pgroup-mk 'lich "1")
205             (pgroup-mk 'skeletal-warrior "1d2")
206             (pgroup-mk 'skeletal-spear-thrower "1d3")
207             ))
208
209 (define wisp-party-l5
210   (ptype-mk "¤¿¤Ê¤Ó¤¯¸÷¤Î½¸¤Þ¤ê" s_wisp faction-none 5 5
211             (pgroup-mk 'wisp "1d3")
212             ))
213
214 (define ghast-party 
215   (ptype-mk "Í©Îî" s_ghost faction-monster 1 2
216             (pgroup-mk 'ghast "1d3")
217             ))
218
219 (define dragon-party-l6
220   (ptype-mk "¸ÉΩ¤·¤¿Îµ" s_dragon_party faction-monster 6 1
221             (pgroup-mk 'dragon "1")
222             ))
223
224 (define dragon-party-l7
225   (ptype-mk "ε¤Èƶ·¢¥´¥Ö¥ê¥ó" s_dragon_party faction-monster 7 1
226             (pgroup-mk 'dragon "1")
227             (pgroup-mk 'cave-goblin-berserker "1d2")
228             (pgroup-mk 'cave-goblin-slinger "1d2")
229             (pgroup-mk 'cave-goblin-priest "1")
230             ))
231
232 (define dragon-party-l8
233   (ptype-mk "ε¤Î·²¤ì" s_dragon_party faction-monster 8 1
234             (pgroup-mk 'dragon "1d3")
235             ))
236
237 (define gint-party-l4
238   (ptype-mk "µð¿Í¤ÎÄ廡¼Ô" s_gint_party faction-gint 4 5
239             (pgroup-mk 'gint-warrior "1")
240             ))
241
242 (define gint-party-l5
243   (ptype-mk "µð¿Í¤Î¼íÎÄÂâ" s_gint_party faction-gint 5 5
244             (pgroup-mk 'gint-warrior "1")
245             (pgroup-mk 'cave-goblin-slinger "1d2")
246             (pgroup-mk 'wolf "1d2")
247             ))
248
249 (define gint-party-l6
250   (ptype-mk "µð¿Í¤ÎÀïÆ®Ââ" s_gint_party faction-gint 6 3
251             (pgroup-mk 'gint-warrior "1d2")
252             (pgroup-mk 'troll "1d2")
253             (pgroup-mk 'cave-goblin-slinger "1d3")
254             (pgroup-mk 'wolf "1d2")
255             ))
256
257 (define kraken-party-l3
258   (ptype-mk "¥¯¥é¡¼¥±¥ó¤Î·²¤ì" s_kraken faction-monster 3 5
259             (pgroup-mk 'kraken "1d2")
260             ))
261
262 (define sea-serpent-party-l3
263   (ptype-mk "³¤¥Ø¥Ó¤Î·²¤ì" s_sea_serpent faction-monster 3 5
264             (pgroup-mk 'sea-serpent "1d2")
265             ))
266
267 (define nixie-party-l2
268   (ptype-mk "¥Ë¥­¥·¡¼¤Î½¸ÃÄ" s_nixie_spear faction-monster 2 3
269             (pgroup-mk 'nixie-swordsman "1d2")
270             (pgroup-mk 'nixie-spearman "1d2-1")
271             ))
272
273 (define nixie-party-l3
274   (ptype-mk "¥¯¥é¡¼¥±¥ó¤ò½¾¤¨¤¿¥Ë¥­¥·¡¼¤Î½¸ÃÄ" s_kraken faction-monster 3 5
275             (pgroup-mk 'nixie-swordsman "1d2")
276             (pgroup-mk 'nixie-spearman "1d2")
277             (pgroup-mk 'kraken "1")
278             ))
279
280 (define nixie-party-l4
281   (ptype-mk "¥¯¥é¡¼¥±¥ó¤ò½¾¤¨¤¿¥Ë¥­¥·¡¼¤Î½¸ÃÄ" s_kraken faction-monster 3 5
282             (pgroup-mk 'nixie-swordsman "1d2")
283             (pgroup-mk 'nixie-spearman "1d2")
284             (pgroup-mk 'kraken "1")
285             ))
286
287 (define nixie-party-l5
288   (ptype-mk "³¤¥Ø¥Ó¤ò½¾¤¨¤¿¥Ë¥­¥·¡¼¤Î½¸ÃÄ" s_sea_serpent faction-monster 4 5
289             (pgroup-mk 'nixie-swordsman "1d2")
290             (pgroup-mk 'nixie-spearman "1d2")
291             (pgroup-mk 'sea-serpent "1")
292             ))
293
294 (define spider-party-l3
295   (ptype-mk "¥¯¥â¤Î·²¤ì" s_spider faction-spider 3 5
296             (pgroup-mk 'giant-spider "1d2")
297             ))
298
299 (define spider-party-l4
300   (ptype-mk "¥¯¥â¤Î·²¤ì" s_spider faction-spider 4 5
301             (pgroup-mk 'giant-spider "1d2")
302             (pgroup-mk 'queen-spider "1")
303             ))
304 (define headless-party-l1
305   (ptype-mk "¼ó¤Ê¤·" s_headless faction-monster 1 4
306             (pgroup-mk 'headless "1")))
307 (define headless-party-l3
308   (ptype-mk "¼ó¤Ê¤·¤Î½¸ÃÄ" s_headless faction-monster 3 4
309             (pgroup-mk 'headless "1d2")))
310 (define headless-party-l5
311   (ptype-mk "¼ó¤Ê¤·¤ò½¾¤¨¤¿¹õËâ½Ñ»Õ" s_wizard faction-monster 5 4
312             (pgroup-mk 'headless "1d2")
313             (pgroup-mk 'warlock "1")
314             ))
315
316 (define accursed-party-l4
317   (ptype-mk "¼ö¤ï¤ì¤¿Æ³»Õ" s_wizard faction-accursed 4 2
318             (pgroup-mk 'accursed-master "1")
319             (pgroup-mk 'accursed-apprentice "1d2-1")
320             (pgroup-mk 'accursed-guardian "1d2")
321             ))
322 (define accursed-party-l5
323   (ptype-mk "¼ö¤ï¤ì¤¿Æ³»Õ" s_wizard faction-accursed 5 2
324             (pgroup-mk 'accursed-master "1")
325             (pgroup-mk 'accursed-defender "1d2")
326             ))
327 (define accursed-party-l6
328   (ptype-mk "¼ö¤ï¤ì¤¿¾åµéƳ»Õ" s_wizard faction-accursed 6 2
329             (pgroup-mk 'accursed-master "1")
330             (pgroup-mk 'accursed-defender "1d2")
331             (pgroup-mk 'accursed-templar "1d2")
332             ))
333 (define militia-party-l4
334   (ptype-mk "æÁöÈÉ" s_guard faction-outlaw  4 4
335             (pgroup-mk 'halberdier "1d2")
336             (pgroup-mk 'crossbowman "1d2-1")
337             ))
338
339 (define snake-party-l1
340   (ptype-mk "¤¦¤Ê¤ë¼Ø¤Î·²¤ì" s_snake faction-monster 1 5
341             (pgroup-mk 'snake "1d2")
342             ))
343 (define bat-party-l1
344   (ptype-mk "¥³¥¦¥â¥ê¤Î±À" s_bat faction-monster 1 1
345             (pgroup-mk 'bat "1d2")
346             ))
347
348 (define rat-party-l1
349   (ptype-mk "¥Í¥º¥ß¤Î·²¤ì" s_rat faction-monster 5 5
350             (pgroup-mk 'rat "1d2")
351             ))
352
353 (define griffin-party-l3
354   (ptype-mk "¥°¥ê¥Õ¥£¥ó¤Î·²¤ì" s_griffin faction-monster 3 5
355             (pgroup-mk 'griffin "1d2")
356             ))
357
358 (define insect-party-l1
359   (ptype-mk "º«Ãî¤Î±À" s_insects faction-monster 1 5
360             (pgroup-mk 'insect "1d3")
361             ))