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)
9 ;;(println " pgroup-size loop n=" n "sum=" sum)
13 (+ sum (max 0 (kern-dice-roll (pgroup-dice pgrp))))
17 (length (filter is-alive?
18 (kern-party-get-members (kern-get-player))))))
21 (define (pgroup-generate pgrp)
22 ;;(println " pgroup-generate")
27 (cons (mk-npc (pgroup-npct pgrp) (calc-level))
29 (loop (pgroup-size pgrp)))
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))
52 (kern-party-add-member kparty kchar))
53 (pgroup-generate pgroup)))
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)))))
63 ;;----------------------------------------------------------------------------
65 (define (mk-npc-party ptype-tag)
66 (ptype-generate (eval ptype-tag)))
68 ;;----------------------------------------------------------------------------
70 (define forest-goblin-party-l1
71 (ptype-mk "¥´¥Ö¥ê¥ó¤ÎÄÉ·â¼Ô" s_fgob_stalker faction-forest-goblin 1 2
72 (pgroup-mk 'forest-goblin-stalker "1")
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")
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")
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")
93 (define bandit-party-l1
94 (ptype-mk "Äɤ¤¤Ï¤®¤Î½¸ÃÄ" s_brigand faction-outlaw 1 4
95 (pgroup-mk 'footpad "1d2")
97 (define bandit-party-l2
98 (ptype-mk "Åð±ÃÄ" s_brigand faction-outlaw 2 4
99 (pgroup-mk 'bandit "1d2")
101 (define bandit-party-l3
102 (ptype-mk "ÌîÅð¤Î½¸ÃÄ" s_brigand faction-outlaw 3 4
103 (pgroup-mk 'highwayman "1d2")
105 (define bandit-party-l4
106 (ptype-mk "¤´¤í¤Ä¤¤Î½¸ÃÄ" s_brigand faction-outlaw 4 4
107 (pgroup-mk 'blackguard "1d2")
109 (define bandit-party-l5
110 (ptype-mk "¶§°¤Ê¤´¤í¤Ä¤¤Î½¸ÃÄ" s_brigand faction-outlaw 5 4
111 (pgroup-mk 'blackguard "1d2")
112 (pgroup-mk 'bomber "1d2")
114 (define pirate-party-l3
115 (ptype-mk "³¤Â±Á¥" s_brigand faction-outlaw 3 5
116 (pgroup-mk 'highwayman "1d2")
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")
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")
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")
133 (define green-slime-party-l2
134 (ptype-mk "Ç´¶Ý¤Î²ô" s_slime faction-monster 2 3
135 (pgroup-mk 'green-slime "1d3")
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")
142 (define fire-slime-party-l4
143 (ptype-mk "±ê¤ÎÇ´¶Ý¤Î³ô" s_red_slime faction-monster 4 3
144 (pgroup-mk 'fire-slime "1d2")
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")
153 (define dryad-party-l3
154 (ptype-mk "ÌÚ¤ÎÀº" s_reaper faction-monster 3 5
155 (pgroup-mk 'dryad "1")
158 (define dryad-party-l4
159 (ptype-mk "ÌÚ¤ÎÀº¤Èϵ" s_reaper faction-monster 4 5
160 (pgroup-mk 'dryad "1")
161 (pgroup-mk 'wolf "1d3")
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")
170 (define wolf-party-l1
171 (ptype-mk "ϵ¤Î·²¤ì" s_wolf faction-monster 2 5
172 (pgroup-mk 'wolf "1")
175 (define wolf-party-l2
176 (ptype-mk "ϵ¤Î·²¤ì" s_wolf faction-monster 2 5
177 (pgroup-mk 'wolf "1d3")
180 (define skeleton-party-l2
181 (ptype-mk "³¼¹ü¤ÎιÃÄ" s_skeleton faction-monster 2 5
182 (pgroup-mk 'skeletal-warrior "1")
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")
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")
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")
200 (ptype-set-vehicle-type-tag! skeleton-pirates-l4 't_ship)
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")
209 (define wisp-party-l5
210 (ptype-mk "¤¿¤Ê¤Ó¤¯¸÷¤Î½¸¤Þ¤ê" s_wisp faction-none 5 5
211 (pgroup-mk 'wisp "1d3")
215 (ptype-mk "Í©Îî" s_ghost faction-monster 1 2
216 (pgroup-mk 'ghast "1d3")
219 (define dragon-party-l6
220 (ptype-mk "¸ÉΩ¤·¤¿Îµ" s_dragon_party faction-monster 6 1
221 (pgroup-mk 'dragon "1")
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")
232 (define dragon-party-l8
233 (ptype-mk "ε¤Î·²¤ì" s_dragon_party faction-monster 8 1
234 (pgroup-mk 'dragon "1d3")
237 (define gint-party-l4
238 (ptype-mk "µð¿Í¤ÎÄ廡¼Ô" s_gint_party faction-gint 4 5
239 (pgroup-mk 'gint-warrior "1")
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")
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")
257 (define kraken-party-l3
258 (ptype-mk "¥¯¥é¡¼¥±¥ó¤Î·²¤ì" s_kraken faction-monster 3 5
259 (pgroup-mk 'kraken "1d2")
262 (define sea-serpent-party-l3
263 (ptype-mk "³¤¥Ø¥Ó¤Î·²¤ì" s_sea_serpent faction-monster 3 5
264 (pgroup-mk 'sea-serpent "1d2")
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")
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")
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")
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")
294 (define spider-party-l3
295 (ptype-mk "¥¯¥â¤Î·²¤ì" s_spider faction-spider 3 5
296 (pgroup-mk 'giant-spider "1d2")
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")
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")
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")
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")
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")
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")
339 (define snake-party-l1
340 (ptype-mk "¤¦¤Ê¤ë¼Ø¤Î·²¤ì" s_snake faction-monster 1 5
341 (pgroup-mk 'snake "1d2")
344 (ptype-mk "¥³¥¦¥â¥ê¤Î±À" s_bat faction-monster 1 1
345 (pgroup-mk 'bat "1d2")
349 (ptype-mk "¥Í¥º¥ß¤Î·²¤ì" s_rat faction-monster 5 5
350 (pgroup-mk 'rat "1d2")
353 (define griffin-party-l3
354 (ptype-mk "¥°¥ê¥Õ¥£¥ó¤Î·²¤ì" s_griffin faction-monster 3 5
355 (pgroup-mk 'griffin "1d2")
358 (define insect-party-l1
359 (ptype-mk "º«Ãî¤Î±À" s_insects faction-monster 1 5
360 (pgroup-mk 'insect "1d3")