1(kern-load "enchanters-tower-mech.scm") 2 3;;---------------------------------------------------------------------------- 4;; Map 5;; 6;; Declare the map for the place here. 7;;---------------------------------------------------------------------------- 8(kern-mk-map 9 'm_enchanters_tower 31 31 pal_expanded 10 (list 11 "tt tt bb te bb |v |v tt %a %% %% %% %% %c .. .. .. %a %% %% %% %% %% %% %% %% %% %% %% %% %% " 12 "bb te .. t% tb tt |v |v tt t5 %% %% %% bb .. .. .. bb .. bb .. bb .. bb .. bb .. bb .. %a %% " 13 "td t# .. .. .. .. bb |v |v tt %% %% %% .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. %% " 14 "bb .. .. .. .. .. .. ta |v |v %a %% %% bb .. .. .. bb .. bb .. bb .. bb .. bb .. .. .. bb %% " 15 "|v .. .. .. .. .. .. .. bb |v t5 %% %% %d .. .. .. %b %% %% %% %% %% %% %% %% %5 .. .. .. %% " 16 "|v bb .. .. .. .. .. .. .. |v |v %a %c xx w+ cc w+ xx %e tb tt tt tt tt t5 %a %% bb .. bb %% " 17 "|v |v .. .. .. .. && .. .. ta |v xx xx xx ,, cc ,, xx xx xx |v |v |v tt tt t5 %% .. .. .. %% " 18 "tc bb .. .. bb .. .. .. .. xx w+ xx && xx ,, cc ,, xx ,, xx xx xx |v |v |v tt %% bb .. bb %% " 19 "%5 .. .. |v |v tA .. .. xx xx ,, ,, ,, xx x! cc x! xx ,, 00 x! xx ?? xx |v tt %% .. .. .. %% " 20 "%% bb .. bb |v t5 tA xx xx ,, ,, ,, ,, xx ,, cc ,, xx ,, ,, xx ,, ,, xx |v tt %% bb .. bb %% " 21 "%% .. .. |v |v tt td xx ,, ,, 00 ,, ,, xx ,, cc ,, xx ,, ,, xx xx xx xx |v tc %% .. .. .. %% " 22 "%% bb .. bb |v |v xx xx ,, ,, 00 ,, ,, xx ,, cc ,, xx ,, ,, ,, ,, ,, xx xx %3 %% bb .. bb %% " 23 "%% .. .. %f ta |v xx ,, ,, ,, ,, ,, ,, ,, ,, cc ,, ,, ,, ,, ,, ,, ,, && xx %a %% .. .. .. %% " 24 "%c bb .. bb %f xx xx xx xx xx xx xx xx xx ,, cc ,, xx xx xx xx xx xx xx xx xx %e bb .. bb %a " 25 ".. .. .. .. .. w+ ,, ,, ,, ,, xx ,, ,, x! ,, cc ,, ,, xx ,, xx ,, ,, ,, ,, w+ .. .. .. .. .. " 26 ".. .. .. .. .. cc cc cc cc ,, xx ,, ,, ,, ,, cc cc ,, xx w+ xx ,, cc cc cc cc .. .. .. .. .. " 27 ".. .. .. .. .. w+ ,, ,, cc ,, xx ,, ,, xx ,, cc ,, ,, xx ,, xx ,, cc ,, ,, w+ .. .. .. .. .. " 28 "%5 bb .. bb %7 xx xx x! cc x! xx xx xx xx ,, cc ,, xx xx xx xx x! cc x! xx xx %7 bb .. bb %3 " 29 "%% %% %% %% %% %5 w+ ,, cc ,, ,, ,, ,, ,, ,, cc ,, ,, ,, ,, ,, ,, cc ,, w+ t7 %a %% %% %% %% " 30 "%% %c .. %a %% %% xx xx cc ,, pp ,, ,, pp ,, cc ,, pp ,, ,, pp ,, cc xx xx tt tt tt tt tt tt " 31 "%% .. .. .. %% %% %5 w+ cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc xx t3 |v |v |v |v |v tt " 32 "%% %5 .. %3 %% %% %% xx xx cc cc cc cc cc cc cc cc cc cc cc cc cc xx xx |v |v bb te bb |v |v " 33 "%% %% %% %% %% %% %% %5 xx xx x! ,, ,, pp ,, cc ,, pp ,, ,, x! xx xx |v |v tt td t& tb tt |v " 34 "%% %c t3 tt tt t5 tA %a %5 xx xx xx ,, ,, ,, cc ,, ,, ,, xx xx xx tb |v |v bb .. .. .. bb |v " 35 "%c t3 tL ~3 ~5 tJ t5 tA %a %% %5 xx w+ xx xx cc xx xx w+ xx %3 %% ~5 ta |v td .. ++ .. tb |v " 36 "tt tL ~3 -- -- ~5 tJ t5 .. %% %% %% %5 xx ,, cc ,, xx %3 %% %% ~b ~~ -d |v bb .. .. .. bb |v " 37 "tt ~3 -- __ __ -- ~5 tt .. %% %% %% %% xx ,, cc ,, xx %a %% %% %% ~c %% |v |v td .. tb |v |v " 38 "tt ~a -- __ __ -- ~c tt .. %% %% %% %% xx w+ cc w+ xx .. bb .. bb %% %c |v |v bb .. bb |v |v " 39 "tt tH ~a -- -- ~c tG tc .. %e .. %a %% .. .. .. .. .. .. .. .. .. == .. tt tc tA .. t3 |v |v " 40 "%5 ta tH ~a ~c tG tc t# %7 .. .. .. %% bb .. .. .. bb .. bb .. bb %% %5 |v bb t7 bb |v |v |v " 41 "%% %5 tt tt tt tt t# %3 %% %5 .. %3 %% %5 .. .. .. %3 %% %% %% %% %% %% |v |v |v |v |v |v |v " 42 ) 43) 44 45(kern-mk-map 46 'm_enchanters_tower_l2 31 31 pal_expanded 47 (list 48 "tt tt bb te bb |. |. tt %a %% %% %% %% %c .. .. .. %a %% %% %% %% %% %% %% %% %% %% %% %% %% " 49 "bb te .. t% tb tt |. |. tt t5 %% %% %% bb .. .. .. bb .. bb .. bb .. bb .. bb .. bb .. %a %% " 50 "td t# .. .. .. .. bb |. |. tt %% %% %% .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. %% " 51 "bb .. .. .. .. .. .. ta |. |. %a %% %% bb .. .. .. bb .. bb .. bb .. bb .. bb .. .. .. bb %% " 52 "|. .. .. .. .. .. .. .. bb |. t5 %% %% %d .. .. .. %b %% %% %% %% %% %% %% %% %5 .. .. .. %% " 53 "|. bb .. .. .. .. .. .. .. |. |. %a %c ee ee ee ee ee %e tb tt tt tt tt t5 %a %% bb .. bb %% " 54 "|. |. .. .. .. .. && .. .. ta |. ee ee ee ee ee ee ee ee ee |. |. |. tt tt t5 %% .. .. .. %% " 55 "tc bb .. .. bb .. .. .. .. ee ee ee ee ee ee ee ee ee ee ee ee ee |. |. |. tt %% bb .. bb %% " 56 "%5 .. .. |. |. tA .. .. ee ee ee ee xx w+ xx xx xx w+ xx ee ee ee ee ee |. tt %% .. .. .. %% " 57 "%% bb .. bb |. t5 tA ee ee ee xx xx xx ,, ,, xx ,, ,, xx xx xx ee ee ee |. tt %% bb .. bb %% " 58 "%% .. .. |. |. tt td ee ee xx xx ,, ,, ,, ,, xx ,, ,, ,, 00 xx xx ee ee |. tc %% .. .. .. %% " 59 "%% bb .. bb |. |. ee ee ee w+ ,, ,, ,, ,, ,, x! ,, ,, ,, ,, ,, w+ ee ee ee %3 %% bb .. bb %% " 60 "%% .. .. %f ta |. ee ee xx xx ,, 00 ,, ,, ,, xx ,, ,, ,, xx xx xx xx ee ee %a %% .. .. .. %% " 61 "%c bb .. bb %f ee ee ee xx ,, ,, ,, xx xx ,, xx ,, xx xx xx [[ ]] xx ee ee ee %e bb .. bb %a " 62 ".. .. .. .. .. ee ee ee w+ ,, ,, ,, xx ,, ,, ,, ,, ,, xx 00 ,, 00 xx ee ee ee .. .. .. .. .. " 63 ".. .. .. .. .. ee ee ee xx ,, ,, ,, x! ,, cc cc cc ,, x! ,, ,, 00 xx ee ee ee .. .. .. .. .. " 64 ".. .. .. .. .. ee ee ee xx xx xx xx xx ,, ,, ,, ,, ,, xx 00 ,, 00 xx ee ee ee .. .. .. .. .. " 65 "%5 bb .. bb %7 ee ee ee xx ,, ,, xx xx xx x! ,, x! xx xx xx [[ ]] xx ee ee ee %7 bb .. bb %3 " 66 "%% %% %% %% %% %5 ee ee xx xx xx x! ,, ,, ,, ,, ,, ,, ,, x! xx xx xx ee ee t7 %a %% %% %% %% " 67 "%% %c .. %a %% %% ee ee ee w+ ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, w+ ee ee ee tt tt tt tt tt tt " 68 "%% .. .. .. %% %% %5 ee ee xx xx [[ ]] ,, ,, ,, ,, ,, [[ ]] xx xx ee ee t3 |. |. |. |. |. tt " 69 "%% %5 .. %3 %% %% %% ee ee ee xx w+ xx [[ @@ @@ @@ ]] xx w+ xx ee ee ee |. |. bb te bb |. |. " 70 "%% %% %% %% %% %% %% %5 ee ee ee ee xx w+ xx xx xx w+ xx ee ee ee ee |. |. tt td t& tb tt |. " 71 "%% %c t3 tt tt t5 tA %a %5 ee ee ee ee ee ee ee ee ee ee ee ee ee tb |. |. bb .. .. .. bb |. " 72 "%c t3 tL ~3 ~5 tJ t5 tA %a %% %5 ee ee ee ee ee ee ee ee ee %3 %% ~5 ta |. td .. ++ .. tb |. " 73 "tt tL ~3 -- -- ~5 tJ t5 .. %% %% %% %5 ee ee ee ee ee %3 %% %% ~b ~~ -d |. bb .. .. .. bb |. " 74 "tt ~3 -- __ __ -- ~5 tt .. %% %% %% %% ee ee ee ee ee %a %% %% %% ~c %% |. |. td .. tb |. |. " 75 "tt ~a -- __ __ -- ~c tt .. %% %% %% %% ee ee ee ee ee .. bb .. bb %% %c |. |. bb .. bb |. |. " 76 "tt tH ~a -- -- ~c tG tc .. %e .. %a %% .. .. .. .. .. .. .. .. .. == .. tt tc tA .. t3 |. |. " 77 "%5 ta tH ~a ~c tG tc t# %7 .. .. .. %% bb .. .. .. bb .. bb .. bb %% %5 |. bb t7 bb |. |. |. " 78 "%% %5 tt tt tt tt t# %3 %% %5 .. %3 %% %5 .. .. .. %3 %% %% %% %% %% %% |. |. |. |. |. |. |. " 79 ) 80) 81 82(kern-mk-map 83 'm_enchanters_tower_l3 31 31 pal_expanded 84 (list 85 "tt tt bb te bb |. |. tt %a %% %% %% %% %c .. .. .. %a %% %% %% %% %% %% %% %% %% %% %% %% %% " 86 "bb te .. t% tb tt |. |. tt t5 %% %% %% bb .. .. .. bb .. bb .. bb .. bb .. bb .. bb .. %a %% " 87 "td t# .. .. .. .. bb |. |. tt %% %% %% .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. %% " 88 "bb .. .. .. .. .. .. ta |. |. %a %% %% bb .. .. .. bb .. bb .. bb .. bb .. bb .. .. .. bb %% " 89 "|. .. .. .. .. .. .. .. bb |. t5 %% %% %d .. .. .. %b %% %% %% %% %% %% %% %% %5 .. .. .. %% " 90 "|. bb .. .. .. .. .. .. .. |. |. %a %c ee ee ee ee ee %e tb tt tt tt tt t5 %a %% bb .. bb %% " 91 "|. |. .. .. .. .. && .. .. ta |. ee ee ee ee ee ee ee ee ee |. |. |. tt tt t5 %% .. .. .. %% " 92 "tc bb .. .. bb .. .. .. .. ee ee ee ee ee ee ee ee ee ee ee ee ee |. |. |. tt %% bb .. bb %% " 93 "%5 .. .. |. |. tA .. .. ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee |. tt %% .. .. .. %% " 94 "%% bb .. bb |. t5 tA ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee |. tt %% bb .. bb %% " 95 "%% .. .. |. |. tt td ee ee ee ee ee ee 00 00 00 00 00 ee ee ee ee ee ee |. tc %% .. .. .. %% " 96 "%% bb .. bb |. |. ee ee ee ee ee 00 00 00 ,, ,, ,, 00 00 00 ee ee ee ee ee %3 %% bb .. bb %% " 97 "%% .. .. %f ta |. ee ee ee ee ee 00 ,, ,, ,, xx ,, ,, ,, 00 ee ee ee ee ee %a %% .. .. .. %% " 98 "%c bb .. bb %f ee ee ee ee ee 00 00 ,, x! ,, ,, ,, x! ,, 00 00 ee ee ee ee ee %e bb .. bb %a " 99 ".. .. .. .. .. ee ee ee ee ee 00 ,, ,, ,, ,, cc ,, ,, ,, ,, 00 ee ee ee ee ee .. .. .. .. .. " 100 ".. .. .. .. .. ee ee ee ee ee 00 ,, xx ,, cc cc cc ,, xx ,, 00 ee ee ee ee ee .. .. .. .. .. " 101 ".. .. .. .. .. ee ee ee ee ee 00 ,, ,, ,, ,, cc ,, ,, ,, ,, 00 ee ee ee ee ee .. .. .. .. .. " 102 "%5 bb .. bb %7 ee ee ee ee ee 00 00 ,, x! ,, ,, ,, x! ,, 00 00 ee ee ee ee ee %7 bb .. bb %3 " 103 "%% %% %% %% %% %5 ee ee ee ee ee 00 ,, ,, ,, xx ,, ,, ,, 00 ee ee ee ee ee t7 %a %% %% %% %% " 104 "%% %c .. %a %% %% ee ee ee ee ee 00 00 00 ,, ,, ,, 00 00 00 ee ee ee ee ee tt tt tt tt tt tt " 105 "%% .. .. .. %% %% %5 ee ee ee ee ee ee 00 00 00 00 00 ee ee ee ee ee ee t3 |. |. |. |. |. tt " 106 "%% %5 .. %3 %% %% %% ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee |. |. bb te bb |. |. " 107 "%% %% %% %% %% %% %% %5 ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee |. |. tt td t& tb tt |. " 108 "%% %c t3 tt tt t5 tA %a %5 ee ee ee ee ee ee ee ee ee ee ee ee ee tb |. |. bb .. .. .. bb |. " 109 "%c t3 tL ~3 ~5 tJ t5 tA %a %% %5 ee ee ee ee ee ee ee ee ee %3 %% ~5 ta |. td .. ++ .. tb |. " 110 "tt tL ~3 -- -- ~5 tJ t5 .. %% %% %% %5 ee ee ee ee ee %3 %% %% ~b ~~ -d |. bb .. .. .. bb |. " 111 "tt ~3 -- __ __ -- ~5 tt .. %% %% %% %% ee ee ee ee ee %a %% %% %% ~c %% |. |. td .. tb |. |. " 112 "tt ~a -- __ __ -- ~c tt .. %% %% %% %% ee ee ee ee ee .. bb .. bb %% %c |. |. bb .. bb |. |. " 113 "tt tH ~a -- -- ~c tG tc .. %e .. %a %% .. .. .. .. .. .. .. .. .. == .. tt tc tA .. t3 |. |. " 114 "%5 ta tH ~a ~c tG tc t# %7 .. .. .. %% bb .. .. .. bb .. bb .. bb %% %5 |. bb t7 bb |. |. |. " 115 "%% %5 tt tt tt tt t# %3 %% %5 .. %3 %% %5 .. .. .. %3 %% %% %% %% %% %% |. |. |. |. |. |. |. " 116 ) 117) 118 119;;---------------------------------------------------------------------------- 120;; Characters 121;; 122;; kern-load the character files here and call their first-time constructors. 123;;---------------------------------------------------------------------------- 124(kern-load "zane.scm") 125(mk-zane-first-time 'ch_zane) 126 127;;(kern-load "gate-guard.scm") 128 129(kern-load "enchanter.scm") 130(mk-enchanter-first-time 'ch_enchanter) 131 132;;---------------------------------------------------------------------------- 133;; Place 134;; 135;; Call the place constructor here. 136;;---------------------------------------------------------------------------- 137(kern-mk-place 138 'p_enchanters_tower ; tag 139 "Enchanters Tower" ; name 140 s_tower ; sprite 141 m_enchanters_tower ; map 142 #f ; wraps 143 #f ; underground 144 #f ; large-scale (wilderness) 145 #f ; tmp combat place 146 nil ; subplaces 147 nil ; neighbors 148 149 ;;objects 150 (list 151 152 ;; characters 153 (list ch_zane 0 0) 154 155 ;; magically locked doors at all entrances 156 (put (mk-magic-locked-door) 5 15) 157 (put (mk-magic-locked-door) 25 15) 158 (put (mk-magic-locked-door) 15 5) 159 (put (mk-magic-locked-door) 15 27) 160 161 ;; dbg hack 162 ;; (put (kern-mk-obj t_poison_immunity_potion 1) 14 4) 163 ;; (put (kern-mk-obj t_in_ex_por_scroll 1) 16 4) 164 165 ;; portcullis's & levers for west store room 166 (put (kern-tag 'enchtwr-port-4 (mk-portcullis)) 13 15) 167 (put (mk-lever 'enchtwr-port-4) 21 9) 168 169 ;; treasure in west store room 170 (put (mk-chest 171 'burn-trap 172 '((10 sulphorous_ash) 173 (10 ginseng) 174 (10 garlic) 175 (10 spider_silk) 176 (10 blood_moss) 177 (10 black_pearl) 178 (10 nightshade) 179 (10 mandrake) 180 (1 t_spell_book_white_magick_1) 181 (1 t_spell_book_white_magick_2) 182 )) 183 11 14) 184 (put (mk-chest 185 'spike-trap 186 '((10 t_heal_potion) 187 (10 t_mana_potion) 188 (5 t_cure_potion) 189 (5 t_poison_immunity_potion) 190 (1 t_invisibility_potion) 191 (1 t_spell_book_force_magick_fields) 192 )) 193 11 15) 194 (put (mk-chest 195 'lightning-trap 196 '( 197 (100 t_gold_coins) 198 )) 199 11 16) 200 201 (put (mk-bed) 21 11) 202 203 (put (mk-magic-locked-door) 19 14) 204 205 (put (mk-door) 15 8) 206 (put (mk-door) 15 24) 207 (put (mk-door) 22 17) 208 (put (mk-door) 8 17) 209 210 (put (mk-ladder-up 'p_enchanters_tower_l2 16 15) 211 16 15) 212 213 (put (mk-door) 13 12) 214 (put (mk-door) 17 12) 215 (put (mk-clock) 7 12) 216 217 (put (mk-shelf) 18 7) 218 (put (mk-shelf) 19 10) 219 ) 220 221 (list 'on-entry-trigger-all 'quest-calltoarms-tower) ; hooks 222 (list ; edge entrances 223 (list northeast 3 30) 224 (list southwest 30 14) 225 ) 226 227 ) 228 229(mk-place-music p_enchanters_tower 'ml-castle) 230 231(kern-mk-place 232 'p_enchanters_tower_l2 ; tag 233 "Enchanters Tower" ; name 234 s_keep ; sprite 235 m_enchanters_tower_l2 ; map 236 #f ; wraps 237 #f ; underground 238 #f ; large-scale (wilderness) 239 #f ; tmp combat place 240 nil ; subplaces 241 nil ; neighbors 242 ;;objects 243 (list 244 245 (put (mk-ladder-down 'p_enchanters_tower 16 15) 246 16 15) 247 (put (mk-ladder-up 'p_enchanters_tower_l3 14 15) 248 14 15) 249 250 (put (mk-door) 16 13) 251 (put (mk-door) 14 13) 252 (put (mk-door) 15 17) 253 254 (put (mk-bed) 18 12) 255 256 (put (mk-shelf) 14 9) 257 (put (mk-shelf) 14 10) 258 (put (mk-shelf) 14 11) 259 (put (mk-shelf) 11 10) 260 (put (mk-shelf) 12 10) 261 (put (mk-shelf) 12 12) 262 (put (mk-shelf) 9 13) 263 (put (mk-shelf) 11 13) 264 265 (put (mk-shelf) 10 15) 266 (put (mk-shelf) 11 15) 267 268 (put (mk-shelf) 16 18) 269 (put (mk-shelf) 17 18) 270 271 (put (mk-hidden 't_ylem_an_ex_book 1) 14 9) 272 (put (mk-hidden 't_bet_flam_hur_book 1) 11 10) 273 274 ;; treasure in east store room 275 (put (kern-mk-obj t_doom_staff 1) 20 13) 276 (put (kern-mk-obj t_xen_corp_scroll 1) 21 13) 277 278 (put (kern-mk-obj t_an_tym_scroll 1) 21 14) 279 280 (put (kern-mk-obj t_vas_rel_por_scroll 1) 20 17) 281 (put (kern-mk-obj t_spell_book_divination 1) 20 17) 282 (put (kern-mk-obj t_in_vas_por_ylem_scroll 1) 21 17) 283 (put (kern-mk-obj t_spell_book_gate_magick 1) 21 17) 284 285 (put (kern-mk-obj t_spell_book_enchantment_wards 1) 21 15) 286 (put (kern-mk-obj t_spell_book_enchantment_curses 1) 21 15) 287 (put (kern-mk-obj t_spell_book_enchantment_miscellanea 1) 21 15) 288 289 (put (kern-mk-obj t_gold_coins 500) 21 16) 290 291 (put (kern-mk-obj t_mans_note 1) 19 16) 292 293 294 (put (kern-tag 'openlibwall 295 (mk-tblitter 'p_ 296 8 297 0 298 3 299 1 300 'm_hall_section)) 301 0 302 0) 303 304 (put (kern-tag 'closelibwall 305 (mk-tblitter 'p_ 306 8 307 0 308 3 309 1 310 'm_hall_section)) 311 0 312 0) 313 314 ) 315 (list 'on-entry-trigger-all) ; hooks 316 nil ; edge entrances 317 ) 318 319(mk-place-music p_enchanters_tower_l2 'ml-castle) 320 321;;plain old mirror mirror 322(let* ((kmir (kern-tag 'ench-guest-mirror (mk-mirror 's_mirror_bg_flagstones))) 323 (ksen (mk-char-sensor 'ench-guest-mirror))) 324 (kern-obj-put-at kmir (list p_enchanters_tower_l2 16 9)) 325 (kern-obj-put-at ksen (list p_enchanters_tower_l2 16 10))) 326 327;;decorative test mirror 328(let* ((testmirror1 (kern-tag 'ench-test-mirror1 329 (mk-mag-mirror 's_mirror_bg_flagstones 330 (list 'p_enchanters_tower_l2 14 19) 331 (list 'p_enchanters_tower_l2 12 19) 332 #t 'testmirhandler 333 ))) 334 (testmirror2 (kern-tag 'ench-test-mirror2 335 (mk-mag-mirror 's_mirror_bg_flagstones 336 (list 'p_enchanters_tower_l2 12 19) 337 (list 'p_enchanters_tower_l2 14 19) 338 #t 'testmirhandler 339 ))) 340 (sigsplit (kern-tag 'ench-test-mirrors 341 (mk-sig-splitter (list 'ench-test-mirror1 'ench-test-mirror2 nil)) 342 ))) 343 (kern-obj-put-at testmirror1 (list p_enchanters_tower_l2 12 18)) 344 (kern-obj-put-at testmirror2 (list p_enchanters_tower_l2 14 18)) 345 (kern-obj-put-at sigsplit (list p_enchanters_tower_l2 0 0)) 346 (kern-obj-put-at (mk-char-sensor 'ench-test-mirrors) (list p_enchanters_tower_l2 12 19)) 347 (kern-obj-put-at (mk-char-sensor 'ench-test-mirrors) (list p_enchanters_tower_l2 14 19)) 348 (kern-obj-put-at (mk-lever-on 'ench-test-mirrors) (list p_enchanters_tower_l2 13 18)) 349 ) 350 351;;working portal mirror 352(let* ((doormirror1 (kern-tag 'ench-door-mirror1 353 (mk-mag-mirror 's_mirror_bg_flagstones 354 (list 'p_enchanters_tower_l2 20 15) 355 (list 'p_enchanters_tower_l2 9 17) 356 #f 'doormirhandler 357 ))) 358 (doormirror2 (kern-tag 'ench-door-mirror2 359 (mk-mag-mirror 's_mirror_bg_flagstones 360 (list 'p_enchanters_tower_l2 9 17) 361 (list 'p_enchanters_tower_l2 20 15) 362 #f 'doormirhandler 363 ))) 364 (sigsplit (kern-tag 'ench-door-mirrors 365 (mk-sig-splitter (list 'ench-door-mirror1 'ench-door-mirror2 nil)) 366 ))) 367 (kern-obj-put-at doormirror1 (list p_enchanters_tower_l2 10 17)) 368 (kern-obj-put-at doormirror2 (list p_enchanters_tower_l2 19 15)) 369 (kern-obj-put-at sigsplit (list p_enchanters_tower_l2 0 0)) 370 (kern-obj-put-at (mk-char-sensor 'ench-door-mirrors) (list p_enchanters_tower_l2 9 17)) 371 (kern-obj-put-at (mk-char-sensor 'ench-door-mirrors) (list p_enchanters_tower_l2 20 15)) 372 (kern-obj-put-at (mk-lever 'ench-door-mirrors) (list p_enchanters_tower 19 16)) 373 ) 374 375;;ench bedroom entrance 376(let* ((broomwall (kern-tag 'ench-broom-wall 377 (mk-bim-secret 't_secret_door 't_wall (list 'p_enchanters_tower 19 13))))) 378 (kern-obj-put-at ench-broom-wall (list p_enchanters_tower 19 13)) 379 (kern-obj-put-at (mk-hidden-mech) (list p_enchanters_tower 20 8)) 380 (kern-obj-put-at (mk-disg-lvr 'ench-broom-wall 's_wall_torch) (list p_enchanters_tower 20 8)) 381 ) 382 383;;library wall entrance 384(let* ((libwall (kern-tag 'ench-lib-wall 385 (mk-bim-secret 't_secret_door 't_wall (list 'p_enchanters_tower_l2 9 16))))) 386 (kern-obj-put-at ench-lib-wall (list p_enchanters_tower_l2 9 16)) 387 (kern-obj-put-at (mk-moving-shelf 388 (list 'p_enchanters_tower_l2 10 15) 389 (list 'p_enchanters_tower_l2 9 15) 390 'ench-lib-wall) 391 (list p_enchanters_tower_l2 9 15)) 392 ) 393 394;;magic clock 395(kern-obj-put-at (mk-mag-clock) (list p_enchanters_tower_l2 18 18)) 396 397 398(kern-mk-place 399 'p_enchanters_tower_l3 ; tag 400 "Enchanters Tower Roof" ; name 401 s_keep ; sprite 402 m_enchanters_tower_l3 ; map 403 #f ; wraps 404 #f ; underground 405 #f ; large-scale (wilderness) 406 #f ; tmp combat place 407 nil ; subplaces 408 nil ; neighbors 409 ;;objects 410 (list 411 (put (mk-ladder-down 'p_enchanters_tower_l2 14 15) 412 14 15) 413 ;; this needs a telescope 414 ) 415 416 (list 'on-entry-trigger-all) ; hooks 417 nil ; edge entrances 418 ) 419 420(define (obj-line objfactory place yloc xloc xmax) 421 (kern-obj-put-at (objfactory xloc yloc) (list place xloc yloc)) 422 (if (< xloc xmax) 423 (obj-line objfactory place yloc (+ xloc 1) xmax) 424 )) 425 426(define (obj-rect objfactory place xmin xmax ymin ymax) 427 (obj-line objfactory place ymin xmin xmax) 428 (if (< ymin ymax) 429 (obj-rect objfactory place xmin xmax (+ ymin 1) ymax) 430 )) 431 432(define (obj-list objfactory place loclist) 433 (kern-obj-put-at (objfactory (caar loclist) (cadar loclist)) (list place (caar loclist) (cadar loclist))) 434 (if (not (equal? (cadr loclist) '())) 435 (obj-list objfactory place (cdr loclist)) 436 )) 437 438(mk-place-music p_enchanters_tower_l3 'ml-castle) 439 440;;no teleporting out of the tower! 441;; TODO use same mechanism as gryphon peak 442 443(let ((blockers 444 (lambda (xloc yloc) (mk-blocker)))) 445 (obj-rect blockers p_enchanters_tower_l2 0 30 0 7) 446 (obj-rect blockers p_enchanters_tower_l2 0 7 8 22) 447 (obj-rect blockers p_enchanters_tower_l2 23 30 8 22) 448 (obj-rect blockers p_enchanters_tower_l2 0 30 23 30) 449 (obj-rect blockers p_enchanters_tower_l2 8 11 8 8) 450 (obj-rect blockers p_enchanters_tower_l2 19 22 8 8) 451 (obj-rect blockers p_enchanters_tower_l2 8 11 22 22) 452 (obj-rect blockers p_enchanters_tower_l2 19 22 22 22) 453 (obj-list blockers p_enchanters_tower_l2 (list 454 (list 8 9) (list 8 10) (list 8 11) (list 9 9) 455 (list 22 9) (list 22 10) (list 22 11) (list 21 9) 456 (list 8 19) (list 8 20) (list 8 21) (list 9 21) 457 (list 22 19) (list 22 20) (list 22 21) (list 21 21) 458 nil)) 459 (obj-rect blockers p_enchanters_tower_l3 0 30 0 9) 460 (obj-rect blockers p_enchanters_tower_l3 0 9 10 20) 461 (obj-rect blockers p_enchanters_tower_l3 21 30 10 20) 462 (obj-rect blockers p_enchanters_tower_l3 0 30 21 30) 463 (obj-rect blockers p_enchanters_tower_l3 10 12 10 10) 464 (obj-rect blockers p_enchanters_tower_l3 18 20 10 10) 465 (obj-rect blockers p_enchanters_tower_l3 10 12 20 20) 466 (obj-rect blockers p_enchanters_tower_l3 18 20 20 20) 467 (obj-list blockers p_enchanters_tower_l3 (list 468 (list 10 11) (list 10 12) (list 20 11) (list 20 12) 469 (list 10 18) (list 10 19) (list 20 18) (list 20 29) 470 nil)) 471 ) 472 473 474