1 #ifndef __MONSTER_DEFINITIONS_H
2 #define __MONSTER_DEFINITIONS_H
3 
4 /*
5 MONSTER_DEFINITIONS.H
6 
7 	Copyright (C) 1991-2001 and beyond by Bungie Studios, Inc.
8 	and the "Aleph One" developers.
9 
10 	This program is free software; you can redistribute it and/or modify
11 	it under the terms of the GNU General Public License as published by
12 	the Free Software Foundation; either version 3 of the License, or
13 	(at your option) any later version.
14 
15 	This program is distributed in the hope that it will be useful,
16 	but WITHOUT ANY WARRANTY; without even the implied warranty of
17 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 	GNU General Public License for more details.
19 
20 	This license is contained in the file "COPYING",
21 	which is included with this source code; it is available online at
22 	http://www.gnu.org/licenses/gpl.html
23 
24 Monday, May 30, 1994 9:04:01 PM
25 
26 Jan 30, 2000 (Loren Petrich):
27 	Changed "class" to "_class" to make data structures more C++-friendly
28 
29 Feb 3, 2000 (Loren Petrich):
30 	Added VacBobs and their physics
31 
32 Oct 26, 2000 (Mark Levin)
33 	Added some includes that this file depends on
34 */
35 
36 #include "effects.h"
37 #include "items.h"
38 #include "map.h"
39 #include "monsters.h"
40 #include "projectiles.h"
41 #include "SoundManagerEnums.h"
42 
43 
44 /* ---------- macros */
45 
46 #define TYPE_IS_NEUTRAL(definition,type) (!((definition->friends|definition->enemies)&monster_definitions[type]._class))
47 #define TYPE_IS_ENEMY(definition,type) (definition->enemies&monster_definitions[type]._class)
48 #define TYPE_IS_FRIEND(definition,type) (definition->friends&monster_definitions[type]._class)
49 
50 /* ---------- constants */
51 
52 enum /* monster classes */
53 {
54 	_class_player_bit,
55 	_class_human_civilian_bit,
56 	_class_madd_bit,
57 	_class_possessed_hummer_bit,
58 
59 	_class_defender_bit,
60 
61 	_class_fighter_bit,
62 	_class_trooper_bit,
63 	_class_hunter_bit,
64 	_class_enforcer_bit,
65 	_class_juggernaut_bit,
66 	_class_hummer_bit,
67 
68 	_class_compiler_bit,
69 	_class_cyborg_bit,
70 	_class_assimilated_civilian_bit,
71 
72 	_class_tick_bit,
73 	_class_yeti_bit,
74 
75 	_class_player= 1<<_class_player_bit,
76 	_class_human_civilian= 1<<_class_human_civilian_bit,
77 	_class_madd= 1<<_class_madd_bit,
78 	_class_possessed_hummer= 1<<_class_possessed_hummer_bit,
79 	_class_human= _class_player|_class_human_civilian|_class_madd|_class_possessed_hummer,
80 
81 	_class_defender= 1<<_class_defender_bit,
82 
83 	_class_fighter= 1<<_class_fighter_bit,
84 	_class_trooper= 1<<_class_trooper_bit,
85 	_class_hunter= 1<<_class_hunter_bit,
86 	_class_enforcer= 1<<_class_enforcer_bit,
87 	_class_juggernaut= 1<<_class_juggernaut_bit,
88 	_class_pfhor= _class_fighter|_class_trooper|_class_hunter|_class_enforcer|_class_juggernaut,
89 
90 	_class_compiler= 1<<_class_compiler_bit,
91 	_class_cyborg= 1<<_class_cyborg_bit,
92 	_class_assimilated_civilian= 1<<_class_assimilated_civilian_bit,
93 	_class_hummer= 1<<_class_hummer_bit,
94 	_class_client= _class_compiler|_class_assimilated_civilian|_class_cyborg|_class_hummer,
95 
96 	_class_tick= 1<<_class_tick_bit,
97 	_class_yeti= 1<<_class_yeti_bit,
98 	_class_native= _class_tick|_class_yeti,
99 
100 	_class_hostile_alien= _class_pfhor|_class_client,
101 	_class_neutral_alien= _class_native
102 };
103 
104 // old Marathon monster classes
105 enum
106 {
107 	_class_player_m1 = 0x01,
108 	_class_human_civilian_m1 = 0x02,
109 	_class_madd_m1 = 0x04,
110 	_class_fighter_m1 = 0x08,
111 	_class_trooper_m1 = 0x10,
112 	_class_hunter_m1 = 0x20,
113 	_class_enforcer_m1 = 0x40,
114 	_class_juggernaut_m1 = 0x80,
115 	// unused 0x100
116 	_class_compiler_m1 = 0x200,
117 	_class_hulk = 0x400,
118 	// unused 0x800
119 	_class_looker = 0x1000,
120 	// unused 0x2000,
121 	_class_wasp = 0x4000,
122 	_class_assimilated_civilian_m1 = 0x8000,
123 
124 	_class_client_m1 = _class_compiler_m1|_class_hulk|_class_assimilated_civilian_m1,
125 	_class_pfhor_m1 = _class_fighter_m1|_class_trooper_m1|_class_hunter_m1|_class_enforcer_m1|_class_juggernaut_m1
126 
127 };
128 
129 enum /* intelligence: maximum polygon switches before losing lock */
130 {
131 	_intelligence_low= 2,
132 	_intelligence_average= 3,
133 	_intelligence_high= 8
134 };
135 
136 enum /* door retry masks */
137 {
138 	_slow_door_retry_mask= 63,
139 	_normal_door_retry_mask= 31,
140 	_fast_door_retry_mask= 15,
141 	_vidmaster_door_retry_mask= 3
142 };
143 
144 enum /* flags */
145 {
146 	_monster_is_omniscent= 0x1, /* ignores line-of-sight during find_closest_appropriate_target() */
147 	_monster_flys= 0x2,
148 	_monster_is_alien= 0x4, /* moves slower on slower levels, etc. */
149 	_monster_major= 0x8, /* type -1 is minor */
150 	_monster_minor= 0x10, /* type +1 is major */
151 	_monster_cannot_be_dropped= 0x20, /* low levels cannot skip this monster */
152 	_monster_floats= 0x40, /* exclusive from flys; forces the monster to take +�h gradually */
153 	_monster_cannot_attack= 0x80, /* monster has no weapons and cannot attack (runs constantly to safety) */
154 	_monster_uses_sniper_ledges= 0x100, /* sit on ledges and hurl shit at the player (ranged attack monsters only) */
155 	_monster_is_invisible= 0x200, /* this monster uses _xfer_invisibility */
156 	_monster_is_subtly_invisible= 0x400, /* this monster uses _xfer_subtle_invisibility */
157 	_monster_is_kamakazi= 0x800, /* monster does shrapnel damage and will suicide if close enough to target */
158 	_monster_is_berserker= 0x1000, /* below 1/4 vitality this monster goes berserk */
159 	_monster_is_enlarged= 0x2000, /* monster is 1.25 times normal height */
160 	_monster_has_delayed_hard_death= 0x4000, /* always dies soft, then switches to hard */
161 	_monster_fires_symmetrically= 0x8000, /* fires at �dy, simultaneously */
162 	_monster_has_nuclear_hard_death= 0x10000, /* player�s screen whites out and slowly recovers */
163 	_monster_cant_fire_backwards= 0x20000, /* monster can�t turn more than 135� to fire */
164 	_monster_can_die_in_flames= 0x40000, /* uses humanoid flaming body shape */
165 	_monster_waits_with_clear_shot= 0x80000, /* will sit and fire (slowly) if we have a clear shot */
166 	_monster_is_tiny= 0x100000, /* 0.25-size normal height */
167 	_monster_attacks_immediately= 0x200000, /* monster will try an attack immediately */
168 	_monster_is_not_afraid_of_water= 0x400000,
169 	_monster_is_not_afraid_of_sewage= 0x800000,
170 	_monster_is_not_afraid_of_lava= 0x1000000,
171 	_monster_is_not_afraid_of_goo= 0x2000000,
172 	_monster_can_teleport_under_media= 0x4000000,
173 	_monster_chooses_weapons_randomly= 0x8000000,
174 	/* monsters unable to open doors have door retry masks of NONE */
175 	/* monsters unable to switch levels have min,max ledge deltas of 0 */
176 	/* monsters unstopped by bullets have hit frames of NONE */
177 
178 	// pseudo flags set when reading Marathon 1 physics
179 	_monster_weaknesses_cause_soft_death = 0x10000000,
180 	_monster_screams_when_crushed = 0x20000000,
181 	_monster_makes_sound_when_activated = 0x40000000, // instead of when locking on a target
182 	_monster_can_grenade_climb = 0x80000000, // only applies to player
183 };
184 
185 enum /* monster speeds (world_distance per tick); also used for projectiles */
186 {
187 	_speed_slow= WORLD_ONE/120,
188 	_speed_medium= WORLD_ONE/80,
189 	_speed_almost_fast= WORLD_ONE/70,
190 	_speed_fast= WORLD_ONE/40,
191 	_speed_superfast1= WORLD_ONE/30,
192 	_speed_superfast2= WORLD_ONE/28,
193 	_speed_superfast3= WORLD_ONE/26,
194 	_speed_superfast4= WORLD_ONE/24,
195 	_speed_superfast5= WORLD_ONE/22,
196 	_speed_blinding= WORLD_ONE/20,
197 	_speed_insane= WORLD_ONE/10
198 };
199 
200 #define NORMAL_MONSTER_GRAVITY (WORLD_ONE/120)
201 #define NORMAL_MONSTER_TERMINAL_VELOCITY (WORLD_ONE/14)
202 
203 /* ---------- monster definition structures */
204 
205 struct attack_definition
206 {
207 	int16 type;
208 	int16 repetitions;
209 	angle error; /* �error is added to the firing angle */
210 	world_distance range; /* beyond which we cannot attack */
211 	int16 attack_shape; /* attack occurs when keyframe is displayed */
212 
213 	world_distance dx, dy, dz; /* +dy is right, +dx is out, +dz is up */
214 };
215 
216 struct monster_definition /* <128 bytes */
217 {
218 	int16 collection;
219 
220 	int16 vitality;
221 	uint32 immunities, weaknesses;
222 	uint32 flags;
223 
224 	int32 _class; /* our class */
225 	int32 friends, enemies; /* bit fields of what classes we consider friendly and what types we don�t like */
226 
227 	_fixed sound_pitch;
228 	int16 activation_sound, friendly_activation_sound, clear_sound;
229 	int16 kill_sound, apology_sound, friendly_fire_sound;
230 	int16 flaming_sound; /* the scream we play when we go down in flames */
231 	int16 random_sound, random_sound_mask; /* if moving and locked play this sound if we get time and our mask comes up */
232 
233 	int16 carrying_item_type; /* an item type we might drop if we don�t explode */
234 
235 	world_distance radius, height;
236 	world_distance preferred_hover_height;
237 	world_distance minimum_ledge_delta, maximum_ledge_delta;
238 	_fixed external_velocity_scale;
239 	int16 impact_effect, melee_impact_effect, contrail_effect;
240 
241 	int16 half_visual_arc, half_vertical_visual_arc;
242 	world_distance visual_range, dark_visual_range;
243 	int16 intelligence;
244 	int16 speed, gravity, terminal_velocity;
245 	int16 door_retry_mask;
246 	int16 shrapnel_radius; /* no shrapnel if NONE */
247 	struct damage_definition shrapnel_damage;
248 
249 	shape_descriptor hit_shapes;
250 	shape_descriptor hard_dying_shape, soft_dying_shape; /* minus dead frame */
251 	shape_descriptor hard_dead_shapes, soft_dead_shapes; /* NONE for vanishing */
252 	shape_descriptor stationary_shape, moving_shape;
253 	shape_descriptor teleport_in_shape, teleport_out_shape;
254 
255 	/* which type of attack the monster actually uses is determined at attack time; typically
256 		melee attacks will occur twice as often as ranged attacks because the monster will be
257 		stopped (and stationary monsters attack twice as often as moving ones) */
258 	int16 attack_frequency;
259 	struct attack_definition melee_attack;
260 	struct attack_definition ranged_attack;
261 };
262 
263 // So as not to repeat in script_instructions.cpp (Pfhortran)
264 #ifndef DONT_REPEAT_DEFINITIONS
265 
266 /* ---------- monster definitions */
267 
268 struct monster_definition monster_definitions[NUMBER_OF_MONSTER_TYPES];
269 const struct monster_definition original_monster_definitions[NUMBER_OF_MONSTER_TYPES]=
270 {
271 	{ /* _monster_marine (can�t be used as a regular monster) */
272 		_collection_player, /* shape collection */
273 		20, 0, 0, /* vitality, immunities, weaknesses */
274 		_monster_cannot_be_dropped|_monster_can_die_in_flames, /* flags */
275 
276 		_class_player,
277 		_class_human, /* friends */
278 		-1, /* enemies */
279 
280 		_normal_frequency, /* sound pitch */
281 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
282 		NONE, /* flaming death sound */
283 		NONE, 0, /* random sound, random sound mask */
284 
285 		NONE, /* carrying item type */
286 
287 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
288 		0, /* preferred hover height */
289 		0, 0,
290 		(3*FIXED_ONE)/4, /* external velocity scale */
291 		_effect_player_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
292 
293 		0, 0, /* half visual arc, half vertical visual arc */
294 		0, 0, /* visual range, dark visual range */
295 		_intelligence_low, /* intelligence */
296 		_speed_almost_fast, /* speed */
297 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
298 		_normal_door_retry_mask, /* door retry mask */
299 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
300 
301 		0, /* being hit */
302 		0, 0, /* dying hard (popping), dying soft (falling) */
303 		0, 0, /* hard dead frames, soft dead frames */
304 		0, 0, /* stationary shape, moving shape (no permutations) */
305 		0, 0, /* teleport in shape, teleport out shape */
306 	},
307 
308 	{ /* _monster_tick_minor */
309 		BUILD_COLLECTION(_collection_tick, 0), /* shape collection */
310 		0, 0, 0, /* vitality, immunities, weaknesses */
311 		_monster_is_alien|_monster_minor|_monster_flys|_monster_has_delayed_hard_death|_monster_cannot_attack, /* flags */
312 
313 		_class_tick, /* class */
314 		-1, /* friends */
315 		0, /* enemies */
316 
317 		_normal_frequency, /* sound pitch */
318 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
319 		NONE, /* flaming death sound */
320 		_snd_tick_chatter, 0, /* random sound, random sound mask */
321 
322 		NONE, /* carrying item type */
323 
324 		WORLD_ONE_HALF, WORLD_ONE_HALF, /* radius, height */
325 		0, /* preferred hover height */
326 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
327 		FIXED_ONE, /* external velocity scale */
328 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
329 
330 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
331 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
332 		_intelligence_low, /* intelligence */
333 		_speed_blinding, /* speed */
334 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
335 		NONE, /* door retry mask */
336 		NONE, {NONE, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
337 
338 		0, /* being hit */
339 		6, 3, /* dying hard (popping), dying soft (falling) */
340 		5, 5, /* hard dead frames, soft dead frames */
341 		1, 1, /* stationary shape, moving shape (no permutations) */
342 		UNONE, UNONE, /* teleport in shape, teleport out shape */
343 
344 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
345 
346 		/* melee attack */
347 		{
348 			NONE, /* melee attack type */
349 		},
350 
351 		/* ranged attack */
352 		{
353 			NONE, /* ranged attack type */
354 		}
355 	},
356 
357 	{ /* _monster_tick_major */
358 		BUILD_COLLECTION(_collection_tick, 0), /* shape collection */
359 		0, 0, 0, /* vitality, immunities, weaknesses */
360 		_monster_is_alien|_monster_major|_monster_flys|_monster_has_delayed_hard_death|_monster_cannot_attack, /* flags */
361 
362 		_class_tick, /* class */
363 		-1, /* friends */
364 		0, /* enemies */
365 
366 		_higher_frequency, /* sound pitch */
367 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
368 		NONE, /* flaming death sound */
369 		_snd_tick_chatter, 0, /* random sound, random sound mask */
370 
371 		NONE, /* carrying item type */
372 
373 		WORLD_ONE/5, WORLD_ONE_FOURTH, /* radius, height */
374 		0, /* preferred hover height */
375 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
376 		FIXED_ONE, /* external velocity scale */
377 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
378 
379 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
380 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
381 		_intelligence_low, /* intelligence */
382 		_speed_blinding, /* speed */
383 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
384 		NONE, /* door retry mask */
385 		2*WORLD_ONE, {_damage_explosion, _alien_damage, 40, 20, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
386 
387 		0, /* being hit */
388 		4, 3, /* dying hard (popping), dying soft (falling) */
389 		5, 5, /* hard dead frames, soft dead frames */
390 		1, 1, /* stationary shape, moving shape (no permutations) */
391 		UNONE, UNONE, /* teleport in shape, teleport out shape */
392 
393 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
394 
395 		/* melee attack */
396 		{
397 			NONE, /* melee attack type */
398 		},
399 
400 		/* ranged attack */
401 		{
402 			NONE, /* ranged attack type */
403 		}
404 	},
405 
406 	{ /* _monster_tick_kamakazi */
407 		BUILD_COLLECTION(_collection_tick, 0), /* shape collection */
408 		0, 0, 0, /* vitality, immunities, weaknesses */
409 		_monster_is_alien|_monster_flys|_monster_is_kamakazi|_monster_has_delayed_hard_death, /* flags */
410 
411 		_class_tick, /* class */
412 		0, /* friends */
413 		-1, /* enemies */
414 
415 		_normal_frequency, /* sound pitch */
416 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
417 		NONE, /* flaming death sound */
418 		NONE, 0, /* random sound, random sound mask */
419 
420 		NONE, /* carrying item type */
421 
422 		WORLD_ONE/5, WORLD_ONE_FOURTH, /* radius, height */
423 		0, /* preferred hover height */
424 		-5*WORLD_ONE, 5*WORLD_ONE, /* minimum ledge delta, maximum ledge delta */
425 		FIXED_ONE, /* external velocity scale */
426 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
427 
428 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
429 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
430 		_intelligence_low, /* intelligence */
431 		_speed_blinding, /* speed */
432 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
433 		NONE, /* door retry mask */
434 		WORLD_ONE, {_damage_explosion, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
435 
436 		0, /* being hit */
437 		6, 4, /* dying hard (popping), dying soft (falling) */
438 		5, 5, /* hard dead frames, soft dead frames */
439 		0, 1, /* stationary shape, moving shape (no permutations) */
440 		UNONE, UNONE, /* teleport in shape, teleport out shape */
441 
442 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
443 
444 		/* melee attack */
445 		{
446 			_projectile_minor_energy_drain, /* melee attack type */
447 			5000, /* repetitions */
448 			0, /* error */
449 			WORLD_ONE, /* range */
450 
451 			2, /* melee attack shape */
452 
453 			0, 0, WORLD_ONE_HALF, /* dx, dy, dz */
454 		},
455 
456 		/* ranged attack */
457 		{
458 			NONE, /* ranged attack type */
459 		}
460 	},
461 
462 	{ /* _monster_compiler_minor */
463 		BUILD_COLLECTION(_collection_compiler, 0), /* shape collection */
464 		160, FLAG(_damage_flame)|FLAG(_damage_lava), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
465 		_monster_is_alien|_monster_minor|_monster_floats|_monster_can_teleport_under_media, /* flags */
466 
467 		_class_compiler, /* class */
468 		_class_compiler, /* friends */
469 		_class_human|_class_native|_class_defender, /* enemies */
470 
471 		_normal_frequency, /* sound pitch */
472 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
473 		NONE, /* flaming dying sound */
474 		NONE, 0, /* random sound, random sound mask */
475 
476 		NONE, /* carrying item type */
477 
478 		WORLD_ONE/5, WORLD_ONE, /* radius, height */
479 		0, /* preferred hover height */
480 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
481 		0, /* external velocity scale */
482 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
483 
484 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
485 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
486 		_intelligence_high, /* intelligence */
487 		_speed_superfast2, /* speed */
488 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
489 		_vidmaster_door_retry_mask, /* door retry mask */
490 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
491 
492 		7, /* being hit */
493 		UNONE, 2, /* dying hard (popping), dying soft (falling) */
494 		UNONE, UNONE, /* hard dead frames, soft dead frames */
495 		0, 3, /* stationary shape, moving shape */
496 		0, 0, /* teleport in shape, teleport out shape */
497 
498 		3*TICKS_PER_SECOND, /* attack frequency */
499 
500 		/* melee attack */
501 		{
502 			NONE, /* melee attack type */
503 		},
504 
505 		/* ranged attack */
506 		{
507 			_projectile_compiler_bolt_minor, /* ranged attack type */
508 			0, /* repetitions */
509 			NUMBER_OF_ANGLES/200, /* error angle */
510 			20*WORLD_ONE, /* range */
511 			1, /* ranged attack shape */
512 
513 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
514 		}
515 	},
516 
517 	{ /* _monster_compiler_major */
518 		BUILD_COLLECTION(_collection_compiler, 1), /* shape collection */
519 		200, FLAG(_damage_flame)|FLAG(_damage_lava), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
520 		_monster_is_alien|_monster_major|_monster_floats|_monster_can_teleport_under_media, /* flags */
521 
522 		_class_compiler, /* class */
523 		_class_compiler, /* friends */
524 		_class_human|_class_native|_class_defender, /* enemies */
525 
526 		_higher_frequency, /* sound pitch */
527 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
528 		NONE, /* flaming dying sound */
529 		NONE, 0, /* random sound, random sound mask */
530 
531 		NONE, /* carrying item type */
532 
533 		WORLD_ONE/5, WORLD_ONE, /* radius, height */
534 		0, /* preferred hover height */
535 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
536 		0, /* external velocity scale */
537 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
538 
539 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
540 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
541 		_intelligence_high, /* intelligence */
542 		_speed_superfast3, /* speed */
543 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
544 		_vidmaster_door_retry_mask, /* door retry mask */
545 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
546 
547 		7, /* being hit */
548 		UNONE, 2, /* dying hard (popping), dying soft (falling) */
549 		UNONE, UNONE, /* hard dead frames, soft dead frames */
550 		0, 3, /* stationary shape, moving shape */
551 		0, 0, /* teleport in shape, teleport out shape */
552 
553 		4*TICKS_PER_SECOND, /* attack frequency */
554 
555 		/* melee attack */
556 		{
557 			NONE, /* melee attack type */
558 		},
559 
560 		/* ranged attack */
561 		{
562 			_projectile_compiler_bolt_major, /* ranged attack type */
563 			0, /* repetitions */
564 			0, /* error angle */
565 			20*WORLD_ONE, /* range */
566 			1, /* ranged attack shape */
567 
568 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
569 		}
570 	},
571 
572 	{ /* _monster_compiler_minor_invisible */
573 		BUILD_COLLECTION(_collection_compiler, 0), /* shape collection */
574 		160, FLAG(_damage_flame)|FLAG(_damage_lava), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
575 		_monster_is_alien|_monster_minor|_monster_floats|_monster_is_invisible|_monster_can_teleport_under_media, /* flags */
576 
577 		_class_compiler, /* class */
578 		_class_compiler, /* friends */
579 		_class_human|_class_native|_class_defender, /* enemies */
580 
581 		_normal_frequency, /* sound pitch */
582 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
583 		NONE, /* flaming dying sound */
584 		NONE, 0, /* random sound, random sound mask */
585 
586 		NONE, /* carrying item type */
587 
588 		WORLD_ONE/5, WORLD_ONE, /* radius, height */
589 		0, /* preferred hover height */
590 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
591 		0, /* external velocity scale */
592 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
593 
594 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
595 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
596 		_intelligence_high, /* intelligence */
597 		_speed_superfast4, /* speed */
598 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
599 		_vidmaster_door_retry_mask, /* door retry mask */
600 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
601 
602 		7, /* being hit */
603 		UNONE, 2, /* dying hard (popping), dying soft (falling) */
604 		UNONE, UNONE, /* hard dead frames, soft dead frames */
605 		0, 3, /* stationary shape, moving shape */
606 		0, 0, /* teleport in shape, teleport out shape */
607 
608 		3*TICKS_PER_SECOND, /* attack frequency */
609 
610 		/* melee attack */
611 		{
612 			NONE, /* melee attack type */
613 		},
614 
615 		/* ranged attack */
616 		{
617 			_projectile_compiler_bolt_minor, /* ranged attack type */
618 			0, /* repetitions */
619 			NUMBER_OF_ANGLES/200, /* error angle */
620 			20*WORLD_ONE, /* range */
621 			1, /* ranged attack shape */
622 
623 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
624 		}
625 	},
626 
627 	{ /* _monster_compiler_major_invisible */
628 		BUILD_COLLECTION(_collection_compiler, 1), /* shape collection */
629 		200, FLAG(_damage_flame)|FLAG(_damage_lava), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
630 		_monster_is_alien|_monster_major|_monster_floats|_monster_is_subtly_invisible|_monster_can_teleport_under_media, /* flags */
631 
632 		_class_compiler, /* class */
633 		_class_compiler, /* friends */
634 		_class_human|_class_native|_class_defender, /* enemies */
635 
636 		_higher_frequency, /* sound pitch */
637 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
638 		NONE, /* flaming dying sound */
639 		NONE, 0, /* random sound, random sound mask */
640 
641 		NONE, /* carrying item type */
642 
643 		WORLD_ONE/5, WORLD_ONE, /* radius, height */
644 		0, /* preferred hover height */
645 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
646 		0, /* external velocity scale */
647 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
648 
649 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
650 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
651 		_intelligence_high, /* intelligence */
652 		_speed_superfast5, /* speed */
653 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
654 		_vidmaster_door_retry_mask, /* door retry mask */
655 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
656 
657 		7, /* being hit */
658 		UNONE, 2, /* dying hard (popping), dying soft (falling) */
659 		UNONE, UNONE, /* hard dead frames, soft dead frames */
660 		0, 3, /* stationary shape, moving shape */
661 		0, 0, /* teleport in shape, teleport out shape */
662 
663 		4*TICKS_PER_SECOND, /* attack frequency */
664 
665 		/* melee attack */
666 		{
667 			NONE, /* melee attack type */
668 		},
669 
670 		/* ranged attack */
671 		{
672 			_projectile_compiler_bolt_major, /* ranged attack type */
673 			0, /* repetitions */
674 			0, /* error angle */
675 			20*WORLD_ONE, /* range */
676 			1, /* ranged attack shape */
677 
678 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
679 		}
680 	},
681 
682 	{ /* _monster_fighter (minor) */
683 		BUILD_COLLECTION(_collection_fighter, 0), /* shape collection */
684 		40, 0, 0, /* vitality, immunities, weaknesses */
685 		_monster_is_alien|_monster_minor|_monster_can_die_in_flames, /* flags */
686 
687 		_class_fighter, /* class */
688 		_class_pfhor, /* friends */
689 		_class_human|_class_native|_class_defender, /* enemies */
690 
691 		_normal_frequency, /* sound pitch */
692 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
693 		_snd_fighter_wail, /* dying flaming */
694 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
695 
696 		NONE, /* carrying item type */
697 
698 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
699 		0, /* preferred hover height */
700 		-4*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
701 		(3*FIXED_ONE)/4, /* external velocity scale */
702 		_effect_fighter_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
703 
704 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
705 		30*WORLD_ONE, 2*WORLD_ONE, /* visual range, dark visual range */
706 		_intelligence_high, /* intelligence */
707 		_speed_superfast1, /* speed */
708 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
709 		_normal_door_retry_mask, /* door retry mask */
710 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
711 
712 		4, /* being hit */
713 		1, 3, /* dying hard (popping), dying soft (falling) */
714 		6, 5, /* hard dead frames, soft dead frames */
715 		7, 0, /* stationary shape, moving shape */
716 		12, 12, /* teleport in shape, teleport out shape */
717 
718 		4*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
719 
720 		/* melee attack */
721 		{
722 			_projectile_staff, /* melee attack type */
723 			0, /* repetitions */
724 			0, /* error */
725 			WORLD_ONE, /* range */
726 
727 			2, /* melee attack shape */
728 
729 			0, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
730 		},
731 
732 		/* ranged attack */
733 		{
734 			NONE, /* ranged attack type */
735 			0, /* repetitions */
736 			0, /* error angle */
737 			12*WORLD_ONE, /* range */
738 			3, /* ranged attack shape */
739 
740 			0, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
741 		}
742 	},
743 
744 	{ /* _monster_fighter (major) */
745 		BUILD_COLLECTION(_collection_fighter, 1), /* shape collection */
746 		80, 0, 0, /* vitality, immunities, weaknesses */
747 		_monster_is_alien|_monster_major|_monster_is_berserker|_monster_can_die_in_flames, /* flags */
748 
749 		_class_fighter, /* class */
750 		_class_pfhor, /* friends */
751 		_class_human|_class_native|_class_defender, /* enemies */
752 
753 		_lower_frequency, /* sound pitch */
754 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
755 		_snd_fighter_wail, /* dying flaming */
756 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
757 
758 		NONE, /* carrying item type */
759 
760 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
761 		0, /* preferred hover height */
762 		-4*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
763 		(3*FIXED_ONE)/4, /* external velocity scale */
764 		_effect_fighter_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
765 
766 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
767 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
768 		_intelligence_high, /* intelligence */
769 		_speed_superfast2, /* speed */
770 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
771 		_normal_door_retry_mask, /* door retry mask */
772 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
773 
774 		4, /* being hit */
775 		1, 3, /* dying hard (popping), dying soft (falling) */
776 		6, 5, /* hard dead frames, soft dead frames */
777 		7, 0, /* stationary shape, moving shape */
778 		12, 12, /* teleport in shape, teleport out shape */
779 
780 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
781 
782 		/* melee attack */
783 		{
784 			_projectile_staff, /* melee attack type */
785 			0, /* repetitions */
786 			0, /* error */
787 			WORLD_ONE, /* range */
788 
789 			2, /* melee attack shape */
790 
791 			0, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
792 		},
793 
794 		/* ranged attack */
795 		{
796 			NONE, /* ranged attack type */
797 			0, /* repetitions */
798 			0, /* error angle */
799 			12*WORLD_ONE, /* range */
800 			3, /* ranged attack shape */
801 
802 			0, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
803 		}
804 	},
805 
806 	{ /* _monster_fighter (minor projectile) */
807 		BUILD_COLLECTION(_collection_fighter, 2), /* shape collection */
808 		80, 0, 0, /* vitality, immunities, weaknesses */
809 		_monster_is_alien|_monster_minor|_monster_uses_sniper_ledges|_monster_can_die_in_flames, /* flags */
810 
811 		_class_fighter, /* class */
812 		_class_pfhor, /* friends */
813 		_class_human|_class_native|_class_defender, /* enemies */
814 
815 		_normal_frequency, /* sound pitch */
816 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
817 		_snd_fighter_wail, /* dying flaming */
818 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
819 
820 		NONE, /* carrying item type */
821 
822 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
823 		0, /* preferred hover height */
824 		-4*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
825 		(3*FIXED_ONE)/4, /* external velocity scale */
826 		_effect_fighter_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
827 
828 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
829 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
830 		_intelligence_high, /* intelligence */
831 		_speed_superfast3, /* speed */
832 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
833 		_normal_door_retry_mask, /* door retry mask */
834 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
835 
836 		4, /* being hit */
837 		1, 3, /* dying hard (popping), dying soft (falling) */
838 		6, 5, /* hard dead frames, soft dead frames */
839 		7, 0, /* stationary shape, moving shape */
840 		12, 12, /* teleport in shape, teleport out shape */
841 
842 		4*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
843 
844 		/* melee attack */
845 		{
846 			_projectile_staff, /* melee attack type */
847 			0, /* repetitions */
848 			0, /* error */
849 			WORLD_ONE, /* range */
850 
851 			2, /* melee attack shape */
852 
853 			WORLD_ONE/16, 0, WORLD_ONE_FOURTH, /* dx, dy, dz */
854 		},
855 
856 		/* ranged attack */
857 		{
858 			_projectile_staff_bolt, /* ranged attack type */
859 			0, /* repetitions */
860 			NUMBER_OF_ANGLES/150, /* error angle */
861 			12*WORLD_ONE, /* range */
862 			2, /* ranged attack shape */
863 
864 			WORLD_ONE/16, 0, WORLD_ONE_FOURTH, /* dx, dy, dz */
865 		}
866 	},
867 
868 	{ /* _monster_fighter (major projectile) */
869 		BUILD_COLLECTION(_collection_fighter, 3), /* shape collection */
870 		80, 0, 0, /* vitality, immunities, weaknesses */
871 		_monster_is_alien|_monster_major|_monster_uses_sniper_ledges|_monster_is_berserker|_monster_can_die_in_flames, /* flags */
872 
873 		_class_fighter, /* class */
874 		_class_pfhor, /* friends */
875 		_class_human|_class_native|_class_defender, /* enemies */
876 
877 		_higher_frequency, /* sound pitch */
878 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
879 		_snd_fighter_wail, /* dying flaming */
880 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
881 
882 		NONE, /* carrying item type */
883 
884 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
885 		0, /* preferred hover height */
886 		-4*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
887 		(3*FIXED_ONE)/4, /* external velocity scale */
888 		_effect_fighter_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
889 
890 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
891 		30*WORLD_ONE, 5*WORLD_ONE, /* visual range, dark visual range */
892 		_intelligence_high, /* intelligence */
893 		_speed_superfast4, /* speed */
894 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
895 		_normal_door_retry_mask, /* door retry mask */
896 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
897 
898 		4, /* being hit */
899 		1, 3, /* dying hard (popping), dying soft (falling) */
900 		6, 5, /* hard dead frames, soft dead frames */
901 		7, 0, /* stationary shape, moving shape */
902 		12, 12, /* teleport in shape, teleport out shape */
903 
904 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
905 
906 		/* melee attack */
907 		{
908 			_projectile_staff, /* melee attack type */
909 			1, /* repetitions */
910 			0, /* error */
911 			WORLD_ONE, /* range */
912 
913 			2, /* melee attack shape */
914 
915 			WORLD_ONE/16, 0, WORLD_ONE_FOURTH, /* dx, dy, dz */
916 		},
917 
918 		/* ranged attack */
919 		{
920 			_projectile_staff_bolt, /* ranged attack type */
921 			1, /* repetitions */
922 			NUMBER_OF_ANGLES/150, /* error angle */
923 			12*WORLD_ONE, /* range */
924 			2, /* ranged attack shape */
925 
926 			WORLD_ONE/16, 0, WORLD_ONE_FOURTH, /* dx, dy, dz */
927 		}
928 	},
929 
930 	{ /* _civilian_crew "bob" */
931 		BUILD_COLLECTION(_collection_civilian, 0), /* shape collection */
932 		20, 0, 0, /* vitality, immunities, weaknesses */
933 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges, /* flags */
934 
935 		_class_human_civilian, /* class */
936 		_class_human, /* friends */
937 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
938 
939 		_normal_frequency, /* sound pitch */
940 		_snd_human_activation, _snd_kill_the_player, _snd_human_clear, _snd_human_trash_talk, _snd_human_apology, _snd_human_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
941 		_snd_human_wail, /* dying flaming */
942 		_snd_human_chatter, 0x1f, /* random sound, random sound mask */
943 
944 		_i_magnum_magazine, /* carrying item type */
945 
946 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
947 		0, /* preferred hover height */
948 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
949 		FIXED_ONE, /* external velocity scale */
950 		_effect_civilian_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
951 
952 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
953 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
954 		_intelligence_high, /* intelligence */
955 		_speed_blinding, /* speed */
956 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
957 		_vidmaster_door_retry_mask, /* door retry mask */
958 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
959 
960 		10, /* being hit */
961 		2, 1, /* dying hard (popping), dying soft (falling) */
962 		4, 3, /* hard dead frames, soft dead frames */
963 		6, 0, /* stationary shape, moving shape */
964 		9, 8, /* teleport in shape, teleport out shape */
965 
966 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
967 
968 		/* melee attack */
969 		{
970 			NONE, /* melee attack type */
971 		},
972 
973 		/* ranged attack */
974 		{
975 			_projectile_pistol_bullet, /* ranged attack type */
976 			1, /* repetitions */
977 			NUMBER_OF_ANGLES/150, /* error angle */
978 			10*WORLD_ONE, /* range */
979 			5, /* ranged attack shape */
980 
981 			0, 0, WORLD_ONE*3/4, /* dx, dy, dz */
982 		}
983 	},
984 
985 	{ /* _civilian_science "fred" */
986 		BUILD_COLLECTION(_collection_civilian, 1), /* shape collection */
987 		25, 0, 0, /* vitality, immunities, weaknesses */
988 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges, /* flags */
989 
990 		_class_human_civilian, /* class */
991 		_class_human|_class_assimilated_civilian, /* friends */
992 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
993 
994 		_normal_frequency, /* sound pitch */
995 		_snd_human_activation, _snd_kill_the_player, _snd_human_clear, _snd_human_trash_talk, _snd_human_apology, _snd_human_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
996 		_snd_human_wail, /* dying flaming */
997 		_snd_human_chatter, 0x1f, /* random sound, random sound mask */
998 
999 		_i_magnum_magazine, /* carrying item type */
1000 
1001 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1002 		0, /* preferred hover height */
1003 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1004 		FIXED_ONE, /* external velocity scale */
1005 		_effect_civilian_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1006 
1007 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1008 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
1009 		_intelligence_high, /* intelligence */
1010 		_speed_blinding, /* speed */
1011 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1012 		_vidmaster_door_retry_mask, /* door retry mask */
1013 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
1014 
1015 		10, /* being hit */
1016 		2, 1, /* dying hard (popping), dying soft (falling) */
1017 		4, 3, /* hard dead frames, soft dead frames */
1018 		6, 0, /* stationary shape, moving shape */
1019 		9, 8, /* teleport in shape, teleport out shape */
1020 
1021 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1022 
1023 		/* melee attack */
1024 		{
1025 			NONE, /* melee attack type */
1026 		},
1027 
1028 		/* ranged attack */
1029 		{
1030 			_projectile_pistol_bullet, /* ranged attack type */
1031 			2, /* repetitions */
1032 			NUMBER_OF_ANGLES/150, /* error angle */
1033 			13*WORLD_ONE, /* range */
1034 			5, /* ranged attack shape */
1035 
1036 			0, 0, WORLD_ONE*3/4, /* dx, dy, dz */
1037 		}
1038 	},
1039 
1040 	{ /* _civilian_security "steve" */
1041 		BUILD_COLLECTION(_collection_civilian, 2), /* shape collection */
1042 		30, 0, 0, /* vitality, immunities, weaknesses */
1043 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges, /* flags */
1044 
1045 		_class_human_civilian, /* class */
1046 		_class_human|_class_assimilated_civilian, /* friends */
1047 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
1048 
1049 		_normal_frequency, /* sound pitch */
1050 		_snd_human_activation, _snd_kill_the_player, _snd_human_clear, _snd_human_trash_talk, _snd_human_apology, _snd_human_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1051 		_snd_human_wail, /* dying flaming */
1052 		_snd_human_chatter, 0x1f, /* random sound, random sound mask */
1053 
1054 		_i_magnum, /* carrying item type */
1055 
1056 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1057 		0, /* preferred hover height */
1058 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1059 		FIXED_ONE, /* external velocity scale */
1060 		_effect_civilian_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1061 
1062 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1063 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
1064 		_intelligence_high, /* intelligence */
1065 		_speed_blinding, /* speed */
1066 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1067 		_vidmaster_door_retry_mask, /* door retry mask */
1068 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
1069 
1070 		10, /* being hit */
1071 		2, 1, /* dying hard (popping), dying soft (falling) */
1072 		4, 3, /* hard dead frames, soft dead frames */
1073 		6, 0, /* stationary shape, moving shape */
1074 		9, 8, /* teleport in shape, teleport out shape */
1075 
1076 		TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1077 
1078 		/* melee attack */
1079 		{
1080 			NONE, /* melee attack type */
1081 		},
1082 
1083 		/* ranged attack */
1084 		{
1085 			_projectile_pistol_bullet, /* ranged attack type */
1086 			5, /* repetitions */
1087 			NUMBER_OF_ANGLES/150, /* error angle */
1088 			17*WORLD_ONE, /* range */
1089 			5, /* ranged attack shape */
1090 
1091 			0, 0, WORLD_ONE*3/4, /* dx, dy, dz */
1092 		}
1093 	},
1094 
1095 	{ /* _civilian_assimilated "evil bob" */
1096 		BUILD_COLLECTION(_collection_civilian, 3), /* shape collection */
1097 		30, 0, 0, /* vitality, immunities, weaknesses */
1098 		_monster_is_alien|_monster_is_kamakazi|_monster_can_die_in_flames, /* flags */
1099 
1100 		_class_assimilated_civilian,
1101 		_class_pfhor, /* friends */
1102 		_class_player|_class_defender, /* enemies */
1103 
1104 		_normal_frequency, /* sound pitch */
1105 		NONE, NONE, NONE, NONE, NONE, _snd_human_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1106 		_snd_human_wail, /* dying flaming */
1107 		_snd_assimilated_human_chatter, 0xf, /* random sound, random sound mask */
1108 
1109 		NONE, /* carrying item type */
1110 
1111 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1112 		0, /* preferred hover height */
1113 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1114 		FIXED_ONE, /* external velocity scale */
1115 		_effect_assimilated_civilian_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1116 
1117 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1118 		15*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
1119 		_intelligence_high, /* intelligence */
1120 		_speed_blinding, /* speed */
1121 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1122 		_vidmaster_door_retry_mask, /* door retry mask */
1123 		WORLD_ONE, {_damage_explosion, _alien_damage, 80, 40, FIXED_ONE}, /* shrapnel radius, shrapnel damage  */
1124 
1125 		10, /* being hit */
1126 		11, UNONE, /* dying hard (popping), dying soft (falling) */
1127 		4, 0, /* hard dead frames, soft dead frames */
1128 		6, 0, /* stationary shape, moving shape */
1129 		8, UNONE, /* teleport in shape, teleport out shape */
1130 
1131 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1132 
1133 		/* melee attack */
1134 		{
1135 			NONE, /* melee attack type */
1136 		},
1137 
1138 		/* ranged attack */
1139 		{
1140 			NONE, /* ranged attack type */
1141 		}
1142 	},
1143 
1144 	{ /* _monster_hummer_minor (small hummer) */
1145 		BUILD_COLLECTION(_collection_hummer, 0), /* shape collection */
1146 		40, 0, FLAG(_damage_fusion_bolt)|FLAG(_damage_compiler_bolt)|FLAG(_damage_electrical_staff), /* vitality, immunities, weaknesses */
1147 		_monster_is_alien|_monster_flys|_monster_minor|_monster_has_delayed_hard_death, /* flags */
1148 
1149 		_class_hummer, /* class */
1150 		_class_pfhor|_class_client, /* friends */
1151 		_class_human|_class_native|_class_defender, /* enemies */
1152 
1153 		_normal_frequency, /* sound pitch */
1154 		_snd_hummer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1155 		NONE, /* flaming death sound */
1156 		NONE, 0, /* random sound, random sound mask */
1157 
1158 		NONE, /* carrying item type */
1159 
1160 		WORLD_ONE/4, WORLD_ONE_HALF, /* radius, height */
1161 		WORLD_ONE_FOURTH, /* preferred hover height */
1162 		-5*WORLD_ONE, 5*WORLD_ONE, /* minimum ledge delta, maximum ledge delta */
1163 		FIXED_ONE, /* external velocity scale */
1164 		_effect_hummer_spark, _effect_metallic_clang, _effect_rocket_contrail, /* impact effect, melee impact effect, contrail effect */
1165 
1166 		HALF_CIRCLE, QUARTER_CIRCLE, /* half visual arc, half vertical visual arc */
1167 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
1168 		_intelligence_low, /* intelligence */
1169 		_speed_blinding, /* speed */
1170 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1171 		_normal_door_retry_mask, /* door retry mask */
1172 		NONE, {NONE, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1173 
1174 		0, /* being hit */
1175 		3, 2, /* dying hard (popping), dying soft (falling) */
1176 		4, UNONE, /* hard dead frames, soft dead frames */
1177 		0, 0, /* stationary shape, moving shape (no permutations) */
1178 		0, 0, /* teleport in shape, teleport out shape */
1179 
1180 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1181 
1182 		/* melee attack */
1183 		{
1184 			NONE, /* melee attack type */
1185 		},
1186 
1187 		/* ranged attack */
1188 		{
1189 			_projectile_minor_hummer, /* ranged attack type */
1190 			0, /* repetitions */
1191 			3, /* error angle */
1192 			12*WORLD_ONE, /* range */
1193 			1, /* ranged attack shape */
1194 
1195 			0, 0, 0, /* dx, dy, dz */
1196 		}
1197 	},
1198 
1199 	{ /* _monster_hummer_major (big hummer) */
1200 		BUILD_COLLECTION(_collection_hummer, 1), /* shape collection */
1201 		60, 0, FLAG(_damage_fusion_bolt)|FLAG(_damage_compiler_bolt)|FLAG(_damage_electrical_staff), /* vitality, immunities, weaknesses */
1202 		_monster_is_alien|_monster_flys|_monster_major|_monster_has_delayed_hard_death, /* flags */
1203 
1204 		_class_hummer, /* class */
1205 		_class_pfhor|_class_client, /* friends */
1206 		_class_human|_class_native|_class_defender, /* enemies */
1207 
1208 		_normal_frequency, /* sound pitch */
1209 		_snd_hummer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1210 		NONE, /* flaming death sound */
1211 		NONE, 0, /* random sound, random sound mask */
1212 
1213 		NONE, /* carrying item type */
1214 
1215 		WORLD_ONE/4, WORLD_ONE_HALF, /* radius, height */
1216 		WORLD_ONE_FOURTH, /* preferred hover height */
1217 		-5*WORLD_ONE, 5*WORLD_ONE, /* minimum ledge delta, maximum ledge delta */
1218 		FIXED_ONE, /* external velocity scale */
1219 		_effect_hummer_spark, _effect_metallic_clang, _effect_rocket_contrail, /* impact effect, melee impact effect, contrail effect */
1220 
1221 		HALF_CIRCLE, QUARTER_CIRCLE, /* half visual arc, half vertical visual arc */
1222 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
1223 		_intelligence_low, /* intelligence */
1224 		_speed_blinding, /* speed */
1225 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1226 		_normal_door_retry_mask, /* door retry mask */
1227 		NONE, {NONE, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1228 
1229 		0, /* being hit */
1230 		3, 2, /* dying hard (popping), dying soft (falling) */
1231 		4, UNONE, /* hard dead frames, soft dead frames */
1232 		0, 0, /* stationary shape, moving shape (no permutations) */
1233 		0, 0, /* teleport in shape, teleport out shape */
1234 
1235 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1236 
1237 		/* melee attack */
1238 		{
1239 			NONE, /* melee attack type */
1240 		},
1241 
1242 		/* ranged attack */
1243 		{
1244 			_projectile_minor_hummer, /* ranged attack type */
1245 			2, /* repetitions */
1246 			5, /* error angle */
1247 			12*WORLD_ONE, /* range */
1248 			1, /* ranged attack shape */
1249 
1250 			0, 0, 0, /* dx, dy, dz */
1251 		}
1252 	},
1253 
1254 	{ /* _monster_hummer_big_minor (big hummer) */
1255 		BUILD_COLLECTION(_collection_hummer, 2), /* shape collection */
1256 		40, 0, FLAG(_damage_fusion_bolt)|FLAG(_damage_compiler_bolt)|FLAG(_damage_electrical_staff), /* vitality, immunities, weaknesses */
1257 		_monster_is_alien|_monster_flys|_monster_minor|_monster_has_delayed_hard_death, /* flags */
1258 
1259 		_class_hummer, /* class */
1260 		_class_pfhor|_class_client, /* friends */
1261 		_class_human|_class_native|_class_defender, /* enemies */
1262 
1263 		_higher_frequency, /* sound pitch */
1264 		_snd_hummer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1265 		NONE, /* flaming death sound */
1266 		NONE, 0, /* random sound, random sound mask */
1267 
1268 		NONE, /* carrying item type */
1269 
1270 		WORLD_ONE/4, WORLD_ONE_HALF, /* radius, height */
1271 		WORLD_ONE_FOURTH, /* preferred hover height */
1272 		-5*WORLD_ONE, 5*WORLD_ONE, /* minimum ledge delta, maximum ledge delta */
1273 		FIXED_ONE, /* external velocity scale */
1274 		_effect_hummer_spark, _effect_metallic_clang, _effect_rocket_contrail, /* impact effect, melee impact effect, contrail effect */
1275 
1276 		HALF_CIRCLE, QUARTER_CIRCLE, /* half visual arc, half vertical visual arc */
1277 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
1278 		_intelligence_low, /* intelligence */
1279 		_speed_blinding, /* speed */
1280 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1281 		_normal_door_retry_mask, /* door retry mask */
1282 		NONE, {NONE, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1283 
1284 		0, /* being hit */
1285 		3, 2, /* dying hard (popping), dying soft (falling) */
1286 		4, UNONE, /* hard dead frames, soft dead frames */
1287 		0, 0, /* stationary shape, moving shape (no permutations) */
1288 		0, 0, /* teleport in shape, teleport out shape */
1289 
1290 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1291 
1292 		/* melee attack */
1293 		{
1294 			NONE, /* melee attack type */
1295 		},
1296 
1297 		/* ranged attack */
1298 		{
1299 			_projectile_minor_hummer, /* ranged attack type */
1300 			0, /* repetitions */
1301 			3, /* error angle */
1302 			12*WORLD_ONE, /* range */
1303 			1, /* ranged attack shape */
1304 
1305 			0, 0, 0, /* dx, dy, dz */
1306 		}
1307 	},
1308 
1309 	{ /* _monster_hummer_big_major (angry hummer) */
1310 		BUILD_COLLECTION(_collection_hummer, 3), /* shape collection */
1311 		60, 0, FLAG(_damage_fusion_bolt)|FLAG(_damage_compiler_bolt)|FLAG(_damage_electrical_staff), /* vitality, immunities, weaknesses */
1312 		_monster_is_alien|_monster_flys|_monster_major|_monster_has_delayed_hard_death, /* flags */
1313 
1314 		_class_hummer, /* class */
1315 		_class_pfhor|_class_client, /* friends */
1316 		_class_human|_class_native|_class_defender, /* enemies */
1317 
1318 		_higher_frequency, /* sound pitch */
1319 		_snd_hummer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1320 		NONE, /* flaming death sound */
1321 		NONE, 0, /* random sound, random sound mask */
1322 
1323 		NONE, /* carrying item type */
1324 
1325 		WORLD_ONE/4, WORLD_ONE_HALF, /* radius, height */
1326 		WORLD_ONE_FOURTH, /* preferred hover height */
1327 		-5*WORLD_ONE, 5*WORLD_ONE, /* minimum ledge delta, maximum ledge delta */
1328 		FIXED_ONE, /* external velocity scale */
1329 		_effect_hummer_spark, _effect_metallic_clang, _effect_rocket_contrail, /* impact effect, melee impact effect, contrail effect */
1330 
1331 		HALF_CIRCLE, QUARTER_CIRCLE, /* half visual arc, half vertical visual arc */
1332 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
1333 		_intelligence_low, /* intelligence */
1334 		_speed_blinding, /* speed */
1335 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1336 		_normal_door_retry_mask, /* door retry mask */
1337 		NONE, {NONE, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1338 
1339 		0, /* being hit */
1340 		3, 2, /* dying hard (popping), dying soft (falling) */
1341 		4, UNONE, /* hard dead frames, soft dead frames */
1342 		0, 0, /* stationary shape, moving shape (no permutations) */
1343 		0, 0, /* teleport in shape, teleport out shape */
1344 
1345 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1346 
1347 		/* melee attack */
1348 		{
1349 			NONE, /* melee attack type */
1350 		},
1351 
1352 		/* ranged attack */
1353 		{
1354 			_projectile_minor_hummer, /* ranged attack type */
1355 			2, /* repetitions */
1356 			5, /* error angle */
1357 			12*WORLD_ONE, /* range */
1358 			1, /* ranged attack shape */
1359 
1360 			0, 0, 0, /* dx, dy, dz */
1361 		}
1362 	},
1363 
1364 	{ /* _monster_hummer_possessed (hummer from durandal) */
1365 		BUILD_COLLECTION(_collection_hummer, 4), /* shape collection */
1366 		60, 0, FLAG(_damage_fusion_bolt)|FLAG(_damage_compiler_bolt)|FLAG(_damage_electrical_staff), /* vitality, immunities, weaknesses */
1367 		_monster_flys|_monster_has_delayed_hard_death|_monster_attacks_immediately, /* flags */
1368 
1369 		_class_possessed_hummer, /* class */
1370 		_class_human, /* friends */
1371 		_class_pfhor|_class_client|_class_native, /* enemies */
1372 
1373 		_lower_frequency, /* sound pitch */
1374 		_snd_hummer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1375 		NONE, /* flaming death sound */
1376 		NONE, 0, /* random sound, random sound mask */
1377 
1378 		NONE, /* carrying item type */
1379 
1380 		WORLD_ONE/4, WORLD_ONE_HALF, /* radius, height */
1381 		WORLD_ONE_FOURTH, /* preferred hover height */
1382 		-5*WORLD_ONE, 5*WORLD_ONE, /* minimum ledge delta, maximum ledge delta */
1383 		FIXED_ONE, /* external velocity scale */
1384 		_effect_hummer_spark, _effect_metallic_clang, _effect_rocket_contrail, /* impact effect, melee impact effect, contrail effect */
1385 
1386 		HALF_CIRCLE, QUARTER_CIRCLE, /* half visual arc, half vertical visual arc */
1387 		30*WORLD_ONE, 15*WORLD_ONE, /* visual range, dark visual range */
1388 		_intelligence_low, /* intelligence */
1389 		_speed_blinding, /* speed */
1390 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1391 		_normal_door_retry_mask, /* door retry mask */
1392 		NONE, {NONE, _alien_damage, 30, 10, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1393 
1394 		0, /* being hit */
1395 		3, 2, /* dying hard (popping), dying soft (falling) */
1396 		4, UNONE, /* hard dead frames, soft dead frames */
1397 		0, 0, /* stationary shape, moving shape (no permutations) */
1398 		0, 0, /* teleport in shape, teleport out shape */
1399 
1400 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1401 
1402 		/* melee attack */
1403 		{
1404 			NONE, /* melee attack type */
1405 		},
1406 
1407 		/* ranged attack */
1408 		{
1409 			_projectile_durandal_hummer, /* ranged attack type */
1410 			1, /* repetitions */
1411 			5, /* error angle */
1412 			12*WORLD_ONE, /* range */
1413 			1, /* ranged attack shape */
1414 
1415 			0, 0, 0, /* dx, dy, dz */
1416 		}
1417 	},
1418 
1419 	{ /* _monster_cyborg_minor */
1420 		BUILD_COLLECTION(_collection_cyborg, 0), /* shape collection */
1421 		300, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1422 		_monster_is_alien|_monster_minor|_monster_uses_sniper_ledges, /* flags */
1423 
1424 		_class_cyborg, /* class */
1425 		_class_cyborg, /* friends */
1426 		_class_human|_class_native|_class_defender, /* enemies */
1427 
1428 		_normal_frequency, /* sound pitch */
1429 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1430 		NONE, /* flaming dying sound */
1431 		NONE, 0, /* random sound, random sound mask */
1432 
1433 		NONE, /* carrying item type */
1434 
1435 		WORLD_ONE/4, (4*WORLD_ONE)/5, /* radius, height */
1436 		0, /* preferred hover height */
1437 		-WORLD_ONE, WORLD_ONE/4, /* minimum ledge delta, maximum ledge delta */
1438 		FIXED_ONE/4, /* external velocity scale */
1439 		_effect_cyborg_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1440 
1441 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1442 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
1443 		_intelligence_high, /* intelligence */
1444 		_speed_superfast5, /* speed */
1445 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1446 		_vidmaster_door_retry_mask, /* door retry mask */
1447 		WORLD_ONE, {_damage_explosion, _alien_damage, 60, 0, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1448 
1449 		0, /* being hit */
1450 		3, UNONE, /* dying hard (popping), dying soft (falling) */
1451 		5, UNONE, /* hard dead frames, soft dead frames */
1452 		0, 1, /* stationary shape, moving shape */
1453 		0, 0, /* teleport in shape, teleport out shape */
1454 
1455 		4*TICKS_PER_SECOND, /* attack frequency */
1456 
1457 		/* melee attack */
1458 		{
1459 			NONE,
1460 		},
1461 
1462 		/* ranged attack */
1463 		{
1464 			_projectile_minor_cyborg_ball, /* ranged attack type */
1465 			0, /* repetitions */
1466 			0, /* error angle */
1467 			10*WORLD_ONE, /* range */
1468 			2, /* ranged attack shape */
1469 
1470 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1471 		}
1472 	},
1473 
1474 	{ /* _monster_cyborg_major */
1475 		BUILD_COLLECTION(_collection_cyborg, 1), /* shape collection */
1476 		450, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1477 		_monster_is_alien|_monster_major|_monster_uses_sniper_ledges, /* flags */
1478 
1479 		_class_cyborg, /* class */
1480 		_class_cyborg, /* friends */
1481 		_class_human|_class_native|_class_defender, /* enemies */
1482 
1483 		_normal_frequency, /* sound pitch */
1484 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1485 		NONE, /* flaming dying sound */
1486 		NONE, 0, /* random sound, random sound mask */
1487 
1488 		NONE, /* carrying item type */
1489 
1490 		WORLD_ONE/4, (4*WORLD_ONE)/5, /* radius, height */
1491 		0, /* preferred hover height */
1492 		-WORLD_ONE, WORLD_ONE/4, /* minimum ledge delta, maximum ledge delta */
1493 		FIXED_ONE/4, /* external velocity scale */
1494 		_effect_cyborg_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1495 
1496 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1497 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
1498 		_intelligence_high, /* intelligence */
1499 		_speed_superfast4, /* speed */
1500 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1501 		_vidmaster_door_retry_mask, /* door retry mask */
1502 		WORLD_ONE, {_damage_explosion, _alien_damage, 60, 0, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1503 
1504 		0, /* being hit */
1505 		3, UNONE, /* dying hard (popping), dying soft (falling) */
1506 		5, UNONE, /* hard dead frames, soft dead frames */
1507 		0, 1, /* stationary shape, moving shape */
1508 		0, 0, /* teleport in shape, teleport out shape */
1509 
1510 		3*TICKS_PER_SECOND, /* attack frequency */
1511 
1512 		/* melee attack */
1513 		{
1514 			NONE,
1515 		},
1516 
1517 		/* ranged attack */
1518 		{
1519 			_projectile_minor_cyborg_ball, /* ranged attack type */
1520 			1, /* repetitions */
1521 			0, /* error angle */
1522 			10*WORLD_ONE, /* range */
1523 			2, /* ranged attack shape */
1524 
1525 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1526 		}
1527 	},
1528 
1529 	{ /* _monster_cyborg_flame_minor */
1530 		BUILD_COLLECTION(_collection_cyborg, 0), /* shape collection */
1531 		300, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1532 		_monster_is_alien|_monster_minor|_monster_uses_sniper_ledges, /* flags */
1533 
1534 		_class_cyborg, /* class */
1535 		_class_cyborg, /* friends */
1536 		_class_human|_class_native|_class_defender, /* enemies */
1537 
1538 		_lower_frequency, /* sound pitch */
1539 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1540 		NONE, /* flaming dying sound */
1541 		NONE, 0, /* random sound, random sound mask */
1542 
1543 		NONE, /* carrying item type */
1544 
1545 		WORLD_ONE/4, (4*WORLD_ONE)/5, /* radius, height */
1546 		0, /* preferred hover height */
1547 		-WORLD_ONE, WORLD_ONE/4, /* minimum ledge delta, maximum ledge delta */
1548 		FIXED_ONE/4, /* external velocity scale */
1549 		_effect_cyborg_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1550 
1551 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1552 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
1553 		_intelligence_high, /* intelligence */
1554 		_speed_superfast4, /* speed */
1555 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1556 		_vidmaster_door_retry_mask, /* door retry mask */
1557 		WORLD_ONE, {_damage_explosion, _alien_damage, 60, 0, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1558 
1559 		0, /* being hit */
1560 		3, UNONE, /* dying hard (popping), dying soft (falling) */
1561 		5, UNONE, /* hard dead frames, soft dead frames */
1562 		0, 1, /* stationary shape, moving shape */
1563 		0, 0, /* teleport in shape, teleport out shape */
1564 
1565 		4*TICKS_PER_SECOND, /* attack frequency */
1566 
1567 		/* melee attack */
1568 		{
1569 			_projectile_flamethrower_burst, /* ranged attack type */
1570 			15, /* repetitions */
1571 			0, /* error angle */
1572 			2*WORLD_ONE, /* range */
1573 			4, /* ranged attack shape */
1574 
1575 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1576 		},
1577 
1578 		/* ranged attack */
1579 		{
1580 			_projectile_major_cyborg_ball, /* ranged attack type */
1581 			0, /* repetitions */
1582 			0, /* error angle */
1583 			10*WORLD_ONE, /* range */
1584 			2, /* ranged attack shape */
1585 
1586 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1587 		}
1588 	},
1589 
1590 	{ /* _monster_cyborg_flame_major */
1591 		BUILD_COLLECTION(_collection_cyborg, 0), /* shape collection */
1592 		450, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1593 		_monster_is_alien|_monster_major|_monster_uses_sniper_ledges, /* flags */
1594 
1595 		_class_cyborg, /* class */
1596 		_class_cyborg, /* friends */
1597 		_class_human|_class_native|_class_defender, /* enemies */
1598 
1599 		_lower_frequency, /* sound pitch */
1600 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1601 		NONE, /* flaming dying sound */
1602 		NONE, 0, /* random sound, random sound mask */
1603 
1604 		NONE, /* carrying item type */
1605 
1606 		WORLD_ONE/4, (4*WORLD_ONE)/5, /* radius, height */
1607 		0, /* preferred hover height */
1608 		-WORLD_ONE, WORLD_ONE/4, /* minimum ledge delta, maximum ledge delta */
1609 		FIXED_ONE/4, /* external velocity scale */
1610 		_effect_cyborg_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1611 
1612 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1613 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
1614 		_intelligence_high, /* intelligence */
1615 		_speed_superfast4, /* speed */
1616 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1617 		_vidmaster_door_retry_mask, /* door retry mask */
1618 		WORLD_ONE, {_damage_explosion, _alien_damage, 60, 0, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1619 
1620 		0, /* being hit */
1621 		3, UNONE, /* dying hard (popping), dying soft (falling) */
1622 		5, UNONE, /* hard dead frames, soft dead frames */
1623 		0, 1, /* stationary shape, moving shape */
1624 		0, 0, /* teleport in shape, teleport out shape */
1625 
1626 		3*TICKS_PER_SECOND, /* attack frequency */
1627 
1628 		/* melee attack */
1629 		{
1630 			_projectile_flamethrower_burst, /* ranged attack type */
1631 			15, /* repetitions */
1632 			0, /* error angle */
1633 			2*WORLD_ONE, /* range */
1634 			4, /* ranged attack shape */
1635 
1636 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1637 		},
1638 
1639 		/* ranged attack */
1640 		{
1641 			_projectile_major_cyborg_ball, /* ranged attack type */
1642 			0, /* repetitions */
1643 			0, /* error angle */
1644 			10*WORLD_ONE, /* range */
1645 			2, /* ranged attack shape */
1646 
1647 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1648 		}
1649 	},
1650 
1651 	{ /* _monster_enforcer_minor */
1652 		BUILD_COLLECTION(_collection_enforcer, 0), /* shape collection */
1653 		120, 0, 0, /* vitality, immunities, weaknesses */
1654 		_monster_is_alien|_monster_minor|_monster_uses_sniper_ledges|_monster_can_die_in_flames|_monster_waits_with_clear_shot, /* flags */
1655 
1656 		_class_enforcer, /* class */
1657 		_class_pfhor, /* friends */
1658 		_class_human|_class_native|_class_defender, /* enemies */
1659 
1660 		_normal_frequency, /* sound pitch */
1661 		_snd_enforcer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1662 		_snd_fighter_wail, /* flaming dying sound */
1663 		NONE, 0, /* random sound, random sound mask */
1664 
1665 		_i_alien_shotgun, /* carrying item type */
1666 
1667 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1668 		0, /* preferred hover height */
1669 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1670 		(3*FIXED_ONE)/4, /* external velocity scale */
1671 		_effect_enforcer_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1672 
1673 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1674 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
1675 		_intelligence_high, /* intelligence */
1676 		_speed_superfast4, /* speed */
1677 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1678 		_vidmaster_door_retry_mask, /* door retry mask */
1679 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
1680 
1681 		0, /* being hit */
1682 		6, 3, /* dying hard (popping), dying soft (falling) */
1683 		7, 4, /* hard dead frames, soft dead frames */
1684 		0, 1, /* stationary shape, moving shape */
1685 		0, 0, /* teleport in shape, teleport out shape */
1686 
1687 		4*TICKS_PER_SECOND, /* attack frequency */
1688 
1689 		/* melee attack */
1690 		{
1691 			NONE, /* melee attack type */
1692 		},
1693 
1694 		/* ranged attack */
1695 		{
1696 			_projectile_alien_weapon, /* ranged attack type */
1697 			8, /* repetitions */
1698 			2, /* error angle */
1699 			15*WORLD_ONE, /* range */
1700 			2, /* ranged attack shape */
1701 
1702 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1703 		}
1704 	},
1705 
1706 	{ /* _monster_enforcer_major */
1707 		BUILD_COLLECTION(_collection_enforcer, 1), /* shape collection */
1708 		160, 0, 0, /* vitality, immunities, weaknesses */
1709 		_monster_is_alien|_monster_major|_monster_uses_sniper_ledges|_monster_can_die_in_flames|_monster_waits_with_clear_shot, /* flags */
1710 
1711 		_class_enforcer, /* class */
1712 		_class_pfhor, /* friends */
1713 		_class_human|_class_native|_class_defender, /* enemies */
1714 
1715 		_higher_frequency, /* sound pitch */
1716 		_snd_enforcer_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1717 		_snd_fighter_wail, /* flaming dying sound */
1718 		NONE, 0, /* random sound, random sound mask */
1719 
1720 		_i_alien_shotgun, /* carrying item type */
1721 
1722 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1723 		0, /* preferred hover height */
1724 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1725 		(3*FIXED_ONE)/4, /* external velocity scale */
1726 		_effect_enforcer_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1727 
1728 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1729 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
1730 		_intelligence_high, /* intelligence */
1731 		_speed_blinding, /* speed */
1732 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1733 		_vidmaster_door_retry_mask, /* door retry mask */
1734 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
1735 
1736 		0, /* being hit */
1737 		6, 3, /* dying hard (popping), dying soft (falling) */
1738 		7, 4, /* hard dead frames, soft dead frames */
1739 		0, 1, /* stationary shape, moving shape */
1740 		0, 0, /* teleport in shape, teleport out shape */
1741 
1742 		2*TICKS_PER_SECOND, /* attack frequency */
1743 
1744 		/* melee attack */
1745 		{
1746 			NONE, /* melee attack type */
1747 		},
1748 
1749 		/* ranged attack */
1750 		{
1751 			_projectile_alien_weapon, /* ranged attack type */
1752 			12, /* repetitions */
1753 			5, /* error angle */
1754 			20*WORLD_ONE, /* range */
1755 			2, /* ranged attack shape */
1756 
1757 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH/2, /* dx, dy, dz */
1758 		}
1759 	},
1760 
1761 	{ /* _monster_hunter_minor */
1762 		BUILD_COLLECTION(_collection_hunter, 0), /* shape collection */
1763 		200, FLAG(_damage_flame), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1764 		_monster_is_alien|_monster_uses_sniper_ledges|_monster_minor, /* flags */
1765 
1766 		_class_hunter, /* class */
1767 		_class_pfhor, /* friends */
1768 		_class_human|_class_native|_class_defender, /* enemies */
1769 
1770 		_normal_frequency, /* sound pitch */
1771 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1772 		NONE, /* flaming death sound */
1773 		NONE, 0, /* random sound, random sound mask */
1774 
1775 		NONE, /* carrying item type */
1776 
1777 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1778 		0, /* preferred hover height */
1779 		-WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1780 		FIXED_ONE_HALF, /* external velocity scale */
1781 		_effect_hunter_spark, _effect_metallic_clang, NONE, /* impact effect, melee impact effect, contrail effect */
1782 
1783 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1784 		30*WORLD_ONE, 4*WORLD_ONE, /* visual range, dark visual range */
1785 		_intelligence_high, /* intelligence */
1786 		_speed_superfast3, /* speed */
1787 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1788 		_normal_door_retry_mask, /* door retry mask */
1789 		2*WORLD_ONE, {_damage_explosion, _alien_damage, 60, 30, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1790 
1791 		7, /* being hit */
1792 		3, 9, /* dying hard (popping), dying soft (falling) */
1793 		6, 10, /* hard dead frames, soft dead frames */
1794 		1, 0, /* stationary shape, moving shape (no permutations) */
1795 		1, 1, /* teleport in shape, teleport out shape */
1796 
1797 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1798 
1799 		/* melee attack */
1800 		{
1801 			NONE, /* melee attack type */
1802 		},
1803 
1804 		/* ranged attack */
1805 		{
1806 			_projectile_hunter, /* ranged attack type */
1807 			2, /* repetitions */
1808 			3, /* error angle */
1809 			12*WORLD_ONE, /* range */
1810 			2, /* ranged attack shape */
1811 
1812 			0, WORLD_ONE/8, WORLD_ONE_HALF+WORLD_ONE_FOURTH, /* dx, dy, dz */
1813 		}
1814 	},
1815 
1816 	{ /* _monster_hunter_major */
1817 		BUILD_COLLECTION(_collection_hunter, 1), /* shape collection */
1818 		300, FLAG(_damage_flame), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1819 		_monster_is_alien|_monster_uses_sniper_ledges|_monster_major, /* flags */
1820 
1821 		_class_hunter, /* class */
1822 		_class_pfhor, /* friends */
1823 		_class_human|_class_native|_class_defender, /* enemies */
1824 
1825 		_higher_frequency, /* sound pitch */
1826 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1827 		NONE, /* flaming death sound */
1828 		NONE, 0, /* random sound, random sound mask */
1829 
1830 		NONE, /* carrying item type */
1831 
1832 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1833 		0, /* preferred hover height */
1834 		-WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1835 		FIXED_ONE_HALF, /* external velocity scale */
1836 		_effect_hunter_spark, _effect_metallic_clang, NONE, /* impact effect, melee impact effect, contrail effect */
1837 
1838 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1839 		30*WORLD_ONE, 4*WORLD_ONE, /* visual range, dark visual range */
1840 		_intelligence_high, /* intelligence */
1841 		_speed_superfast5, /* speed */
1842 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1843 		_normal_door_retry_mask, /* door retry mask */
1844 		2*WORLD_ONE, {_damage_explosion, _alien_damage, 60, 30, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
1845 
1846 		7, /* being hit */
1847 		3, 9, /* dying hard (popping), dying soft (falling) */
1848 		6, 10, /* hard dead frames, soft dead frames */
1849 		1, 0, /* stationary shape, moving shape (no permutations) */
1850 		1, 1, /* teleport in shape, teleport out shape */
1851 
1852 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1853 
1854 		/* melee attack */
1855 		{
1856 			NONE, /* melee attack type */
1857 		},
1858 
1859 		/* ranged attack */
1860 		{
1861 			_projectile_hunter, /* ranged attack type */
1862 			5, /* repetitions */
1863 			3, /* error angle */
1864 			12*WORLD_ONE, /* range */
1865 			2, /* ranged attack shape */
1866 
1867 			0, WORLD_ONE/8, WORLD_ONE_HALF+WORLD_ONE_FOURTH, /* dx, dy, dz */
1868 		}
1869 	},
1870 
1871 	{ /* _monster_trooper_minor */
1872 		BUILD_COLLECTION(_collection_trooper, 0), /* shape collection */
1873 		110, 0, 0, /* vitality, immunities, weaknesses */
1874 		_monster_is_alien|_monster_minor|_monster_uses_sniper_ledges|_monster_is_berserker|_monster_can_die_in_flames, /* flags */
1875 
1876 		_class_trooper, /* class */
1877 		_class_pfhor, /* friends */
1878 		_class_human|_class_native|_class_defender, /* enemies */
1879 
1880 		_normal_frequency, /* sound pitch */
1881 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1882 		_snd_fighter_wail, /* dying flaming */
1883 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
1884 
1885 		NONE, /* carrying item type */
1886 
1887 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1888 		0, /* preferred hover height */
1889 		-4*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1890 		(3*FIXED_ONE)/4, /* external velocity scale */
1891 		_effect_trooper_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1892 
1893 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1894 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
1895 		_intelligence_high, /* intelligence */
1896 		_speed_superfast3, /* speed */
1897 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1898 		_normal_door_retry_mask, /* door retry mask */
1899 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
1900 
1901 		4, /* being hit */
1902 		UNONE, 3, /* dying hard (popping), dying soft (falling) */
1903 		0, 7, /* hard dead frames, soft dead frames */
1904 		1, 0, /* stationary shape, moving shape */
1905 		1, 1, /* teleport in shape, teleport out shape */
1906 
1907 		4*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1908 
1909 		/* melee attack */
1910 		{
1911 			_projectile_trooper_bullet, /* melee attack type */
1912 			3, /* repetitions */
1913 			30, /* error */
1914 			3*WORLD_ONE, /* range */
1915 
1916 			2, /* melee attack shape */
1917 
1918 			0, -WORLD_ONE/10, WORLD_ONE_HALF-WORLD_ONE_FOURTH/4, /* dx, dy, dz */
1919 		},
1920 
1921 		/* ranged attack */
1922 		{
1923 			_projectile_trooper_grenade, /* ranged attack type */
1924 			0, /* repetitions */
1925 			10, /* error angle */
1926 			10*WORLD_ONE, /* range */
1927 			9, /* ranged attack shape */
1928 
1929 			-WORLD_ONE/10, WORLD_ONE/8, WORLD_ONE_HALF-WORLD_ONE_FOURTH/8, /* dx, dy, dz */
1930 		}
1931 	},
1932 
1933 	{ /* _monster_trooper_major */
1934 		BUILD_COLLECTION(_collection_trooper, 1), /* shape collection */
1935 		200, 0, 0, /* vitality, immunities, weaknesses */
1936 		_monster_is_alien|_monster_major|_monster_uses_sniper_ledges|_monster_is_berserker|_monster_can_die_in_flames, /* flags */
1937 
1938 		_class_trooper, /* class */
1939 		_class_pfhor, /* friends */
1940 		_class_human|_class_native|_class_defender, /* enemies */
1941 
1942 		_lower_frequency, /* sound pitch */
1943 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
1944 		_snd_fighter_wail, /* dying flaming */
1945 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
1946 
1947 		NONE, /* carrying item type */
1948 
1949 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
1950 		0, /* preferred hover height */
1951 		-4*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
1952 		(3*FIXED_ONE)/4, /* external velocity scale */
1953 		_effect_trooper_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
1954 
1955 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
1956 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
1957 		_intelligence_high, /* intelligence */
1958 		_speed_superfast3, /* speed */
1959 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
1960 		_fast_door_retry_mask, /* door retry mask */
1961 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
1962 
1963 		4, /* being hit */
1964 		UNONE, 3, /* dying hard (popping), dying soft (falling) */
1965 		0, 7, /* hard dead frames, soft dead frames */
1966 		1, 0, /* stationary shape, moving shape */
1967 		1, 1, /* teleport in shape, teleport out shape */
1968 
1969 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
1970 
1971 		/* melee attack */
1972 		{
1973 			_projectile_trooper_bullet, /* melee attack type */
1974 			8, /* repetitions */
1975 			10, /* error */
1976 			3*WORLD_ONE, /* range */
1977 
1978 			2, /* melee attack shape */
1979 
1980 			-WORLD_ONE/10, WORLD_ONE/8, WORLD_ONE_HALF-WORLD_ONE_FOURTH/8, /* dx, dy, dz */
1981 		},
1982 
1983 		/* ranged attack */
1984 		{
1985 			_projectile_trooper_grenade, /* ranged attack type */
1986 			1, /* repetitions */
1987 			5, /* error angle */
1988 			12*WORLD_ONE, /* range */
1989 			9, /* ranged attack shape */
1990 
1991 			0, -WORLD_ONE/10, WORLD_ONE_HALF-WORLD_ONE_FOURTH/4, /* dx, dy, dz */
1992 		}
1993 	},
1994 
1995 	{ /* _monster_mother_of_all_cyborgs */
1996 		BUILD_COLLECTION(_collection_cyborg, 0), /* shape collection */
1997 		1500, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
1998 		_monster_is_enlarged|_monster_is_alien|_monster_cannot_be_dropped|_monster_uses_sniper_ledges, /* flags */
1999 
2000 		_class_cyborg, /* class */
2001 		0, /* friends */
2002 		_class_human|_class_native|_class_defender, /* enemies */
2003 
2004 		_lower_frequency, /* sound pitch */
2005 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2006 		NONE, /* flaming dying sound */
2007 		NONE, 0, /* random sound, random sound mask */
2008 
2009 		NONE, /* carrying item type */
2010 
2011 		WORLD_ONE/3, WORLD_ONE + WORLD_ONE/5, /* radius, height */
2012 		0, /* preferred hover height */
2013 		-WORLD_ONE, WORLD_ONE/4, /* minimum ledge delta, maximum ledge delta */
2014 		FIXED_ONE/4, /* external velocity scale */
2015 		_effect_cyborg_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2016 
2017 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2018 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
2019 		_intelligence_high, /* intelligence */
2020 		_speed_superfast4, /* speed */
2021 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2022 		_vidmaster_door_retry_mask, /* door retry mask */
2023 		3*WORLD_ONE, {_damage_explosion, _alien_damage, 140, 40, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
2024 
2025 		0, /* being hit */
2026 		3, UNONE, /* dying hard (popping), dying soft (falling) */
2027 		5, UNONE, /* hard dead frames, soft dead frames */
2028 		0, 1, /* stationary shape, moving shape */
2029 		0, 0, /* teleport in shape, teleport out shape */
2030 
2031 		2*TICKS_PER_SECOND, /* attack frequency */
2032 
2033 		/* melee attack */
2034 		{
2035 			_projectile_flamethrower_burst, /* ranged attack type */
2036 			15, /* repetitions */
2037 			0, /* error angle */
2038 			2*WORLD_ONE, /* range */
2039 			4, /* ranged attack shape */
2040 
2041 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH, /* dx, dy, dz */
2042 		},
2043 
2044 		/* ranged attack */
2045 		{
2046 			_projectile_major_cyborg_ball, /* ranged attack type */
2047 			0, /* repetitions */
2048 			0, /* error angle */
2049 			10*WORLD_ONE, /* range */
2050 			2, /* ranged attack shape */
2051 
2052 			WORLD_ONE/16, 0, WORLD_ONE_HALF+WORLD_ONE_FOURTH, /* dx, dy, dz */
2053 		}
2054 	},
2055 
2056 	{ /* _monster_mother_of_all_hunters */
2057 		BUILD_COLLECTION(_collection_hunter, 2), /* shape collection */
2058 		1500, FLAG(_damage_flame), FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
2059 		_monster_is_alien|_monster_is_enlarged|_monster_uses_sniper_ledges|_monster_cannot_be_dropped, /* flags */
2060 
2061 		_class_hunter, /* class */
2062 		_class_pfhor, /* friends */
2063 		_class_human|_class_native|_class_defender, /* enemies */
2064 
2065 		_lower_frequency, /* sound pitch */
2066 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2067 		NONE, /* flaming death sound */
2068 		NONE, 0, /* random sound, random sound mask */
2069 
2070 		NONE, /* carrying item type */
2071 
2072 		WORLD_ONE/4, WORLD_ONE+WORLD_ONE/6, /* radius, height */
2073 		0, /* preferred hover height */
2074 		-WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2075 		FIXED_ONE_HALF, /* external velocity scale */
2076 		_effect_hunter_spark, _effect_metallic_clang, NONE, /* impact effect, melee impact effect, contrail effect */
2077 
2078 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2079 		30*WORLD_ONE, 4*WORLD_ONE, /* visual range, dark visual range */
2080 		_intelligence_high, /* intelligence */
2081 		_speed_superfast1, /* speed */
2082 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2083 		_normal_door_retry_mask, /* door retry mask */
2084 		4*WORLD_ONE, {_damage_explosion, _alien_damage, 140, 50, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
2085 
2086 		7, /* being hit */
2087 		3, UNONE, /* dying hard (popping), dying soft (falling) */
2088 		6, 8, /* hard dead frames, soft dead frames */
2089 		1, 0, /* stationary shape, moving shape (no permutations) */
2090 		1, 1, /* teleport in shape, teleport out shape */
2091 
2092 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2093 
2094 		/* melee attack */
2095 		{
2096 			NONE, /* melee attack type */
2097 		},
2098 
2099 		/* ranged attack */
2100 		{
2101 			_projectile_hunter, /* ranged attack type */
2102 			5, /* repetitions */
2103 			3, /* error angle */
2104 			12*WORLD_ONE, /* range */
2105 			2, /* ranged attack shape */
2106 
2107 			0, WORLD_ONE/8, WORLD_ONE_HALF+WORLD_ONE_FOURTH, /* dx, dy, dz */
2108 		}
2109 	},
2110 
2111 	{ /* _monster_sewage_yeti */
2112 		BUILD_COLLECTION(_collection_yeti, 0), /* shape collection */
2113 		100, 0, 0, /* vitality, immunities, weaknesses */
2114 		_monster_is_not_afraid_of_sewage|_monster_is_alien|_monster_is_berserker, /* flags */
2115 
2116 		_class_yeti, /* class */
2117 		_class_yeti, /* friends */
2118 		_class_pfhor|_class_human|_class_defender, /* enemies */
2119 
2120 		_normal_frequency, /* sound pitch */
2121 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2122 		NONE, /* dying flaming */
2123 		NONE, 15, /* random sound, random sound mask */
2124 
2125 		NONE, /* carrying item type */
2126 
2127 		WORLD_ONE/4, WORLD_ONE-1, /* radius, height */
2128 		0, /* preferred hover height */
2129 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2130 		3*FIXED_ONE/4, /* external velocity scale */
2131 		_effect_sewage_yeti_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2132 
2133 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2134 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2135 		_intelligence_low, /* intelligence */
2136 		_speed_superfast5, /* speed */
2137 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2138 		_slow_door_retry_mask, /* door retry mask */
2139 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2140 
2141 		12, /* being hit */
2142 		UNONE, 3, /* dying hard (popping), dying soft (falling) */
2143 		UNONE, 4, /* hard dead frames, soft dead frames */
2144 		0, 1, /* stationary shape, moving shape */
2145 		UNONE, UNONE, /* teleport in shape, teleport out shape */
2146 
2147 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2148 
2149 		/* melee attack */
2150 		{
2151 			_projectile_yeti, /* melee attack type */
2152 			0, /* repetitions */
2153 			0, /* error */
2154 			WORLD_ONE, /* range */
2155 			13, /* melee attack shape */
2156 
2157 			0, 0, 4*WORLD_ONE/5, /* dx, dy, dz */
2158 		},
2159 
2160 		/* ranged attack */
2161 		{
2162 			_projectile_sewage_yeti, /* ranged attack type */
2163 			0, /* repetitions */
2164 			NUMBER_OF_ANGLES/150, /* error angle */
2165 			12*WORLD_ONE, /* range */
2166 			2, /* ranged attack shape */
2167 
2168 			WORLD_ONE/3, WORLD_ONE/6, 4*WORLD_ONE/5, /* dx, dy, dz */
2169 		}
2170 	},
2171 
2172 	{ /* _monster_water_yeti */
2173 		BUILD_COLLECTION(_collection_yeti, 1), /* shape collection */
2174 		250, 0, 0, /* vitality, immunities, weaknesses */
2175 		_monster_is_not_afraid_of_water|_monster_is_alien|_monster_is_berserker, /* flags */
2176 
2177 		_class_yeti, /* class */
2178 		_class_yeti, /* friends */
2179 		_class_pfhor|_class_human|_class_defender, /* enemies */
2180 
2181 		_normal_frequency, /* sound pitch */
2182 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2183 		NONE, /* dying flaming */
2184 		NONE, 15, /* random sound, random sound mask */
2185 
2186 		NONE, /* carrying item type */
2187 
2188 		WORLD_ONE/4, WORLD_ONE-1, /* radius, height */
2189 		0, /* preferred hover height */
2190 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2191 		3*FIXED_ONE/4, /* external velocity scale */
2192 		_effect_water_yeti_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2193 
2194 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2195 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2196 		_intelligence_low, /* intelligence */
2197 		_speed_superfast5, /* speed */
2198 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2199 		_slow_door_retry_mask, /* door retry mask */
2200 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2201 
2202 		12, /* being hit */
2203 		UNONE, 3, /* dying hard (popping), dying soft (falling) */
2204 		UNONE, 4, /* hard dead frames, soft dead frames */
2205 		0, 1, /* stationary shape, moving shape */
2206 		UNONE, UNONE, /* teleport in shape, teleport out shape */
2207 
2208 		TICKS_PER_SECOND/2, /* attack frequency (for both melee and ranged attacks) */
2209 
2210 		/* melee attack */
2211 		{
2212 			_projectile_yeti, /* melee attack type */
2213 			1, /* repetitions */
2214 			0, /* error */
2215 			WORLD_ONE, /* range */
2216 			13, /* melee attack shape */
2217 
2218 			0, WORLD_ONE/6, 4*WORLD_ONE/5, /* dx, dy, dz */
2219 		},
2220 
2221 		/* ranged attack */
2222 		{
2223 			NONE
2224 		}
2225 	},
2226 
2227 	{ /* _monster_lava_yeti */
2228 		BUILD_COLLECTION(_collection_yeti, 2), /* shape collection */
2229 		200, FLAG(_damage_flame)|FLAG(_damage_alien_projectile)|FLAG(_damage_fusion_bolt)|FLAG(_damage_lava), 0, /* vitality, immunities, weaknesses */
2230 		_monster_is_not_afraid_of_lava|_monster_is_alien|_monster_is_berserker, /* flags */
2231 
2232 		_class_yeti, /* class */
2233 		_class_yeti, /* friends */
2234 		_class_pfhor|_class_human|_class_defender, /* enemies */
2235 
2236 		_normal_frequency, /* sound pitch */
2237 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2238 		NONE, /* dying flaming */
2239 		NONE, 15, /* random sound, random sound mask */
2240 
2241 		NONE, /* carrying item type */
2242 
2243 		WORLD_ONE/4, WORLD_ONE-1, /* radius, height */
2244 		0, /* preferred hover height */
2245 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2246 		3*FIXED_ONE/4, /* external velocity scale */
2247 		_effect_lava_yeti_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2248 
2249 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2250 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2251 		_intelligence_low, /* intelligence */
2252 		_speed_blinding, /* speed */
2253 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2254 		_slow_door_retry_mask, /* door retry mask */
2255 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2256 
2257 		12, /* being hit */
2258 		UNONE, 3, /* dying hard (popping), dying soft (falling) */
2259 		UNONE, 4, /* hard dead frames, soft dead frames */
2260 		0, 1, /* stationary shape, moving shape */
2261 		UNONE, UNONE, /* teleport in shape, teleport out shape */
2262 
2263 		TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2264 
2265 		/* melee attack */
2266 		{
2267 			_projectile_yeti, /* melee attack type */
2268 			0, /* repetitions */
2269 			0, /* error */
2270 			WORLD_ONE, /* range */
2271 			13, /* melee attack shape */
2272 
2273 			0, 0, 4*WORLD_ONE/5, /* dx, dy, dz */
2274 		},
2275 
2276 		/* ranged attack */
2277 		{
2278 			_projectile_lava_yeti, /* ranged attack type */
2279 			1, /* repetitions */
2280 			NUMBER_OF_ANGLES/150, /* error angle */
2281 			12*WORLD_ONE, /* range */
2282 			2, /* ranged attack shape */
2283 
2284 			WORLD_ONE/3, WORLD_ONE/6, 4*WORLD_ONE/5, /* dx, dy, dz */
2285 		}
2286 	},
2287 
2288 	{ /* _monster_defender_minor */
2289 		BUILD_COLLECTION(_collection_defender, 0), /* shape collection */
2290 		160, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
2291 		_monster_flys|_monster_waits_with_clear_shot, /* flags */
2292 
2293 		_class_defender, /* class */
2294 		_class_defender, /* friends */
2295 		_class_pfhor|_class_client|_class_native, /* enemies */
2296 
2297 		_normal_frequency, /* sound pitch */
2298 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2299 		NONE, /* flaming dying sound */
2300 		NONE, 0, /* random sound, random sound mask */
2301 
2302 		NONE, /* carrying item type */
2303 
2304 		WORLD_ONE/5, WORLD_ONE, /* radius, height */
2305 		WORLD_ONE/4, /* preferred hover height */
2306 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
2307 		FIXED_ONE, /* external velocity scale */
2308 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2309 
2310 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2311 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
2312 		_intelligence_high, /* intelligence */
2313 		_speed_blinding, /* speed */
2314 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2315 		_vidmaster_door_retry_mask, /* door retry mask */
2316 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2317 
2318 		3, /* being hit */
2319 		UNONE, 6, /* dying hard (popping), dying soft (falling) */
2320 		UNONE, UNONE, /* hard dead frames, soft dead frames */
2321 		0, 0, /* stationary shape, moving shape */
2322 		8, 8, /* teleport in shape, teleport out shape */
2323 
2324 		3*TICKS_PER_SECOND, /* attack frequency */
2325 
2326 		/* melee attack */
2327 		{
2328 			NONE, /* melee attack type */
2329 		},
2330 
2331 		/* ranged attack */
2332 		{
2333 			_projectile_minor_defender, /* ranged attack type */
2334 			2, /* repetitions */
2335 			NUMBER_OF_ANGLES/200, /* error angle */
2336 			20*WORLD_ONE, /* range */
2337 			2, /* ranged attack shape */
2338 
2339 			WORLD_ONE/8, -WORLD_ONE/4+WORLD_ONE/10, WORLD_ONE_HALF, /* dx, dy, dz */
2340 		}
2341 	},
2342 
2343 	{ /* _monster_defender_major */
2344 		BUILD_COLLECTION(_collection_defender, 1), /* shape collection */
2345 		240, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
2346 		_monster_flys|_monster_waits_with_clear_shot, /* flags */
2347 
2348 		_class_defender, /* class */
2349 		_class_defender, /* friends */
2350 		_class_pfhor|_class_client|_class_native, /* enemies */
2351 
2352 		_higher_frequency, /* sound pitch */
2353 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2354 		NONE, /* flaming dying sound */
2355 		NONE, 0, /* random sound, random sound mask */
2356 
2357 		NONE, /* carrying item type */
2358 
2359 		WORLD_ONE/5, WORLD_ONE, /* radius, height */
2360 		WORLD_ONE/4, /* preferred hover height */
2361 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
2362 		FIXED_ONE, /* external velocity scale */
2363 		NONE, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2364 
2365 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2366 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
2367 		_intelligence_high, /* intelligence */
2368 		_speed_blinding, /* speed */
2369 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2370 		_vidmaster_door_retry_mask, /* door retry mask */
2371 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2372 
2373 		3, /* being hit */
2374 		UNONE, 6, /* dying hard (popping), dying soft (falling) */
2375 		UNONE, UNONE, /* hard dead frames, soft dead frames */
2376 		0, 0, /* stationary shape, moving shape */
2377 		8, 8, /* teleport in shape, teleport out shape */
2378 
2379 		2*TICKS_PER_SECOND, /* attack frequency */
2380 
2381 		/* melee attack */
2382 		{
2383 			NONE, /* melee attack type */
2384 		},
2385 
2386 		/* ranged attack */
2387 		{
2388 			_projectile_major_defender, /* ranged attack type */
2389 			4, /* repetitions */
2390 			NUMBER_OF_ANGLES/100, /* error angle */
2391 			20*WORLD_ONE, /* range */
2392 			2, /* ranged attack shape */
2393 
2394 			WORLD_ONE/8, -WORLD_ONE/4+WORLD_ONE/10, WORLD_ONE_HALF, /* dx, dy, dz */
2395 		}
2396 	},
2397 
2398 	{ /* _monster_juggernaut_minor */
2399 		BUILD_COLLECTION(_collection_juggernaut, 0), /* shape collection */
2400 		2500, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
2401 		_monster_minor|_monster_is_alien|_monster_cant_fire_backwards|_monster_has_nuclear_hard_death|
2402 			_monster_has_delayed_hard_death|_monster_cannot_be_dropped|_monster_fires_symmetrically|
2403 			_monster_chooses_weapons_randomly|_monster_flys, /* flags */
2404 
2405 		_class_juggernaut, /* class */
2406 		_class_juggernaut, /* friends */
2407 		_class_human|_class_client|_class_native, /* enemies */
2408 
2409 		_normal_frequency, /* sound pitch */
2410 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2411 		NONE, /* flaming dying sound */
2412 		NONE, 0, /* random sound, random sound mask */
2413 
2414 		NONE, /* carrying item type */
2415 
2416 		WORLD_ONE, 2*WORLD_ONE, /* radius, height */
2417 		WORLD_ONE, /* preferred hover height */
2418 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
2419 		0, /* external velocity scale */
2420 		_effect_juggernaut_spark, _effect_metallic_clang, NONE, /* impact effect, melee impact effect, contrail effect */
2421 
2422 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2423 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
2424 		_intelligence_high, /* intelligence */
2425 		_speed_blinding, /* speed */
2426 		NORMAL_MONSTER_GRAVITY/4, NORMAL_MONSTER_TERMINAL_VELOCITY/4, /* gravity, terminal velocity */
2427 		NONE, /* door retry mask */
2428 		5*WORLD_ONE, {_damage_explosion, _alien_damage, 350, 50, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
2429 
2430 		UNONE, /* being hit */
2431 		6, 5, /* dying hard (popping), dying soft (falling) */
2432 		8, 8, /* hard dead frames, soft dead frames */
2433 		0, 0, /* stationary shape, moving shape */
2434 		7, 7, /* teleport in shape, teleport out shape */
2435 
2436 		2*TICKS_PER_SECOND, /* attack frequency */
2437 
2438 		/* melee attack */
2439 		{
2440 			_projectile_alien_weapon, /* melee attack type */
2441 			10, /* repetitions */
2442 			5, /* error */
2443 			15*WORLD_ONE, /* range */
2444 			1, /* melee attack shape */
2445 
2446 			WORLD_ONE/4, WORLD_ONE_HALF+WORLD_ONE/8, WORLD_ONE-WORLD_ONE/4-WORLD_ONE/16, /* dx, dy, dz */
2447 		},
2448 
2449 		/* ranged attack */
2450 		{
2451 			_projectile_juggernaut_missile, /* ranged attack type */
2452 			0, /* repetitions */
2453 			40, /* error angle */
2454 			25*WORLD_ONE, /* range */
2455 			2, /* ranged attack shape */
2456 
2457 			0, WORLD_ONE_HALF, WORLD_ONE+WORLD_ONE_HALF, /* dx, dy, dz */
2458 		}
2459 	},
2460 
2461 	{ /* _monster_juggernaut_major */
2462 		BUILD_COLLECTION(_collection_juggernaut, 1), /* shape collection */
2463 		5000, 0, FLAG(_damage_fusion_bolt), /* vitality, immunities, weaknesses */
2464 		_monster_major|_monster_is_alien|_monster_cant_fire_backwards|_monster_has_nuclear_hard_death|
2465 			_monster_has_delayed_hard_death|_monster_cannot_be_dropped|_monster_fires_symmetrically|
2466 			_monster_chooses_weapons_randomly|_monster_flys, /* flags */
2467 
2468 		_class_juggernaut, /* class */
2469 		_class_juggernaut, /* friends */
2470 		_class_human|_class_client|_class_native, /* enemies */
2471 
2472 		_normal_frequency, /* sound pitch */
2473 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2474 		NONE, /* flaming dying sound */
2475 		NONE, 0, /* random sound, random sound mask */
2476 
2477 		NONE, /* carrying item type */
2478 
2479 		WORLD_ONE, 2*WORLD_ONE, /* radius, height */
2480 		WORLD_ONE, /* preferred hover height */
2481 		INT16_MIN, INT16_MAX, /* minimum ledge delta, maximum ledge delta */
2482 		0, /* external velocity scale */
2483 		_effect_juggernaut_spark, _effect_metallic_clang, NONE, /* impact effect, melee impact effect, contrail effect */
2484 
2485 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2486 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
2487 		_intelligence_high, /* intelligence */
2488 		_speed_blinding, /* speed */
2489 		NORMAL_MONSTER_GRAVITY/4, NORMAL_MONSTER_TERMINAL_VELOCITY/4, /* gravity, terminal velocity */
2490 		NONE, /* door retry mask */
2491 		5*WORLD_ONE, {_damage_explosion, _alien_damage, 350, 50, FIXED_ONE}, /* shrapnel radius, shrapnel damage */
2492 
2493 		UNONE, /* being hit */
2494 		6, 5, /* dying hard (popping), dying soft (falling) */
2495 		8, 8, /* hard dead frames, soft dead frames */
2496 		0, 0, /* stationary shape, moving shape */
2497 		7, 7, /* teleport in shape, teleport out shape */
2498 
2499 		2*TICKS_PER_SECOND, /* attack frequency */
2500 
2501 		/* melee attack */
2502 		{
2503 			_projectile_alien_weapon, /* melee attack type */
2504 			20, /* repetitions */
2505 			5, /* error */
2506 			15*WORLD_ONE, /* range */
2507 			1, /* melee attack shape */
2508 
2509 			WORLD_ONE/4, WORLD_ONE_HALF+WORLD_ONE/8, WORLD_ONE-WORLD_ONE/4-WORLD_ONE/16, /* dx, dy, dz */
2510 		},
2511 
2512 		/* ranged attack */
2513 		{
2514 			_projectile_juggernaut_missile, /* ranged attack type */
2515 			1, /* repetitions */
2516 			40, /* error angle */
2517 			25*WORLD_ONE, /* range */
2518 			2, /* ranged attack shape */
2519 
2520 			0, WORLD_ONE_HALF, WORLD_ONE+WORLD_ONE_HALF, /* dx, dy, dz */
2521 		}
2522 	},
2523 
2524 	{ /* _monster_tiny_fighter */
2525 		BUILD_COLLECTION(_collection_fighter, 1), /* shape collection */
2526 		40, 0, 0, /* vitality, immunities, weaknesses */
2527 		_monster_is_tiny|_monster_is_berserker|_monster_can_die_in_flames, /* flags */
2528 
2529 		_class_fighter, /* class */
2530 		_class_pfhor, /* friends */
2531 		(_class_human&~_class_player)|_class_native|_class_defender, /* enemies */
2532 
2533 		FIXED_ONE+FIXED_ONE_HALF, /* sound pitch */
2534 		_snd_fighter_activate, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2535 		_snd_fighter_wail, /* dying flaming */
2536 		_snd_fighter_chatter, 15, /* random sound, random sound mask */
2537 
2538 		NONE, /* carrying item type */
2539 
2540 		WORLD_ONE/12, (4*WORLD_ONE)/12, /* radius, height */
2541 		0, /* preferred hover height */
2542 		-8*WORLD_ONE, WORLD_ONE/6, /* minimum ledge delta, maximum ledge delta */
2543 		FIXED_ONE/2, /* external velocity scale */
2544 		_effect_fighter_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2545 
2546 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2547 		30*WORLD_ONE, 3*WORLD_ONE, /* visual range, dark visual range */
2548 		_intelligence_high, /* intelligence */
2549 		_speed_fast, /* speed */
2550 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2551 		_normal_door_retry_mask, /* door retry mask */
2552 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2553 
2554 		4, /* being hit */
2555 		1, 3, /* dying hard (popping), dying soft (falling) */
2556 		6, 5, /* hard dead frames, soft dead frames */
2557 		7, 0, /* stationary shape, moving shape */
2558 		12, 12, /* teleport in shape, teleport out shape */
2559 
2560 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2561 
2562 		/* melee attack */
2563 		{
2564 			_projectile_staff, /* melee attack type */
2565 			0, /* repetitions */
2566 			0, /* error */
2567 			WORLD_ONE, /* range */
2568 
2569 			2, /* melee attack shape */
2570 
2571 			0, 0, WORLD_ONE/5, /* dx, dy, dz */
2572 		},
2573 
2574 		/* ranged attack */
2575 		{
2576 			NONE, /* ranged attack type */
2577 		}
2578 	},
2579 
2580 	{ /* _monster_tiny_bob */
2581 		BUILD_COLLECTION(_collection_civilian, 0), /* shape collection */
2582 		10, 0, 0, /* vitality, immunities, weaknesses */
2583 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges|_monster_is_tiny, /* flags */
2584 
2585 		_class_human_civilian, /* class */
2586 		_class_human, /* friends */
2587 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
2588 
2589 		FIXED_ONE+FIXED_ONE_HALF, /* sound pitch */
2590 		_snd_human_activation, _snd_kill_the_player, _snd_human_clear, _snd_human_trash_talk, _snd_human_apology, _snd_human_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2591 		_snd_human_wail, /* dying flaming */
2592 		_snd_human_chatter, 0x1f, /* random sound, random sound mask */
2593 
2594 		NONE, /* carrying item type */
2595 
2596 		WORLD_ONE/12, (4*WORLD_ONE)/12, /* radius, height */
2597 		0, /* preferred hover height */
2598 		-WORLD_ONE, WORLD_ONE/6, /* minimum ledge delta, maximum ledge delta */
2599 		FIXED_ONE/2, /* external velocity scale */
2600 		_effect_civilian_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2601 
2602 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2603 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2604 		_intelligence_high, /* intelligence */
2605 		_speed_superfast2, /* speed */
2606 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2607 		_vidmaster_door_retry_mask, /* door retry mask */
2608 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2609 
2610 		10, /* being hit */
2611 		2, 1, /* dying hard (popping), dying soft (falling) */
2612 		4, 3, /* hard dead frames, soft dead frames */
2613 		6, 0, /* stationary shape, moving shape */
2614 		9, 8, /* teleport in shape, teleport out shape */
2615 
2616 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2617 
2618 		/* melee attack */
2619 		{
2620 			NONE, /* melee attack type */
2621 		},
2622 
2623 		/* ranged attack */
2624 		{
2625 			_projectile_pistol_bullet, /* ranged attack type */
2626 			1, /* repetitions */
2627 			NUMBER_OF_ANGLES/150, /* error angle */
2628 			10*WORLD_ONE, /* range */
2629 			5, /* ranged attack shape */
2630 
2631 			0, 0, WORLD_ONE/5, /* dx, dy, dz */
2632 		}
2633 	},
2634 
2635 	{ /* _monster_tiny_yeti */
2636 		BUILD_COLLECTION(_collection_yeti, 2), /* shape collection */
2637 		100, FLAG(_damage_flame)|FLAG(_damage_alien_projectile)|FLAG(_damage_fusion_bolt)|FLAG(_damage_lava), 0, /* vitality, immunities, weaknesses */
2638 		_monster_is_not_afraid_of_lava|_monster_is_berserker|_monster_is_tiny, /* flags */
2639 
2640 		_class_yeti, /* class */
2641 		_class_yeti, /* friends */
2642 		(_class_human&~_class_player)|_class_pfhor, /* enemies */
2643 
2644 		FIXED_ONE+FIXED_ONE_HALF, /* sound pitch */
2645 		NONE, NONE, NONE, NONE, NONE, NONE, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2646 		NONE, /* dying flaming */
2647 		NONE, 15, /* random sound, random sound mask */
2648 
2649 		NONE, /* carrying item type */
2650 
2651 		WORLD_ONE/12, (4*WORLD_ONE)/12, /* radius, height */
2652 		0, /* preferred hover height */
2653 		-WORLD_ONE, WORLD_ONE/6, /* minimum ledge delta, maximum ledge delta */
2654 		FIXED_ONE/2, /* external velocity scale */
2655 		_effect_lava_yeti_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2656 
2657 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2658 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2659 		_intelligence_low, /* intelligence */
2660 		_speed_superfast2, /* speed */
2661 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2662 		_slow_door_retry_mask, /* door retry mask */
2663 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2664 
2665 		12, /* being hit */
2666 		UNONE, 3, /* dying hard (popping), dying soft (falling) */
2667 		UNONE, 4, /* hard dead frames, soft dead frames */
2668 		0, 1, /* stationary shape, moving shape */
2669 		UNONE, UNONE, /* teleport in shape, teleport out shape */
2670 
2671 		TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2672 
2673 		/* melee attack */
2674 		{
2675 			_projectile_yeti, /* melee attack type */
2676 			0, /* repetitions */
2677 			0, /* error */
2678 			WORLD_ONE, /* range */
2679 			13, /* melee attack shape */
2680 
2681 			0, 0, WORLD_ONE/5, /* dx, dy, dz */
2682 		},
2683 
2684 		/* ranged attack */
2685 		{
2686 			_projectile_lava_yeti, /* ranged attack type */
2687 			1, /* repetitions */
2688 			NUMBER_OF_ANGLES/150, /* error angle */
2689 			12*WORLD_ONE, /* range */
2690 			2, /* ranged attack shape */
2691 
2692 			0, 0, WORLD_ONE/5, /* dx, dy, dz */
2693 		}
2694 	},
2695 
2696 	// LP addition: the VacBobs:
2697 	// they drop either fusion batteries or fusion guns as appropriate,
2698 	// they shoot "minor" fusion bolts (those that don't flip switches)
2699 
2700 	{ /* _civilian_fusion_crew "bob" */
2701 		BUILD_COLLECTION(_collection_civilian_fusion, 0), /* shape collection */
2702 		20, 0, 0, /* vitality, immunities, weaknesses */
2703 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges, /* flags */
2704 
2705 		_class_human_civilian, /* class */
2706 		_class_human, /* friends */
2707 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
2708 
2709 		_normal_frequency, /* sound pitch */
2710 		_snd_civilian_fusion_activation, _snd_civilian_fusion_kill_the_player, _snd_civilian_fusion_clear, _snd_civilian_fusion_trash_talk, _snd_civilian_fusion_apology, _snd_civilian_fusion_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2711 		_snd_civilian_fusion_wail, /* dying flaming */
2712 		_snd_civilian_fusion_chatter, 0x1f, /* random sound, random sound mask */
2713 
2714 		_i_plasma_magazine, /* carrying item type */
2715 
2716 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
2717 		0, /* preferred hover height */
2718 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2719 		FIXED_ONE, /* external velocity scale */
2720 		_effect_civilian_fusion_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2721 
2722 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2723 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2724 		_intelligence_high, /* intelligence */
2725 		_speed_blinding, /* speed */
2726 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2727 		_vidmaster_door_retry_mask, /* door retry mask */
2728 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2729 
2730 		10, /* being hit */
2731 		2, 1, /* dying hard (popping), dying soft (falling) */
2732 		4, 3, /* hard dead frames, soft dead frames */
2733 		6, 0, /* stationary shape, moving shape */
2734 		9, 8, /* teleport in shape, teleport out shape */
2735 
2736 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2737 
2738 		/* melee attack */
2739 		{
2740 			NONE, /* melee attack type */
2741 		},
2742 
2743 		/* ranged attack */
2744 		{
2745 			_projectile_fusion_bolt_minor, /* ranged attack type */
2746 			1, /* repetitions */
2747 			NUMBER_OF_ANGLES/150, /* error angle */
2748 			10*WORLD_ONE, /* range */
2749 			5, /* ranged attack shape */
2750 
2751 			0, 0, WORLD_ONE*3/4, /* dx, dy, dz */
2752 		}
2753 	},
2754 
2755 	{ /* _civilian_fusion_science "fred" */
2756 		BUILD_COLLECTION(_collection_civilian_fusion, 1), /* shape collection */
2757 		25, 0, 0, /* vitality, immunities, weaknesses */
2758 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges, /* flags */
2759 
2760 		_class_human_civilian, /* class */
2761 		_class_human|_class_assimilated_civilian, /* friends */
2762 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
2763 
2764 		_normal_frequency, /* sound pitch */
2765 		_snd_civilian_fusion_activation, _snd_civilian_fusion_kill_the_player, _snd_civilian_fusion_clear, _snd_civilian_fusion_trash_talk, _snd_civilian_fusion_apology, _snd_civilian_fusion_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2766 		_snd_civilian_fusion_wail, /* dying flaming */
2767 		_snd_civilian_fusion_chatter, 0x1f, /* random sound, random sound mask */
2768 
2769 		_i_plasma_magazine, /* carrying item type */
2770 
2771 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
2772 		0, /* preferred hover height */
2773 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2774 		FIXED_ONE, /* external velocity scale */
2775 		_effect_civilian_fusion_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2776 
2777 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2778 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2779 		_intelligence_high, /* intelligence */
2780 		_speed_blinding, /* speed */
2781 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2782 		_vidmaster_door_retry_mask, /* door retry mask */
2783 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2784 
2785 		10, /* being hit */
2786 		2, 1, /* dying hard (popping), dying soft (falling) */
2787 		4, 3, /* hard dead frames, soft dead frames */
2788 		6, 0, /* stationary shape, moving shape */
2789 		9, 8, /* teleport in shape, teleport out shape */
2790 
2791 		3*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2792 
2793 		/* melee attack */
2794 		{
2795 			NONE, /* melee attack type */
2796 		},
2797 
2798 		/* ranged attack */
2799 		{
2800 			_projectile_fusion_bolt_minor, /* ranged attack type */
2801 			2, /* repetitions */
2802 			NUMBER_OF_ANGLES/150, /* error angle */
2803 			13*WORLD_ONE, /* range */
2804 			5, /* ranged attack shape */
2805 
2806 			0, 0, WORLD_ONE*3/4, /* dx, dy, dz */
2807 		}
2808 	},
2809 
2810 	{ /* _civilian_fusion_security "steve" */
2811 		BUILD_COLLECTION(_collection_civilian_fusion, 2), /* shape collection */
2812 		30, 0, 0, /* vitality, immunities, weaknesses */
2813 		_monster_attacks_immediately|_monster_is_omniscent|_monster_cannot_be_dropped|_monster_waits_with_clear_shot|_monster_can_die_in_flames|_monster_uses_sniper_ledges, /* flags */
2814 
2815 		_class_human_civilian, /* class */
2816 		_class_human|_class_assimilated_civilian, /* friends */
2817 		(_class_hostile_alien^_class_assimilated_civilian)|_class_native, /* enemies */
2818 
2819 		_normal_frequency, /* sound pitch */
2820 		_snd_civilian_fusion_activation, _snd_civilian_fusion_kill_the_player, _snd_civilian_fusion_clear, _snd_civilian_fusion_trash_talk, _snd_civilian_fusion_apology, _snd_civilian_fusion_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2821 		_snd_civilian_fusion_wail, /* dying flaming */
2822 		_snd_civilian_fusion_chatter, 0x1f, /* random sound, random sound mask */
2823 
2824 		_i_plasma_pistol, /* carrying item type */
2825 
2826 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
2827 		0, /* preferred hover height */
2828 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2829 		FIXED_ONE, /* external velocity scale */
2830 		_effect_civilian_fusion_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2831 
2832 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2833 		30*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2834 		_intelligence_high, /* intelligence */
2835 		_speed_blinding, /* speed */
2836 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2837 		_vidmaster_door_retry_mask, /* door retry mask */
2838 		NONE, {NONE, 0, 0, 0}, /* shrapnel radius, shrapnel damage */
2839 
2840 		10, /* being hit */
2841 		2, 1, /* dying hard (popping), dying soft (falling) */
2842 		4, 3, /* hard dead frames, soft dead frames */
2843 		6, 0, /* stationary shape, moving shape */
2844 		9, 8, /* teleport in shape, teleport out shape */
2845 
2846 		TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2847 
2848 		/* melee attack */
2849 		{
2850 			NONE, /* melee attack type */
2851 		},
2852 
2853 		/* ranged attack */
2854 		{
2855 			_projectile_fusion_bolt_minor, /* ranged attack type */
2856 			5, /* repetitions */
2857 			NUMBER_OF_ANGLES/150, /* error angle */
2858 			17*WORLD_ONE, /* range */
2859 			5, /* ranged attack shape */
2860 
2861 			0, 0, WORLD_ONE*3/4, /* dx, dy, dz */
2862 		}
2863 	},
2864 
2865 	{ /* _civilian_fusion_assimilated "evil bob" */
2866 		BUILD_COLLECTION(_collection_civilian_fusion, 3), /* shape collection */
2867 		30, 0, 0, /* vitality, immunities, weaknesses */
2868 		_monster_is_alien|_monster_is_kamakazi|_monster_can_die_in_flames, /* flags */
2869 
2870 		_class_assimilated_civilian,
2871 		_class_pfhor, /* friends */
2872 		_class_player|_class_defender, /* enemies */
2873 
2874 		_normal_frequency, /* sound pitch */
2875 		NONE, NONE, NONE, NONE, NONE, _snd_civilian_fusion_stop_shooting_me_you_bastard, /* sounds: activation, friendly activation, clear, kill, apology, friendly-fire */
2876 		_snd_civilian_fusion_wail, /* dying flaming */
2877 		_snd_assimilated_civilian_fusion_chatter, 0xf, /* random sound, random sound mask */
2878 
2879 		NONE, /* carrying item type */
2880 
2881 		WORLD_ONE/5, (4*WORLD_ONE)/5, /* radius, height */
2882 		0, /* preferred hover height */
2883 		-2*WORLD_ONE, WORLD_ONE/3, /* minimum ledge delta, maximum ledge delta */
2884 		FIXED_ONE, /* external velocity scale */
2885 		_effect_assimilated_civilian_fusion_blood_splash, NONE, NONE, /* impact effect, melee impact effect, contrail effect */
2886 
2887 		QUARTER_CIRCLE, QUARTER_CIRCLE/3, /* half visual arc, half vertical visual arc */
2888 		15*WORLD_ONE, WORLD_ONE, /* visual range, dark visual range */
2889 		_intelligence_high, /* intelligence */
2890 		_speed_blinding, /* speed */
2891 		NORMAL_MONSTER_GRAVITY, NORMAL_MONSTER_TERMINAL_VELOCITY, /* gravity, terminal velocity */
2892 		_vidmaster_door_retry_mask, /* door retry mask */
2893 		WORLD_ONE, {_damage_explosion, _alien_damage, 80, 40, FIXED_ONE}, /* shrapnel radius, shrapnel damage  */
2894 
2895 		10, /* being hit */
2896 		11, UNONE, /* dying hard (popping), dying soft (falling) */
2897 		4, 0, /* hard dead frames, soft dead frames */
2898 		6, 0, /* stationary shape, moving shape */
2899 		8, UNONE, /* teleport in shape, teleport out shape */
2900 
2901 		2*TICKS_PER_SECOND, /* attack frequency (for both melee and ranged attacks) */
2902 
2903 		/* melee attack */
2904 		{
2905 			NONE, /* melee attack type */
2906 		},
2907 
2908 		/* ranged attack */
2909 		{
2910 			NONE, /* ranged attack type */
2911 		}
2912 	},
2913 };
2914 
2915 // Added for the convenience of the 1-2-3 Converter
2916 uint8 *unpack_monster_definition(uint8 *Stream, monster_definition *Objects, size_t Count);
2917 uint8 *pack_monster_definition(uint8 *Stream, monster_definition *Objects, size_t Count);
2918 
2919 #endif
2920 
2921 #endif
2922 
2923