1;;---------------------------------------------------------------------------- 2;; Trigrave 3;; 4;; This town is at the heart of the starting region. It's a frontier town in 5;; the province of a lord who rules from the south, so don't expect anything 6;; too fancy. Here the player will find the basic shops and amenities needed to 7;; get by. 8;;---------------------------------------------------------------------------- 9 10;;---------------------------------------------------------------------------- 11;; Map 12;; 13;; This is the terrain map for the place. It may be altered at run-time so it 14;; must be saved and loaded with every session. 15;; 16;; This is a "composite" map. The individual building maps are defined 17;; separately and then blitted onto the terrain map. 18;;---------------------------------------------------------------------------- 19(kern-mk-map 20 'm_lusty_juggs 14 10 pal_expanded 21 (list 22 "xx xx xx xx xx xx xx xx xx xx xx xx xx xx " 23 "xx x! @@ .L .U .S .T .Y x! xx cc cc cc xx " 24 "ws cc cc 00 cc cc 00 cc cc xx cc cc cc xx " 25 "sT cc cc 00 cc cc 00 cc cc x! xx cc xx xx " 26 "cc cc cc cc cc cc cc cc cc cc cc cc cc xx " 27 "cc cc cc cc cc cc cc cc cc cc cc cc && xx " 28 "xx cc cc 00 cc cc 00 cc cc x! cc cc && xx " 29 "ws cc cc 00 cc cc 00 cc cc xx cc cc cc xx " 30 "xx x! @@ .J .U .G .S @@ x! xx cc cc cc xx " 31 "xx xx xx xx xx xx xx xx xx xx xx ws xx xx " 32 ) 33) 34 35(kern-mk-map 36 'm_iron_works 7 12 pal_expanded 37 (list 38 "xx xx xx xx xx xx xx " 39 "xx .I .R .O .N @@ xx " 40 "xx .W .O .R .K .S xx " 41 "ws cc cc cc cc cc xx " 42 "sA cc cc cc cc cc xx " 43 "cc cc cc cc cc __ xx " 44 "xx cc cc cc cc !! xx " 45 "ws cc cc cc cc cc xx " 46 "xx xx cc xx cc xx xx " 47 "xx cc cc x! cc cc xx " 48 "xx cc cc xx cc cc xx " 49 "xx xx xx xx xx xx xx " 50 )) 51 52(kern-mk-map 53 'm_quiet_inn 13 11 pal_expanded 54 (list 55 "xx xx xx xx xx xx xx xx xx xx xx xx xx " 56 "xx cc cc x! .G .R .A .Y @@ x! cc cc xx " 57 "xx cc cc x! @@ .D .O .V .E x! cc cc xx " 58 "cc cc cc cc cc cc cc cc cc cc cc cc xx " 59 "xx xx xx x! @@ .I .N .N @@ x! xx xx xx " 60 "xx cc cc xx cc cc cc cc cc xx cc cc xx " 61 "xx cc cc cc cc cc cc cc cc cc cc cc xx " 62 "xx xx xx x! cc cc cc cc cc x! xx xx xx " 63 "xx cc cc cc cc cc cc cc cc cc cc cc xx " 64 "xx cc cc xx cc cc cc cc cc xx cc cc xx " 65 "xx xx xx xx ws x! cc x! ws xx xx xx xx " 66 ) 67 ) 68 69(kern-mk-map 70 'm_dry_goods 7 10 pal_expanded 71 (list 72 " xx xx xx xx xx xx xx " 73 " xx @@ .D .R .Y @@ xx " 74 " xx .G .O .O .D .S xx " 75 " cc cc cc cc cc cc ws " 76 " xx @@ @@ @@ @@ @@ xx " 77 " xx cc cc cc cc cc sE " 78 " xx cc cc cc cc cc cc " 79 " xx cc cc cc cc cc xx " 80 " xx cc cc cc cc cc ws " 81 " xx xx xx xx xx xx xx " 82 ) 83 ) 84 85 86(kern-mk-map 87 'm_trigrave 32 32 pal_expanded 88 (list 89 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt " 90 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt td .. .. .. tb tt tt tt tt tt tt tt tt tt tt tt " 91 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt " 92 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt td .. .. .. tb tt tt tt tt tt tt tt tt tt tt tt " 93 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb ta tt tt tt tt tt tt tt tt tt tt " 94 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt td .. .. .. .. .. bb ta tt tt tt tt tt tt tt tt " 95 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt bb .. .. .. .. .. .. tD tt tt tt tt tt tt tt tt " 96 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt td .. .. .. .. .. bb t3 tt tt tt tt tt tt tt tt " 97 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb t3 tt tt tt tt tt tt tt tt tt tt " 98 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt td .. .. .. tb tt tt tt tt tt tt tt tt tt tt tt " 99 "tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt " 100 "tt tt tt tt tt tt tc t& ta tt tt tt tt tt tt tt td .. .. .. tb tt tt tt tt tt tt tt tt tt tt tt " 101 "tt tt tt tt tt tc bb .. bb tt tt tt tt tt tt tt bb .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt " 102 "tt tt tt tt tc sI .. .. .. ta tt tt tt tt tt tc .. .. .. .. .. ta tt tt tt tt tt tt tt tt tt tt " 103 "bb te bb te bb .. .. .. .. .. bb te bb te bb .. .. .. .. .. .. .. bb te bb te bb te bb te bb ta " 104 ".. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. " 105 ".. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. " 106 ".. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. " 107 "bb t7 bb t7 bb t7 bb t7 bb .. .. .. .. .. .. .. bb t7 bb t7 bb t7 bb t7 bb t7 bb t7 bb t7 bb t3 " 108 "tt tt tt tt tt tt tt tt tt t5 .. .. .. .. .. t3 tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 109 "tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 110 "tt tt tt tt tt tt tt tt tt tt td .. .. .. tb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 111 "tt tt tt tt tt tt tt tt tt tt bb .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 112 "tt tt tt tt tt tt tt tt tt tt td .. .. .. .. ta tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 113 "tt tt tt tt tt tt tt tt tt tt bb .. .. .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 114 "tt tt tt tt tt tt tt tt tt tt td .. .. .. .. .. .. tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 115 "tt tt tt tt tt tt tt tt bb .. .. .. .. .. .. .. .. tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 116 "tt tt tt tt tt tt tt tt .. .. .. .. .. .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 117 "tt tt tt tt tt tt tt tt bb .. .. .. .. .. .. t3 tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 118 "tt tt tt tt tt tt tt tt tt tt td .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 119 "tt tt tt tt tt tt tt tt tt tt bb .. .. .. tb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 120 "tt tt tt tt tt tt tt tt tt tt t5 .. .. .. bb tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt tt " 121 ) 122 ) 123 124;;---------------------------------------------------------------------------- 125;; NPCs 126;; 127;; NPC's are defined in two steps. Step 1 is to kern-load their read-only 128;; definition file (this file includes their conversation, schedule, 129;; constructor, etc). Step 2 is to call kern-mk-char to instantiate them. 130;;---------------------------------------------------------------------------- 131(kern-load "jim.scm") 132(bind 133 (kern-mk-char 'ch_jim ; tag 134 "Jim" ; name 135 sp_human ; species 136 nil ; occ 137 s_townsman ; sprite 138 faction-men ; starting alignment 139 4 1 2 ; str/int/dex 140 0 0 ; hp mod/mult 141 0 0 ; mp mod/mult 142 max-health -1 max-health 0 4 ; hp/xp/mp/AP_per_turn/lvl 143 #f ; dead 144 'jim-conv ; conv 145 sch_jim ; sched 146 'townsman-ai ; special ai 147 nil ; container 148 (list t_mace ; we need a 'hammer' 149 t_armor_chain) 150 ) 151 (jim-mk)) 152 153(kern-load "gwen.scm") 154(bind 155 (kern-mk-char 'ch_gwen ; tag 156 "Gwen" ; name 157 sp_human ; species 158 nil ; occ 159 s_gwen ; sprite 160 faction-men ; starting alignment 161 0 1 2 ; str/int/dex 162 0 0 ; hp mod/mult 163 0 0 ; mp mod/mult 164 max-health -1 max-health 0 2 ; hp/xp/mp/AP_per_turn/lvl 165 #f ; dead 166 'gwen-conv ; conv 167 sch_gwen ; sched 168 'townsman-ai ; special ai 169 (mk-inventory (list (list 1 t_dagger))) ; container 170 nil ; readied 171 ) 172 (gwen-mk)) 173 174(kern-load "chanticleer.scm") 175(bind 176 (kern-mk-char 'ch_chant ; tag 177 "Chanticleer" ; name 178 sp_human ; species 179 nil ; occ 180 s_chanticleer ; sprite 181 faction-men ; starting alignment 182 0 4 2 ; str/int/dex 183 0 0 ; hp mod/mult 184 0 0 ; mp mod/mult 185 max-health -1 max-health 0 5 ; hp/xp/mp/AP_per_turn/lvl 186 #f ; dead 187 'chant-conv ; conv 188 sch_chant ; sched 189 'townsman-ai ; special ai 190 (mk-inventory (list (list 1 t_sword))) ; container 191 (list t_armor_leather) ; readied 192 ) 193 (chant-mk)) 194 195(kern-load "earl.scm") 196(bind 197 (kern-mk-char 'ch_earl ;; tag 198 "Earl" ;; name 199 sp_human ;; species 200 nil ;; occ 201 s_townsman ;; sprite 202 faction-men ;; starting alignment 203 0 5 3 ;; str/int/dex 204 0 0 ;; hp mod/mult 205 0 0 ;; mp mod/mult 206 max-health -1 max-health 0 4 ;; hp/xp/mp/AP_per_turn/lvl 207 #f ; dead 208 'earl-conv ;; conv 209 sch_earl ;; sched 210 'townsman-ai ;; special ai 211 (mk-inventory (list 212 (list 1 t_staff) 213 (list 1 t_sling))) ;; container 214 nil ;; readied 215 ) 216 (earl-mk)) 217 218(kern-load "miggs.scm") 219(mk-miggs 'ch_miggs) 220 221;;---------------------------------------------------------------------------- 222;; Special Objects 223;;---------------------------------------------------------------------------- 224(define jims-chest 225 (mk-chest 226 nil ;; trap 227 '((1 t_scratched_shield) 228 (1 t_armor_plate) 229 (1 t_iron_helm)))) 230 231(define jims-other-chest 232 (mk-chest 233 'spike-trap ;; trap 234 '((100 t_gold_coins) 235 (3 t_dagger) 236 (3 t_mace) 237 (3 t_sword) 238 ))) 239 240(define earls-chest 241 (make-invisible 242 (mk-chest 243 nil ;; trap 244 '((1 t_stun_wand) 245 (3 t_xen_corp_scroll) 246 (3 t_in_vas_por_ylem_scroll) 247 (5 t_vas_mani_scroll))))) 248 249;;---------------------------------------------------------------------------- 250;; Place 251;; 252;; The place definition instantiates the place. 253;;---------------------------------------------------------------------------- 254(kern-mk-place 255 'p_trigrave ; tag 256 "Trigrave" ; name 257 s_town ; sprite 258 259 ;; Blit the buildings over the basic terrain map. 260 (if #f 261 m_trigrave 262 (blit-maps m_trigrave 263 (list 17 21 m_lusty_juggs 0 0 14 10) 264 (list 24 1 m_iron_works 0 0 7 12) 265 (list 1 1 m_quiet_inn 0 0 13 11) 266 (list 1 21 m_dry_goods 0 0 7 10))) 267 268 #f ; wraps 269 #f ; underground 270 #f ; large-scale (wilderness) 271 #f ; tmp combat place 272 nil ; subplaces 273 nil ; neighbors 274 (list ; objects 275 276 ;; characters 277 (list ch_jim 15 15) 278 (list ch_gwen 15 15) 279 (list ch_chant 15 15) 280 (list ch_earl 15 15) 281 (put ch_miggs 15 15) 282 283 ;; Inn 284 (list (kern-tag 'trigrave-inn-room-1-door (mk-locked-door)) 4 7) 285 (list (kern-tag 'trigrave-inn-room-2-door (mk-locked-door)) 4 9) 286 (list (kern-tag 'trigrave-inn-room-3-door (mk-locked-door)) 10 9) 287 (list (kern-tag 'trigrave-inn-room-4-door (mk-locked-door)) 10 7) 288 (list (mk-locked-door) 1 4) 289 (list (mk-door) 4 4) 290 (list (mk-door) 10 4) 291 (list (mk-door) 7 11) 292 (list (mk-bed) 2 6) 293 (list (mk-bed) 12 6) 294 (list (mk-bed) 12 9) 295 (list (mk-bed) 12 2) 296 297 ;; Earl's room in the inn 298 (put (mk-bed) 2 9) 299 (put earls-chest 2 10) 300 301 ;; General store 302 (list (mk-locked-door) 1 24) 303 (list (mk-door) 7 27) 304 305 ;; Iron Works 306 (list (mk-door) 24 6) 307 (list (mk-locked-door) 26 9) 308 (list (kern-tag 'tiw-portcullis (mk-portcullis)) 28 9) 309 (list (mk-lever 'tiw-portcullis) 25 11) 310 (list (mk-bed) 25 10) 311 (put jims-chest 28 11) 312 (put jims-other-chest 29 11) 313 314 ;; Lusty Juggs (tavern) 315 (list (mk-locked-door) 28 24) 316 (list (kern-tag 'tlj-d-1 (mk-connected-door 'tlj-d-2)) 17 25) 317 (list (kern-tag 'tlj-d-2 (mk-connected-door 'tlj-d-1)) 17 26) 318 (list (mk-clock) 25 23) 319 (put (mk-bed) 27 22) 320 321 ;; Chickens! 322 (put (mk-npc 'chicken 5) 15 15) 323 (put (mk-npc 'chicken 5) 16 16) 324 325 326 ) 327 (list 'lock-inn-room-doors) ;; hooks 328 (list ;; edge entrances 329 (list south 18 0) 330 (list north 12 31) 331 ) 332 ) 333 334(mk-place-music p_trigrave 'ml-small-town) 335