OSDN Git Service

日本語版
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / start-new-game.scm
1 ;;----------------------------------------------------------------------------
2 ;; The very first line of any session file should be (load "naz.scm"). This
3 ;; bootstraps some procedures that we need to continue. This is the only place
4 ;; you should use 'load'. Every other place you want to load a file you should
5 ;; user 'kern-load'. 'kern-load' ensures that a saved session will be able to
6 ;; load the file, too.
7 ;;----------------------------------------------------------------------------
8 (load "naz.scm")
9 (kern-script-version "0.7.1")
10
11 ;; Setup progress bar for loading. I arrived at the number by printing the
12 ;; current number of steps in src/foogod.c:foogod_progress_bar_finish().
13 (kern-progress-bar-start "Æɤ߹þ¤ßÃæ" 205)
14
15 ;; Wrap the original definition of (load ...) with one that advances the
16 ;; progress bar.
17 (define original-load load)  
18 (define (load file)
19   (kern-progress-bar-advance 1)
20   (original-load file)
21   )
22
23 ;;----------------------------------------------------------------------------
24 ;; Load the read-only game data. See the note on 'kern-load' vs 'load' above.
25 ;;----------------------------------------------------------------------------
26 (kern-load "game.scm")
27 (kern-load "quests-mech.scm")
28 (kern-load "camping-map.scm")
29
30 (kern-load "quests-data-static.scm")
31 (kern-load "zones.scm")
32 (kern-load "runes.scm")
33 (kern-load "prices.scm")
34 (kern-load "special.scm")
35 (kern-load "town-entry.scm")
36 (kern-load "pseudorandom-map.scm")
37 (kern-load "endless-deeps-mech.scm")
38 (kern-load "lost-halls-mech.scm")
39 (kern-load "voidgap-mech.scm")
40 (kern-load "player.scm")
41
42 ;;----------------------------------------------------------------------------
43 ;; Time -- this needs to be set before loading any dungeon rooms
44 ;;----------------------------------------------------------------------------
45 (define hour 07)
46 (define minutes 00)
47 (define time-in-minutes (+ (* hour 60) minutes))
48 (define game-start-time (time-mk 1611 0 0 0 hour minutes))
49
50 (kern-set-clock 
51  1611 ; year
52  0 ; month
53  0 ; week
54  0 ; day
55  hour  ; hour
56  minutes ; minutes
57  )
58
59 ;; NPC's who inhabit multiple places
60 (kern-load "gregor.scm")
61 (kern-load "kalcifax.scm")
62
63 ;;----------------------------------------------------------------------------
64 ;; Places
65 ;;----------------------------------------------------------------------------
66 (load "gregors-hut.scm")
67 (load "moongate-clearing.scm")
68 (load "abandoned-farm.scm")
69 (load "abandoned-cellar.scm")
70 (load "slimy-cavern.scm")
71 (load "trigrave.scm")
72 (load "lost-halls.scm")
73 (load "enchanters-tower.scm")
74 (load "green-tower.scm")
75 (load "green-tower-lower.scm")
76 (load "mushroom-cave.scm")
77 (load "goblin-kingdoms.scm")
78 (load "treasury.scm")
79 (load "bole.scm")
80 (load "glasdrin.scm")
81 (load "oparine.scm")
82 (load "traps_1.scm")
83 (load "traps_2.scm")
84 (load "traps_3.scm")
85 (load "traps_4.scm")
86 (load "thiefs_den.scm")
87 (load "keep.scm")
88 (load "absalot.scm")
89 (load "old-absalot.scm")
90 (load "engineers-hut.scm")
91 (load "mans-hideout.scm")
92 (load "necromancers-lair.scm")
93 (load "fire_sea.scm")
94 (load "void-temple.scm")
95 (load "merciful-death.scm")
96 (load "angriss-lair.scm")
97 (load "poor-house.scm")
98 (load "prison.scm")
99 (load "ankh-shrine.scm")
100 (load "kraken-lakes.scm")
101 (load "endless-deeps.scm")
102 (load "forsaken-prison.scm")
103 (load "old-mine.scm")
104 (load "lich-tomb.scm")
105 (load "altar-room.scm")
106 (load "dank-cave.scm")
107 (load "eastpass.scm")
108 (load "westpass.scm")
109 (load "crypt.scm")
110 (load "ancient-derelict.scm")
111 (load "road_to_absalot.scm")
112 (load "kun.scm")
113 (load "gamestart.scm")
114 (load "bandit-hideout.scm")
115 (load "brundegardt.scm")
116 (load "voidgap-passage.scm")
117
118 ;;----------------------------------------------------------------------------
119 ;; Characters
120 ;;----------------------------------------------------------------------------
121  (kern-mk-char 
122   'ch_wanderer
123   "̤¤¿Í"              ; name
124   sp_human              ; species
125   oc_wanderer           ; occ
126   s_wanderer    ; sprite
127   faction-player        ; starting alignment
128   6 6 6                ; str/int/dex
129   pc-hp-off
130   pc-hp-gain
131   pc-mp-off
132   pc-mp-gain
133   max-health 0 max-health 0 1  ; hp/xp/mp/AP_per_turn/lvl
134   #f                    ; dead
135   nil                   ; conv
136   nil                   ; sched
137   nil                   ; special ai
138   nil                   ; container
139   nil                   ; readied
140   )
141
142
143
144 ; ;; For test
145 ; (kern-mk-char 
146 ;  'ch_thorald_greybeard ; tag
147 ;  "Thorald Greybeard"   ; name
148 ;  sp_human              ; species
149 ;  oc_wizard             ; occ
150 ;  s_companion_wizard    ; sprite
151 ;  faction-player        ; starting alignment
152 ;  0 10 2                ; str/int/dex
153 ;  0 1                   ; hp mod/mult
154 ;  10 5                  ; mp mod/mult
155 ;  240 0 8 speed-human-med-armor 8             ; hp/xp/mp/AP_per_turn/lvl
156 ;  #f                    ; dead
157 ;  nil                   ; conv
158 ;  nil                   ; sched
159 ;  nil                   ; special ai
160 ;  nil                   ; container
161 ;  ;;(list t_doom_staff)         ; readied
162 ;  nil
163 ;  )
164  
165 ;;----------------------------------------------------------------------------
166 ;; Player Party
167 ;;----------------------------------------------------------------------------
168 (bind 
169  (kern-mk-player
170   'player                     ; tag
171   s_wanderer         ; sprite
172   "Walk"                      ; movement description
173   sound-walking               ; movement sound
174   1                           ; food
175   0                           ; gold
176   (* 60 60 5)                 ; turns to next meal (5 hours)
177   nil                         ; formation
178   m_campsite                  ; campsite map
179   nil                         ; campsite formation
180   nil                         ; vehicle
181   ;; inventory
182   (kern-mk-inventory nil)
183   nil ;; party members (should be nil for initial load file)
184   )
185  (tbl-mk))
186
187 ;;----------------------------------------------------------------------------
188 ;; Party members
189 ;;----------------------------------------------------------------------------
190 (kern-party-add-member player ch_wanderer)
191 ;;(kern-party-add-member player ch_thorald_greybeard)
192
193
194 ;;----------------------------------------------------------------------------
195 ;; Places
196 ;;----------------------------------------------------------------------------
197 (load "shard.scm")
198
199 ;;----------------------------------------------------------------------------
200 ;; Astronomy
201 ;;----------------------------------------------------------------------------
202 (kern-mk-astral-body
203  'sun              ; tag
204  "¥Õ¥£¥¢(ÂÀÍÛ)"    ; name
205  1                 ; relative astronomical distance 
206  1                 ; minutes per phase (n/a for sun)
207  (/ (* 24 60) 360) ; minutes per degree
208  0                 ; initial arc
209  0                 ; initial phase
210  '()               ; script interface
211  ;; phases:
212  (list 
213   (list s_sun 255 "full")
214   )
215  )
216
217 ;;----------------------------------------------------------------------------
218 ;; Lumis is the source gate, which means it opens the source moongates on its
219 ;; phases. We designate this by using the source-moon-ifc as its ifc.
220 ;;
221 ;; Note: the arc and phase are calculated to give the moon the right orientation
222 ;; with respect to phase vs sun position
223 ;;----------------------------------------------------------------------------
224 (mk-moon 'lumis  ; tag
225          "¥ë¥ß¥¹" ; name
226          5       ; hours per phase
227          60      ; hours per revolution
228          22      ; initial arc
229          0       ; initial phase
230          'source-moon-ifc ; ifc
231          ;; gates (moons are fixed at 8 phases in mk-moon):
232          (list 'mg-1 'mg-2 'mg-3 'mg-4
233                'mg-5 'mg-6 'mg-7 'mg-8
234                )
235          "yellow")
236
237 ;;----------------------------------------------------------------------------
238 ;; Ord is the destination gate, which means its phase decides the destination
239 ;; when the player steps through a moongate. We designate this by giving it a
240 ;; nil ifc. Note that its gates do not need to be listed in the same order as
241 ;; Lumis. In fact, they don't even need to be the same set of gates.
242 ;;
243 ;; Note: the arc and phase are calculated to give the moon the right orientation
244 ;; with respect to phase vs sun position
245 ;;----------------------------------------------------------------------------
246 (mk-moon 'ord    ; tag
247          "¥ª¡¼¥É" ; name
248          9       ; hours per phase
249          36      ; hours per revolution
250          67     ; initial arc
251          7       ; initial phase
252          nil     ; ifc
253          ;; gates (moons are fixed at 8 phases in mk-moon):
254          (list 'mg-1 'mg-2 'mg-3 'mg-4
255                'mg-5 'mg-6 'mg-7 'mg-8
256                )
257          "blue")
258
259 ;; ----------------------------------------------------------------------------
260 ;; The diplomacy table. Each entry defines the attitude of the row to the
261 ;; column. Note that attitudes are not necessarily symmetric. Negative values
262 ;; are hostile, positive are friendly.
263 ;;
264 ;; Note: factions should always be allied with themselves in order for
265 ;; summoning AI to work properly.
266 ;;       
267 ;; Formatted for spreadsheet
268 ;; ----------------------------------------------------------------------------
269 (kern-mk-dtable                                                                                                                                 
270         ;;      non pla men cgb acc mon tro spd out gnt dem fgb prs gla                
271         (list   2   0   0   0   -1  -2  -2  -2  0   -2  -2  0   0   0    ) ;; none
272         (list   0   2   2   -2  -2  -2  -2  -2  -2  -2  -2  -2  2   2    ) ;; player
273         (list   -1  2   2   -1  -2  -2  -2  -2  -2  -2  -2  -2  2   2    ) ;; men
274         (list   -1  -2  -2  2   -1  -2  0   -2  -2  -1  -2  -2  0   -2   ) ;; cave goblin
275         (list   -1  -2  -1  -1  2   -2  -1  -1  -2  -1  -2  -2  0   -2   ) ;; accursed
276         (list   -2  -2  -2  -2  -2  2   -2  0   -2  0   -2  0   0   -2   ) ;; monsters
277         (list   -2  -2  -2  0   -1  -2  2   -2  -2  -1  -2  -1  0   -2   ) ;; hill trolls
278         (list   -2  -2  -2  -2  -1  0   -2  2   -2  -1  -2  0   0   -2   ) ;; wood spiders
279         (list   0   -2  -2  -2  -2  -2  -2  -2  2   -2  -2  -1  0   -2   ) ;; outlaws
280         (list   -2  -2  -2  -1  -1  0   -1  -1  -2  2   -2  -1  0   -2   ) ;; gint
281         (list   -2  -2  -2  -2  -2  -2  -2  -2  -2  -2  2   -2  0   -2   ) ;; demon
282         (list   0   -2  -2  -2  -2  0   -2  0   -1  -1  -2  2   0   -2   ) ;; forest goblin
283         (list   0   2   2   0   0   0   0   0   0   0   0   0   2   2    ) ;; prisoners
284         (list   -1  2   2   -1  -2  -2  -2  -2  -2  -2  -2  -2  2   2    ) ;; glasdrin
285 )                                                                                                                                       
286
287
288 ;;----------------------------------------------------------------------------
289 ;; Startup - this is a one-time only script that runs when the player starts
290 ;; the game for the first time (or whenever he starts over from scratch,
291 ;; loading the game from this file). It sets up the story a bit.
292 ;;
293 ;; The camera should center on the moongate clearing. Then, a gate should rise
294 ;; from the ground, pause, then sink back down, leaving the player's sleep
295 ;; sprite on the ground. Another pause, and then the player should wake up.
296 ;;----------------------------------------------------------------------------
297 (define (start-scene kplayer)
298
299   (kern-log-msg "°Å¤¤Ì礬²¿¤â¤Ê¤¤½ê¤«¤éÉ⤫¤Ó¾å¤¬¤ê¡Ä")
300   (moongate-animate black-gate blackgate-stages)
301   (kern-sleep 2000)
302
303   (kern-log-enable #f)
304   (kern-char-set-sleep ch_wanderer #t)
305   (kern-obj-put-at kplayer (list p_moongate_clearing 11 12))
306
307   (kern-log-enable #t)
308   (kern-log-msg "¤½¤·¤ÆÀ×·Á¤â¤Ê¤¯¾Ã¤¨µî¤Ã¤¿¡Ä")
309   (moongate-animate black-gate (reverse blackgate-stages))
310   (kern-sleep 1000)
311   
312   (kern-log-msg "¤·¤Ð¤é¤¯¤Î´Ö¡¢Ê̤οÍÀ¸¤ÎÌ´¤ò¸«¤Æ¤¤¤¿¤è¤¦¤À¡Ä")
313   (kern-sleep 2000)
314
315   (kern-log-enable #f)
316   (kern-char-set-sleep ch_wanderer #f)
317   (kern-player-set-follow-mode)
318   (kern-log-enable #t)  
319   (kern-log-msg "¡ÄÌܳФá¤ë¤È¤½¤³¤Ï´ñ̯¤Ê¿·¤·¤¤À¤³¦¤À¤Ã¤¿¡£")
320   (kern-log-msg "ÆîÀ¾¤Ëƶ·¢¤¬¸«¤¨¤ë¡£")
321   )
322
323 (define (simple-start kplayer)
324   (kern-obj-put-at kplayer (list p_shard 76 114)))
325   
326 (define (create-char kplayer)
327  (kern-obj-put-at kplayer (list p_char_setup 10 17)
328                    ))
329       
330 ;;----------------------------------------------------------------------------
331 ;; To skip the extended start scene comment out this next line and uncomment
332 ;; the line after it.
333 ;;----------------------------------------------------------------------------
334 ;;(kern-set-start-proc start-scene)
335 ;;(kern-set-start-proc simple-start)
336 (kern-add-hook 'new_game_start_hook 'create-char)
337 (load "quests-data.scm")
338 (quest-assign (quest-data-get 'questentry-charcreate))
339
340 (kern-progress-bar-finish)
341 (println "r2g")
342
343
344 ;;quickstart stuff for playtesting
345
346 (if #f
347     (begin
348       (kern-obj-put-at 
349        (mk-chest
350         nil ;; trap
351         
352         '(
353          
354          ;; Food
355          ( 1000 t_food)
356          
357          ;; Gold
358          ( 1000 t_gold_coins)
359          
360          ;; Reagents
361          ( 55 sulphorous_ash)
362          ( 55 ginseng)
363          ( 55 garlic)
364          ( 55 spider_silk)
365          ( 53 blood_moss)
366          ( 53 black_pearl)
367          ( 51 nightshade)
368          ( 51 mandrake)
369          
370          ;; Items
371          ( 9 t_vas_mani_scroll)
372          ( 9 t_in_ex_por_scroll)
373          ( 9 t_sanct_lor_scroll)
374          ( 9 t_wis_quas_scroll)
375          ( 9 t_xen_corp_scroll)
376          ( 9 t_an_xen_ex_scroll)
377          ( 9 t_vas_rel_por_scroll)
378          ( 59 t_gem)
379          ( 9 t_cure_potion)
380          ( 9 t_mana_potion)
381          ( 99 t_xp_potion)
382          ( 99 t_str_potion)
383          ( 99 t_dex_potion)
384          ( 99 t_int_potion)
385          ( 99 t_info_potion)
386          ( 99 t_torch)
387          ( 99 t_picklock)
388          ( 9 t_pick)
389          ( 2 t_dragons_blood)
390          ( 2 t_hydras_blood)
391          ( 2 t_shovel)
392         ;; ( 1 t_rune_k)
393          
394          
395          ;; Arms
396          ( 1 t_dagger)
397          ( 1 t_mace)
398          ( 1 t_axe)
399          ( 1 t_sword)
400          ( 1 t_2H_axe)
401          ( 1 t_2H_sword)
402          ( 1 t_morning_star)
403          ( 1 t_halberd)
404          ( 1 t_staff)
405
406          ( 1 t_dagger_4)
407          ( 1 t_sword_4)
408          ( 1 t_morning_star_2)
409          ( 1 t_stun_wand)
410          ( 1 t_doom_staff)
411          ( 1 t_eldritch_blade)
412          ( 1 t_mystic_sword)
413          ( 1 t_flaming_sword)
414
415          ( 1 t_shield)
416          ( 1 t_scratched_shield)
417
418          ( 1 t_leather_helm)
419          ( 1 t_chain_coif)
420          ( 1 t_iron_helm)
421
422          ( 1 t_armor_leather)
423          ( 1 t_armor_chain)
424          ( 1 t_armor_plate)
425
426          ( 1 t_iron_helm_4)
427          ( 1 t_armor_leather_4)
428          ( 1 t_armor_chain_4)
429          ( 1 t_armor_plate_4)
430
431          ( 1 t_chrono)
432          ( 1 t_spiked_shield)
433
434          ( 1 t_sling)
435          ( 3 t_spear)
436
437          ( 1 t_sling_4)
438          ( 1 t_magic_axe)
439
440          (20 t_oil)
441          (20 t_slime_vial)
442
443          (  1 t_self_bow)
444          (  1 t_bow)
445          (  1 t_long_bow)
446          (  1 t_great_bow)
447          (500 t_arrow)
448
449          (  1 t_lt_crossbow)
450          (  1 t_crossbow)
451          (  1 t_hvy_crossbow)
452          (  1 t_trpl_crossbow)
453          (500 t_bolt)
454
455          ))
456        (list p_char_setup 16 17))
457        
458       (kern-obj-put-at
459        (mk-ladder-down 'p_moongate_clearing 18 18) 
460        (list p_char_setup 17 17))
461        
462       (kern-obj-put-at
463        (mk-ladder-down 'p_trigrave 16 16) 
464        (list p_char_setup 17 16))
465        
466        (kern-obj-put-at
467        (mk-ladder-down 'p_fire_sea 4 4) 
468        (list p_char_setup 17 15))
469        
470       (kern-obj-put-at
471        (mk-ladder-down 'p_oparine 1 1) 
472        (list p_trigrave 17 16))
473        
474        (kern-obj-put-at
475        (mk-ladder-down 'p_lost_garrison 22 22) 
476        (list p_oparine 1 1))
477        
478     ))