From b74ecca6018899011380bf807a22b4df92dabf39 Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Mon, 31 Jan 2005 23:50:01 +0000 Subject: * An overmind is now required for aliens to upgrade * Damaged aliens now need a couple of seconds before they can regenerate * Very slightly increased human buildable health in general * Increased armoury and turret health a wee bit more significantly * Classes which suicide/teamkill don't get taken into account for credit anymore * Reduced chaingun damage slightly * Increased angular speed of turrets --- src/cgame/cg_servercmds.c | 6 ++++++ src/game/bg_misc.c | 2 +- src/game/bg_public.h | 1 + src/game/g_active.c | 3 ++- src/game/g_cmds.c | 7 +++++++ src/game/g_combat.c | 5 ++++- src/game/g_main.c | 4 ++-- src/game/tremulous.h | 13 +++++++------ 8 files changed, 30 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c index 3c5b9f71..627642c2 100644 --- a/src/cgame/cg_servercmds.c +++ b/src/cgame/cg_servercmds.c @@ -769,6 +769,12 @@ void CG_Menu( int menu ) trap_SendConsoleCommand( "menu tremulous_alien_dialog\n" ); break; + case MN_A_NOOVMND_EVOLVE: + trap_Cvar_Set( "ui_dialog", "There is no Overmind. An Overmind must be built to allow " + "you to upgrade." ); + trap_SendConsoleCommand( "menu tremulous_alien_dialog\n" ); + break; + case MN_A_HOVEL_OCCUPIED: trap_Cvar_Set( "ui_dialog", "This Hovel is occupied by another builder. Please find or build " "another." ); diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 06e41d76..807b8a3a 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -1806,7 +1806,7 @@ classAttributes_t bg_classList[ ] = 1.1f, //float bobCycle; 60, //int steptime; BMOFO_SPEED, //float speed; - 5.0f, //float acceleration; + 10.0f, //float acceleration; 1.0f, //float airAcceleration; 6.0f, //float friction; 100.0f, //float stopSpeed; diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 52d4e573..d8c6053f 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -577,6 +577,7 @@ typedef enum MN_A_HOVEL_BLOCKED, MN_A_NOEROOM, MN_A_TOOCLOSE, + MN_A_NOOVMND_EVOLVE, //alien build MN_A_SPWNWARN, diff --git a/src/game/g_active.c b/src/game/g_active.c index 49289ba8..836ae90c 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -675,7 +675,8 @@ void ClientTimerActions( gentity_t *ent, int msec ) } } - if( ent->health < client->ps.stats[ STAT_MAX_HEALTH ] ) + if( ent->health < client->ps.stats[ STAT_MAX_HEALTH ] && + ( client->lastDamageTime + ALIEN_REGEN_DAMAGE_TIME ) < level.time ) ent->health += BG_FindRegenRateForClass( client->ps.stats[ STAT_PCLASS ] ) * modifier; if( ent->health > client->ps.stats[ STAT_MAX_HEALTH ] ) diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 0aae2c70..7d6e6a92 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -1150,6 +1150,13 @@ void Cmd_Class_f( gentity_t *ent ) } } + if( !level.overmindPresent ) + { + ent->client->pers.classSelection = PCL_NONE; + G_TriggerMenu( clientNum, MN_A_NOOVMND_EVOLVE ); + return; + } + //evolve now ent->client->pers.classSelection = BG_FindClassNumForName( s ); diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 93b8c21c..185b201d 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -1099,7 +1099,10 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, //TA: add to the attackers "account" on the target if( targ->client && attacker->client ) - targ->credits[ attacker->client->ps.clientNum ] += take; + { + if( attacker != targ && !OnSameTeam( targ, attacker ) ) + targ->credits[ attacker->client->ps.clientNum ] += take; + } if( targ->health <= 0 ) { diff --git a/src/game/g_main.c b/src/game/g_main.c index 93a3c8a6..e5e3a6fe 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -959,10 +959,10 @@ void G_CalculateBuildPoints( void ) if( buildable != BA_NONE ) { - if( buildable == BA_H_REACTOR ) + if( buildable == BA_H_REACTOR && ent->health > 0 ) level.reactorPresent = qtrue; - if( buildable == BA_A_OVERMIND ) + if( buildable == BA_A_OVERMIND && ent->health > 0 ) level.overmindPresent = qtrue; if( BG_FindTeamForBuildable( buildable ) == BIT_HUMANS ) diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 3265bded..7e723ecc 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -294,6 +294,7 @@ #define ALIEN_SPAWN_REPEAT_TIME 10000 +#define ALIEN_REGEN_DAMAGE_TIME 2000 //msec since damage that regen starts again /* * HUMAN weapons @@ -356,7 +357,7 @@ #define CHAINGUN_BULLETS 200 #define CHAINGUN_REPEAT 75 #define CHAINGUN_SPREAD 1000 -#define CHAINGUN_DMG HDM(9) +#define CHAINGUN_DMG HDM(8) #define PRIFLE_PRICE 400 #define PRIFLE_CLIPS 50 @@ -443,7 +444,7 @@ * */ -#define HUMAN_BHLTH_MODIFIER 0.6f +#define HUMAN_BHLTH_MODIFIER 0.62f #define HBHM(h) ((int)((float)h*HUMAN_BHLTH_MODIFIER)) #define REACTOR_BASESIZE 1000 @@ -465,17 +466,17 @@ #define MGTURRET_BP 8 #define MGTURRET_BT 10000 -#define MGTURRET_HEALTH HBHM(300) +#define MGTURRET_HEALTH HBHM(350) #define MGTURRET_SPLASHDAMAGE 200 #define MGTURRET_SPLASHRADIUS 150 -#define MGTURRET_ANGULARSPEED 6 //degrees/think ~= 200deg/sec +#define MGTURRET_ANGULARSPEED 8 //degrees/think ~= 200deg/sec #define MGTURRET_ACCURACYTOLERANCE MGTURRET_ANGULARSPEED / 1.5f //angular difference for turret to fire #define MGTURRET_VERTICALCAP 30 // +/- maximum pitch #define MGTURRET_REPEAT 100 #define MGTURRET_RANGE 250 #define MGTURRET_SPREAD 200 #define MGTURRET_DMG HDM(5) -#define MGTURRET_DCC_ANGULARSPEED 7 +#define MGTURRET_DCC_ANGULARSPEED 10 #define MGTURRET_DCC_ACCURACYTOLERANCE MGTURRET_DCC_ANGULARSPEED / 1.5f #define TESLAGEN_BP 10 @@ -495,7 +496,7 @@ #define ARMOURY_BP 10 #define ARMOURY_BT 10000 -#define ARMOURY_HEALTH HBHM(400) +#define ARMOURY_HEALTH HBHM(450) #define ARMOURY_SPLASHDAMAGE 50 #define ARMOURY_SPLASHRADIUS 100 -- cgit