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