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  | 
