1;;---------------------------------------------------------------------------- 2;; Constants 3;;---------------------------------------------------------------------------- 4(define tooth-lvl 2) 5(define tooth-species sp_rat) 6(define tooth-occ oc_wrogue) 7 8;;---------------------------------------------------------------------------- 9;; Schedule 10;; 11;; In the monster village of Kun. 12;;---------------------------------------------------------------------------- 13(kern-mk-sched 'sch_tooth 14 (list 0 0 campfire-4 "sleeping") 15 (list 6 0 black-market-counter "working") 16 (list 19 0 cantina-12 "idle") 17 ) 18 19;;---------------------------------------------------------------------------- 20;; Gob 21;;---------------------------------------------------------------------------- 22(define (tooth-mk) nil) 23 24;;---------------------------------------------------------------------------- 25;; Conv 26;; 27;; Tooth is a nervous ratling, running a black market and pawn shop 28;; in the monster village of Kun. It appears that he is suffering from 29;; the surplus (or lack) of some stimulant. 30;;---------------------------------------------------------------------------- 31 32;; Basics... 33(define (tooth-hail knpc kpc) 34 (kern-log-msg "You meet a shifty old rat with one enormous incisor. He shakes and shivers nervously. " 35 "Too much caffeine? Black lotus withdrawal? You aren't sure.") 36 (say knpc "Psst. Looking for a deal? I got deals. All kinds of deals! Good deals! Bad deals! " 37 "You name it, you make it, it's your call! No questions asked. No answers given.") 38 ) 39 40(define (tooth-default knpc kpc) 41 (say knpc "Don't know. Don't know about that. Information? Not my game.") 42 ) 43 44(define (tooth-name knpc kpc) 45 (say knpc "Tooth. I'm well-known! Well-respected. My customers love me. " 46 "They always come back. Tell their friends about me? No way! " 47 "Deals are too good. They keep it to themselves. I'm a well-kept secret! A well-known secret!") 48 ) 49 50(define (tooth-join knpc kpc) 51 (say knpc "Can't, mate. Got my shop to run. Bills to pay. Guards to dodge. Too busy! Need the action!") 52 ) 53 54(define (tooth-job knpc kpc) 55 (say knpc "Deals! Deals! Deals! Deals! Deals! Let's make one. Right now. " 56 "Right here. Let's do it. Ready? Here we go.") 57 (tooth-trade knpc kpc) 58 ) 59 60(define (tooth-bye knpc kpc) 61 (say knpc "Going so soon? Leaving already? I've got more stuff! Lots more! " 62 "Good stuff! But it won't stay! No! It flies off the shelves! Leave at your own risk...!" 63 "[He goes on like this as you walk away]") 64 ) 65 66(define tooth-merch-msgs 67 (list nil ;; closed 68 "Look here, look at this marvelous stuff! All quality! Rare, valuable, hard-to-find!" ;; buy 69 "Got stuff? I'll take it. Where did you get it? I don't want to know." ;; sell 70 "Everything reasonably priced! How do I stay in business? I don't know! See for yourself!" ;; trade 71 "Is that all? I've got more!" ;; sold-something 72 "Wait! Where you going? Come back, have another look! Did you see my collection of scrolls?" ;; sold-nothing 73 "Come back when you have more! I'm always looking!" ;; bought-something 74 "I need the good stuff! Magical stuff, gems, artifacts!" ;; bought-nothing 75 "Don't forget the basics! Oil, gems, picklocks!" ;; traded-something 76 "Wait! Where you going? Come back, have another look! Did you see my collection of scrolls?" ;; traded-nothing 77 )) 78 79(define tooth-catalog 80 (list 81 (list t_picklock 5 "Unlock doors! Takes a bit of skill!") 82 (list t_gem 20 "Find hidden rooms and passages! Thieves love 'em!") 83 (list t_grease 25 "In a tight squeeze? Grease is the word!") 84 85 (list t_oil 5 "Perfect for fighting slimes!") 86 (list t_slime_vial 30 "Kal Xen Nox in a bottle! Great for escaping the guards!") 87 (list t_arrow 3 "Gotta have lots of arrows!") 88 (list t_bolt 3 "Can't have too many bolts!") 89 (list t_smoke_bomb 4 "Make a clean getaway under cover!") 90 91 (list t_spiked_helm 300 "Use your head in a fight!") 92 (list t_spiked_shield 300 "Rare item! For aggressive fighters!") 93 94 (list t_dagger_4 (* 4 65) "Very nice! Small, easy to conceal, but with a fierce bite!") 95 (list t_sword_2 (* 2 85) "Better than the average sword! Look at that keen edge!") 96 (list t_sword_4 (* 4 85) "The finest! The very best! A weapon for the true artist of death!") 97 (list t_morning_star_2 (* 2 105) "A truly awesome weapon! Lay waste to whole parties!") 98 99 (list t_leather_helm_2 (* 2 100) "For the wrogue who needs that little bit of extra protection!") 100 (list t_chain_coif_4 (* 4 100) "See that tight weave? The banded reinforcement? Turns any blade and softens the blow!") 101 (list t_iron_helm_4 (* 4 150) "Very rare! Blows to the head will feel like pillows!") 102 103 (list t_armor_leather_2 (* 2 150) "Want to pilfer a Gint armory? Steal gems from trolls? You'll need something light but effective like this!") 104 (list t_armor_leather_4 (* 4 150) "This once belonged to an old wrogue! He died of old age on a bed of gold coins! Now you can, too!") 105 (list t_armor_chain_4 (* 4 330) "This is perfect for the scrapper who likes to be in the thick without getting slowed down!") 106 (list t_armor_plate_4 (* 4 660) "Shrug off the blows of gints and trolls in this amazing plate armour! There's nothing like it anywhere else!") 107 108 (list t_xen_corp_scroll (* 7 base-scroll-cost) "The assassin's favorite! Kills instantly!") 109 (list t_sanct_lor_scroll (* 7 base-scroll-cost) "The wrogue's favorite! Perfect for sneaking in and out unseen!") 110 (list t_an_xen_ex_scroll (* 6 base-scroll-cost) "If you can't beat them, have them join you with this charm spell!") 111 (list t_in_ex_por_scroll (* 4 base-scroll-cost) "Magic doors won't stop you when you carry plenty of these!") 112 (list t_wis_quas_scroll (* 4 base-scroll-cost) "Perfect for finding hidden doors (and invisible foes)!") 113 (list t_in_quas_xen_scroll (* 7 base-scroll-cost) "Ever wish there was two of you? With this scroll there can be!") 114 (list t_an_tym_scroll (* 8 base-scroll-cost) "For when you really get into trouble this scroll will stop time and let you get out!") 115 )) 116 117(define (tooth-trade knpc kpc) (conv-trade knpc kpc "trade" tooth-merch-msgs tooth-catalog)) 118(define (tooth-buy knpc kpc) (conv-trade knpc kpc "buy" tooth-merch-msgs tooth-catalog)) 119(define (tooth-sell knpc kpc) (conv-trade knpc kpc "sell" tooth-merch-msgs tooth-catalog)) 120 121(define tooth-conv 122 (ifc nil 123 124 ;; basics 125 (method 'default tooth-default) 126 (method 'hail tooth-hail) 127 (method 'bye tooth-bye) 128 (method 'job tooth-job) 129 (method 'name tooth-name) 130 (method 'join tooth-join) 131 132 (method 'trad tooth-trade) 133 (method 'buy tooth-buy) 134 (method 'sell tooth-sell) 135 (method 'deal tooth-trade) 136 )) 137 138(define (mk-tooth) 139 (bind 140 (kern-mk-char 141 'ch_tooth ; tag 142 "Tooth" ; name 143 tooth-species ; species 144 tooth-occ ; occ 145 s_rat ; sprite 146 faction-men ; starting alignment 147 0 4 1 ; str/int/dex 148 0 ; hp bonus 149 0 ; hp per-level bonus 150 0 ; mp off 151 1 ; mp gain 152 max-health ; hp 153 -1 ; xp 154 max-health ; mp 155 0 156 tooth-lvl 157 #f ; dead 158 'tooth-conv ; conv 159 sch_tooth ; sched 160 'townsman-ai ; special ai 161 nil 162 nil ; readied 163 ) 164 (tooth-mk))) 165