summaryrefslogtreecommitdiff
path: root/src/game/tremulous.h
diff options
context:
space:
mode:
authorMikko Tiusanen <ams@daug.net>2014-05-04 01:18:52 +0300
committerMikko Tiusanen <ams@daug.net>2014-05-04 01:18:52 +0300
commit01beb9919b95479d8be040bec74abc5cc67a5e43 (patch)
tree65f0b79e793848491832756a4c3a32b23668fab3 /src/game/tremulous.h
parent191d731da136b7ee959a17e63111c9146219a768 (diff)
Initial import.
Diffstat (limited to 'src/game/tremulous.h')
-rw-r--r--src/game/tremulous.h1107
1 files changed, 1107 insertions, 0 deletions
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
new file mode 100644
index 0000000..73cf8cc
--- /dev/null
+++ b/src/game/tremulous.h
@@ -0,0 +1,1107 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+Copyright (C) 2000-2009 Darklegion Development
+
+This file is part of Tremulous.
+
+Tremulous is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Tremulous is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Tremulous; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+/*
+===========================================================================
+TREMULOUS EDGE MOD SRC FILE
+===========================================================================
+*/
+
+/*
+ * GENERAL
+ */
+
+#define MIN_FALL_DISTANCE 35.0f //the fall distance at which fall damage kicks in
+#define MAX_FALL_DISTANCE 120.0f //the fall distance at which maximum damage is dealt
+#define AVG_FALL_DISTANCE ((MIN_FALL_DISTANCE+MAX_FALL_DISTANCE)/2.0f)
+#define DEFAULT_FREEKILL_PERIOD "120" //seconds
+#define FREEKILL_ALIEN ALIEN_CREDITS_PER_KILL
+#define FREEKILL_HUMAN LEVEL0_VALUE
+#define DEFAULT_ALIEN_BUILDPOINTS "150"
+#define DEFAULT_ALIEN_QUEUE_TIME "12000"
+#define DEFAULT_ALIEN_STAGE2_THRESH "12000"
+#define DEFAULT_ALIEN_STAGE3_THRESH "24000"
+#define DEFAULT_ALIEN_MAX_STAGE "2"
+#define DEFAULT_HUMAN_BUILDPOINTS "150"
+#define DEFAULT_HUMAN_QUEUE_TIME "8000"
+#define DEFAULT_HUMAN_STAGE2_THRESH "6000"
+#define DEFAULT_HUMAN_STAGE3_THRESH "12000"
+#define DEFAULT_HUMAN_MAX_STAGE "2"
+#define DAMAGE_FRACTION_FOR_KILL 0.5f //how much damage players (versus structures) need to
+#define MAXIMUM_BUILD_TIME 30000 // used for pie timer
+
+/*
+ * ALIEN
+ */
+
+/*
+ * ALIEN classes
+ * _SPEED - fraction of Q3A run speed the class can move
+ * _REGEN - health per second regained
+ * ALIEN_HLTH_MODIFIER - overall health modifier for coarse tuning
+ * ALIENSENSE_RANGE - the distance alien sense is useful for
+ */
+#define ALIEN_HLTH_MODIFIER 1.0f
+#define AHM(h) ((int)((float)h*ALIEN_HLTH_MODIFIER))
+#define ALIEN_VALUE_MODIFIER 1.0f
+#define AVM(h) ((int)((float)h*ALIEN_VALUE_MODIFIER))
+
+#define ALIENSENSE_RANGE 1000.0f
+#define REGEN_BOOST_RANGE 200.0f
+#define ALIEN_POISON_TIME 10000
+#define ALIEN_POISON_DMG 5
+#define ALIEN_POISON_DIVIDER (1.0f/1.32f) //about 1.0/(time`th root of damage)
+#define ALIEN_INFECTION_TIME 7000
+#define ALIEN_INFECTION_DMG 2
+#define ALIEN_SPAWN_REPEAT_TIME 11000
+#define ALIEN_REGEN_DAMAGE_TIME 2000 //msec since damage that regen starts again
+#define ALIEN_REGEN_NOCREEP_MOD (1.0f/3.0f) //regen off creep
+#define ALIEN_MAX_FRAGS 18
+#define ALIEN_MAX_CREDITS (ALIEN_MAX_FRAGS*ALIEN_CREDITS_PER_KILL)
+#define ALIEN_CREDITS_PER_KILL 400
+#define ALIEN_TK_SUICIDE_PENALTY 150
+
+/*
+ * ALIEN weapons
+ * _REPEAT - time in msec until the weapon can be used again
+ * _DMG - amount of damage the weapon does
+ * ALIEN_WDMG_MODIFIER - overall damage modifier for coarse tuning
+ */
+#define ALIEN_WDMG_MODIFIER 1.0f
+#define ADM(d) ((int)((float)d*ALIEN_WDMG_MODIFIER))
+
+//Granger
+#define ABUILDER_SPEED 1.0f
+#define ABUILDER_VALUE AVM(240)
+#define ABUILDER_HEALTH AHM(50)
+#define ABUILDER_REGEN (0.04f * ABUILDER_HEALTH)
+#define ABUILDER_COST 0
+#define ABUILDER_UPG_SPEED 1.2f
+#define ABUILDER_UPG_VALUE AVM(300)
+#define ABUILDER_UPG_HEALTH AHM(75)
+#define ABUILDER_UPG_REGEN (0.04f * ABUILDER_UPG_HEALTH)
+#define ABUILDER_UPG_COST 0
+
+#define ABUILDER_BUILD_REPEAT 1000
+#define ABUILDER_CLAW_DMG ADM(20)
+#define ABUILDER_CLAW_RANGE 64.0f
+#define ABUILDER_CLAW_WIDTH 4.0f
+#define ABUILDER_CLAW_REPEAT 1000
+#define ABUILDER_CLAW_K_SCALE 1.0f
+#define ABUILDER_BLOB_DMG ADM(4)
+#define ABUILDER_BLOB_REPEAT 1000
+#define ABUILDER_BLOB_SPEED 800.0f
+#define ABUILDER_BLOB_SPEED_MOD 0.5f
+#define ABUILDER_BLOB_TIME 2000
+
+//Dretch
+#define LEVEL0_SPEED 1.4f
+#define LEVEL0_VALUE AVM(180)
+#define LEVEL0_HEALTH AHM(30)
+#define LEVEL0_REGEN (0.05f * LEVEL0_HEALTH)
+#define LEVEL0_COST 0
+#define LEVEL0_UPG_SPEED 1.5f
+#define LEVEL0_UPG_VALUE AVM(200)
+#define LEVEL0_UPG_HEALTH AHM(40)
+#define LEVEL0_UPG_REGEN (0.06f * LEVEL0_UPG_HEALTH)
+#define LEVEL0_UPG_COST 1
+#define LEVEL0_UPG_BITE_RANGE 70.0f
+#define LEVEL0_UPG_BITE_WIDTH 8.0f
+
+#define LEVEL0_BITE_DMG ADM(40)
+#define LEVEL0_BITE_DMG_UPG ADM(45)
+#define LEVEL0_BITE_RANGE 64.0f
+#define LEVEL0_BITE_WIDTH 6.0f
+#define LEVEL0_BITE_REPEAT 500
+#define LEVEL0_BITE_K_SCALE 1.0f
+#define LEVEL0_DRILL_RANGE 48.0f
+#define LEVEL0_DRILL_WIDTH 14.0f
+#define LEVEL0_DRILL_TIME 600 // msec for full Dretch pounce
+#define LEVEL0_DRILL_TIME_MIN 200 // msec before which pounce cancels
+#define LEVEL0_DRILL_REPEAT 320 // msec before a new pounce starts
+#define LEVEL0_DRILL_SPEED_MOD 0.75f // walking speed modifier for pounce charging
+#define LEVEL0_DRILL_JUMP_MAG 500 // Dretch pounce jump power
+
+//Basilik
+#define LEVEL1_SPEED 1.25f
+#define LEVEL1_VALUE AVM(270)
+#define LEVEL1_HEALTH AHM(60)
+#define LEVEL1_REGEN (0.03f * LEVEL1_HEALTH)
+#define LEVEL1_COST 0
+#define LEVEL1_UPG_SPEED 1.25f
+#define LEVEL1_UPG_VALUE AVM(330)
+#define LEVEL1_UPG_HEALTH AHM(80)
+#define LEVEL1_UPG_REGEN (0.03f * LEVEL1_UPG_HEALTH)
+#define LEVEL1_UPG_COST 1
+
+#define LEVEL1_CLAW_DMG ADM(32)
+#define LEVEL1_CLAW_RANGE 64.0f
+#define LEVEL1_CLAW_U_RANGE LEVEL1_CLAW_RANGE + 3.0f
+#define LEVEL1_CLAW_WIDTH 10.0f
+#define LEVEL1_CLAW_REPEAT 600
+#define LEVEL1_CLAW_U_REPEAT 500
+#define LEVEL1_CLAW_K_SCALE 1.0f
+#define LEVEL1_CLAW_U_K_SCALE 1.0f
+#define LEVEL1_GRAB_RANGE 96.0f
+#define LEVEL1_GRAB_U_RANGE LEVEL1_GRAB_RANGE + 3.0f
+#define LEVEL1_GRAB_TIME 300
+#define LEVEL1_GRAB_U_TIME 300
+#define LEVEL1_PCLOUD_DMG ADM(5)
+#define LEVEL1_PCLOUD_RANGE 150.0f
+#define LEVEL1_PCLOUD_REPEAT 2000
+#define LEVEL1_PCLOUD_TIME 10000
+#define LEVEL1_REGEN_MOD 2.0f
+#define LEVEL1_UPG_REGEN_MOD 3.0f
+#define LEVEL1_REGEN_SCOREINC AVM(100) // score added for healing per 10s
+#define LEVEL1_UPG_REGEN_SCOREINC AVM(200)
+#define ABOMB_DMG ADM(45)
+#define ABOMB_SPLASH_DMG ADM(190)
+#define ABOMB_SPLASH_RADIUS 200
+#define ABOMB_SPEED 400.0f
+#define ABOMB_REPEAT 1000
+#define ABOMB2_DMG ADM(40)
+#define ABOMB2_SPLASH_DMG ADM(165)
+#define ABOMB2_SPLASH_RADIUS 180
+#define ABOMB2_SPEED 500.0f
+#define ABOMB2_REPEAT 1000
+
+//Marauder
+#define LEVEL2_SPEED 1.2f
+#define LEVEL2_VALUE AVM(420)
+#define LEVEL2_HEALTH AHM(150)
+#define LEVEL2_REGEN (0.03f * LEVEL2_HEALTH)
+#define LEVEL2_COST 1
+#define LEVEL2_UPG_SPEED 1.2f
+#define LEVEL2_UPG_VALUE AVM(540)
+#define LEVEL2_UPG_HEALTH AHM(175)
+#define LEVEL2_UPG_REGEN (0.03f * LEVEL2_UPG_HEALTH)
+#define LEVEL2_UPG_COST 1
+
+#define LEVEL2_AREAZAP_DMG ADM(60)
+#define LEVEL2_AREAZAP_RANGE 200.0f
+#define LEVEL2_AREAZAP_CHAIN_RANGE 150.0f
+#define LEVEL2_AREAZAP_CHAIN_FALLOFF 8.0f
+#define LEVEL2_AREAZAP_WIDTH 15.0f
+#define LEVEL2_AREAZAP_REPEAT 1500
+#define LEVEL2_AREAZAP_TIME 1000
+#define LEVEL2_AREAZAP_MAX_TARGETS 5
+#define LEVEL2_WALLJUMP_MAXSPEED 1000.0f
+#define LEVEL2_BOUNCEBALL_DMG ADM(35)
+#define LEVEL2_BOUNCEBALL_REPEAT 200
+#define LEVEL2_BOUNCEBALL_SPEED 1500.0f
+#define LEVEL2_BOUNCEBALL_RADIUS 100
+#define LEVEL2_BOUNCEBALL_REGEN 9000 // msec until new barb
+#define LEVEL2_CLAW_UPG_DMG ADM(45)
+#define LEVEL2_CLAW_U_RANGE_UPG LEVEL2_CLAW_RANGE + 1.2f
+#define LEVEL2_CLAW_WIDTH_UPG 13.0f
+#define LEVEL2_CLAW_DMG ADM(40)
+#define LEVEL2_CLAW_RANGE 80.0f
+#define LEVEL2_CLAW_U_RANGE LEVEL2_CLAW_RANGE + 2.0f
+#define LEVEL2_CLAW_WIDTH 14.0f
+#define LEVEL2_CLAW_REPEAT 500
+#define LEVEL2_CLAW_K_SCALE 1.0f
+#define LEVEL2_CLAW_U_REPEAT 400
+#define LEVEL2_CLAW_U_K_SCALE 1.0f
+
+//Dragoon
+#define LEVEL3_SPEED 1.2f
+#define LEVEL3_VALUE AVM(600)
+#define LEVEL3_HEALTH AHM(220)
+#define LEVEL3_REGEN (0.03f * LEVEL3_HEALTH)
+#define LEVEL3_COST 1
+#define LEVEL3_UPG_SPEED 1.3f
+#define LEVEL3_UPG_VALUE AVM(720)
+#define LEVEL3_UPG_HEALTH AHM(250)
+#define LEVEL3_UPG_REGEN (0.03f * LEVEL3_UPG_HEALTH)
+#define LEVEL3_UPG_COST 1
+
+#define LEVEL3_CLAW_DMG ADM(80)
+#define LEVEL3_CLAW_RANGE 75.0f
+#define LEVEL3_CLAW_UPG_RANGE LEVEL3_CLAW_RANGE + 3.0f
+#define LEVEL3_CLAW_WIDTH 12.0f
+#define LEVEL3_CLAW_REPEAT 900
+#define LEVEL3_CLAW_K_SCALE 1.0f
+#define LEVEL3_CLAW_U_REPEAT 800
+#define LEVEL3_CLAW_U_K_SCALE 1.0f
+#define LEVEL3_POUNCE_DMG ADM(80)
+#define LEVEL3_POUNCE_RANGE 48.0f
+#define LEVEL3_POUNCE_UPG_RANGE LEVEL3_POUNCE_RANGE + 3.0f
+#define LEVEL3_POUNCE_WIDTH 14.0f
+#define LEVEL3_POUNCE_TIME 800 // msec for full Dragoon pounce
+#define LEVEL3_POUNCE_TIME_UPG 800 // msec for full Adv. Dragoon pounce
+#define LEVEL3_POUNCE_TIME_MIN 200 // msec before which pounce cancels
+#define LEVEL3_POUNCE_REPEAT 400 // msec before a new pounce starts
+#define LEVEL3_POUNCE_SPEED_MOD 0.75f // walking speed modifier for pounce charging
+#define LEVEL3_POUNCE_JUMP_MAG 850 // Dragoon pounce jump power
+#define LEVEL3_POUNCE_JUMP_MAG_UPG 930 // Adv. Dragoon pounce jump power
+#define LEVEL3_BOUNCEBALL_DMG ADM(115)
+#define LEVEL3_BOUNCEBALL_REPEAT 1200
+#define LEVEL3_BOUNCEBALL_SPEED 1000.0f
+#define LEVEL3_BOUNCEBALL_RADIUS 75
+#define LEVEL3_BOUNCEBALL_REGEN 13000 // msec until new barb
+
+//Tyrant
+#define LEVEL4_SPEED 1.2f
+#define LEVEL4_VALUE AVM(960)
+#define LEVEL4_HEALTH AHM(360)
+#define LEVEL4_REGEN (0.025f * LEVEL4_HEALTH)
+#define LEVEL4_COST 2
+
+#define LEVEL4_CLAW_DMG ADM(100)
+#define LEVEL4_CLAW_RANGE 100.0f
+#define LEVEL4_CLAW_WIDTH 14.0f
+#define LEVEL4_CLAW_HEIGHT 20.0f
+#define LEVEL4_CLAW_REPEAT 800
+#define LEVEL4_CLAW_K_SCALE 1.0f
+#define LEVEL4_TRAMPLE_DMG ADM(111)
+#define LEVEL4_TRAMPLE_SPEED 2.0f
+#define LEVEL4_TRAMPLE_CHARGE_MIN 375 // minimum msec to start a charge
+#define LEVEL4_TRAMPLE_CHARGE_MAX 1000 // msec to maximum charge stored
+#define LEVEL4_TRAMPLE_CHARGE_TRIGGER 3000 // msec charge starts on its own
+#define LEVEL4_TRAMPLE_DURATION 3000 // msec trample lasts on full charge
+#define LEVEL4_TRAMPLE_STOP_PENALTY 1 // charge lost per msec when stopped
+#define LEVEL4_TRAMPLE_REPEAT 100 // msec before a trample will rehit a player
+#define LEVEL4_CRUSH_DAMAGE_PER_V 0.5f // damage per falling velocity
+#define LEVEL4_CRUSH_DAMAGE 120 // to players only
+#define LEVEL4_CRUSH_REPEAT 500 // player damage repeat
+#define LEVEL4_FIREBREATHREPEAT 1000
+#define LEVEL4_FIREBREATHRELOADTIME 34000
+#define LEVEL4_FIREBREATHSPEED 800
+#define LEVEL4_FIREBREATHDMG 50
+
+//Hummel
+#define LEVEL5_UPG_SPEED 1.1f
+#define LEVEL5_UPG_VALUE AVM(400)
+#define LEVEL5_UPG_HEALTH AHM(200)
+#define LEVEL5_UPG_REGEN (0.03f * LEVEL5_UPG_HEALTH)
+#define LEVEL5_UPG_COST 2
+#define LEVEL5_CLAW_U_REPEAT 500
+#define LEVEL5_CLAW_U_K_SCALE 1.0f
+#define LEVEL5_CLAW_U_RANGE 70.0f
+#define LEVEL5_CLAW_WIDTH 12.0f
+#define LEVEL5_CLAW_DMG ADM(40)
+#define LEVEL5_PRICKLES_REPEAT 200
+#define LEVEL5_PRICKLES_NEXTTHINK 6000
+#define LEVEL5_PRICKLES_RADIUS 50
+#define LEVEL5_PRICKLES_SPEED 1600.0f
+#define LEVEL5_PRICKLESSPLASH_DMG 3
+#define LEVEL5_PRICKLES_DMG 6
+#define LEVEL5_PRICKLES_RELOADTIME 2300
+#define LEVEL5_PRICKLES_AMMO 10
+#define LEVEL5_POUNCE_JUMP_MAG 500
+#define LEVEL5_POUNCE_REPEAT 1000
+#define LEVEL5_POUNCE_TIME 600
+#define LEVEL5_POUNCE_TIME_MIN 200
+#define LEVEL5_POUNCE_DMG 40
+/*
+ * HUMAN
+ */
+
+#define HUMAN_SPRINT_MODIFIER 1.28f
+#define HUMAN_JOG_MODIFIER 1.1f
+#define HUMAN_BACK_MODIFIER 0.8f
+#define HUMAN_SIDE_MODIFIER 0.9f
+#define HUMAN_DODGE_SIDE_MODIFIER 2.9f
+#define HUMAN_DODGE_SLOWED_MODIFIER 0.9f
+#define HUMAN_DODGE_UP_MODIFIER 0.5f
+#define HUMAN_DODGE_TIMEOUT 500
+#define HUMAN_LAND_FRICTION 3.0f
+#define STAMINA_STOP_RESTORE 20
+#define STAMINA_WALK_RESTORE 15
+#define STAMINA_MEDISTAT_RESTORE 30 // stacked on STOP or WALK
+#define STAMINA_SPRINT_TAKE 8
+#define STAMINA_JUMP_TAKE 250
+#define STAMINA_DODGE_TAKE 250
+#define STAMINA_MAX 1200
+#define STAMINA_BREATHING_LEVEL 0
+#define STAMINA_SLOW_LEVEL -500
+#define STAMINA_BLACKOUT_LEVEL -800
+#define HUMAN_SPAWN_REPEAT_TIME 11000
+#define HUMAN_REGEN_DAMAGE_TIME 2000 //msec since damage before dcc repairs
+#define HUMAN_MAX_CREDITS 4000
+#define HUMAN_TK_SUICIDE_PENALTY 150
+#define HUMAN_BUILDER_SCOREINC 50 // builders receive this many points every 10 seconds
+#define ALIEN_BUILDER_SCOREINC AVM(100) // builders receive this many points every 10 seconds
+#define HUMAN_BUILDABLE_INACTIVE_TIME 90000
+
+/*
+ * HUMAN weapons
+ * _REPEAT - time between firings
+ * _RELOAD - time needed to reload
+ * _PRICE - amount in credits weapon costs
+ * HUMAN_WDMG_MODIFIER - overall damage modifier for coarse tuning
+ */
+
+#define HUMAN_WDMG_MODIFIER 1.0f
+#define HDM(d) ((int)((float)d*HUMAN_WDMG_MODIFIER))
+
+#define BLASTER_REPEAT 600
+#define BLASTER_K_SCALE 1.0f
+#define BLASTER_SPREAD 200
+#define BLASTER_SPEED 1400
+#define BLASTER_DMG HDM(10)
+#define BLASTER_SIZE 5
+
+#define RIFLE_CLIPSIZE 35
+#define RIFLE_MAXCLIPS 5
+#define RIFLE_REPEAT 90
+#define RIFLE_K_SCALE 1.0f
+#define RIFLE_RELOAD 2000
+#define RIFLE_PRICE 0
+#define RIFLE_SPREAD 200
+#define RIFLE_DMG HDM(5)
+
+#define RIFLE_REPEAT2 35
+#define RIFLE_K_SCALE2 1.2f
+#define RIFLE_RELOAD2 4000
+#define RIFLE_SPREAD2 2000
+#define RIFLE_DMG2 HDM(4)
+#define RIFLE_2NDMOD 0.20f
+
+#define PAINSAW_PRICE 100
+#define PAINSAW_REPEAT 75
+#define PAINSAW_K_SCALE 1.0f
+#define PAINSAW_DAMAGE HDM(11)
+#define PAINSAW_RANGE 64.0f
+#define PAINSAW_WIDTH 0.0f
+#define PAINSAW_HEIGHT 8.0f
+
+#define PAINSAW_REPEAT2 3000
+#define PAINSAW_DAMAGE2 HDM(60)
+#define PAINSAW_DAMAGESPLASH2 5
+#define PAINSAW_BLADELIFETIME 3500
+#define PAINSAW_BLADESPEED 800.0f
+#define PAINSAW_BLADERANGE 100.0f
+
+#define GRENADE_PRICE 200
+#define GRENADE_REPEAT 0
+#define GRENADE_K_SCALE 1.0f
+#define GRENADE_DAMAGE HDM(340)
+#define GRENADE_RANGE 192.0f
+#define GRENADE_SPEED 700.0f
+
+#define MINE_PRICE 1000
+#define MINE_REPEAT 0
+#define MINE_K_SCALE 1.0f
+#define MINE_DAMAGE HDM(250)
+#define MINE_RANGE 200.0f
+#define MINE_DETECT 100.0f
+#define MINE_SPEED 500.0f
+#define MINE_INIT_TIME 3000
+#define MINE_CHECK_FREQUENCY 100
+#define MINE_BOOM_TIME 25
+#define MINE_TAKEDAMAGE qtrue
+#define MINE_HEALTH 20
+
+#define NADEFLAMES_SPEED 400.0f
+#define CHECK_FREQUENCY 100
+
+#define FLAMES_RANGE 40.0f
+#define FLAMES_DETECT 50.0f
+#define FLAMES_CHECK_FREQUENCY 100
+#define FLAMES_SPEED 400.0f
+
+#define SMOKE_PRICE 250
+#define SMOKE_REPEAT 0
+#define SMOKE_K_SCALE 1.0f
+#define SMOKE_SPEED 400.0f
+#define SMOKE_DAMAGE HDM(1)
+#define SMOKE_RANGE 10.0f
+#define SMOKE_DETECT 10.0f
+#define SMOKE_CHECK_FREQUENCY 100
+
+#define SHOTGUN_PRICE 150
+#define SHOTGUN_SHELLS 8
+#define SHOTGUN_PELLETS 11 //used to sync server and client side
+#define SHOTGUN_MAXCLIPS 3
+#define SHOTGUN_REPEAT 1000
+#define SHOTGUN_K_SCALE 1.0f
+#define SHOTGUN_RELOAD 2000
+#define SHOTGUN_SPREAD 700
+#define SHOTGUN_DMG HDM(5)
+#define SHOTGUN_RANGE (8192 * 12)
+
+#define LASGUN_PRICE 250
+#define LASGUN_AMMO 250
+#define LASGUN_REPEAT 190
+#define LASGUN_K_SCALE 1.0f
+#define LASGUN_RELOAD 2000
+#define LASGUN_DAMAGE HDM(9)
+
+#define MDRIVER_PRICE 350
+#define MDRIVER_CLIPSIZE 5
+#define MDRIVER_MAXCLIPS 3
+#define MDRIVER_DMG HDM(40)
+#define MDRIVER_REPEAT 1000
+#define MDRIVER_K_SCALE 1.0f
+#define MDRIVER_RELOAD 2200
+#define MDRIVER2ND_DMG HDM(40)
+#define MDRIVER2ND_SPLASH_DMG 10
+#define MDRIVER2ND_SPLASHRADAIUS 100
+#define MDRIVER2ND_LIFETIME 5000
+#define MDRIVER2ND_DIR_CHANGE_PERIOD 50
+#define MDRIVER2ND_SPEED 400
+#define MDRIVER_REPEAT2 2200
+
+#define CHAINGUN_PRICE 400
+#define CHAINGUN_BULLETS 350
+#define CHAINGUN_REPEAT 80
+#define CHAINGUN_K_SCALE 1.0f
+#define CHAINGUN_SPREAD 900
+#define CHAINGUN_DMG HDM(6)
+
+#define CHAINGUN_REPEAT2 120
+#define CHAINGUN_SPREAD2 450
+#define CHAINGUN_DMG2 HDM(8)
+
+#define FLAMER_PRICE 550
+#define FLAMER_GAS 200
+#define FLAMER_REPEAT 150
+#define FLAMER_K_SCALE 2.0f
+#define FLAMER_DMG HDM(20)
+#define FLAMER_SPLASHDAMAGE HDM(12)
+#define FLAMER_RADIUS 50 // splash radius
+#define FLAMER_SIZE 12 // missile bounding box
+#define FLAMER_LIFETIME 700.0f
+#define FLAMER_LIFETIME2 600.0f
+#define FLAMER_SPEED 550.0f
+#define FLAMER_LAG 0.65f // the amount of player velocity that is added to the fireball
+
+#define PRIFLE_PRICE 450
+#define PRIFLE_CLIPS 40
+#define PRIFLE_MAXCLIPS 5
+#define PRIFLE_REPEAT 100
+#define PRIFLE_K_SCALE 1.0f
+#define PRIFLE_RELOAD 2000
+#define PRIFLE_DMG HDM(9)
+#define PRIFLE_SPEED 1200
+#define PRIFLE_SIZE 5
+#define PRIFLE_SECONDARY_SPEED 800
+#define PRIFLE_SECONDARY_REPEAT 400
+
+#define LCANNON_PRICE 600
+#define LCANNON_AMMO 80
+#define LCANNON_K_SCALE 1.0f
+#define LCANNON_REPEAT 500
+#define LCANNON_RELOAD 0
+#define LCANNON_DAMAGE HDM(265)
+#define LCANNON_RADIUS 150 // primary splash damage radius
+#define LCANNON_SIZE 5 // missile bounding box radius
+#define LCANNON_SECONDARY_DAMAGE HDM(30)
+#define LCANNON_SECONDARY_RADIUS 80 // secondary splash damage radius
+#define LCANNON_SECONDARY_SPEED 1400
+#define LCANNON_SECONDARY_RELOAD 2000
+#define LCANNON_SECONDARY_REPEAT 1000
+#define LCANNON_SPEED 700
+#define LCANNON_CHARGE_TIME_MAX 3000
+#define LCANNON_CHARGE_TIME_MIN 100
+#define LCANNON_CHARGE_TIME_WARN 2000
+#define LCANNON_CHARGE_AMMO 10 // ammo cost of a full charge shot
+
+#define FLAMER_CHARGE_TIME_MIN 200
+#define FLAMER_CHARGE_TIME_MAX 3000
+#define FLAMER_CHARGE_AMMO 50 // ammo cost of a full charge shot
+#define FLAMER_SECONDARY_REPEAT 200
+
+#define HBUILD_PRICE 0
+#define HBUILD_REPEAT 1000
+#define HBUILD_HEALRATE 18
+
+/*
+ * HUMAN upgrades
+ */
+#define LIGHTARMOUR_PRICE 50
+#define LIGHTARMOUR_POISON_PROTECTION 1
+#define LIGHTARMOUR_INFECTION_PROTECTION 0
+#define LIGHTARMOUR_PCLOUD_PROTECTION 1000
+
+#define HELMET_PRICE 80
+#define HELMET_RANGE 1000.0f
+#define HELMET_POISON_PROTECTION 1
+#define HELMET_INFECTION_PROTECTION 1
+#define HELMET_PCLOUD_PROTECTION 1000
+
+#define MEDKIT_PRICE 50
+
+#define BATTPACK_PRICE 75
+#define BATTPACK_MODIFIER 1.5f //modifier for extra energy storage available
+
+#define CLOAK_PRICE 125
+#define CLOAK_TIME 40000
+
+#define JETPACK_PRICE 120
+#define JETPACK_FLOAT_SPEED 250.0f //up movement speed
+#define JETPACK_SINK_SPEED 300.0f //down movement speed
+#define JETPACK_DISABLE_TIME 800 //time to disable the jetpack when player damaged
+#define JETPACK_DISABLE_CHANCE 0.3f
+
+#define BSUIT_PRICE 400
+#define BSUIT_POISON_PROTECTION 3
+#define BSUIT_INFECTION_PROTECTION 1
+#define BSUIT_PCLOUD_PROTECTION 3000
+
+#define MGCLIP_PRICE 0
+
+#define CGAMMO_PRICE 0
+
+#define GAS_PRICE 0
+
+#define MEDKIT_POISON_IMMUNITY_TIME 0
+#define MEDKIT_STARTUP_TIME 4000
+#define MEDKIT_STARTUP_SPEED 5
+
+#define BIOKIT_PRICE 200
+#define BIOKIT_POISON_PROTECTION 1
+#define BIOKIT_INFECTION_PROTECTION 3
+#define BIOKIT_HEALTH_RATE 2.0 // 5000/BIOKIT_HEALTH_RATE = * msec before regenerate
+#define BIOKIT_STAMINA_RATE 2
+
+
+//BUILDABLES////////////
+/*
+ * ALIEN buildables
+ * _BP - build points required for this buildable
+ * _BT - build time required for this buildable
+ * _REGEN - the amount of health per second regained
+ * _SPLASHDAMGE - the amount of damage caused by this buildable when melting
+ * _SPLASHRADIUS - the radius around which it does this damage
+ * CREEP_BASESIZE - the maximum distance a buildable can be from an egg/overmind
+ * ALIEN_BHLTH_MODIFIER - overall health modifier for coarse tuning
+ */
+
+#define ALIEN_BHLTH_MODIFIER 1.0f
+#define ABHM(h) ((int)((float)h*ALIEN_BHLTH_MODIFIER))
+#define ALIEN_BVALUE_MODIFIER 90.0f
+#define ABVM(h) ((int)((float)h*ALIEN_BVALUE_MODIFIER))
+
+#define CREEP_BASESIZE 700
+#define CREEP_TIMEOUT 1000
+#define CREEP_MODIFIER 0.5f
+#define CREEP_ARMOUR_MODIFIER 0.75f
+#define CREEP_SCALEDOWN_TIME 3000
+
+#define PCLOUD_MODIFIER 0.5f
+#define PCLOUD_ARMOUR_MODIFIER 0.75f
+
+#define ASPAWN_BP 10
+#define ASPAWN_BT 15000
+#define ASPAWN_HEALTH ABHM(250)
+#define ASPAWN_REGEN 8
+#define ASPAWN_SPLASHDAMAGE 50
+#define ASPAWN_SPLASHRADIUS 100
+#define ASPAWN_CREEPSIZE 80
+#define ASPAWN_VALUE ABVM(ASPAWN_BP)
+
+#define BARRICADE_BP 5
+#define BARRICADE_BT 13000
+#define BARRICADE_HEALTH ABHM(350)
+#define BARRICADE_REGEN 14
+#define BARRICADE_SPLASHDAMAGE 50
+#define BARRICADE_SPLASHRADIUS 100
+#define BARRICADE_CREEPSIZE 70
+#define BARRICADE_SHRINKPROP 0.1875f
+#define BARRICADE_SHRINKTIMEOUT 500
+#define BARRICADE_VALUE ABVM(BARRICADE_BP)
+
+#define BOOSTER_BP 14
+#define BOOSTER_BT 14000
+#define BOOSTER_HEALTH ABHM(150)
+#define BOOSTER_REGEN 8
+#define BOOSTER_SPLASHDAMAGE 50
+#define BOOSTER_SPLASHRADIUS 100
+#define BOOSTER_CREEPSIZE 70
+#define BOOSTER_REGEN_MOD 3.0f
+#define BOOSTER_VALUE ABVM(BOOSTER_BP)
+#define BOOST_TIME 20000
+#define BOOST_WARN_TIME 15000
+
+#define ACIDTUBE_BP 6
+#define ACIDTUBE_BT 8000
+#define ACIDTUBE_HEALTH ABHM(125)
+#define ACIDTUBE_REGEN 10
+#define ACIDTUBE_SPLASHDAMAGE 50
+#define ACIDTUBE_SPLASHRADIUS 100
+#define ACIDTUBE_CREEPSIZE 30
+#define ACIDTUBE_DAMAGE 8
+#define ACIDTUBE_RANGE 300.0f
+#define ACIDTUBE_REPEAT 300
+#define ACIDTUBE_REPEAT_ANIM 2000
+#define ACIDTUBE_VALUE ABVM(ACIDTUBE_BP)
+
+#define HIVE_BP 8
+#define HIVE_BT 13000
+#define HIVE_HEALTH ABHM(125)
+#define HIVE_REGEN 10
+#define HIVE_SPLASHDAMAGE 30
+#define HIVE_SPLASHRADIUS 200
+#define HIVE_CREEPSIZE 40
+#define HIVE_SENSE_RANGE 500.0f
+#define HIVE_LIFETIME 3000
+#define HIVE_REPEAT 3000
+#define HIVE_K_SCALE 1.0f
+#define HIVE_DMG 80
+#define HIVE_SPEED 320.0f
+#define HIVE_DIR_CHANGE_PERIOD 500
+#define HIVE_VALUE ABVM(HIVE_BP)
+
+#define TRAPPER_BP 4
+#define TRAPPER_BT 5000
+#define TRAPPER_HEALTH ABHM(50)
+#define TRAPPER_REGEN 6
+#define TRAPPER_SPLASHDAMAGE 15
+#define TRAPPER_SPLASHRADIUS 100
+#define TRAPPER_CREEPSIZE 25
+#define TRAPPER_RANGE 400
+#define TRAPPER_REPEAT 1000
+#define TRAPPER_VALUE ABVM(TRAPPER_BP)
+#define LOCKBLOB_SPEED 650.0f
+#define LOCKBLOB_LOCKTIME 5000
+#define LOCKBLOB_DOT 0.85f // max angle = acos( LOCKBLOB_DOT )
+#define LOCKBLOB_K_SCALE 1.0f
+
+#define OVERMIND_BP 0
+#define OVERMIND_BT 30000
+#define OVERMIND_HEALTH ABHM(750)
+#define OVERMIND_REGEN 6
+#define OVERMIND_SPLASHDAMAGE 15
+#define OVERMIND_SPLASHRADIUS 300
+#define OVERMIND_CREEPSIZE 120
+#define OVERMIND_ATTACK_RANGE 150.0f
+#define OVERMIND_ATTACK_REPEAT 1000
+#define OVERMIND_VALUE ABVM(50)
+
+#define PANZER_SMALL_BP 1
+#define PANZER_SMALL_BT 6000
+#define PANZER_SMALL_HEALTH ABHM(100)
+#define PANZER_SMALL_REGEN 1
+#define PANZER_SMALL_SPLASHDAMAGE 1
+#define PANZER_SMALL_SPLASHRADIUS 10
+#define PANZER_SMALL_CREEPSIZE 0
+#define PANZER_SMALL_VALUE ABVM(PANZER_SMALL_BP)
+
+#define PANZER_MEDIUM_BP 2
+#define PANZER_MEDIUM_BT 15000
+#define PANZER_MEDIUM_HEALTH ABHM(250)
+#define PANZER_MEDIUM_REGEN 1
+#define PANZER_MEDIUM_SPLASHDAMAGE 5
+#define PANZER_MEDIUM_SPLASHRADIUS 40
+#define PANZER_MEDIUM_CREEPSIZE 0
+#define PANZER_MEDIUM_VALUE ABVM(PANZER_MEDIUM_BP)
+
+#define PANZER_LARGE_BP 5
+#define PANZER_LARGE_BT 20000
+#define PANZER_LARGE_HEALTH ABHM(450)
+#define PANZER_LARGE_REGEN 1
+#define PANZER_LARGE_SPLASHDAMAGE 10
+#define PANZER_LARGE_SPLASHRADIUS 70
+#define PANZER_LARGE_CREEPSIZE 0
+#define PANZER_LARGE_VALUE ABVM(PANZER_LARGE_BP)
+
+#define TENDON_SMALL_BP 1
+#define TENDON_SMALL_BT 4000
+#define TENDON_SMALL_HEALTH ABHM(25)
+#define TENDON_SMALL_REGEN 1
+#define TENDON_SMALL_SPLASHDAMAGE 5
+#define TENDON_SMALL_SPLASHRADIUS 10
+#define TENDON_SMALL_CREEPSIZE 0
+#define TENDON_SMALL_VALUE ABVM(TENDON_SMALL_BP)
+
+#define TENDON_MEDIUM_BP 2
+#define TENDON_MEDIUM_BT 9000
+#define TENDON_MEDIUM_HEALTH ABHM(50)
+#define TENDON_MEDIUM_REGEN 1
+#define TENDON_MEDIUM_SPLASHDAMAGE 5
+#define TENDON_MEDIUM_SPLASHRADIUS 25
+#define TENDON_MEDIUM_CREEPSIZE 0
+#define TENDON_MEDIUM_VALUE ABVM(TENDON_MEDIUM_BP)
+
+#define TENDON_LARGE_BP 3
+#define TENDON_LARGE_BT 13000
+#define TENDON_LARGE_HEALTH ABHM(100)
+#define TENDON_LARGE_REGEN 1
+#define TENDON_LARGE_SPLASHDAMAGE 5
+#define TENDON_LARGE_SPLASHRADIUS 50
+#define TENDON_LARGE_CREEPSIZE 0
+#define TENDON_LARGE_VALUE ABVM(TENDON_LARGE_BP)
+
+#define NET_BP 3
+#define NET_BT 8000
+#define NET_HEALTH ABHM(80)
+#define NET_REGEN 10
+#define NET_SPLASHDAMAGE 5
+#define NET_SPLASHRADIUS 50
+#define NET_CREEPSIZE 0
+#define NET_VALUE ABVM(NET_BP)
+
+#define NET_SPIKE_BP 2
+#define NET_SPIKE_BT 5000
+#define NET_SPIKE_HEALTH ABHM(50)
+#define NET_SPIKE_REGEN 10
+#define NET_SPIKE_SPLASHDAMAGE 5
+#define NET_SPIKE_SPLASHRADIUS 50
+#define NET_SPIKE_CREEPSIZE 0
+#define NET_SPIKE_VALUE ABVM(NET_SPIKE_BP)
+
+#define INFESTATION_SLIME_BP 12
+#define INFESTATION_SLIME_BT 20000
+#define INFESTATION_SLIME_HEALTH ABHM(200)
+#define INFESTATION_SLIME_REGEN 8
+#define INFESTATION_SLIME_SPLASHDAMAGE 15
+#define INFESTATION_SLIME_SPLASHRADIUS 200
+#define INFESTATION_SLIME_CREEPSIZE 170
+#define INFESTATION_SLIME_VALUE ABVM(INFESTATION_SLIME_BP)
+
+#define INFESTATION_THICKET_BP 4
+#define INFESTATION_THICKET_BT 12000
+#define INFESTATION_THICKET_HEALTH ABHM(250)
+#define INFESTATION_THICKET_REGEN 1
+#define INFESTATION_THICKET_SPLASHDAMAGE 10
+#define INFESTATION_THICKET_SPLASHRADIUS 10
+#define INFESTATION_THICKET_CREEPSIZE 190
+#define INFESTATION_THICKET_VALUE ABVM(INFESTATION_THICKET_BP)
+
+#define INFESTATION_BLISTER_BP 3
+#define INFESTATION_BLISTER_BT 7000
+#define INFESTATION_BLISTER_HEALTH ABHM(250)
+#define INFESTATION_BLISTER_REGEN 1
+#define INFESTATION_BLISTER_SPLASHDAMAGE 10
+#define INFESTATION_BLISTER_SPLASHRADIUS 10
+#define INFESTATION_BLISTER_CREEPSIZE 300
+#define INFESTATION_BLISTER_VALUE ABVM(INFESTATION_BLISTER_BP)
+
+#define REFLECTOR_BP 3
+#define REFLECTOR_BT 4000
+#define REFLECTOR_HEALTH ABHM(250)
+#define REFLECTOR_REGEN 1
+#define REFLECTOR_SPLASHDAMAGE 5
+#define REFLECTOR_SPLASHRADIUS 15
+#define REFLECTOR_CREEPSIZE 0
+#define REFLECTOR_VALUE ABVM(REFLECTOR_BP)
+
+#define MUSCLE_BP 3
+#define MUSCLE_BT 10000
+#define MUSCLE_HEALTH ABHM(100)
+#define MUSCLE_REGEN 5
+#define MUSCLE_SPLASHDAMAGE 5
+#define MUSCLE_SPLASHRADIUS 10
+#define MUSCLE_CREEPSIZE 50
+#define MUSCLE_VALUE ABVM(MUSCLE_BP)
+
+#define SPITEFUL_ABCESS_BP 3
+#define SPITEFUL_ABCESS_BT 8000
+#define SPITEFUL_ABCESS_HEALTH ABHM(60)
+#define SPITEFUL_ABCESS_REGEN 10
+#define SPITEFUL_ABCESS_SPLASHDAMAGE 100
+#define SPITEFUL_ABCESS_SPLASHRADIUS 100
+#define SPITEFUL_ABCESS_CREEPSIZE 50
+#define SPITEFUL_ABCESS_VALUE ABVM(SPITEFUL_ABCESS_BP)
+
+#define COCOON_BP 35
+#define COCOON_BT 20000
+#define COCOON_HEALTH ABHM(250)
+#define COCOON_REGEN 1
+#define COCOON_SPLASHDAMAGE 10
+#define COCOON_SPLASHRADIUS 200
+#define COCOON_CREEPSIZE 60
+#define COCOON_VALUE ABVM(COCOON_BP)
+
+#define ORGANIC_BULB_BP 3
+#define ORGANIC_BULB_BT 12000
+#define ORGANIC_BULB_HEALTH ABHM(35)
+#define ORGANIC_BULB_REGEN 5
+#define ORGANIC_BULB_SPLASHDAMAGE 0
+#define ORGANIC_BULB_SPLASHRADIUS 0
+#define ORGANIC_BULB_CREEPSIZE 15
+#define ORGANIC_BULB_VALUE ABVM(ORGANIC_BULB_BP)
+
+#define POD_BP 20
+#define POD_BT 20000
+#define POD_HEALTH ABHM(850)
+#define POD_REGEN 5
+#define POD_SPLASHDAMAGE 50
+#define POD_SPLASHRADIUS 150
+#define POD_CREEPSIZE 0
+#define POD_VALUE ABVM(POD_BP)
+
+#define POD_STUMP_BP 15
+#define POD_STUMP_BT 20000
+#define POD_STUMP_HEALTH ABHM(650)
+#define POD_STUMP_REGEN 15
+#define POD_STUMP_SPLASHDAMAGE 25
+#define POD_STUMP_SPLASHRADIUS 100
+#define POD_STUMP_CREEPSIZE 0
+#define POD_STUMP_VALUE ABVM(POD_STUMP_BP)
+
+#define CREEPCOLONY_BP 5
+#define CREEPCOLONY_BT 18000
+#define CREEPCOLONY_HEALTH ABHM(350)
+#define CREEPCOLONY_REGEN 6
+#define CREEPCOLONY_SPLASHDAMAGE 200
+#define CREEPCOLONY_SPLASHRADIUS 300
+#define CREEPCOLONY_CREEPSIZE 60
+#define CREEPCOLONY_RADIUS "200"
+#define CREEPCOLONY_VALUE ABVM(CREEPCOLONY_BP)
+
+/*
+ * HUMAN buildables
+ * _BP - build points required for this buildable
+ * _BT - build time required for this buildable
+ * _SPLASHDAMGE - the amount of damage caused by this buildable when it blows up
+ * _SPLASHRADIUS - the radius around which it does this damage
+ * REACTOR_BASESIZE - the maximum distance a buildable can be from an reactor
+ * REPEATER_BASESIZE - the maximum distance a buildable can be from a repeater
+ * HUMAN_BHLTH_MODIFIER - overall health modifier for coarse tuning
+ */
+
+#define HUMAN_BHLTH_MODIFIER 1.0f
+#define HBHM(h) ((int)((float)h*HUMAN_BHLTH_MODIFIER))
+#define HUMAN_BVALUE_MODIFIER 240.0f
+#define HBVM(h) ((int)((float)h*(float)HUMAN_BVALUE_MODIFIER)) // remember these are measured in credits not frags (c.f. ALIEN_CREDITS_PER_KILL)
+
+#define REACTOR_BASESIZE 1000
+#define REPEATER_BASESIZE 500
+#define HUMAN_DETONATION_DELAY 5000
+
+#define HSPAWN_BP 10
+#define HSPAWN_BT 10000
+#define HSPAWN_HEALTH HBHM(310)
+#define HSPAWN_SPLASHDAMAGE 50
+#define HSPAWN_SPLASHRADIUS 100
+#define HSPAWN_VALUE HBVM(HSPAWN_BP)
+
+#define MEDISTAT_BP 8
+#define MEDISTAT_BT 8000
+#define MEDISTAT_HEALTH HBHM(190)
+#define MEDISTAT_SPLASHDAMAGE 50
+#define MEDISTAT_SPLASHRADIUS 100
+#define MEDISTAT_VALUE HBVM(MEDISTAT_BP)
+
+#define MGTURRET_BP 8
+#define MGTURRET_BT 8000
+#define MGTURRET_HEALTH HBHM(180)
+#define MGTURRET_SPLASHDAMAGE 100
+#define MGTURRET_SPLASHRADIUS 100
+#define MGTURRET_ANGULARSPEED 12
+#define MGTURRET_ACCURACY_TO_FIRE 0
+#define MGTURRET_VERTICALCAP 30 // +/- maximum pitch
+#define MGTURRET_REPEAT 150
+#define MGTURRET_K_SCALE 1.0f
+#define MGTURRET_RANGE 380.0f
+#define MGTURRET_SPREAD 200
+#define MGTURRET_DMG HDM(10)
+#define MGTURRET_SPINUP_TIME 750 // time between target sighted and fire
+#define MGTURRET_VALUE HBVM(MGTURRET_BP)
+
+#define MGTURRET2_BP 14
+#define MGTURRET2_BT 20000
+#define MGTURRET2_HEALTH HBHM(300)
+#define MGTURRET2_SPLASHDAMAGE 1
+#define MGTURRET2_SPLASHRADIUS 170
+#define MGTURRET2_ANGULARSPEED 12
+#define MGTURRET2_ACCURACY_TO_FIRE 0
+#define MGTURRET2_VERTICALCAP 40 // +/- maximum pitch
+#define MGTURRET2_REPEAT 140
+#define MGTURRET2_K_SCALE 1.0f
+#define MGTURRET2_RANGE 50.0f
+#define MGTURRET2_SPREAD 300
+#define MGTURRET2_DMG HDM(16)
+#define MGTURRET2_SPINUP_TIME 600 // time between target sighted and fire
+#define MGTURRET2_VALUE HBVM(MGTURRET2_BP)
+#define FLAMER2_LIFETIME 350.0f
+
+#define TESLAGEN_BP 10
+#define TESLAGEN_BT 15000
+#define TESLAGEN_HEALTH HBHM(300)
+#define TESLAGEN_SPLASHDAMAGE 50
+#define TESLAGEN_SPLASHRADIUS 100
+#define TESLAGEN_REPEAT 250
+#define TESLAGEN_K_SCALE 4.0f
+#define TESLAGEN_RANGE 225
+#define TESLAGEN_DMG HDM(11)
+#define TESLAGEN_VALUE HBVM(TESLAGEN_BP)
+
+#define DC_BP 15
+#define DC_BT 16000
+#define DC_HEALTH HBHM(190)
+#define DC_SPLASHDAMAGE 50
+#define DC_SPLASHRADIUS 100
+#define DC_ATTACK_PERIOD 50000 // how often to spam "under attack"
+#define DC_HEALRATE 4
+#define DC_RANGE 1000
+#define DC_VALUE HBVM(DC_BP)
+
+#define ARMOURY_BP 10
+#define ARMOURY_BT 10000
+#define ARMOURY_HEALTH HBHM(420)
+#define ARMOURY_SPLASHDAMAGE 50
+#define ARMOURY_SPLASHRADIUS 100
+#define ARMOURY_VALUE HBVM(ARMOURY_BP)
+
+#define REACTOR_BP 0
+#define REACTOR_BT 20000
+#define REACTOR_HEALTH HBHM(930)
+#define REACTOR_SPLASHDAMAGE 200
+#define REACTOR_SPLASHRADIUS 300
+#define REACTOR_ATTACK_RANGE 100.0f
+#define REACTOR_ATTACK_REPEAT 1000
+#define REACTOR_ATTACK_DAMAGE 40
+#define REACTOR_ATTACK_DCC_REPEAT 1000
+#define REACTOR_ATTACK_DCC_RANGE 150.0f
+#define REACTOR_ATTACK_DCC_DAMAGE 40
+#define REACTOR_VALUE HBVM(50)
+
+#define REPEATER_BP 4
+#define REPEATER_BT 10000
+#define REPEATER_HEALTH HBHM(250)
+#define REPEATER_SPLASHDAMAGE 50
+#define REPEATER_SPLASHRADIUS 100
+#define REPEATER_VALUE HBVM(REPEATER_BP)
+
+//EDGE BUILDINGS HUMANS
+#define CONTAINER_SMALL_BP 1
+#define CONTAINER_SMALL_BT 5000
+#define CONTAINER_SMALL_HEALTH HBHM(60)
+#define CONTAINER_SMALL_SPLASHDAMAGE 1
+#define CONTAINER_SMALL_SPLASHRADIUS 10
+#define CONTAINER_SMALL_VALUE HBVM(CONTAINER_SMALL_BP)
+
+#define CONTAINER_MEDIUM_BP 2
+#define CONTAINER_MEDIUM_BT 14000
+#define CONTAINER_MEDIUM_HEALTH HBHM(250)
+#define CONTAINER_MEDIUM_SPLASHDAMAGE 5
+#define CONTAINER_MEDIUM_SPLASHRADIUS 40
+#define CONTAINER_MEDIUM_VALUE HBVM(CONTAINER_MEDIUM_BP)
+
+#define CONTAINER_LARGE_BP 5
+#define CONTAINER_LARGE_BT 20000
+#define CONTAINER_LARGE_HEALTH HBHM(450)
+#define CONTAINER_LARGE_SPLASHDAMAGE 10
+#define CONTAINER_LARGE_SPLASHRADIUS 70
+#define CONTAINER_LARGE_VALUE HBVM(CONTAINER_LARGE_BP)
+
+#define PLATE_SMALL_BP 1
+#define PLATE_SMALL_BT 4000
+#define PLATE_SMALL_HEALTH HBHM(25)
+#define PLATE_SMALL_SPLASHDAMAGE 5
+#define PLATE_SMALL_SPLASHRADIUS 10
+#define PLATE_SMALL_VALUE HBVM(PLATE_SMALL_BP)
+
+#define PLATE_LARGE_BP 3
+#define PLATE_LARGE_BT 13000
+#define PLATE_LARGE_HEALTH HBHM(100)
+#define PLATE_LARGE_SPLASHDAMAGE 5
+#define PLATE_LARGE_SPLASHRADIUS 100
+#define PLATE_LARGE_VALUE HBVM(PLATE_LARGE_BP)
+
+#define FENCE_BP 3
+#define FENCE_BT 7000
+#define FENCE_HEALTH HBHM(100)
+#define FENCE_SPLASHDAMAGE 5
+#define FENCE_SPLASHRADIUS 50
+#define FENCE_VALUE HBVM(FENCE_BP)
+
+#define FENCE_ROD_BP 2
+#define FENCE_ROD_BT 5000
+#define FENCE_ROD_HEALTH HBHM(50)
+#define FENCE_ROD_SPLASHDAMAGE 5
+#define FENCE_ROD_SPLASHRADIUS 20
+#define FENCE_ROD_VALUE HBVM(FENCE_ROD_BP)
+
+#define BARRIER_LINE_BP 2
+#define BARRIER_LINE_BT 12000
+#define BARRIER_LINE_HEALTH HBHM(300)
+#define BARRIER_LINE_SPLASHDAMAGE 10
+#define BARRIER_LINE_SPLASHRADIUS 50
+#define BARRIER_LINE_VALUE HBVM(BARRIER_LINE_BP)
+
+#define BARRIER_CORNER_BP 2
+#define BARRIER_CORNER_BT 13000
+#define BARRIER_CORNER_HEALTH HBHM(300)
+#define BARRIER_CORNER_SPLASHDAMAGE 10
+#define BARRIER_CORNER_SPLASHRADIUS 50
+#define BARRIER_CORNER_VALUE HBVM(BARRIER_CORNER_BP)
+
+#define BARRIER_POINT_BP 3
+#define BARRIER_POINT_BT 15000
+#define BARRIER_POINT_HEALTH HBHM(350)
+#define BARRIER_POINT_SPLASHDAMAGE 10
+#define BARRIER_POINT_SPLASHRADIUS 50
+#define BARRIER_POINT_VALUE HBVM(BARRIER_POINT_BP)
+
+#define SHIELD_BP 8
+#define SHIELD_BT 20000
+#define SHIELD_HEALTH HBHM(600)
+#define SHIELD_SPLASHDAMAGE 50
+#define SHIELD_SPLASHRADIUS 150
+#define SHIELD_SHRINKPROP 0.001f
+#define SHIELD_SHRINKTIMEOUT 800
+#define SHIELD_VALUE HBVM(SHIELD_BP)
+
+#define LADDER_BP 5
+#define LADDER_BT 8000
+#define LADDER_HEALTH HBHM(155)
+#define LADDER_SPLASHDAMAGE 15
+#define LADDER_SPLASHRADIUS 250
+#define LADDER_VALUE HBVM(LADDER_BP)
+
+#define TEFLON_FOIL_BP 1
+#define TEFLON_FOIL_BT 2000
+#define TEFLON_FOIL_HEALTH HBHM(50)
+#define TEFLON_FOIL_SPLASHDAMAGE 1
+#define TEFLON_FOIL_SPLASHRADIUS 1
+#define TEFLON_FOIL_VALUE HBVM(TEFLON_FOIL_BP)
+
+#define BARREL_BP 1
+#define BARREL_BT 6000
+#define BARREL_HEALTH HBHM(250)
+#define BARREL_SPLASHDAMAGE 40
+#define BARREL_SPLASHRADIUS 150
+#define BARREL_VALUE HBVM(BARREL_BP)
+
+#define LIGHT_BP 15
+#define LIGHT_BT 20000
+#define LIGHT_HEALTH HBHM(200)
+#define LIGHT_SPLASHDAMAGE 15
+#define LIGHT_SPLASHRADIUS 180
+#define LIGHT_VALUE HBVM(LIGHT_BP)
+
+#define COVER_BP 20
+#define COVER_BT 20000
+#define COVER_HEALTH HBHM(850)
+#define COVER_SPLASHDAMAGE 50
+#define COVER_SPLASHRADIUS 150
+#define COVER_VALUE HBVM(COVER_BP)
+
+#define COVER_STUMP_BP 15
+#define COVER_STUMP_BT 20000
+#define COVER_STUMP_HEALTH HBHM(650)
+#define COVER_STUMP_SPLASHDAMAGE 50
+#define COVER_STUMP_SPLASHRADIUS 150
+#define COVER_STUMP_VALUE HBVM(COVER_STUMP_BP)
+
+#define REFINERY_BP 5
+#define REFINERY_BT 18000
+#define REFINERY_HEALTH HBHM(350)
+#define REFINERY_SPLASHDAMAGE 50
+#define REFINERY_SPLASHRADIUS 300
+#define REFINERY_RADIUS "200"
+#define REFINERY_VALUE HBVM(REFINERY_BP)