diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/bg_public.h | 2 | ||||
-rw-r--r-- | src/game/g_client.c | 43 | ||||
-rw-r--r-- | src/game/g_local.h | 2 | ||||
-rw-r--r-- | src/game/g_missile.c | 4 | ||||
-rw-r--r-- | src/game/g_weapon.c | 6 | ||||
-rw-r--r-- | src/game/tremulous.h | 50 |
6 files changed, 50 insertions, 57 deletions
diff --git a/src/game/bg_public.h b/src/game/bg_public.h index b477bcf1..b5ecb120 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -34,8 +34,6 @@ #define CROUCH_VIEWHEIGHT 12 #define DEAD_VIEWHEIGHT -16 -#define LCANNON_TOTAL_CHARGE 255 - // // config strings are a general means of communicating variable length strings // from the server to all connected clients. diff --git a/src/game/g_client.c b/src/game/g_client.c index f2f83d63..e4030b30 100644 --- a/src/game/g_client.c +++ b/src/game/g_client.c @@ -1199,7 +1199,6 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles vec3_t classMins, classMaxs, up = { 0.0f, 0.0f, 1.0f }; int ammo, clips, maxClips; weapon_t weapon; - float hModifier; index = ent - g_entities; @@ -1320,19 +1319,9 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles BG_FindBBoxForClass( ent->client->pers.classSelection, ent->r.mins, ent->r.maxs, NULL, NULL, NULL ); - hModifier = 1.0f; - - if( client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS ) - { - if( g_humanStage.integer == S2 ) - hModifier = ALIENSTAGE2_HLTH_MODIFIER; - else if( g_humanStage.integer == S2 ) - hModifier = ALIENSTAGE3_HLTH_MODIFIER; - } - if( client->sess.sessionTeam != TEAM_SPECTATOR ) client->pers.maxHealth = client->ps.stats[ STAT_MAX_HEALTH ] = - (int)( (float)BG_FindHealthForClass( ent->client->pers.classSelection ) * hModifier ); + BG_FindHealthForClass( ent->client->pers.classSelection ); else client->pers.maxHealth = client->ps.stats[ STAT_MAX_HEALTH ] = 100; @@ -1375,23 +1364,27 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles if( client->sess.sessionTeam != TEAM_SPECTATOR && client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS ) { - if( ent != spawn && spawnPoint->s.origin2[ 2 ] > 0.0f ) + if( ent == spawn ) { - vec3_t forward, dir; - - AngleVectors( spawn_angles, forward, NULL, NULL ); - VectorScale( forward, F_VEL, forward ); - VectorAdd( spawnPoint->s.origin2, forward, dir ); - VectorNormalize( dir ); - - VectorScale( dir, UP_VEL, client->ps.velocity ); - - G_AddPredictableEvent( ent, EV_PLAYER_RESPAWN, 0 ); + //evolution particle system + G_AddPredictableEvent( ent, EV_ALIEN_EVOLVE, DirToByte( up ) ); } else { - //evolution particle system - G_AddPredictableEvent( ent, EV_ALIEN_EVOLVE, DirToByte( up ) ); + if( spawnPoint->s.origin2[ 2 ] > 0.0f ) + { + vec3_t forward, dir; + + AngleVectors( spawn_angles, forward, NULL, NULL ); + VectorScale( forward, F_VEL, forward ); + VectorAdd( spawnPoint->s.origin2, forward, dir ); + VectorNormalize( dir ); + + VectorScale( dir, UP_VEL, client->ps.velocity ); + + } + + G_AddPredictableEvent( ent, EV_PLAYER_RESPAWN, 0 ); } } diff --git a/src/game/g_local.h b/src/game/g_local.h index fef66751..2cdddf2e 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -658,7 +658,7 @@ void G_RunMissile( gentity_t *ent ); gentity_t *fire_flamer( gentity_t *self, vec3_t start, vec3_t aimdir ); gentity_t *fire_blaster( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *fire_pulseRifle( gentity_t *self, vec3_t start, vec3_t dir ); -gentity_t *fire_luciferCannon( gentity_t *self, vec3_t start, vec3_t dir, int damage ); +gentity_t *fire_luciferCannon( gentity_t *self, vec3_t start, vec3_t dir, int damage, int radius ); gentity_t *fire_lockblob( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *fire_paraLockBlob( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *fire_slowBlob( gentity_t *self, vec3_t start, vec3_t dir ); diff --git a/src/game/g_missile.c b/src/game/g_missile.c index ca316818..d97b2fd3 100644 --- a/src/game/g_missile.c +++ b/src/game/g_missile.c @@ -413,7 +413,7 @@ fire_luciferCannon ================= */ -gentity_t *fire_luciferCannon( gentity_t *self, vec3_t start, vec3_t dir, int damage ) +gentity_t *fire_luciferCannon( gentity_t *self, vec3_t start, vec3_t dir, int damage, int radius ) { gentity_t *bolt; int localDamage = (int)( ceil( ( (float)damage / @@ -433,7 +433,7 @@ gentity_t *fire_luciferCannon( gentity_t *self, vec3_t start, vec3_t dir, int da bolt->parent = self; bolt->damage = localDamage; bolt->splashDamage = localDamage / 2; - bolt->splashRadius = localDamage; + bolt->splashRadius = radius; bolt->methodOfDeath = MOD_LCANNON; bolt->splashMethodOfDeath = MOD_LCANNON_SPLASH; bolt->clipmask = MASK_SHOT; diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index cadaab49..78109c00 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -462,9 +462,9 @@ void LCChargeFire( gentity_t *ent, qboolean secondary ) gentity_t *m; if( secondary ) - ent->client->ps.stats[ STAT_MISC ] = LCANNON_SECONDARY_DAMAGE; - - m = fire_luciferCannon( ent, muzzle, forward, ent->client->ps.stats[ STAT_MISC ] ); + m = fire_luciferCannon( ent, muzzle, forward, LCANNON_SECONDARY_DAMAGE, LCANNON_SECONDARY_RADIUS ); + else + m = fire_luciferCannon( ent, muzzle, forward, ent->client->ps.stats[ STAT_MISC ], LCANNON_RADIUS ); ent->client->ps.stats[ STAT_MISC ] = 0; } diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 0550f784..7daac11e 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -22,7 +22,7 @@ * */ -#define ALIEN_WDMG_MODIFIER 0.8f +#define ALIEN_WDMG_MODIFIER 0.85f #define ADM(d) ((int)((float)d*ALIEN_WDMG_MODIFIER)) #define ABUILDER_BUILD_REPEAT 500 @@ -103,66 +103,66 @@ #define ALIEN_HLTH_MODIFIER 1.0f #define AHM(h) ((int)((float)h*ALIEN_HLTH_MODIFIER)) -#define ALIEN_VALUE_MODIFIER 4.0f +#define ALIEN_VALUE_MODIFIER 1.0f #define AVM(h) ((int)((float)h*ALIEN_VALUE_MODIFIER)) #define ABUILDER_SPEED 0.8f -#define ABUILDER_VALUE AVM(50) +#define ABUILDER_VALUE AVM(200) #define ABUILDER_HEALTH AHM(50) #define ABUILDER_REGEN 2 #define ABUILDER_COST 0 #define ABUILDER_UPG_SPEED 1.0f -#define ABUILDER_UPG_VALUE AVM(120) +#define ABUILDER_UPG_VALUE AVM(250) #define ABUILDER_UPG_HEALTH AHM(75) #define ABUILDER_UPG_REGEN 3 #define ABUILDER_UPG_COST 0 #define SOLDIER_SPEED 1.3f -#define SOLDIER_VALUE AVM(50) +#define SOLDIER_VALUE AVM(175) #define SOLDIER_HEALTH AHM(25) #define SOLDIER_REGEN 1 #define SOLDIER_COST 0 #define HYDRA_SPEED 1.25f -#define HYDRA_VALUE AVM(100) -#define HYDRA_HEALTH AHM(50) +#define HYDRA_VALUE AVM(225) +#define HYDRA_HEALTH AHM(75) #define HYDRA_REGEN 2 #define HYDRA_COST 1 #define HYDRA_UPG_SPEED 1.25f -#define HYDRA_UPG_VALUE AVM(120) -#define HYDRA_UPG_HEALTH AHM(50) +#define HYDRA_UPG_VALUE AVM(250) +#define HYDRA_UPG_HEALTH AHM(100) #define HYDRA_UPG_REGEN 2 #define HYDRA_UPG_COST 1 #define CHIMERA_SPEED 1.2f -#define CHIMERA_VALUE AVM(200) -#define CHIMERA_HEALTH AHM(100) +#define CHIMERA_VALUE AVM(500) +#define CHIMERA_HEALTH AHM(150) #define CHIMERA_REGEN 3 #define CHIMERA_COST 1 #define CHIMERA_UPG_SPEED 1.2f -#define CHIMERA_UPG_VALUE AVM(340) -#define CHIMERA_UPG_HEALTH AHM(120) +#define CHIMERA_UPG_VALUE AVM(600) +#define CHIMERA_UPG_HEALTH AHM(175) #define CHIMERA_UPG_REGEN 4 #define CHIMERA_UPG_COST 1 #define DRAGOON_SPEED 1.2f -#define DRAGOON_VALUE AVM(300) -#define DRAGOON_HEALTH AHM(200) +#define DRAGOON_VALUE AVM(600) +#define DRAGOON_HEALTH AHM(250) #define DRAGOON_REGEN 5 #define DRAGOON_COST 1 #define DRAGOON_UPG_SPEED 1.2f -#define DRAGOON_UPG_VALUE AVM(360) -#define DRAGOON_UPG_HEALTH AHM(250) +#define DRAGOON_UPG_VALUE AVM(700) +#define DRAGOON_UPG_HEALTH AHM(300) #define DRAGOON_UPG_REGEN 6 #define DRAGOON_UPG_COST 1 #define BMOFO_SPEED 1.1f -#define BMOFO_VALUE AVM(400) -#define BMOFO_HEALTH AHM(400) +#define BMOFO_VALUE AVM(1000) +#define BMOFO_HEALTH AHM(350) #define BMOFO_REGEN 7 #define BMOFO_COST 2 @@ -280,8 +280,6 @@ */ #define ALIENSENSE_RANGE 1000.0f -#define ALIENSTAGE2_HLTH_MODIFIER 1.2f -#define ALIENSTAGE3_HLTH_MODIFIER 1.5f #define ALIEN_POISON_TIME 10000 #define ALIEN_POISON_DMG 30 @@ -318,8 +316,8 @@ #define SHOTGUN_SHELLS 8 #define SHOTGUN_PELLETS 8 //used to sync server and client side -#define SHOTGUN_SPAWNCLIPS 3 -#define SHOTGUN_MAXCLIPS 3 +#define SHOTGUN_SPAWNCLIPS 2 +#define SHOTGUN_MAXCLIPS 2 #define SHOTGUN_REPEAT 1200 #define SHOTGUN_RELOAD 2000 #define SHOTGUN_PRICE 150 @@ -364,12 +362,16 @@ #define LCANNON_CHARGEREPEAT 1000 #define LCANNON_RELOAD 2000 #define LCANNON_DAMAGE HDM(400) +#define LCANNON_RADIUS 200 #define LCANNON_SECONDARY_DAMAGE HDM(30) +#define LCANNON_SECONDARY_RADIUS 75 #define LCANNON_SPEED 250 #define LCANNON_CHARGE_TIME 1000 +#define LCANNON_TOTAL_CHARGE 255 + #define LASGUN_PRICE 200 -#define LASGUN_AMMO 300 +#define LASGUN_AMMO 100 #define LASGUN_REPEAT 150 #define LASGUN_RELOAD 2000 #define LASGUN_DAMAGE HDM(15) |