1;;----------------------------------------------------------------------------
2;; Constants
3;;----------------------------------------------------------------------------
4(define thud-start-lvl  6)
5
6;;----------------------------------------------------------------------------
7;; Schedule
8;;
9;; In Bole
10;;----------------------------------------------------------------------------
11(kern-mk-sched 'sch_thud
12               (list 0  0  bole-bedroom-thud "idle")
13               (list 9  0  bole-dining-hall  "idle")
14               (list 10 0  bole-courtyard   "idle")
15               (list 12 0  bole-dining-hall   "idle")
16               (list 23 0  bole-bedroom-thud "idle")
17               )
18
19;;----------------------------------------------------------------------------
20;; Gob
21;;
22;; Quest flags, etc, go here.
23;;----------------------------------------------------------------------------
24(define (thud-mk) nil)
25
26;;----------------------------------------------------------------------------
27;; Conv
28;;
29;; Thud is the bodyguard of Kathryn, and currently abides in Bole,
30;; where they seek a certain thief.  Various other NPCs suggest
31;; that Thud is at best half human, perhaps having ogre blood,
32;; or a sorcerous (summoned or vat-born) origin...
33;;
34;; Thud is a potential party member (and an eventual betrayer).
35;; He accompanies Kathrun, and joins the party when and if she does.
36;;----------------------------------------------------------------------------
37(define (thud-hail knpc kpc)
38  (say knpc "[You are certain that the figure before you is part ogre. "
39       "Three meters tall and smoldering with menace, he regards you with "
40       "half-lidded eyes.]"))
41
42(define (thud-default knpc kpc)
43  (say knpc "[His threatening gaze does not waver]"))
44
45(define (thud-name knpc kpc)
46  (say knpc "Thud no like you."))
47
48(define (thud-join knpc kpc)
49  (if (is-player-party-member? ch_kathryn)
50      (begin
51        (say knpc "[Seeing Kathryn with you, he grunts his assent]")
52        (kern-char-join-player knpc)
53        (kern-conv-end))
54      (say knpc "[He sneers]")))
55
56(define (thud-job knpc kpc)
57  (say knpc "Thud love kill."))
58
59(define (thud-kathryn knpc kpc)
60  (say knpc "Thud no kill"))
61
62(define (thud-thud knpc kpc)
63  (say knpc "You talk me? YOU TALK ME?! THUD PICK TEETH WITH YOU BONES!!"))
64
65(define (thud-thief knpc kpc)
66  (say knpc "[He becomes enraged] THIEF TRICK THUD! THUD FIND THIEF! THUD KILL THIEF!"))
67
68(define (thud-find knpc kpc)
69  (say knpc "[He calms down a bit] Red Lady find thief. He no can hide."))
70
71(define (thud-red-lady knpc kpc)
72  (say knpc "[He gives you a murderous look] You stay away Red Lady."))
73
74(define thud-conv
75  (ifc nil
76       (method 'default thud-default)
77       (method 'hail thud-hail)
78       (method 'bye
79               (lambda (knpc kpc)
80                 (say knpc "[His eyes bore into your back as you walk away]")))
81       (method 'job  thud-job)
82       (method 'name thud-name)
83       (method 'join thud-join)
84
85       (method 'find thud-find)
86       (method 'kath thud-kathryn)
87       (method 'kill thud-job)
88       (method 'lady thud-red-lady)
89       (method 'love thud-job)
90       (method 'red  thud-red-lady)
91       (method 'thie thud-thief)
92       (method 'thud thud-thud)
93       ))
94
95;;----------------------------------------------------------------------------
96;; First-time constructor
97;;----------------------------------------------------------------------------
98(define (mk-thud)
99  (bind
100    (kern-char-arm-self
101     (kern-mk-char
102      'ch_thud ;;.....tag
103      "Thud" ;;.......name
104      sp_troll ;;.....species
105      oc_warrior ;;...occupation
106      s_troll ;;......sprite
107      faction-men ;;..faction
108      4 ;;............custom strength modifier
109      0 ;;............custom intelligence modifier
110      2 ;;............custom dexterity modifier
111      2 ;;............custom base hp modifier
112      1 ;;............custom hp multiplier (per-level)
113      0 ;;............custom base mp modifier
114      0 ;;............custom mp multiplier (per-level)
115      max-health;;..current hit points
116      -1  ;;...........current experience points
117      max-health ;;..current magic points
118      0
119      thud-start-lvl  ;;..current level
120      #f ;;...........dead?
121      'thud-conv ;;...conversation (optional)
122      sch_thud ;;.....schedule (optional)
123      'townsman-ai ;;..........custom ai (optional)
124      nil ;;..........container (and contents)
125      ;;.........readied arms (in addition to the container contents)
126      (list
127       t_2h_axe
128       t_iron_helm
129       t_armor_plate
130       )
131      nil ;;..........hooks in effect
132      ))
133   (thud-mk)))
134