summaryrefslogtreecommitdiff
path: root/src/game/tremulous.h
diff options
context:
space:
mode:
authorIronClawTrem <louie.nutman@gmail.com>2020-02-16 03:40:06 +0000
committerIronClawTrem <louie.nutman@gmail.com>2020-02-16 03:40:06 +0000
commit425decdf7e9284d15aa726e3ae96b9942fb0e3ea (patch)
tree6c0dd7edfefff1be7b9e75fe0b3a0a85fe1595f3 /src/game/tremulous.h
parentccb0b2e4d6674a7a00c9bf491f08fc73b6898c54 (diff)
create tremded branch
Diffstat (limited to 'src/game/tremulous.h')
-rw-r--r--src/game/tremulous.h424
1 files changed, 239 insertions, 185 deletions
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
index 423d465..f5f5e16 100644
--- a/src/game/tremulous.h
+++ b/src/game/tremulous.h
@@ -1,13 +1,14 @@
/*
===========================================================================
Copyright (C) 1999-2005 Id Software, Inc.
-Copyright (C) 2000-2006 Tim Angus
+Copyright (C) 2000-2013 Darklegion Development
+Copyright (C) 2015-2019 GrangerHub
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,
+published by the Free Software Foundation; either version 3 of the License,
or (at your option) any later version.
Tremulous is distributed in the hope that it will be
@@ -16,11 +17,13 @@ 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
+along with Tremulous; if not, see <https://www.gnu.org/licenses/>
+
===========================================================================
*/
+#ifndef _TREMULOUS_H_
+#define _TREMULOUS_H_
/*
* ALIEN weapons
@@ -41,86 +44,101 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define ABUILDER_CLAW_WIDTH 4.0f
#define ABUILDER_CLAW_REPEAT 1000
#define ABUILDER_CLAW_K_SCALE 1.0f
-#define ABUILDER_BASE_DELAY 17000
-#define ABUILDER_ADV_DELAY 12000
#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 5000
+#define ABUILDER_BLOB_TIME 2000
-#define LEVEL0_BITE_DMG ADM(48)
+#define LEVEL0_BITE_DMG ADM(36)
#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 LEVEL1_CLAW_DMG ADM(32)
-#define LEVEL1_CLAW_RANGE 96.0f
+#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 64.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 450
+#define LEVEL1_GRAB_U_TIME 300
#define LEVEL1_PCLOUD_DMG ADM(4)
-#define LEVEL1_PCLOUD_RANGE 200.0f
+#define LEVEL1_PCLOUD_RANGE 120.0f
#define LEVEL1_PCLOUD_REPEAT 2000
#define LEVEL1_PCLOUD_TIME 10000
-#define LEVEL1_PCLOUD_BOOST_TIME 5000
-#define LEVEL1_REGEN_RANGE 200.0f
#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 LEVEL2_CLAW_DMG ADM(40)
-#define LEVEL2_CLAW_RANGE 96.0f
-#define LEVEL2_CLAW_WIDTH 12.0f
+#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
-#define LEVEL2_AREAZAP_DMG ADM(80)
+#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 3
+#define LEVEL2_AREAZAP_MAX_TARGETS 5
#define LEVEL2_WALLJUMP_MAXSPEED 1000.0f
#define LEVEL3_CLAW_DMG ADM(80)
-#define LEVEL3_CLAW_RANGE 96.0f
-#define LEVEL3_CLAW_WIDTH 16.0f
-#define LEVEL3_CLAW_REPEAT 700
+#define LEVEL3_CLAW_RANGE 80.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 600
+#define LEVEL3_CLAW_U_REPEAT 800
#define LEVEL3_CLAW_U_K_SCALE 1.0f
#define LEVEL3_POUNCE_DMG ADM(100)
-#define LEVEL3_POUNCE_RANGE 72.0f
-#define LEVEL3_POUNCE_WIDTH 16.0f
-#define LEVEL3_POUNCE_SPEED 700
-#define LEVEL3_POUNCE_UPG_SPEED 800
-#define LEVEL3_POUNCE_SPEED_MOD 0.75f
-#define LEVEL3_POUNCE_CHARGE_TIME 700
-#define LEVEL3_POUNCE_TIME 400
+#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 700 // Dragoon pounce jump power
+#define LEVEL3_POUNCE_JUMP_MAG_UPG 800 // Adv. Dragoon pounce jump power
#define LEVEL3_BOUNCEBALL_DMG ADM(110)
-#define LEVEL3_BOUNCEBALL_REPEAT 1000
+#define LEVEL3_BOUNCEBALL_REPEAT 1200
#define LEVEL3_BOUNCEBALL_SPEED 1000.0f
+#define LEVEL3_BOUNCEBALL_RADIUS 75
+#define LEVEL3_BOUNCEBALL_REGEN 15000 // msec until new barb
#define LEVEL4_CLAW_DMG ADM(100)
-#define LEVEL4_CLAW_RANGE 128.0f
-#define LEVEL4_CLAW_WIDTH 20.0f
-#define LEVEL4_CLAW_REPEAT 750
+#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_CHARGE_SPEED 2.0f
-#define LEVEL4_CHARGE_TIME 3000
-#define LEVEL4_CHARGE_CHARGE_TIME 1500
-#define LEVEL4_MIN_CHARGE_TIME 750
-#define LEVEL4_CHARGE_CHARGE_RATIO (LEVEL4_CHARGE_TIME/LEVEL4_CHARGE_CHARGE_TIME)
-#define LEVEL4_CHARGE_REPEAT 1000
-#define LEVEL4_CHARGE_DMG ADM(110)
+#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
/*
* ALIEN classes
@@ -138,68 +156,66 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define ALIEN_VALUE_MODIFIER 1.0f
#define AVM(h) ((int)((float)h*ALIEN_VALUE_MODIFIER))
-#define ABUILDER_SPEED 0.8f
-#define ABUILDER_VALUE AVM(200)
+#define ABUILDER_SPEED 0.9f
+#define ABUILDER_VALUE AVM(240)
#define ABUILDER_HEALTH AHM(50)
-#define ABUILDER_REGEN 2
+#define ABUILDER_REGEN (0.04f * ABUILDER_HEALTH)
#define ABUILDER_COST 0
-#define ABUILDER_UPG_SPEED 1.0f
-#define ABUILDER_UPG_VALUE AVM(250)
+#define ABUILDER_UPG_SPEED 0.9f
+#define ABUILDER_UPG_VALUE AVM(300)
#define ABUILDER_UPG_HEALTH AHM(75)
-#define ABUILDER_UPG_REGEN 3
+#define ABUILDER_UPG_REGEN (0.04f * ABUILDER_UPG_HEALTH)
#define ABUILDER_UPG_COST 0
-#define LEVEL0_SPEED 1.3f
-#define LEVEL0_VALUE AVM(175)
+#define LEVEL0_SPEED 1.4f
+#define LEVEL0_VALUE AVM(180)
#define LEVEL0_HEALTH AHM(25)
-#define LEVEL0_REGEN 1
+#define LEVEL0_REGEN (0.05f * LEVEL0_HEALTH)
#define LEVEL0_COST 0
#define LEVEL1_SPEED 1.25f
-#define LEVEL1_VALUE AVM(225)
-#define LEVEL1_HEALTH AHM(75)
-#define LEVEL1_REGEN 2
+#define LEVEL1_VALUE AVM(270)
+#define LEVEL1_HEALTH AHM(60)
+#define LEVEL1_REGEN (0.03f * LEVEL1_HEALTH)
#define LEVEL1_COST 1
#define LEVEL1_UPG_SPEED 1.25f
-#define LEVEL1_UPG_VALUE AVM(275)
-#define LEVEL1_UPG_HEALTH AHM(100)
-#define LEVEL1_UPG_REGEN 3
+#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 LEVEL2_SPEED 1.2f
-#define LEVEL2_VALUE AVM(350)
+#define LEVEL2_VALUE AVM(420)
#define LEVEL2_HEALTH AHM(150)
-#define LEVEL2_REGEN 4
+#define LEVEL2_REGEN (0.03f * LEVEL2_HEALTH)
#define LEVEL2_COST 1
#define LEVEL2_UPG_SPEED 1.2f
-#define LEVEL2_UPG_VALUE AVM(450)
+#define LEVEL2_UPG_VALUE AVM(540)
#define LEVEL2_UPG_HEALTH AHM(175)
-#define LEVEL2_UPG_REGEN 5
+#define LEVEL2_UPG_REGEN (0.03f * LEVEL2_UPG_HEALTH)
#define LEVEL2_UPG_COST 1
#define LEVEL3_SPEED 1.1f
-#define LEVEL3_VALUE AVM(500)
+#define LEVEL3_VALUE AVM(600)
#define LEVEL3_HEALTH AHM(200)
-#define LEVEL3_REGEN 6
+#define LEVEL3_REGEN (0.03f * LEVEL3_HEALTH)
#define LEVEL3_COST 1
#define LEVEL3_UPG_SPEED 1.1f
-#define LEVEL3_UPG_VALUE AVM(600)
+#define LEVEL3_UPG_VALUE AVM(720)
#define LEVEL3_UPG_HEALTH AHM(250)
-#define LEVEL3_UPG_REGEN 7
+#define LEVEL3_UPG_REGEN (0.03f * LEVEL3_UPG_HEALTH)
#define LEVEL3_UPG_COST 1
#define LEVEL4_SPEED 1.2f
-#define LEVEL4_VALUE AVM(800)
-#define LEVEL4_HEALTH AHM(400)
-#define LEVEL4_REGEN 7
+#define LEVEL4_VALUE AVM(960)
+#define LEVEL4_HEALTH AHM(350)
+#define LEVEL4_REGEN (0.025f * LEVEL4_HEALTH)
#define LEVEL4_COST 2
-
-
/*
* ALIEN buildables
*
@@ -216,6 +232,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#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
@@ -223,44 +241,53 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#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 50
+#define ASPAWN_SPLASHRADIUS 100
#define ASPAWN_CREEPSIZE 120
-#define ASPAWN_VALUE 150
+#define ASPAWN_VALUE ABVM(ASPAWN_BP)
-#define BARRICADE_BP 10
+#define BARRICADE_BP 8
#define BARRICADE_BT 20000
-#define BARRICADE_HEALTH ABHM(200)
+#define BARRICADE_HEALTH ABHM(300)
#define BARRICADE_REGEN 14
#define BARRICADE_SPLASHDAMAGE 50
-#define BARRICADE_SPLASHRADIUS 50
+#define BARRICADE_SPLASHRADIUS 100
#define BARRICADE_CREEPSIZE 120
+#define BARRICADE_SHRINKPROP 0.25f
+#define BARRICADE_SHRINKTIMEOUT 500
+#define BARRICADE_VALUE ABVM(BARRICADE_BP)
#define BOOSTER_BP 12
#define BOOSTER_BT 15000
#define BOOSTER_HEALTH ABHM(150)
#define BOOSTER_REGEN 8
#define BOOSTER_SPLASHDAMAGE 50
-#define BOOSTER_SPLASHRADIUS 50
+#define BOOSTER_SPLASHRADIUS 100
#define BOOSTER_CREEPSIZE 120
-#define BOOSTER_INTERVAL 30000 //time in msec between uses (per player)
-#define BOOSTER_REGEN_MOD 2.0f
-#define BOOST_TIME 30000
+#define BOOSTER_REGEN_MOD 3.0f
+#define BOOSTER_VALUE ABVM(BOOSTER_BP)
+#define BOOST_TIME 20000
+#define BOOST_WARN_TIME 15000
#define ACIDTUBE_BP 8
#define ACIDTUBE_BT 15000
#define ACIDTUBE_HEALTH ABHM(125)
#define ACIDTUBE_REGEN 10
-#define ACIDTUBE_SPLASHDAMAGE 6
-#define ACIDTUBE_SPLASHRADIUS 300
+#define ACIDTUBE_SPLASHDAMAGE 50
+#define ACIDTUBE_SPLASHRADIUS 100
#define ACIDTUBE_CREEPSIZE 120
+#define ACIDTUBE_DAMAGE 8
#define ACIDTUBE_RANGE 300.0f
-#define ACIDTUBE_REPEAT 3000
-#define ACIDTUBE_K_SCALE 1.0f
+#define ACIDTUBE_REPEAT 300
+#define ACIDTUBE_REPEAT_ANIM 2000
+#define ACIDTUBE_VALUE ABVM(ACIDTUBE_BP)
#define HIVE_BP 12
#define HIVE_BT 20000
@@ -269,12 +296,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define HIVE_SPLASHDAMAGE 30
#define HIVE_SPLASHRADIUS 200
#define HIVE_CREEPSIZE 120
-#define HIVE_RANGE 400.0f
-#define HIVE_REPEAT 5000
+#define HIVE_SENSE_RANGE 500.0f
+#define HIVE_LIFETIME 3000
+#define HIVE_REPEAT 3000
#define HIVE_K_SCALE 1.0f
-#define HIVE_DMG 50
-#define HIVE_SPEED 240.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 8
#define TRAPPER_BT 12000
@@ -285,7 +314,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define TRAPPER_CREEPSIZE 30
#define TRAPPER_RANGE 400
#define TRAPPER_REPEAT 1000
-#define TRAPPER_K_SCALE 1.0f
+#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 )
@@ -300,17 +329,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define OVERMIND_CREEPSIZE 120
#define OVERMIND_ATTACK_RANGE 150.0f
#define OVERMIND_ATTACK_REPEAT 1000
-#define OVERMIND_VALUE 300
-
-#define HOVEL_BP 0
-#define HOVEL_BT 15000
-#define HOVEL_HEALTH ABHM(375)
-#define HOVEL_REGEN 20
-#define HOVEL_SPLASHDAMAGE 20
-#define HOVEL_SPLASHRADIUS 200
-#define HOVEL_CREEPSIZE 120
-
-
+#define OVERMIND_VALUE ABVM(30)
/*
* ALIEN misc
@@ -320,14 +339,21 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define ALIENSENSE_RANGE 1000.0f
+#define REGEN_BOOST_RANGE 200.0f
-#define ALIEN_POISON_TIME 5000
+#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_SPAWN_REPEAT_TIME 10000
#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 9
+#define ALIEN_MAX_CREDITS (ALIEN_MAX_FRAGS*ALIEN_CREDITS_PER_KILL)
+#define ALIEN_CREDITS_PER_KILL 400
+#define ALIEN_TK_SUICIDE_PENALTY 350
/*
* HUMAN weapons
@@ -347,7 +373,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define BLASTER_K_SCALE 1.0f
#define BLASTER_SPREAD 200
#define BLASTER_SPEED 1400
-#define BLASTER_DMG HDM(9)
+#define BLASTER_DMG HDM(10)
+#define BLASTER_SIZE 5
#define RIFLE_CLIPSIZE 30
#define RIFLE_MAXCLIPS 6
@@ -361,8 +388,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define PAINSAW_PRICE 100
#define PAINSAW_REPEAT 75
#define PAINSAW_K_SCALE 1.0f
-#define PAINSAW_DAMAGE HDM(15)
-#define PAINSAW_RANGE 40.0f
+#define PAINSAW_DAMAGE HDM(11)
+#define PAINSAW_RANGE 64.0f
+#define PAINSAW_WIDTH 0.0f
+#define PAINSAW_HEIGHT 8.0f
#define GRENADE_PRICE 200
#define GRENADE_REPEAT 0
@@ -373,13 +402,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define SHOTGUN_PRICE 150
#define SHOTGUN_SHELLS 8
-#define SHOTGUN_PELLETS 8 //used to sync server and client side
+#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 900
-#define SHOTGUN_DMG HDM(7)
+#define SHOTGUN_SPREAD 700
+#define SHOTGUN_DMG HDM(5)
+#define SHOTGUN_RANGE (8192 * 12)
#define LASGUN_PRICE 250
#define LASGUN_AMMO 200
@@ -391,7 +421,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define MDRIVER_PRICE 350
#define MDRIVER_CLIPSIZE 5
#define MDRIVER_MAXCLIPS 4
-#define MDRIVER_DMG HDM(38)
+#define MDRIVER_DMG HDM(40)
#define MDRIVER_REPEAT 1000
#define MDRIVER_K_SCALE 1.0f
#define MDRIVER_RELOAD 2000
@@ -400,64 +430,66 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define CHAINGUN_BULLETS 300
#define CHAINGUN_REPEAT 80
#define CHAINGUN_K_SCALE 1.0f
-#define CHAINGUN_SPREAD 1000
+#define CHAINGUN_SPREAD 900
#define CHAINGUN_DMG HDM(6)
-#define PRIFLE_PRICE 400
-#define PRIFLE_CLIPS 50
-#define PRIFLE_MAXCLIPS 4
+#define FLAMER_PRICE 400
+#define FLAMER_GAS 200
+#define FLAMER_REPEAT 200
+#define FLAMER_K_SCALE 2.0f
+#define FLAMER_DMG HDM(20)
+#define FLAMER_SPLASHDAMAGE HDM(10)
+#define FLAMER_RADIUS 50 // splash radius
+#define FLAMER_SIZE 15 // missile bounding box
+#define FLAMER_LIFETIME 700.0f
+#define FLAMER_SPEED 500.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 1000
-
-#define FLAMER_PRICE 450
-#define FLAMER_GAS 150
-#define FLAMER_REPEAT 200
-#define FLAMER_K_SCALE 1.0f
-#define FLAMER_DMG HDM(20)
-#define FLAMER_RADIUS 50
-#define FLAMER_LIFETIME 800.0f
-#define FLAMER_SPEED 200.0f
-#define FLAMER_LAG 0.65f //the amount of player velocity that is added to the fireball
+#define PRIFLE_SPEED 1200
+#define PRIFLE_SIZE 5
#define LCANNON_PRICE 600
-#define LCANNON_AMMO 90
-#define LCANNON_REPEAT 500
+#define LCANNON_AMMO 80
#define LCANNON_K_SCALE 1.0f
-#define LCANNON_CHARGEREPEAT 1000
-#define LCANNON_RELOAD 2000
+#define LCANNON_REPEAT 500
+#define LCANNON_RELOAD 0
#define LCANNON_DAMAGE HDM(265)
-#define LCANNON_RADIUS 150
-#define LCANNON_SECONDARY_DAMAGE HDM(27)
-#define LCANNON_SECONDARY_RADIUS 75
-#define LCANNON_SPEED 350
-#define LCANNON_CHARGE_TIME 2000
-#define LCANNON_TOTAL_CHARGE 255
-#define LCANNON_MIN_CHARGE 50
+#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 75 // 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 HBUILD_PRICE 0
#define HBUILD_REPEAT 1000
-#define HBUILD_DELAY 17500
#define HBUILD_HEALRATE 18
-#define HBUILD2_PRICE 0
-#define HBUILD2_REPEAT 1000
-#define HBUILD2_DELAY 15000
-
-
-
/*
* HUMAN upgrades
*/
#define LIGHTARMOUR_PRICE 70
#define LIGHTARMOUR_POISON_PROTECTION 1
+#define LIGHTARMOUR_PCLOUD_PROTECTION 1000
#define HELMET_PRICE 90
#define HELMET_RANGE 1000.0f
-#define HELMET_POISON_PROTECTION 2
+#define HELMET_POISON_PROTECTION 1
+#define HELMET_PCLOUD_PROTECTION 1000
#define MEDKIT_PRICE 0
@@ -471,19 +503,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define JETPACK_DISABLE_CHANCE 0.3f
#define BSUIT_PRICE 400
-#define BSUIT_POISON_PROTECTION 4
-
-#define MGCLIP_PRICE 0
-
-#define CGAMMO_PRICE 0
-
-#define GAS_PRICE 0
+#define BSUIT_POISON_PROTECTION 3
+#define BSUIT_PCLOUD_PROTECTION 3000
#define MEDKIT_POISON_IMMUNITY_TIME 0
#define MEDKIT_STARTUP_TIME 4000
#define MEDKIT_STARTUP_SPEED 5
-
/*
* HUMAN buildables
*
@@ -492,7 +518,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* _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
+ * REACTOR_BASESIZE - the maximum distance a buildable can be from a reactor
* REPEATER_BASESIZE - the maximum distance a buildable can be from a repeater
* HUMAN_BHLTH_MODIFIER - overall health modifier for coarse tuning
*
@@ -500,6 +526,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#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
@@ -510,31 +538,30 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define HSPAWN_HEALTH HBHM(310)
#define HSPAWN_SPLASHDAMAGE 50
#define HSPAWN_SPLASHRADIUS 100
-#define HSPAWN_VALUE 1
+#define HSPAWN_VALUE HBVM(HSPAWN_BP)
#define MEDISTAT_BP 8
#define MEDISTAT_BT 10000
#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 10000
#define MGTURRET_HEALTH HBHM(190)
#define MGTURRET_SPLASHDAMAGE 100
#define MGTURRET_SPLASHRADIUS 100
-#define MGTURRET_ANGULARSPEED 8 //degrees/think ~= 200deg/sec
-#define MGTURRET_ACCURACYTOLERANCE MGTURRET_ANGULARSPEED / 1.5f //angular difference for turret to fire
+#define MGTURRET_ANGULARSPEED 12
+#define MGTURRET_ACCURACY_TO_FIRE 0
#define MGTURRET_VERTICALCAP 30 // +/- maximum pitch
-#define MGTURRET_REPEAT 100
+#define MGTURRET_REPEAT 150
#define MGTURRET_K_SCALE 1.0f
-#define MGTURRET_RANGE 300.0f
+#define MGTURRET_RANGE 400.0f
#define MGTURRET_SPREAD 200
-#define MGTURRET_DMG HDM(4)
-#define MGTURRET_DCC_ANGULARSPEED 10
-#define MGTURRET_DCC_ACCURACYTOLERANCE MGTURRET_DCC_ANGULARSPEED / 1.5f
-#define MGTURRET_GRAB_ANGULARSPEED 3
-#define MGTURRET_GRAB_ACCURACYTOLERANCE MGTURRET_GRAB_ANGULARSPEED / 1.5f
+#define MGTURRET_DMG HDM(8)
+#define MGTURRET_SPINUP_TIME 750 // time between target sighted and fire
+#define MGTURRET_VALUE HBVM(MGTURRET_BP)
#define TESLAGEN_BP 10
#define TESLAGEN_BT 15000
@@ -543,20 +570,26 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define TESLAGEN_SPLASHRADIUS 100
#define TESLAGEN_REPEAT 250
#define TESLAGEN_K_SCALE 4.0f
-#define TESLAGEN_RANGE 250
-#define TESLAGEN_DMG HDM(9)
+#define TESLAGEN_RANGE 200
+#define TESLAGEN_DMG HDM(10)
+#define TESLAGEN_VALUE HBVM(TESLAGEN_BP)
#define DC_BP 8
#define DC_BT 10000
#define DC_HEALTH HBHM(190)
#define DC_SPLASHDAMAGE 50
#define DC_SPLASHRADIUS 100
+#define DC_ATTACK_PERIOD 10000 // 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(280)
+#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
@@ -566,14 +599,17 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define REACTOR_ATTACK_RANGE 100.0f
#define REACTOR_ATTACK_REPEAT 1000
#define REACTOR_ATTACK_DAMAGE 40
-#define REACTOR_VALUE 2
+#define REACTOR_ATTACK_DCC_REPEAT 1000
+#define REACTOR_ATTACK_DCC_RANGE 150.0f
+#define REACTOR_ATTACK_DCC_DAMAGE 40
+#define REACTOR_VALUE HBVM(30)
-#define REPEATER_BP 0
+#define REPEATER_BP 4
#define REPEATER_BT 10000
#define REPEATER_HEALTH HBHM(250)
#define REPEATER_SPLASHDAMAGE 50
#define REPEATER_SPLASHRADIUS 100
-#define REPEATER_INACTIVE_TIME 90000
+#define REPEATER_VALUE HBVM(REPEATER_BP)
/*
* HUMAN misc
@@ -583,13 +619,33 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define HUMAN_JOG_MODIFIER 1.0f
#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 25
+#define STAMINA_STOP_RESTORE 30
#define STAMINA_WALK_RESTORE 15
-#define STAMINA_SPRINT_TAKE 8
-#define STAMINA_LARMOUR_TAKE 4
+#define STAMINA_MEDISTAT_RESTORE 30 // stacked on STOP or WALK
+#define STAMINA_SPRINT_TAKE 6
+#define STAMINA_JUMP_TAKE 250
+#define STAMINA_DODGE_TAKE 250
+#define STAMINA_MAX 1000
+#define STAMINA_BREATHING_LEVEL 0
+#define STAMINA_SLOW_LEVEL -500
+#define STAMINA_BLACKOUT_LEVEL -800
#define HUMAN_SPAWN_REPEAT_TIME 10000
+#define HUMAN_REGEN_DAMAGE_TIME 2000 //msec since damage before dcc repairs
+
+#define HUMAN_MAX_CREDITS 2000
+#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
/*
* Misc
@@ -599,29 +655,27 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#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 HUMAN_MAXED 900 //a human with a strong selection of weapons/upgrades
-#define HUMAN_MAX_CREDITS 2000
-#define ALIEN_MAX_KILLS 9
-#define ALIEN_MAX_SINGLE_KILLS 3
-
-#define FREEKILL_PERIOD 120000 //msec
-#define FREEKILL_ALIEN 1
+#define DEFAULT_FREEKILL_PERIOD "120" //seconds
+#define FREEKILL_ALIEN ALIEN_CREDITS_PER_KILL
#define FREEKILL_HUMAN LEVEL0_VALUE
-#define DEFAULT_ALIEN_BUILDPOINTS "130"
-#define DEFAULT_ALIEN_STAGE2_THRESH "20"
-#define DEFAULT_ALIEN_STAGE3_THRESH "40"
+#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 "130"
-#define DEFAULT_HUMAN_STAGE2_THRESH "20"
-#define DEFAULT_HUMAN_STAGE3_THRESH "40"
+#define DEFAULT_HUMAN_BUILDPOINTS "100"
+#define DEFAULT_HUMAN_QUEUE_TIME "8000"
+#define DEFAULT_HUMAN_REPEATER_BUILDPOINTS "20"
+#define DEFAULT_HUMAN_REPEATER_QUEUE_TIME "2000"
+#define DEFAULT_HUMAN_REPEATER_MAX_ZONES "500"
+#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
//do to increment the stage kill counters
+
+#define MAXIMUM_BUILD_TIME 20000 // used for pie timer
-// g_suddenDeathMode settings
-#define SDMODE_BP 0
-#define SDMODE_NO_BUILD 1
-#define SDMODE_SELECTIVE 2
-#define SDMODE_NO_DECON 3
+#endif