1(game-module "insects"
2  (title "Insects")
3  ; (version "1.0")
4  (picture-name "insects")
5  (blurb "Bugs, Mr Rico! Zillions of 'em!")
6  (variants (see-all false) (world-seen true) (sequential false))
7  )
8
9(unit-type ant (char "a")
10  (help ""))
11(unit-type spider (char "s")
12  (help "eats bugs and weaves webs"))
13(unit-type skeeter (char "k")
14  (help "water strider, can go on land or water"))
15(unit-type beetle (char "B")
16  (help "slow-moving but powerful"))
17(unit-type queen (image-name "crown") (char "Q")
18  (help ""))
19(unit-type fly (char "f")
20  (help "fast-moving, for recon"))
21(unit-type bee (char "b")
22  (help "floats like a bee, stings like a bee, but only once before dying"))
23(unit-type web (char "%")
24  (help "a barrier to movement"))
25(unit-type mound (char "*")
26  (help "a secondary home"))
27(unit-type nest (char "@")
28  (help "the insect's home and breeding ground"))
29
30(material-type mobility
31  (help "the ability of a web to move before being anchored down"))
32(material-type sting
33  (help "what a bee attacks with"))
34
35(terrain-type puddle (image-name "sea") (char "-"))
36(terrain-type bare (image-name "adv-mountains") (char "^"))
37(terrain-type grass (image-name "civ-grassland") (char "+"))
38
39(define walkers (ant spider skeeter beetle))
40(define movers (ant spider skeeter beetle queen fly bee))
41(define flyers (queen fly bee))
42(define places (mound nest))
43(define land (bare grass))
44
45(add puddle liquid true)
46
47;;; Static relationships.
48
49(table vanishes-on
50  ((ant spider beetle) puddle true)
51  (places puddle true)
52  )
53
54(table unit-capacity-x
55  (spider web 2)
56  )
57
58(add queen capacity 2)
59(add web capacity 1)
60(add places capacity 8)
61
62(table unit-size-as-occupant
63  (u* u* 99)
64  (movers (queen mound nest) 1)
65  (walkers web 1)
66  )
67
68(table unit-storage-x
69  (bee sting 1)
70  (web mobility 1)
71  )
72
73;;; Actions.
74
75;                     a s k B Q f b % * @
76(add u* acp-per-turn (2 4 2 1 5 7 5 1 1 1))
77
78;;; Movement.
79
80(add places speed 0)
81
82(table mp-to-enter-terrain
83  (u* t* 99)
84  (walkers land 1)
85  (skeeter puddle 1)
86  (skeeter land 2)
87  (flyers t* 1)
88  (web t* 1)
89  )
90
91;; Web gets one move, for placement, then must stay there.
92
93(table material-to-move (web mobility 1))
94
95(table consumption-per-move (web mobility 1))
96
97;;; Construction.
98
99;               a s  k  B  Q f  b
100(add movers cp (2 4 10 30 25 3 10))
101(add web cp 5)
102
103(table can-create
104  (places movers 1)
105  (mound queen 0)
106  (nest queen 1)
107  (spider web 1)
108  )
109
110(table can-build
111  (places movers 1)
112  (mound queen 0)
113  (nest queen 1)
114  (spider web 1)
115  )
116
117(table acp-to-create
118  (places movers 1)
119  (mound queen 0)
120  (nest queen 1)
121  (spider web 1)
122  )
123
124(table acp-to-build
125  (places movers 1)
126  (mound queen 0)
127  (nest queen 1)
128  (spider web 1)
129  )
130
131(table supply-on-creation
132  (bee sting 1)
133  (web mobility 1)
134  )
135
136;;; Combat.
137
138;                a   s   k   B   Q   f   b  %   *   @
139(add u* hp-max (20  50  20 100  20  10  20  2  20  50))
140
141;; Injured insects move more slowly.
142
143(add ant     speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
144(add spider  speed-damage-effect ((1 50) (12  50) (13 100) ( 50 100)))
145(add skeeter speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
146(add beetle  speed-damage-effect ((1 50) (49  50) (50 100) (100 100)))
147(add queen   speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
148(add fly     speed-damage-effect ((1 50) ( 4  50) ( 5 100) ( 10 100)))
149(add bee     speed-damage-effect ((1 50) ( 9  50) (10 100) ( 20 100)))
150
151(table hit-chance
152  ;               a   s   k   B   Q  f   b  %   *   @
153  (ant u*     (  70  50  70  30  90  80 75 30 100 100 ))
154  (spider u*  (  70  50  70  40  90  90 75 70 100 100 ))
155  (skeeter u* (  70  50  70  30  90  80 75 50 100 100 ))
156  (beetle u*  (  90  70  80  50  95  50 50 70 100 100 ))
157  (queen u*   (  10  10  10  10  50  50 40 10 100 100 ))
158  (fly u*     (  10  10  10  10  20  50 25 10  50  50 ))
159  (bee u*     (  90  70  90  50  90  80 75 30 100 100 ))
160  (web u*     (   0   0   0   0   0   0  0  0   0   0 ))
161  (mound u*   (  20  20  20  20  20  20 20  0   0   0 ))
162  (nest u*    (  50  50  50  50  50  50 50  0   0   0 ))
163  )
164
165(table damage
166  (u* u* 1)
167  (movers movers 2d6+4)
168  (bee movers 3d6+6)
169  )
170
171(table protection
172  (nest ant 50)
173  )
174
175(table capture-chance
176  (web movers ( 50 30 50 20 70 70 50 ))
177  (movers mound 20)
178  )
179
180(table independent-capture-chance
181  (movers mound 80)
182  )
183
184;; Bees work by using their sting once in an attack, and then dying.
185
186(table consumption-per-attack
187  ;; (but should use even if not necessary to attack)
188  (bee sting 1)
189  )
190
191(table hit-by
192  (u* sting 1)
193  )
194
195(table material-to-attack
196  (bee sting 1)
197  )
198
199(table hp-to-garrison
200  (queen nest 20)
201  )
202
203;;; Other Actions.
204
205(table auto-repair
206  (mound mound 1.00)
207  (nest nest 1.00)
208  )
209
210;;; Backdrop.
211
212;; Insects generally have short lifespans.
213
214(table attrition (movers t* 0.50))
215
216(table hp-per-starve
217  ;; Stinging something is fatal to the bee.
218  (bee sting 20.00)
219  )
220
221;;; Scoring.
222
223(add nest point-value 25)
224(add web point-value 0)
225
226(scorekeeper (do last-side-wins))
227
228;;; Text.
229
230(set action-notices '(
231  ((destroy bee movers) (actor " stings " actee " to death!"))
232  ((destroy u* movers) (actor " eats " actee "!"))
233  ))
234
235(set event-notices '(
236  ((unit-starved web) (0 "dissolves"))
237  ((unit-starved u*) (0 "expires"))
238  ))
239
240(set event-narratives '(
241  ((unit-starved web) (0 "dissolved"))
242  ((unit-starved u*) (0 "expired"))
243  ))
244
245;;; Random setup.
246
247(set alt-smoothing 3)
248
249(add t* alt-percentile-min (  0  10   0))
250(add t* alt-percentile-max ( 15  60 100))
251(add t* wet-percentile-min ( 50   0   0))
252(add t* wet-percentile-max (100  80 100))
253
254(set edge-terrain puddle)
255
256(add nest start-with 1)
257
258(set country-radius-min 2)
259
260(add bare country-terrain-min 3)
261
262(set country-separation-min 24)
263
264(table independent-density (mound land 100))
265
266(add mound independent-near-start 3)
267
268(table favored-terrain
269  (u* t* 0)
270  (mound grass 50)
271  (places bare 100)
272  )
273
274(add u* already-seen 100)
275
276(add nest initial-seen-radius 5)
277
278(set sides-max 4)
279
280(set side-library '(
281  ((noun "Buzzer"))
282  ((noun "Flitter"))
283  ((noun "Flyer"))
284  ((noun "Hummer"))
285  ))
286
287;; Default doctrine.
288
289(doctrine spider-doctrine
290  (construction-run (web 3))
291  )
292
293(doctrine queen-doctrine
294  (construction-run (nest 1))
295  )
296
297(side-defaults
298  (doctrines (spider spider-doctrine) (queen queen-doctrine))
299  )
300
301(set meridians false)
302
303;;; Documentation.
304
305(game-module (instructions (
306  "When you defeat your enemies, you get to eat them!"
307  ""
308  "Capture the other sides' nests."
309  )))
310
311(game-module (notes (
312  "The nest is the center of your world; produce ants to "
313  "expand with, spiders to build webs for defense, and skeeters "
314  "to cross water."
315  )))
316
317(game-module (design-notes (
318  "This was originally designed by Chris Christensen,"
319  "inspired by a board game called `Chiten I'(?)."
320  "It has been extensively modified since then."
321  )))
322