1;;---------------------------------------------------------------------------- 2;; Schedule 3;; 4;; In Green Tower. 5;;---------------------------------------------------------------------------- 6(define (mk-zone x y w h) (list 'p_green_tower x y w h)) 7(kern-mk-sched 'sch_gen 8 (list 0 0 (mk-zone 2 13 1 1) "sleeping") 9 (list 4 0 (mk-zone 3 12 3 3) "eating") 10 (list 5 0 gt-woods "idle") 11 (list 10 0 (mk-zone 26 27 2 12) "idle") 12 (list 12 0 (mk-zone 49 54 1 1) "eating") 13 (list 13 0 (mk-zone 49 3 7 2) "idle") 14 (list 14 0 (mk-zone 7 20 5 5) "idle") 15 (list 18 0 (mk-zone 49 54 1 1) "eating") 16 (list 19 0 (mk-zone 3 12 3 3) "idle") 17 (list 0 0 (mk-zone 2 13 1 1) "sleeping") 18 ) 19 20;; ---------------------------------------------------------------------------- 21;; Gen's Goblin Lexicon 22;; ---------------------------------------------------------------------------- 23(mk-reusable-item 24 't_goblin_lexicon "Goblin Lexicon" s_lexicon norm 25 (lambda (klexicon kuser) 26 (kern-ui-page-text 27 "Goblin Lexicon" 28 "I compiled these notes to help others learn the goblin language. " 29 "I hope they are useful." 30 "--Gen" 31 "" 32 "Bo.....My, Myself" 33 "Cho....Mankind" 34 "Da.....Abode, World" 35 "Eh.....'What?'" 36 "Gu.....Spirit, Ancestor" 37 "Ha.....Good, Yes, Skillful" 38 "Hi.....Magic" 39 "Iki....Go, At" 40 "Jo.....Join" 41 "Ka.....Kill, Destroy, End" 42 "Ki.....Health, Life-Force, Power" 43 "Lu.....Change, Metamorphosis, Transformation" 44 "Ma.....Forest, Hidden Ways" 45 "Me.....Duty, Job, Destiny" 46 "Na.....Yours, Yourself" 47 "Nu.....Give Birth, Create, Begin" 48 "No.....Name" 49 "Nin....Stealth" 50 "Ru.....Ancient, Primordal, Deep, Cave" 51 "To.....Individual" 52 "Tu.....No, Bad" 53 "Zu.....Watch, Seek" 54 ))) 55 56;;---------------------------------------------------------------------------- 57;; Gob 58;;---------------------------------------------------------------------------- 59(define (gen-mk will-join? gave-notes?) (list will-join? gave-notes?)) 60(define (gen-will-join? gen) (car gen)) 61(define (gen-gave-notes? gen) (cadr gen)) 62(define (gen-set-will-join! gen val) (set-car! gen val)) 63(define (gen-set-gave-notes! gen val) (set-car! (cdr gen) val)) 64 65;;---------------------------------------------------------------------------- 66;; Conv 67;; 68;; Gen is a Ranger who dwells in Green Tower. 69;; He has much knowledge of Goblin kind, and is a friend of Kama. 70;; Gen is a potential party member. 71;;---------------------------------------------------------------------------- 72(define (gen-hail gen player) (say gen "Hail, Wanderer")) 73(define (gen-bye gen player) (say gen "Farewell")) 74(define (gen-default gen player) (say gen "I can't help you with that")) 75(define (gen-name gen player) (say gen "I am Gen." )) 76(define (gen-woodsman gen player) (say gen "Yes, some call me the Woodsman." )) 77(define (gen-job gen player) (say gen "Once I was a Ranger, but my duty now is done. I wander 'midst the woods for my own reasons." )) 78(define (gen-reasons gen player) (say gen "My reasons are my own." )) 79 80(define (gen-captain gen player) 81 (say gen "Captain Deric commands the Rangers of Green Tower. Have you met him?") 82 (if (kern-conv-get-yes-no? player) 83 (say gen "A decent man, if somewhat ambitious.") 84 (say gen "You can find him in the Tower. His office is on the second floor."))) 85 86(define (gen-ambitious gen player) (say gen "In peace there's nothing so becomes a man as modest stillness and humility." )) 87(define (gen-culture gen player) 88 (say gen "Though a culture their own, truly a culture they have, (unlike the trolls and headless)." 89 "The truths of culture can be seen in Shakespeare, truths which hold across the gulfs between different folk.")) 90(define (gen-shakespeare gen player) 91 (say gen "You know of him! Very good! Some interesting conversation at last.") 92 (if (in-player-party? 'ch_kama) 93 (say gen player "[He points at Kama] Another who knows of the Bard! You should hear his telling of Hamlet!") 94 )) 95 96(define (gen-ranger gen player) (say gen "Rangers fought in these woods during the Goblin Wars. Now they maintain a token presence.")) 97(define (gen-wars gen player) (say gen "Yes, I fought as a Ranger in the goblin wars. That was a generation ago, and people forget. " 98 "They see the goblins as lesser beings, defeated and worthy of slow extinction.")) 99(define (gen-goblin gen player) (say gen "An interesting species. Although they have their own language they have no writing. " 100 "They are much like men, but more savage, more primal. " 101 "Their warriors are beserkers, their shamans are ecstatic mystics.")) 102(define (gen-primal gen player) (say gen "You can tell I admire them? But in the wars I fought them, not understanding what they were. " 103 "I have friends among the wild forest goblins, now. The cave goblins, though, they are another story..." )) 104(define (gen-cave gen player) (say gen "The cave goblins, who are larger and stronger than their forest cousins, prefer to live in the deeps of the world. " 105 "Their dark god demands living sacrifices. Beware them if you explore the caves, they burn with hatred for humankind." )) 106 107(define (gen-language kgen player) 108 (let ((gen (kobj-gob-data kgen))) 109 (say kgen "Yes, I can speak a few words of goblin. Would you like to learn?") 110 (if (kern-conv-get-yes-no? player) 111 (if (gen-gave-notes? gen) 112 (say kgen "Study the notes I gave you, and then practice on me.") 113 (begin 114 (say kgen "Here are some notes I have made on their language. You may keep it. Feel free to practice with me.") 115 (kern-obj-add-to-inventory player t_goblin_lexicon 1) 116 (gen-set-gave-notes! gen #t))) 117 (say kgen "Perhaps another time.")))) 118 119 120(define (gen-practice gen player) (say gen "If you want to practice speaking goblin, just ask me something in goblin!" )) 121 122(define (gen-join gen player) 123 (if (gen-will-join? (kobj-gob-data gen)) 124 (begin 125 (say gen "Yes, I will join you. " 126 "I'll need my equipment from my chest, " 127 "so let's go to my hut in the west part of town. " 128 "Once more unto the breach, dear friends!") 129 (join-player gen)) 130 (say gen "No, for the woods call my name."))) 131 132;; SAM: Added a few words from the Lexicon which were not defined as responses. 133;; These were (Iki, Lu, Nin) 134;; Also enhanced a few responses such as for (Eh). 135;; Added responses having to do with the concepts of Wanderer, Warrior, Wizard, Rogue, Wright. 136;; A bit of organization/tidying may still be wanted, to make sure there are no loose ends . 137 138(define (gen-da gen player) (say gen "Ha! Da-Ma-To means forest goblin." )) 139(define (gen-gu gen player) (say gen "Ha! Da-Gu means world." )) 140(define (gen-ru gen player) (say gen "Ha! Da-Ru-To means cave goblin." )) 141(define (gen-no gen player) (say gen "Bo-No-Gen. But the goblins call me Ma-Zu-To." )) 142(define (gen-ki gen player) (say gen "Bo-Ha-Ki! I am healthy." )) 143(define (gen-jo gen player) (say gen "Very good! If you befriend a goblin he may join you in your adventures.")) 144(define (gen-cho gen player) (say gen "Ha! Cho-To means 'a man'." )) 145(define (gen-nu gen player) (say gen "Ha! Nu-Ki is the goblin word for 'food'" )) 146(define (gen-ha gen player) (say gen "Yes, Ha is a general affirmative term." )) 147(define (gen-tu gen player) (say gen "Right, Tu is a general negative term." )) 148(define (gen-bo gen player) (say gen "Yes, Bo-Gu means your spirit self, which is your altar ego in the spirit world." )) 149(define (gen-na gen player) (say gen "Yes, Bo-Na means 'us', or 'tribe'. Bo-Na-Ma refers to forest goblins in general." )) 150(define (gen-to gen player) (say gen "Right, To is a general suffix meaning person." )) 151(define (gen-ma gen player) (say gen "Yes, and Ka-Ma-To is their term for lumberjack." )) 152(define (gen-eh gen player) (say gen "Eh? Ah yes, Eh-Na-Me means what is your job, or duty." )) 153(define (gen-iki gen player) (say gen "Ha! Bo-Iki-Da means 'I go home'.")) 154 155(define (gen-me gen player) (say gen "Bo-Ma-Zu. I watch the forest, or I seek the hidden ways. Me-Lu-Ki is to grow, change, learn, explore. Such is the path of the Wanderer!")) 156(define (gen-ka gen player) (say gen "Ha! Ka-Ha-To means warrior. And Me-Ka-Ha is the path of the Warrior!")) 157(define (gen-hi gen player) (say gen "Ha! Hi-Ma-To is the word for 'shaman'. And Me-Ha-Zu-Ru is the path of the Wizard!")) 158(define (gen-nin gen player) (say gen "Ha! Nin-Ma-To is a Forest Stalker. And Me-Ha-Nin-Zu is the path of the Rogue!")) 159(define (gen-lu gen player) (say gen "Ha! Lu-Da-To is one who makes. And Me-Ha-Lu-Da is the path of the Wright!")) 160 161(define (gen-zu gen player) (say gen "Good! And Zu-To means seeker, or Wanderer. [He looks at you percingly.] Iki Meluki?")) 162(define (gen-meluki gen player) (say gen "So, you are a seeker indeed. I would join you, if you can master Gunodama")) 163(define (gen-gunodama gen player) (say gen "The names given by the ancestor spirits, to those who abide in the forest. In other words, the language of the Forest Goblins.")) 164 165(define (gen-nuki knpc kpc) 166 (say knpc "That's goblinese for 'food'.")) 167 168(define (gen-bonaha gen player) 169 (say gen "Excellent! That is the goblin word for friend. You have come far in mastering their language.") 170 (gen-set-will-join! (kobj-gob-data gen) #t)) 171 172(define (gen-shroom gen player) (say gen "She is an old friend. Can you believe she was a war-maiden in the Goblin Wars?")) 173(define (gen-maiden gen player) (say gen "It's true! I can still remember her hand-axe flashing in the moonlight " 174 "as she hacked her way through goblin war parties, chanting a battle-ward " 175 "with ragged breath! She was a sight to see.")) 176 177(define (gen-thie knpc kpc) 178 (say knpc "I've seen no one odd around here, but the goblins who live in " 179 "the north wood recently saw a lone man traveling northeast toward " 180 "Bole.") 181 (quest-data-update 'questentry-thiefrune 'tower 1) 182 (quest-data-update-with 'questentry-thiefrune 'bole 1 (quest-notify (grant-party-xp-fn 10))) 183 ) 184 185(define (gen-kama knpc kpc) 186 (if (is-player-party-member? ch_kama) 187 (begin 188 (say knpc "I see Kama has joined you. Bonaha Kama!") 189 (say ch_kama "Unh. Bonaha Mazuto.")) 190 (begin 191 (say knpc "Kama is a forest goblin hunter. He was supposed to meet me at the edge of town a few nights back but he never showed up. Have you seen him?") 192 (if (yes? kpc) 193 (begin 194 (say knpc "Is he in trouble?") 195 (if (yes? kpc) 196 (say knpc "We must help him if we can!") 197 (say knpc "That is a relief!"))) 198 (say knpc "If you do, let me know. I'm a bit worried."))))) 199 200(define (gen-ruka knpc kpc) 201 (say knpc "Ruka is the goblin's name for Angriss, their god of death. " 202 "The priests of Angriss were agitators during the goblin wars. " 203 "Her cult has all but died out since their defeat. ") 204 (prompt-for-key) 205 (say knpc "Now, she is only a myth to keep children from straying into the woods, " 206 "where more practical dangers still exist.")) 207 208(define (gen-clov knpc kpc) 209 (say knpc "King Clovis led the paladins in the Goblin War. " 210 "If my friend Kama would ever show up we could ask him " 211 "if the goblins ever recovered his body.") 212 (quest-data-update-with 'questentry-rune-f 'kama 1 (quest-notify nil)) 213 ) 214 215(define (gen-band knpc kpc) 216 (say knpc "The goblins report a bandit camp somewhere to the south and west. " 217 "Perhaps Deric knows more.")) 218 219(define gen-conv 220 (ifc basic-conv 221 ;;;; Goblin root words: 222 (method 'bo gen-bo) ; My, Myself 223 (method 'cho gen-cho) ; Mankind 224 (method 'da gen-da) ; Abode, World 225 (method 'eh gen-eh) ; What? 226 (method 'gu gen-gu) ; Spirit, Ancestor 227 (method 'ha gen-ha) ; Good, yes, skillful 228 (method 'hi gen-hi) ; Magic 229 (method 'iki gen-iki) ; Go 230 (method 'jo gen-jo) ; Join 231 (method 'ka gen-ka) ; Kill 232 (method 'ki gen-ki) ; Health 233 (method 'lu gen-lu) ; Change 234 (method 'me gen-me) ; Forest 235 (method 'ma gen-ma) ; Duty, Job, Destiny 236 (method 'na gen-na) ; Your, yourself 237 (method 'nin gen-nin) ; Stealth 238 (method 'no gen-no) ; Name 239 (method 'nu gen-nu) ; Give birth, Create, Begin 240 (method 'ru gen-ru) ; Ancient, Primordial, Deep, Cave 241 (method 'to gen-to) ; Individual 242 (method 'tu gen-tu) ; No, Bad 243 (method 'zu gen-zu) ; Watch, Seek 244 245 ;;;; Goblin composite words / phrases: 246 (method 'bona gen-bonaha) ; Friend 247 (method 'kama gen-kama) ; Kama, the goblin friend of Gen 248 (method 'nuki gen-nuki) ; Food 249 (method 'ruka gen-ruka) ; Angriss, the Spider Queen 250 (method 'melu gen-meluki) ; Seeker, Wanderer 251 (method 'guno gen-gunodama) ; the language of the Forest Goblins 252 253 ;;;; Responses in human speech: 254 ;; Standard responses: 255 (method 'default gen-default) 256 (method 'hail gen-hail) 257 (method 'name gen-name) 258 (method 'job gen-job) 259 (method 'join gen-join) 260 (method 'bye gen-bye) 261 262 ;; Having to do with the goblin language: 263 (method 'gobl gen-goblin) 264 (method 'lang gen-language) 265 (method 'prac gen-practice) 266 267 ;; Other responses: 268 (method 'admi gen-primal) 269 (method 'ambi gen-ambitious) 270 (method 'band gen-band) 271 (method 'capt gen-captain) 272 (method 'cave gen-cave) 273 (method 'fore gen-job) 274 (method 'maid gen-maiden) 275 (method 'prim gen-primal) 276 (method 'rang gen-ranger) 277 (method 'reas gen-reasons) 278 (method 'sava gen-primal) 279 280 (method 'cult gen-culture) 281 (method 'shak gen-shakespeare) 282 (method 'bard gen-shakespeare) ;; synonyn 283 (method 'haml gen-shakespeare) ;; synonyn 284 285 (method 'shro gen-shroom) 286 (method 'thie gen-thie) 287 (method 'wars gen-wars) 288 (method 'wood gen-woodsman) 289 (method 'clov gen-clov) 290 )) 291 292;;---------------------------------------------------------------------------- 293;; First-time constructor 294;;---------------------------------------------------------------------------- 295(define (mk-gen tag) 296 (bind 297 (kern-mk-char tag ; tag 298 "Gen" ; name 299 sp_human ; species 300 oc_ranger ; occ 301 s_old_ranger ; sprite 302 faction-men ; starting alignment 303 4 2 4 ; str/int/dex 304 pc-hp-off ; hp bonus 305 pc-hp-gain ; hp per-level bonus 306 0 0 ; mp mod/mult 307 max-health -1 max-health 0 3 ; hp/xp/mp/AP_per_turn/lvl 308 #f ; dead 309 'gen-conv ; conv 310 sch_gen ; sched 311 'townsman-ai ; special ai 312 (mk-inventory (list (list 1 t_dagger) 313 (list 1 t_playbook_hamlet) 314 )) ; container 315 (list t_armor_leather) ; readied 316 ) 317 (gen-mk #f #f))) 318