diff options
author | Tim Angus <tim@ngus.net> | 2005-06-29 23:35:55 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2005-06-29 23:35:55 +0000 |
commit | 7c13523d9b02f1319dec7dd0dece68f96f17ed35 (patch) | |
tree | cbcfcc603bc34f8352a9a9bf021a5393ccf63821 /src | |
parent | 0e56723b5c2e42c67bb12eca353caccc7a1a3886 (diff) |
* Fixed a bug where menus would appear during demo playback
* Fixed a bug where delayed suicide would persist over death
* Reduced turret health and damage, increased range
* Generally strengthened alien buildable health and regen a little
* Increased damage that hives do
* Unlocked the trapper at stage 1
* Lev0 alien can now damage human defensive structures
* Booster now doubles alien regeneration rate
* Updated dependancies
Diffstat (limited to 'src')
-rw-r--r-- | src/cgame/cg_servercmds.c | 2 | ||||
-rw-r--r-- | src/game/bg_misc.c | 2 | ||||
-rw-r--r-- | src/game/g_active.c | 14 | ||||
-rw-r--r-- | src/game/g_combat.c | 1 | ||||
-rw-r--r-- | src/game/g_weapon.c | 35 | ||||
-rw-r--r-- | src/game/tremulous.h | 45 |
6 files changed, 62 insertions, 37 deletions
diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c index f01382ec..7a9ed748 100644 --- a/src/cgame/cg_servercmds.c +++ b/src/cgame/cg_servercmds.c @@ -908,7 +908,7 @@ static void CG_ServerCommand( void ) //the server has triggered a menu if( !strcmp( cmd, "servermenu" ) ) { - if( trap_Argc( ) == 2 ) + if( trap_Argc( ) == 2 && !cg.demoPlayback ) CG_Menu( atoi( CG_Argv( 1 ) ) ); return; diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 498db049..83d509dd 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -208,7 +208,7 @@ buildableAttributes_t bg_buildableList[ ] = TR_GRAVITY, //trType_t traj; 0.0, //float bounce; TRAPPER_BP, //int buildPoints; - ( 1 << S2 )|( 1 << S3 ), //int stages + ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), //int stages TRAPPER_HEALTH, //int health; TRAPPER_REGEN, //int regenRate; TRAPPER_SPLASHDAMAGE, //int splashDamage; diff --git a/src/game/g_active.c b/src/game/g_active.c index 93360a12..ee5d1aa3 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -695,7 +695,7 @@ void ClientTimerActions( gentity_t *ent, int msec ) vec3_t range = { LEVEL4_REGEN_RANGE, LEVEL4_REGEN_RANGE, LEVEL4_REGEN_RANGE }; vec3_t mins, maxs; int i, num; - gentity_t *alienPlayer; + gentity_t *boostEntity; float modifier = 1.0f; VectorAdd( client->ps.origin, range, maxs ); @@ -704,14 +704,20 @@ void ClientTimerActions( gentity_t *ent, int msec ) num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); for( i = 0; i < num; i++ ) { - alienPlayer = &g_entities[ entityList[ i ] ]; + boostEntity = &g_entities[ entityList[ i ] ]; - if( alienPlayer->client && alienPlayer->client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS && - alienPlayer->client->ps.stats[ STAT_PCLASS ] == PCL_ALIEN_LEVEL4 ) + if( boostEntity->client && boostEntity->client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS && + boostEntity->client->ps.stats[ STAT_PCLASS ] == PCL_ALIEN_LEVEL4 ) { modifier = LEVEL4_REGEN_MOD; break; } + else if( boostEntity->s.eType == ET_BUILDABLE && + boostEntity->s.modelindex == BA_A_BOOSTER ) + { + modifier = BOOSTER_REGEN_MOD; + break; + } } if( ent->health < client->ps.stats[ STAT_MAX_HEALTH ] && diff --git a/src/game/g_combat.c b/src/game/g_combat.c index e923c1ee..0bf8b1b8 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -164,6 +164,7 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int return; self->client->ps.pm_type = PM_DEAD; + self->suicideTime = 0; if( attacker ) { diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index aca895d6..c12c82d0 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -696,6 +696,7 @@ qboolean CheckVenomAttack( gentity_t *ent ) gentity_t *tent; gentity_t *traceEnt; vec3_t mins, maxs; + int damage = LEVEL0_BITE_DMG; VectorSet( mins, -LEVEL0_BITE_WIDTH, -LEVEL0_BITE_WIDTH, -LEVEL0_BITE_WIDTH ); VectorSet( maxs, LEVEL0_BITE_WIDTH, LEVEL0_BITE_WIDTH, LEVEL0_BITE_WIDTH ); @@ -709,22 +710,38 @@ qboolean CheckVenomAttack( gentity_t *ent ) trap_Trace( &tr, muzzle, mins, maxs, end, ent->s.number, MASK_SHOT ); - if ( tr.surfaceFlags & SURF_NOIMPACT ) + if( tr.surfaceFlags & SURF_NOIMPACT ) return qfalse; traceEnt = &g_entities[ tr.entityNum ]; - if( !traceEnt->takedamage) - return qfalse; - if( !traceEnt->client ) - return qfalse; - if( traceEnt->client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS ) + if( !traceEnt->takedamage ) return qfalse; - if( traceEnt->client->ps.stats[ STAT_HEALTH ] <= 0 ) + + if( !traceEnt->client && !traceEnt->s.eType == ET_BUILDABLE ) return qfalse; + //allow bites to work against defensive buildables only + if( traceEnt->s.eType == ET_BUILDABLE ) + { + if( traceEnt->s.modelindex != BA_H_MGTURRET && + traceEnt->s.modelindex != BA_H_TESLAGEN ) + return qfalse; + + //hackery + damage *= 0.5f; + } + + if( traceEnt->client ) + { + if( traceEnt->client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS ) + return qfalse; + if( traceEnt->client->ps.stats[ STAT_HEALTH ] <= 0 ) + return qfalse; + } + // send blood impact - if ( traceEnt->takedamage && traceEnt->client ) + if( traceEnt->takedamage && traceEnt->client ) { tent = G_TempEntity( tr.endpos, EV_MISSILE_HIT ); tent->s.otherEntityNum = traceEnt->s.number; @@ -733,7 +750,7 @@ qboolean CheckVenomAttack( gentity_t *ent ) tent->s.generic1 = ent->s.generic1; //weaponMode } - G_Damage( traceEnt, ent, ent, forward, tr.endpos, LEVEL0_BITE_DMG, DAMAGE_NO_KNOCKBACK, MOD_LEVEL0_BITE ); + G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, DAMAGE_NO_KNOCKBACK, MOD_LEVEL0_BITE ); return qtrue; } diff --git a/src/game/tremulous.h b/src/game/tremulous.h index f444fc5d..5f7831ec 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -139,31 +139,31 @@ #define LEVEL1_UPG_SPEED 1.25f #define LEVEL1_UPG_VALUE AVM(275) #define LEVEL1_UPG_HEALTH AHM(100) -#define LEVEL1_UPG_REGEN 2 +#define LEVEL1_UPG_REGEN 3 #define LEVEL1_UPG_COST 1 #define LEVEL2_SPEED 1.2f #define LEVEL2_VALUE AVM(350) #define LEVEL2_HEALTH AHM(150) -#define LEVEL2_REGEN 3 +#define LEVEL2_REGEN 4 #define LEVEL2_COST 1 #define LEVEL2_UPG_SPEED 1.2f #define LEVEL2_UPG_VALUE AVM(450) #define LEVEL2_UPG_HEALTH AHM(175) -#define LEVEL2_UPG_REGEN 4 +#define LEVEL2_UPG_REGEN 5 #define LEVEL2_UPG_COST 1 #define LEVEL3_SPEED 1.1f #define LEVEL3_VALUE AVM(500) #define LEVEL3_HEALTH AHM(200) -#define LEVEL3_REGEN 5 +#define LEVEL3_REGEN 6 #define LEVEL3_COST 1 #define LEVEL3_UPG_SPEED 1.1f #define LEVEL3_UPG_VALUE AVM(600) #define LEVEL3_UPG_HEALTH AHM(250) -#define LEVEL3_UPG_REGEN 6 +#define LEVEL3_UPG_REGEN 7 #define LEVEL3_UPG_COST 1 #define LEVEL4_SPEED 1.2f @@ -188,7 +188,7 @@ * */ -#define ALIEN_BHLTH_MODIFIER 0.5f +#define ALIEN_BHLTH_MODIFIER 1.0f #define ABHM(h) ((int)((float)h*ALIEN_BHLTH_MODIFIER)) #define CREEP_BASESIZE 700 @@ -199,7 +199,7 @@ #define ASPAWN_BP 10 #define ASPAWN_BT 15000 -#define ASPAWN_HEALTH ABHM(500) +#define ASPAWN_HEALTH ABHM(250) #define ASPAWN_REGEN 8 #define ASPAWN_SPLASHDAMAGE 50 #define ASPAWN_SPLASHRADIUS 50 @@ -208,7 +208,7 @@ #define BARRICADE_BP 10 #define BARRICADE_BT 20000 -#define BARRICADE_HEALTH ABHM(400) +#define BARRICADE_HEALTH ABHM(200) #define BARRICADE_REGEN 12 #define BARRICADE_SPLASHDAMAGE 50 #define BARRICADE_SPLASHRADIUS 50 @@ -216,17 +216,18 @@ #define BOOSTER_BP 12 #define BOOSTER_BT 15000 -#define BOOSTER_HEALTH ABHM(300) +#define BOOSTER_HEALTH ABHM(150) #define BOOSTER_REGEN 8 #define BOOSTER_SPLASHDAMAGE 50 #define BOOSTER_SPLASHRADIUS 50 #define BOOSTER_CREEPSIZE 120 #define BOOSTER_INTERVAL 30000 //time in msec between uses (per player) +#define BOOSTER_REGEN_MOD 2.0f #define ACIDTUBE_BP 8 #define ACIDTUBE_BT 15000 -#define ACIDTUBE_HEALTH ABHM(200) -#define ACIDTUBE_REGEN 8 +#define ACIDTUBE_HEALTH ABHM(125) +#define ACIDTUBE_REGEN 10 #define ACIDTUBE_SPLASHDAMAGE 30 #define ACIDTUBE_SPLASHRADIUS 300 #define ACIDTUBE_CREEPSIZE 120 @@ -235,20 +236,20 @@ #define HIVE_BP 12 #define HIVE_BT 20000 -#define HIVE_HEALTH ABHM(200) -#define HIVE_REGEN 8 +#define HIVE_HEALTH ABHM(125) +#define HIVE_REGEN 10 #define HIVE_SPLASHDAMAGE 30 #define HIVE_SPLASHRADIUS 200 #define HIVE_CREEPSIZE 120 #define HIVE_RANGE 400.0f -#define HIVE_REPEAT 10000 -#define HIVE_DMG 20 -#define HIVE_SPEED 230.0f +#define HIVE_REPEAT 5000 +#define HIVE_DMG 50 +#define HIVE_SPEED 240.0f #define HIVE_DIR_CHANGE_PERIOD 500 #define TRAPPER_BP 10 #define TRAPPER_BT 12000 -#define TRAPPER_HEALTH ABHM(80) +#define TRAPPER_HEALTH ABHM(50) #define TRAPPER_REGEN 6 #define TRAPPER_SPLASHDAMAGE 15 #define TRAPPER_SPLASHRADIUS 100 @@ -260,7 +261,7 @@ #define OVERMIND_BP 0 #define OVERMIND_BT 30000 -#define OVERMIND_HEALTH ABHM(1000) +#define OVERMIND_HEALTH ABHM(500) #define OVERMIND_REGEN 10 #define OVERMIND_SPLASHDAMAGE 15 #define OVERMIND_SPLASHRADIUS 300 @@ -271,7 +272,7 @@ #define HOVEL_BP 8 #define HOVEL_BT 15000 -#define HOVEL_HEALTH ABHM(750) +#define HOVEL_HEALTH ABHM(375) #define HOVEL_REGEN 20 #define HOVEL_SPLASHDAMAGE 20 #define HOVEL_SPLASHRADIUS 200 @@ -472,16 +473,16 @@ #define MGTURRET_BP 8 #define MGTURRET_BT 10000 -#define MGTURRET_HEALTH HBHM(350) +#define MGTURRET_HEALTH HBHM(300) #define MGTURRET_SPLASHDAMAGE 200 #define MGTURRET_SPLASHRADIUS 150 #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_RANGE 300.0f #define MGTURRET_SPREAD 200 -#define MGTURRET_DMG HDM(5) +#define MGTURRET_DMG HDM(4) #define MGTURRET_DCC_ANGULARSPEED 10 #define MGTURRET_DCC_ACCURACYTOLERANCE MGTURRET_DCC_ANGULARSPEED / 1.5f |