diff options
author | Tim Angus <tim@ngus.net> | 2005-08-31 03:15:00 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2005-08-31 03:15:00 +0000 |
commit | f40ad7c74f940dd0274cd0a82248a5a4e8846eac (patch) | |
tree | 1e045cd77b9fba27a2f967544df24bbd2f475885 /src/game/g_combat.c | |
parent | 426a6d2269d5087ed6a83fe271f23e2e3b12d6f6 (diff) |
* Reimplemented how buildables play damage sounds to not use the event system
* Reworked the ammo/clips packing system to remove the confusion of concepts
* Marauder lightning now requires aim, does damage over time and chains to other entities
* Implemented the Medkit -- a means for a human to restore health and cure poison in the field
* "Disable Build Warnings" replaced with "Disable Warning Dialogs" and improved
* Disabled client side ET_MISSILE collision
* Sped spectator move speed up
* Implemented "step down" physics for all characters; no more jumping down stairs
* Re-adjusted step time values
* Increased frequency with which the Acid Tube deals damage
* G_RadiusSelectiveDamage no longer applies locational damage
* Moved some speed adjustment code into prediction; should prevent some prediction misses
* Tyrant can no longer charge up forever and must pass a specific minimum charge level
* Wrapped all calls to trap_SendServerCommand in order to circumvent the q3amsgboom.cfg exploit
* Implemented command queueing for commands sent to clients in order to prevent overflows even sv_floodProtect is off, but not by dropping commands
* Added LOS check to creep slowing
* Overmind now only complains if there are 0 spawns
* Spawns can no longer be built when there is no Overmind/Reactor
* The spawn closest to the point of death is chosen preferably if available
* Evolving no longer restores all health
* "give weapons" and "give ammo" cheats removed
* Fixed restoration of energy weapons bug
* When selling the battery pack, max ammo is given
* Fixed a bug where locational damage could sometimes scale damage to 0
* Added stage information to the end of game stats
* Hacked around trap_LinkEntity to allow missiles to have a bounding box displayed
* Added G_ClosestEnt
* Reduced Dragoon spitball damage from 120 to 110
* Reduced Tyrant claw damage from 120 to 100
* Reduced Tyrant charge damage from 160 to 110
* Increased Barricade regeneration rate from 12 to 14
* Increased Overmind health from 500 to 750
* Decreased Overmind regeneration rate from 10 to 6
* Doubled Blaster speed from 700 to 1400
* Reduced Painsaw damage from 18 to 15
* Reduced Painsaw range from 48.0 to 40.0
* Reduced Grenade price from 300 to 200
* Reduced Shotgun repeat rate from 1200 to 1000
* Increased Shotgun damage from 6 to 7
* Increased Mass driver damage from 35 to 38
* Increased Chaingun damage from 5 to 6
* Reduced Flamer repeat rate from 300 to 200
* Extended Flamer range
* Increased ammo on all human weapons
* Reduced splashdamage on MG Turrets
* Moved build directory from tremulous to tremulous-dev
Diffstat (limited to 'src/game/g_combat.c')
-rw-r--r-- | src/game/g_combat.c | 41 |
1 files changed, 18 insertions, 23 deletions
diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 7b84ccc2..3df21614 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -368,6 +368,7 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int } self->client->pers.classSelection = PCL_NONE; //TA: reset the classtype + VectorCopy( self->s.origin, self->client->pers.lastDeathLocation ); self->takedamage = qfalse; // can still be gibbed @@ -1003,18 +1004,9 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, attacker->client->ps.persistant[ PERS_HITS ]++; } - if( damage < 1 ) - damage = 1; - take = damage; save = 0; - if( g_debugDamage.integer ) - { - G_Printf( "%i: client:%i health:%i damage:%i armor:%i\n", level.time, targ->s.number, - targ->health, take, asave ); - } - // add to the damage inflicted on a player this frame // the total will be turned into screen blends and view angle kicks // at the end of the frame @@ -1051,7 +1043,8 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, { if( !( targ->client->ps.stats[ STAT_STATE ] & SS_POISONED ) && !BG_InventoryContainsUpgrade( UP_BATTLESUIT, targ->client->ps.stats ) && - mod != MOD_LEVEL2_ZAP ) + mod != MOD_LEVEL2_ZAP && + targ->client->poisonImmunityTime < level.time ) { targ->client->ps.stats[ STAT_STATE ] |= SS_POISONED; targ->client->lastPoisonTime = level.time; @@ -1060,24 +1053,24 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, } } + if( take < 1 ) + take = 1; + + if( g_debugDamage.integer ) + { + G_Printf( "%i: client:%i health:%i damage:%i armor:%i\n", level.time, targ->s.number, + targ->health, take, asave ); + } + // do the damage if( take ) { targ->health = targ->health - take; - if( targ->s.eType == ET_BUILDABLE ) - { - if( targ->biteam == BIT_ALIENS ) - G_AddEvent( targ, EV_ALIEN_BUILDABLE_DAMAGE, 0 ); - else if( targ->biteam == BIT_HUMANS ) - G_AddEvent( targ, EV_HUMAN_BUILDABLE_DAMAGE, 0 ); - } - if( targ->client ) - { targ->client->ps.stats[ STAT_HEALTH ] = targ->health; - targ->client->lastDamageTime = level.time; - } + + targ->lastDamageTime = level.time; //TA: add to the attackers "account" on the target if( targ->client && attacker->client ) @@ -1225,7 +1218,8 @@ qboolean G_SelectiveRadiusDamage( vec3_t origin, gentity_t *attacker, float dama // push the center of mass higher than the origin so players // get knocked into the air more dir[ 2 ] += 24; - G_SelectiveDamage( ent, NULL, attacker, dir, origin, (int)points, DAMAGE_RADIUS, mod, team ); + G_SelectiveDamage( ent, NULL, attacker, dir, origin, + (int)points, DAMAGE_RADIUS|DAMAGE_NO_LOCDAMAGE, mod, team ); } } @@ -1295,7 +1289,8 @@ qboolean G_RadiusDamage( vec3_t origin, gentity_t *attacker, float damage, // push the center of mass higher than the origin so players // get knocked into the air more dir[ 2 ] += 24; - G_Damage( ent, NULL, attacker, dir, origin, (int)points, DAMAGE_RADIUS, mod ); + G_Damage( ent, NULL, attacker, dir, origin, + (int)points, DAMAGE_RADIUS|DAMAGE_NO_LOCDAMAGE, mod ); } } |