summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTim Angus <tim@ngus.net>2005-01-31 23:50:01 +0000
committerTim Angus <tim@ngus.net>2005-01-31 23:50:01 +0000
commitb74ecca6018899011380bf807a22b4df92dabf39 (patch)
treeb1d77adb840ce31b5ced6c8baf1966462cba462b /src
parentf9c64820ad26030864651661ac39dba3d770c85b (diff)
* 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
Diffstat (limited to 'src')
-rw-r--r--src/cgame/cg_servercmds.c6
-rw-r--r--src/game/bg_misc.c2
-rw-r--r--src/game/bg_public.h1
-rw-r--r--src/game/g_active.c3
-rw-r--r--src/game/g_cmds.c7
-rw-r--r--src/game/g_combat.c5
-rw-r--r--src/game/g_main.c4
-rw-r--r--src/game/tremulous.h13
8 files changed, 30 insertions, 11 deletions
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