summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_public.h2
-rw-r--r--src/game/g_client.c43
-rw-r--r--src/game/g_local.h2
-rw-r--r--src/game/g_missile.c4
-rw-r--r--src/game/g_weapon.c6
-rw-r--r--src/game/tremulous.h50
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)