OSDN Git Service

052e125ef01bc9a3926067b24c4409e31c6943ad
[nazghul-jp/nazghul-jp.git] / worlds / haxima-1.002 / gamestart-statues.scm
1 (define (gsstatue-unknown knpc kpc)
2   (say knpc "[The statue remains silent]"))
3
4 (define (gsstatue-hail knpc kpc)
5   (say knpc "[A statue speaks to you]")
6   (gamestart-statue-clean knpc "statspeak")
7   )
8     
9 (define gsstatue-conv
10   (ifc '()
11        ;; fundamentals
12        (method 'default gsstatue-unknown)
13        (method 'hail gsstatue-hail)
14        )
15        )
16
17 (define (gsstatue-dostat knpc kpc iname iset iget dname dset dget initial)
18         (define (gs-check-upper value)
19                 (if (> value 11)
20                         (begin
21                                 (say knpc "I cannot raise your " iname " further")
22                                 #t
23                                 )
24                         #f))
25         (define (gs-check-lower value)
26                 (if (< value 1)
27                         (begin
28                                 (say knpc "You must not abuse your " dname " further")
29                                 #t
30                                 )
31                         #f))
32         (define (gs-initialcheck)
33                 (say knpc "Do you wish to convert " dname " into " iname "?")
34                 (if (kern-conv-get-yes-no? kpc)
35                         #f #t)
36                 )
37         (define (gs-repeatcheck)
38                 (say knpc "Continue?")
39                 (if (kern-conv-get-yes-no? kpc)
40                         #f #t)
41                 )
42         (let ((ival (iget kpc))
43                         (dval (dget kpc))
44                         )
45                 (cond ((gs-check-upper ival))
46                         ((gs-check-lower dval))
47                         ((and initial (gs-initialcheck)) (say knpc "As you wish"))
48                         ((and (not initial) (gs-repeatcheck)) (say knpc "As you wish"))
49                         (#t
50                                 (iset kpc (+ ival 1))
51                                 (dset kpc (- dval 1))
52                                 (say knpc "[Your " iname " increases]")
53                                 (say knpc "[Your " dname
54                                         (cond ((< dval 3) " withers!]")
55                                                 ((< dval 9) " diminishes]")
56                                                 (#t " wanes]")
57                                         )
58                                 )
59                                 (gamestart-reset-lamps kpc)
60                                 (gsstatue-dostat knpc kpc iname iset iget dname dset dget #f)
61                         )
62                 )       
63         ))
64                        
65 ;; Statue of intelligence
66
67 (define (gs-int-hail knpc kpc)
68   (say knpc "Welcome, Seeker. I give wisdom to those who ask for it.")
69   (gamestart-statue-clean knpc "statspeak")
70   )
71   
72 (define (gs-int-job knpc kpc)
73         (say knpc "I represent the force of reason, and can assist you in endeavors of magic or wit.")
74         )
75   
76 (define (gs-int-assi knpc kpc)
77         (say knpc "I can raise your intellect, but it will cost you some of your strength or dexterity")
78         )
79
80 (define (gs-int-rais knpc kpc)
81         (say knpc "You will need to say which attribute you want to suffer the penalty")
82         )
83                 
84 ;; expand on this as other abilities become available
85 (define (gs-int-inte knpc kpc)
86   (say knpc "The wise weave spells of power, and resist malignant magicks, but fools are ensnared and easily deceived. "
87        "Beware, Seeker! Evil beings of vast intelligence lie in wait along your path. "
88        "You will need wisdom to overcome them. Is this your wish?")
89   (if (yes? kpc)
90       (say knpc "To grow wise you must give up strength or dexterity.")
91       (say knpc "He who turns away from wisdom is the delight of daemons.")
92       )
93   )
94         
95 (define (gs-int-stre knpc kpc)
96   (say knpc "Take heed, Seeker! Physical strength will not avail you against the strongest of the dark powers.")
97   (gsstatue-dostat knpc kpc "intelligence" kern-char-set-intelligence kern-char-get-base-intelligence 
98                    "strength" kern-char-set-strength kern-char-get-base-strength #t)
99   )
100       
101         
102 (define (gs-int-dext knpc kpc)
103   (say knpc "Consider well, Seeker! The straightest arrow will miss the unclean warlock, "
104        "and the doors of the deep are locked with spells that cannot be picked.")
105   (gsstatue-dostat knpc kpc "intelligence" kern-char-set-intelligence kern-char-get-base-intelligence 
106                    "dexterity" kern-char-set-dexterity kern-char-get-base-dexterity #t)
107   )
108
109 (define (gs-int-bye knpc kpc)
110   (say knpc "Go now, Seeker. May your wards shield you, your summonings aid you, and your wrath rain fire and lightning on the unholy!")
111   )
112
113 (define gs-int-conv
114   (ifc '()
115        ;; fundamentals
116        (method 'default gsstatue-unknown)
117        (method 'bye gs-int-bye)
118        (method 'hail gs-int-hail)
119        (method 'job gs-int-inte)
120        (method 'inte gs-int-inte)
121        (method 'int gs-int-inte)
122        (method 'wis gs-int-inte)
123        (method 'wisd gs-int-inte)
124        (method 'stre gs-int-stre)
125        (method 'str gs-int-stre)
126        (method 'dext gs-int-dext)
127        (method 'dex gs-int-dext)
128        )
129   )
130        
131 ;; Statue of might
132
133 (define (gs-str-hail knpc kpc)
134   (say knpc "Hail, Seeker. I give strength to those who would be mighty.")
135   (gamestart-statue-clean knpc "statspeak")
136   )
137   
138 ;; expand on this as other abilities become available
139 (define (gs-str-stre knpc kpc)
140         (say knpc "Gain strength, and you will split helms, crush bones, and batter the shields of your foes to splinters. "
141              "You can bear the heaviest armour without staggering, and the blows of your enemies will glance off unheeded. "
142              "Strength is not the most important thing to a warrior, it is the only thing! "
143              "Would you be strong?")
144         (if (yes? kpc)
145             (say knpc "What will you sacrifice for strength: intelligence or dexterity?")
146             (say knpc "Only the strong will survive where you must go.")
147             ))
148         
149 (define (gs-str-inte knpc kpc)
150   (say knpc "A warrior needs some cunning, but might is paramount!")
151   (gsstatue-dostat knpc kpc "strength" kern-char-set-strength kern-char-get-base-strength 
152                    "intelligence" kern-char-set-intelligence kern-char-get-base-intelligence #t)
153   )
154         
155 (define (gs-str-dext knpc kpc)
156   (say knpc "Your friends may be impressed by feats of dexterity, "
157        "but your foes will be persuaded by force of arms!")
158   (gsstatue-dostat knpc kpc "strength" kern-char-set-strength kern-char-get-base-strength 
159                    "dexterity" kern-char-set-dexterity kern-char-get-base-dexterity #t)
160   )
161
162 (define (gs-str-bye knpc kpc)
163   (say knpc "Go now and smite the wicked."))
164
165 (define gs-str-conv
166   (ifc '()
167        ;; fundamentals
168        (method 'default gsstatue-unknown)
169        (method 'bye gs-str-bye)
170        (method 'hail gs-str-hail)
171        (method 'job gs-str-stre)
172        (method 'stre gs-str-stre)
173        (method 'inte gs-str-inte)
174        (method 'int gs-str-inte)
175        (method 'dext gs-str-dext)
176        (method 'dex gs-str-dext)
177        )
178   )
179        
180 ;; Statue of agility
181
182 (define (gs-dex-hail knpc kpc)
183   (say knpc "Well met, Seeker. Alas, I cannot make you a powerful brute nor an absent-minded mage like my adjacent cohorts, "
184        "but allow me to profer dexterity.")
185   (gamestart-statue-clean knpc "statspeak")
186   )
187   
188 (define (gs-dex-dext knpc kpc)
189   (say knpc "Dexterity is the attribute of the subtle adventurer. Why beat down a door when one can pick the lock?\n\n"
190        "Why ruin the eyesite on musty grimoires when treasure is easily found by stealth and craft?\n\n"
191        "Why risk mussing one's tastefully chosen accoutrements in a melee when foes can be shot from afar with aplomb?\n\n"
192        "And indeed, should a momentary lapse in judgment leave one cornered, speed and quick thinking will save the day. "
193        "Do you agree?")
194   (if (yes? kpc)
195       (say knpc "Indeed. Dexterity is well worth the sacrifice of crass strength or boorish intelligence.")
196       (say knpc "Ah. Well. Mind your wallet, friend. Thieves love to prey on the clumsy.")
197       )
198   )
199         
200 (define (gs-dex-inte knpc kpc)
201   (say knpc "If you ask me, intelligence is greatly overrated. "
202        "I mean, who cares about raising the dead when one can loot their corpses?")
203        (gsstatue-dostat knpc kpc "dexterity" kern-char-set-dexterity kern-char-get-base-dexterity 
204                         "intelligence" kern-char-set-intelligence kern-char-get-base-intelligence #t)
205        )
206         
207 (define (gs-dex-stre knpc kpc)
208   (say knpc "Strength is impressive to the impressionable, "
209        "but hauling all that armour and weaponry around looks like pointless hard work.")
210   (gsstatue-dostat knpc kpc "dexterity" kern-char-set-dexterity kern-char-get-base-dexterity 
211                    "strength" kern-char-set-strength kern-char-get-base-strength #t)
212   )
213
214 (define (gs-dex-bye knpc kpc)
215   (say knpc "Farewell, always keep your wits about you, "
216        "never pass up an opportunity to sip from a flagon or kiss a pretty maid, "
217        "and at all costs, Seeker, remember to die well!")
218   )
219
220 (define gs-dex-conv
221   (ifc '()
222        ;; fundamentals
223        (method 'default gsstatue-unknown)
224        (method 'bye gs-dex-bye)
225        (method 'hail gs-dex-hail)
226        (method 'job gs-dex-dext)
227        (method 'dex gs-dex-dext)
228        (method 'dext gs-dex-dext)
229        (method 'stre gs-dex-stre)
230        (method 'str gs-dex-stre)
231        (method 'inte gs-dex-inte)
232        (method 'int gs-dex-inte)
233        )
234   )