From 7d66cee2661d2717ff76a4e6f73b75ddeea6d93e Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Sat, 2 Oct 2004 20:58:16 +0000 Subject: * Fixed Who's uncreation bug * Reduced range and repeat rate of chimera lightning * Medistats now heal booster poison * Hydra gas now requires a LOS to work --- src/game/g_buildable.c | 5 +++++ src/game/g_mover.c | 6 +++++- src/game/g_weapon.c | 7 +++++++ src/game/tremulous.h | 4 ++-- 4 files changed, 19 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index 54717b3b..17cd1402 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -1702,7 +1702,12 @@ void HMedistat_Think( gentity_t *self ) self->active = qfalse; } else if( self->enemy ) //heal! + { + if( self->enemy->client && self->enemy->client->ps.stats[ STAT_STATE ] & SS_POISONED ) + self->enemy->client->ps.stats[ STAT_STATE ] &= ~SS_POISONED; + self->enemy->health++; + } } } diff --git a/src/game/g_mover.c b/src/game/g_mover.c index 192a46cc..82de7360 100644 --- a/src/game/g_mover.c +++ b/src/game/g_mover.c @@ -790,6 +790,10 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator ) int total; int partial; + // if this is a non-client-usable door return + if( ent->targetname && other && other->client ) + return; + // only the master should be used if( ent->flags & FL_TEAMSLAVE ) { @@ -1448,7 +1452,7 @@ void SP_func_door( gentity_t *ent ) ent->nextthink = level.time + FRAMETIME; - if( ! (ent->flags & FL_TEAMSLAVE ) ) + if( !( ent->flags & FL_TEAMSLAVE ) ) { int health; diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 2ab1abd5..59f513a0 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -793,6 +793,7 @@ void poisonCloud( gentity_t *ent ) vec3_t mins, maxs, dir; int i, num; gentity_t *humanPlayer; + trace_t tr; VectorAdd( ent->client->ps.origin, range, maxs ); VectorSubtract( ent->client->ps.origin, range, mins ); @@ -810,6 +811,12 @@ void poisonCloud( gentity_t *ent ) if( BG_gotItem( UP_BATTLESUIT, humanPlayer->client->ps.stats ) ) continue; + trap_Trace( &tr, muzzle, NULL, NULL, humanPlayer->s.origin, humanPlayer->s.number, MASK_SHOT ); + + //can't see target from here + if( tr.entityNum == ENTITYNUM_WORLD ) + continue; + if( !( humanPlayer->client->ps.stats[ STAT_STATE ] & SS_POISONCLOUDED ) ) { humanPlayer->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED; diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 8f2ffd34..0b30b0e6 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -61,8 +61,8 @@ #define CHIMERA_CLAW_REPEAT 500 #define CHIMERA_CLAW_U_REPEAT 400 #define CHIMERA_AREAZAP_DMG ADM(100) -#define CHIMERA_AREAZAP_RANGE 300.0f -#define CHIMERA_AREAZAP_REPEAT 1500 +#define CHIMERA_AREAZAP_RANGE 200.0f +#define CHIMERA_AREAZAP_REPEAT 3000 #define CHIMERA_WALLJUMP_MAXSPEED 1000.0f #define DRAGOON_CLAW_DMG ADM(100) -- cgit