diff options
Diffstat (limited to 'src/game/tremulous.h')
-rw-r--r-- | src/game/tremulous.h | 466 |
1 files changed, 466 insertions, 0 deletions
diff --git a/src/game/tremulous.h b/src/game/tremulous.h new file mode 100644 index 00000000..83f1c5ec --- /dev/null +++ b/src/game/tremulous.h @@ -0,0 +1,466 @@ +/* + * Portions Copyright (C) 2000-2001 Tim Angus + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the OSML - Open Source Modification License v1.0 as + * described in the file COPYING which is distributed with this source + * code. + * + * This program 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. + */ + + +/* + * 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)) + +#define ABUILDER_BUILD_REPEAT 500 +#define ABUILDER_CLAW_DMG ADM(25) +#define ABUILDER_CLAW_RANGE 32.0f +#define ABUILDER_CLAW_REPEAT 1000 +#define ABUILDER_BASE_DELAY 10000 +#define ABUILDER_ADV_DELAY 5000 + +#define SOLDIER_BITE_DMG ADM(100) +#define SOLDIER_BITE_RANGE 32.0f +#define SOLDIER_BITE_REPEAT 500 + +#define DRAGOON_CLAW_DMG ADM(75) +#define DRAGOON_CLAW_RANGE 32.0f +#define DRAGOON_CLAW_REPEAT 750 +#define DRAGOON_CLAW_U_REPEAT 750 +#define DRAGOON_POUNCE_DMG ADM(100) +#define DRAGOON_POUNCE_RANGE 48.0f +#define DRAGOON_POUNCE_SPEED 750 +#define DRAGOON_POUNCE_SPEED_MOD 0.75f +#define DRAGOON_POUNCE_TIME 1000 +#define DRAGOON_SLOWBLOB_DMG ADM(20) +#define DRAGOON_SLOWBLOB_REPEAT 1000 +#define DRAGOON_SLOWBLOB_SPEED 800.0f +#define DRAGOON_SLOWBLOB_SPEED_MOD 0.5f +#define DRAGOON_SLOWBLOB_TIME 5000 + +#define HYDRA_CLAW_DMG ADM(50) +#define HYDRA_CLAW_RANGE 32.0f +#define HYDRA_CLAW_REPEAT 500 +#define HYDRA_CLAW_U_REPEAT 500 +#define HYDRA_GRAB_RANGE 32.0f +#define HYDRA_GRAB_TIME 1000 +#define HYDRA_PCLOUD_DMG ADM(5) +#define HYDRA_PCLOUD_RANGE 200.0f +#define HYDRA_PCLOUD_REPEAT 1000 +#define HYDRA_PCLOUD_TIME 10000 + +#define CHIMERA_CLAW_DMG ADM(75) +#define CHIMERA_CLAW_RANGE 32.0f +#define CHIMERA_CLAW_REPEAT 400 +#define CHIMERA_CLAW_U_REPEAT 300 +#define CHIMERA_AREAZAP_DMG ADM(125) +#define CHIMERA_AREAZAP_RANGE 200.0f +#define CHIMERA_AREAZAP_REPEAT 1500 +#define CHIMERA_DIRECTZAP_DMG ADM(125) +#define CHIMERA_DIRECTZAP_RANGE 200.0f +#define CHIMERA_DIRECTZAP_REPEAT 1500 + +#define BMOFO_CLAW_DMG ADM(150) +#define BMOFO_CLAW_RANGE 32.0f +#define BMOFO_CLAW_REPEAT 750 +#define BMOFO_KNOCK_RANGE 200.0f +#define BMOFO_KNOCK_REPEAT 3000 +#define BMOFO_KOVER_TIME 2000 +#define BMOFO_GETUP_TIME 1000 +#define BMOFO_REGEN_RANGE 200.0f +#define BMOFO_REGEN_MOD 2.0f + + + +/* + * ALIEN classes + * + * _SPEED - fraction of Q3A run speed the class can move + * _TTE - time in msec for the class to evolve to another + * _REGEN - health per second regained + * + * ALIEN_HLTH_MODIFIER - overall health modifier for coarse tuning + * + */ + +#define ALIEN_HLTH_MODIFIER 1.0f +#define AHM(h) ((int)((float)h*ALIEN_HLTH_MODIFIER)) + +#define ABUILDER_SPEED 0.8f +#define ABUILDER_TTE 2000 +#define ABUILDER_VALUE 50 +#define ABUILDER_HEALTH AHM(50) +#define ABUILDER_REGEN 5 + +#define ABUILDER_UPG_SPEED 1.0f +#define ABUILDER_UPG_VALUE 120 +#define ABUILDER_UPG_HEALTH AHM(75) +#define ABUILDER_UPG_REGEN 7 + +#define SOLDIER_SPEED 1.5f +#define SOLDIER_TTE 2000 +#define SOLDIER_VALUE 50 +#define SOLDIER_HEALTH AHM(25) +#define SOLDIER_REGEN 2 + +#define DRAGOON_SPEED 1.5f +#define DRAGOON_TTE 3000 +#define DRAGOON_VALUE 100 +#define DRAGOON_HEALTH AHM(50) +#define DRAGOON_REGEN 5 + +#define DRAGOON_UPG_SPEED 1.5f +#define DRAGOON_UPG_TTE 3000 +#define DRAGOON_UPG_VALUE 120 +#define DRAGOON_UPG_HEALTH AHM(60) +#define DRAGOON_UPG_REGEN 6 + +#define HYDRA_SPEED 1.5f +#define HYDRA_TTE 3000 +#define HYDRA_VALUE 200 +#define HYDRA_HEALTH AHM(100) +#define HYDRA_REGEN 10 + +#define HYDRA_UPG_SPEED 1.5f +#define HYDRA_UPG_TTE 3000 +#define HYDRA_UPG_VALUE 240 +#define HYDRA_UPG_HEALTH AHM(120) +#define HYDRA_UPG_REGEN 12 + +#define CHIMERA_SPEED 1.3f +#define CHIMERA_TTE 3000 +#define CHIMERA_VALUE 300 +#define CHIMERA_HEALTH AHM(200) +#define CHIMERA_REGEN 15 + +#define CHIMERA_UPG_SPEED 1.3f +#define CHIMERA_UPG_TTE 3000 +#define CHIMERA_UPG_VALUE 360 +#define CHIMERA_UPG_HEALTH AHM(250) +#define CHIMERA_UPG_REGEN 20 + +#define BMOFO_SPEED 1.2f +#define BMOFO_VALUE 400 +#define BMOFO_HEALTH AHM(400) +#define BMOFO_REGEN 30 + + + +/* + * ALIEN buildables + * + * _BP - build points 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 CREEP_BASESIZE 360 + +#define ASPAWN_BP 100 +#define ASPAWN_HEALTH ABHM(500) +#define ASPAWN_REGEN 25 +#define ASPAWN_SPLASHDAMAGE 50 +#define ASPAWN_SPLASHRADIUS 50 +#define ASPAWN_CREEPSIZE 120 + +#define BARRICADE_BP 80 +#define BARRICADE_HEALTH ABHM(250) +#define BARRICADE_REGEN 50 +#define BARRICADE_SPLASHDAMAGE 50 +#define BARRICADE_SPLASHRADIUS 50 +#define BARRICADE_CREEPSIZE 120 + +#define BOOSTER_BP 120 +#define BOOSTER_HEALTH ABHM(200) +#define BOOSTER_REGEN 10 +#define BOOSTER_SPLASHDAMAGE 50 +#define BOOSTER_SPLASHRADIUS 50 +#define BOOSTER_CREEPSIZE 120 +#define BOOSTER_INTERVAL 30000 //time in msec between uses (per player) + +#define ACIDTUBE_BP 50 +#define ACIDTUBE_HEALTH ABHM(100) +#define ACIDTUBE_REGEN 10 +#define ACIDTUBE_SPLASHDAMAGE 50 +#define ACIDTUBE_SPLASHRADIUS 200 +#define ACIDTUBE_CREEPSIZE 120 +#define ACIDTUBE_RANGE 200.0f +#define ACIDTUBE_REPEAT 10000 + +#define TRAPPER_BP 150 +#define TRAPPER_HEALTH ABHM(80) +#define TRAPPER_REGEN 8 +#define TRAPPER_SPLASHDAMAGE 20 +#define TRAPPER_SPLASHRADIUS 100 +#define TRAPPER_CREEPSIZE 30 +#define TRAPPER_RANGE 400 +#define TRAPPER_REPEAT 1000 +#define LOCKBLOB_SPEED 500 +#define LOCKBLOB_DOT 0.85f // max angle = acos( LOCKBLOB_DOT ) + +#define OVERMIND_BP 0 +#define OVERMIND_HEALTH ABHM(1000) +#define OVERMIND_REGEN 50 +#define OVERMIND_SPLASHDAMAGE 100 +#define OVERMIND_SPLASHRADIUS 300 +#define OVERMIND_CREEPSIZE 120 +#define OVERMIND_ATTACK_RANGE 150.0f +#define OVERMIND_ATTACK_REPEAT 1000 + +#define HOVEL_BP 80 +#define HOVEL_HEALTH ABHM(750) +#define HOVEL_REGEN 150 +#define HOVEL_SPLASHDAMAGE 20 +#define HOVEL_SPLASHRADIUS 200 +#define HOVEL_CREEPSIZE 120 + +#define OBANK_BP 80 +#define OBANK_HEALTH ABHM(100) +#define OBANK_REGEN 10 +#define OBANK_SPLASHDAMAGE 20 +#define OBANK_SPLASHRADIUS 100 +#define OBANK_CREEPSIZE 120 + + + +/* + * ALIEN misc + * + * ALIENSENSE_RANGE - the distance alien sense is useful for + * + */ + +#define ALIENSENSE_RANGE 1000.0f + + + +/* + * 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 RIFLE_CLIPSIZE 30 +#define RIFLE_SPAWNCLIPS 3 +#define RIFLE_MAXCLIPS 3 +#define RIFLE_REPEAT 100 +#define RIFLE_RELOAD 2000 +#define RIFLE_PRICE 100 +#define RIFLE_SPREAD 200 +#define RIFLE_DMG HDM(7) + +#define CHAINGUN_BULLETS 300 +#define CHAINGUN_REPEAT 50 +#define CHAINGUN_PRICE 200 +#define CHAINGUN_SPREAD 1200 +#define CHAINGUN_DMG HDM(14) + +#define FLAMER_GAS 400 +#define FLAMER_REPEAT 150 +#define FLAMER_PRICE 300 +#define FLAMER_DMG HDM(25) +#define FLAMER_RADIUS 50 +#define FLAMER_LIFETIME 1000 +#define FLAMER_SPEED 200.0f +#define FLAMER_LAG 0.5f //the amount of player velocity that is added to the fireball + +#define MDRIVER_CLIPSIZE 5 +#define MDRIVER_SPAWNCLIPS 2 +#define MDRIVER_MAXCLIPS 3 +#define MDRIVER_PRICE 300 +#define MDRIVER_DMG HDM(50) +#define MDRIVER_REPEAT 1000 +#define MDRIVER_RELOAD 2000 + +#define PRIFLE_CLIPS 50 +#define PRIFLE_SPAWNCLIPS 3 +#define PRIFLE_MAXCLIPS 3 +#define PRIFLE_PRICE 250 +#define PRIFLE_REPEAT 50 +#define PRIFLE_RELOAD 2000 +#define PRIFLE_DMG HDM(20) +#define PRIFLE_SPEED 1500 + +#define LCANON_PRICE 400 +#define LCANON_AMMO 30 +#define LCANON_REPEAT 500 +#define LCANON_CHARGEREPEAT 1000 +#define LCANON_RELOAD 2000 +#define LCANON_DAMAGE HDM(200) +#define LCANON_SECONDARY_DAMAGE 20 +#define LCANON_SPEED 250 +#define LCANON_CHARGE_TIME 2000 + +#define LASGUN_PRICE 200 +#define LASGUN_AMMO 300 +#define LASGUN_REPEAT 100 +#define LASGUN_RELOAD 2000 +#define LASGUN_DAMAGE HDM(10) + +#define PAINSAW_PRICE 100 +#define PAINSAW_REPEAT 75 +#define PAINSAW_DAMAGE HDM(5) +#define PAINSAW_RANGE 32 + +#define HBUILD_PRICE 100 +#define HBUILD_REPEAT 1000 +#define HBUILD_DELAY 10000 + +#define HBUILD2_PRICE 200 +#define HBUILD2_REPEAT 1000 +#define HBUILD2_DELAY 5000 + + + +/* + * HUMAN upgrades + */ + +#define CHESTARMOUR_PRICE 75 + +#define LIMBARMOUR_PRICE 50 + +#define HELMET_PRICE 90 +#define HELMET_RANGE 1000.0f + +#define ANTITOXIN_PRICE 20 + +#define BATTPACK_PRICE 100 +#define BATTPACK_MODIFIER 2.0f //modifier for extra energy storage available + +#define JETPACK_PRICE 120 +#define JETPACK_FLOAT_SPEED 48.0f //up movement speed +#define JETPACK_SINK_SPEED 96.0f //down movement speed + +#define BSUIT_PRICE 200 + +#define MGCLIP_PRICE 10 + +#define CGAMMO_PRICE 10 + +#define GAS_PRICE 10 + + + +/* + * HUMAN buildables + * + * _BP - build points 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 REACTOR_BASESIZE 1000 +#define REPEATER_BASESIZE 500 +#define HUMAN_DETONATION_DELAY 5000 + +#define HSPAWN_BP 100 +#define HSPAWN_HEALTH HBHM(500) +#define HSPAWN_SPLASHDAMAGE 50 +#define HSPAWN_SPLASHRADIUS 100 + +#define MEDISTAT_BP 80 +#define MEDISTAT_HEALTH HBHM(200) +#define MEDISTAT_SPLASHDAMAGE 50 +#define MEDISTAT_SPLASHRADIUS 100 +#define MAX_MEDISTAT_CLIENTS 1 + +#define ADVMEDISTAT_BP 120 +#define ADVMEDISTAT_HEALTH HBHM(300) +#define ADVMEDISTAT_SPLASHDAMAGE 75 +#define ADVMEDISTAT_SPLASHRADIUS 100 +#define MAX_ADVMEDISTAT_CLIENTS 3 + +#define MGTURRET_BP 80 +#define MGTURRET_HEALTH HBHM(100) +#define MGTURRET_SPLASHDAMAGE 50 +#define MGTURRET_SPLASHRADIUS 100 +#define MGTURRET_ANGULARSPEED 20 //degrees/think ~= 200deg/sec +#define MGTURRET_ACCURACYTOLERANCE MGTURRET_ANGULARSPEED / 2 //angular difference for turret to fire +#define MGTURRET_VERTICALCAP 30 // +/- maximum pitch +#define MGTURRET_REPEAT 50 +#define MGTURRET_RANGE 300 + +#define TESLAGEN_BP 100 +#define TESLAGEN_HEALTH HBHM(200) +#define TESLAGEN_SPLASHDAMAGE 50 +#define TESLAGEN_SPLASHRADIUS 100 +#define TESLAGEN_REPEAT 150 +#define TESLAGEN_RANGE 1500 + +#define DC_BP 80 +#define DC_HEALTH HBHM(150) +#define DC_SPLASHDAMAGE 50 +#define DC_SPLASHRADIUS 100 + +#define BANK_BP 80 +#define BANK_HEALTH HBHM(100) +#define BANK_SPLASHDAMAGE 50 +#define BANK_SPLASHRADIUS 100 + +#define ARMOURY_BP 100 +#define ARMOURY_HEALTH HBHM(175) +#define ARMOURY_SPLASHDAMAGE 50 +#define ARMOURY_SPLASHRADIUS 100 + +#define REACTOR_BP 0 +#define REACTOR_HEALTH HBHM(1000) +#define REACTOR_SPLASHDAMAGE 200 +#define REACTOR_SPLASHRADIUS 300 + +#define REPEATER_BP 100 +#define REPEATER_HEALTH HBHM(200) +#define REPEATER_SPLASHDAMAGE 50 +#define REPEATER_SPLASHRADIUS 100 + +#define ENERGY_REFIL_TIME 500 //1/2 second between every clip refil + +#define FLOATMINE_BP 50 +#define FLOATMINE_HEALTH HBHM(10) +#define FLOATMINE_SPLASHDAMAGE 250 +#define FLOATMINE_SPLASHRADIUS 500 + +/* + * HUMAN misc + */ + +#define HUMAN_JOG_MODIFIER 0.8f +#define HUMAN_BACK_MODIFIER 0.5f +#define HUMAN_SIDE_MODIFIER 0.75f |