diff options
Diffstat (limited to 'src/game')
-rw-r--r-- | src/game/bg_misc.c | 134 | ||||
-rw-r--r-- | src/game/bg_mod.h | 5 | ||||
-rw-r--r-- | src/game/bg_pmove.c | 34 | ||||
-rw-r--r-- | src/game/bg_public.h | 6 | ||||
-rw-r--r-- | src/game/g_active.c | 80 | ||||
-rw-r--r-- | src/game/g_buildable.c | 35 | ||||
-rw-r--r-- | src/game/g_cmds.c | 14 | ||||
-rw-r--r-- | src/game/g_combat.c | 12 | ||||
-rw-r--r-- | src/game/g_csw.h | 1 | ||||
-rw-r--r-- | src/game/g_local.h | 2 | ||||
-rw-r--r-- | src/game/g_missile.c | 80 | ||||
-rw-r--r-- | src/game/g_weapon.c | 158 | ||||
-rw-r--r-- | src/game/tremulous.h | 57 |
13 files changed, 7 insertions, 611 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 7f6a8a6..806f3bd 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -2288,74 +2288,11 @@ static const classAttributes_t bg_classList[ ] = 400.0f, //float stopSpeed; 250.0f, //float jumpMagnitude; 2.0f, //float knockbackScale; - { PCL_ALIEN_LEVEL1, PCL_NONE }, //int children[ 3 ]; + { PCL_ALIEN_LEVEL2, PCL_NONE }, //int children[ 3 ]; LEVEL0_COST, //int cost; LEVEL0_VALUE, //int value; }, { - PCL_ALIEN_LEVEL1, //int classnum; - "level1", //char *classname; - "A support class able to crawl on walls and ceilings. Its melee " - "attack is most effective when combined with the ability to grab " - "and hold its victims in place. Provides a weak healing aura " - "that accelerates the healing rate of nearby aliens. It also has " - "an acid bomb that can be used to deal moderate area damage. " - "The basilisk is also resistant to flamer.", - STAGE_GE_1, //int stages - LEVEL1_HEALTH, //int health; - 0.0f, //float fallDamage; - LEVEL1_REGEN, //float regenRate; - SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE, //int abilities; - WP_ALEVEL1, //weapon_t startWeapon - 0.0f, //float buildDist; - 120, //int fov; - 0.001f, //float bob; - 1.8f, //float bobCycle; - 60, //int steptime; - LEVEL1_SPEED, //float speed; - 10.0f, //float acceleration; - 1.0f, //float airAcceleration; - 6.0f, //float friction; - 300.0f, //float stopSpeed; - 310.0f, //float jumpMagnitude; - 1.2f, //float knockbackScale; - { PCL_ALIEN_LEVEL2, PCL_ALIEN_LEVEL1_UPG, PCL_NONE }, //int children[ 3 ]; - LEVEL1_COST, //int cost; - LEVEL1_VALUE, //int value; - }, - { - PCL_ALIEN_LEVEL1_UPG, //int classnum; - "level1upg", //char *classname; - "In addition to the basic Basilisk abilities, the Advanced " - "Basilisk sprays a poisonous gas which slows down and disorients " - "nearby humans. Has a strong healing aura that that accelerates " - "the healing rate of nearby aliens. It is invisible while staying " - "still and at full health as long as there is an overmind around. " - "It also has an acid bomb similar to basilisk's one but stronger." - "The adv. basilisk is also resistant to flamer.", - STAGE_GE_3, //int stages - LEVEL1_UPG_HEALTH, //int health; - 0.0f, //float fallDamage; - LEVEL1_UPG_REGEN, //float regenRate; - SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE, //int abilities; - WP_ALEVEL1_UPG, //weapon_t startWeapon - 0.0f, //float buildDist; - 120, //int fov; - 0.001f, //float bob; - 1.8f, //float bobCycle; - 60, //int steptime; - LEVEL1_UPG_SPEED, //float speed; - 10.0f, //float acceleration; - 1.0f, //float airAcceleration; - 6.0f, //float friction; - 300.0f, //float stopSpeed; - 310.0f, //float jumpMagnitude; - 1.1f, //float knockbackScale; - { PCL_ALIEN_LEVEL2, PCL_NONE, PCL_NONE }, //int children[ 3 ]; - LEVEL1_UPG_COST, //int cost; - LEVEL1_UPG_VALUE, //int value; - }, - { PCL_ALIEN_LEVEL2, //int classnum; "level2", //char *classname; "Has a melee attack and the ability to jump off walls. This " @@ -3084,56 +3021,6 @@ static const weaponAttributes_t bg_weapons[ ] = TEAM_ALIENS //team_t team; }, { - WP_ALEVEL1, //int weaponNum; - 0, //int price; - STAGE_GE_1, //int stages - SLOT_WEAPON, //int slots; - "level1", //char *weaponName; - "Claws", //char *humanName; - "", - 1, //int maxAmmo; - 0, //int maxClips; - qtrue, //int infiniteAmmo; - qfalse, //int usesEnergy; - LEVEL1_CLAW_REPEAT, //int repeatRate1; - 0, //int repeatRate2; - ABOMB2_REPEAT, //int repeatRate3; - 0, //int reloadTime; - LEVEL1_CLAW_K_SCALE, //float knockbackScale; - qfalse, //qboolean hasAltMode; - qtrue, //qboolean hasThirdMode; - qfalse, //qboolean canZoom; - 90.0f, //float zoomFov; - qfalse, //qboolean purchasable; - qfalse, //qboolean longRanged; - TEAM_ALIENS //team_t team; - }, - { - WP_ALEVEL1_UPG, //int weaponNum; - 0, //int price; - STAGE_GE_3, //int stages - SLOT_WEAPON, //int slots; - "level1upg", //char *weaponName; - "Claws Upgrade", //char *humanName; - "", - 1, //int maxAmmo; - 0, //int maxClips; - qtrue, //int infiniteAmmo; - qfalse, //int usesEnergy; - LEVEL1_CLAW_U_REPEAT, //int repeatRate1; - LEVEL1_PCLOUD_REPEAT, //int repeatRate2; - ABOMB_REPEAT, //int repeatRate3; - 0, //int reloadTime; - LEVEL1_CLAW_U_K_SCALE,//float knockbackScale; - qtrue, //qboolean hasAltMode; - qtrue, //qboolean hasThirdMode; - qfalse, //qboolean canZoom; - 90.0f, //float zoomFov; - qfalse, //qboolean purchasable; - qtrue, //qboolean longRanged; - TEAM_ALIENS //team_t team; - }, - { WP_ALEVEL2, //int weaponNum; 0, //int price; STAGE_GE_2, //int stages @@ -4854,25 +4741,6 @@ qboolean BG_PlayerCanChangeWeapon( playerState_t *ps ) /* ================= -BG_PlayerPoisonCloudTime -================= -*/ -int BG_PlayerPoisonCloudTime( playerState_t *ps ) -{ - int time = LEVEL1_PCLOUD_TIME; - - if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, ps->stats ) ) - time -= BSUIT_PCLOUD_PROTECTION; - if( BG_InventoryContainsUpgrade( UP_HELMET, ps->stats ) ) - time -= HELMET_PCLOUD_PROTECTION; - if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, ps->stats ) ) - time -= LIGHTARMOUR_PCLOUD_PROTECTION; - - return time; -} - -/* -================= BG_GetPlayerWeapon Returns the players current weapon or the weapon they are switching to. diff --git a/src/game/bg_mod.h b/src/game/bg_mod.h index 9fa3908..a34b7f5 100644 --- a/src/game/bg_mod.h +++ b/src/game/bg_mod.h @@ -31,8 +31,6 @@ MOD( MOD_TARGET_LASER, CSW_UNKNOWN ), MOD( MOD_TRIGGER_HURT, CSW_UNKNOWN ), MOD( MOD_ABUILDER_CLAW, CSW_ABUILDER ), MOD( MOD_LEVEL0_BITE, CSW_UNKNOWN ), -MOD( MOD_LEVEL1_CLAW, CSW_LEVEL1 ), -MOD( MOD_LEVEL1_PCLOUD, CSW_UNKNOWN ), MOD( MOD_LEVEL3_CLAW, CSW_LEVEL3 ), MOD( MOD_LEVEL3_POUNCE, CSW_UNKNOWN ), MOD( MOD_LEVEL5_POUNCE, CSW_UNKNOWN ), @@ -65,5 +63,4 @@ MOD( MOD_SLAP, CSW_UNKNOWN ), MOD( MOD_DECONSTRUCT, CSW_UNKNOWN ), MOD( MOD_REPLACE, CSW_UNKNOWN ), MOD( MOD_NOCREEP, CSW_UNKNOWN ), -MOD( MOD_NOBP, CSW_UNKNOWN ), -MOD( MOD_ABOMB, CSW_UNKNOWN ) +MOD( MOD_NOBP, CSW_UNKNOWN ) diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c index 0991bf6..16132c3 100644 --- a/src/game/bg_pmove.c +++ b/src/game/bg_pmove.c @@ -465,14 +465,6 @@ static float PM_CmdScale( usercmd_t *cmd ) else modifier *= CREEP_MODIFIER; } - if( pm->ps->eFlags & EF_POISONCLOUDED ) - { - if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, pm->ps->stats ) || - BG_InventoryContainsUpgrade( UP_BATTLESUIT, pm->ps->stats ) ) - modifier *= PCLOUD_ARMOUR_MODIFIER; - else - modifier *= PCLOUD_MODIFIER; - } } if( pm->ps->weapon == WP_ALEVEL4 && pm->ps->pm_flags & PMF_CHARGE ) @@ -3473,14 +3465,6 @@ static void PM_Weapon( void ) pm->ps->weaponTime += 200; return; } - - //hacky special case for acid bomb - if( (pm->ps->weapon == WP_ALEVEL1 || pm->ps->weapon == WP_ALEVEL1_UPG) && !pm->ps->ammo ) - { - pm->ps->weaponTime += 200; - return; - } - pm->ps->generic1 = WPM_TERTIARY; PM_AddEvent( EV_FIRE_WEAPON3 ); @@ -3575,16 +3559,6 @@ static void PM_Weapon( void ) // weapon.cfg switch( pm->ps->weapon ) { - case WP_ALEVEL1_UPG: - case WP_ALEVEL1: - if( attack1 ) - { - num /= RAND_MAX / 6 + 1; - PM_ForceLegsAnim( NSPA_ATTACK1 ); - PM_StartWeaponAnim( WANIM_ATTACK1 + num ); - } - break; - case WP_ALEVEL2_UPG: if( attack2 ) { @@ -3671,13 +3645,7 @@ static void PM_Weapon( void ) if( pm->ps->ammo < 0 ) pm->ps->ammo = 0; } - else if( (pm->ps->weapon == WP_ALEVEL1 || pm->ps->weapon == WP_ALEVEL1_UPG ) && attack3 ) - { - pm->ps->ammo--; - // Stay on the safe side - if( pm->ps->ammo < 0 ) - pm->ps->ammo = 0; - } + //FIXME: predicted angles miss a problem?? if( pm->ps->weapon == WP_CHAINGUN ) { diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 602ec94..53e73cc 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -324,7 +324,6 @@ typedef enum #define EF_FIRING2 0x0400 // alt fire #define EF_FIRING3 0x0800 // third fire #define EF_MOVER_STOP 0x1000 // will push otherwise -#define EF_POISONCLOUDED 0x2000 // player hit with basilisk gas #define EF_CONNECTION 0x4000 // draw a connection trouble sprite #define EF_BLOBLOCKED 0x8000 // caught by a trapper @@ -350,8 +349,6 @@ typedef enum { WP_NONE, WP_ALEVEL0, - WP_ALEVEL1, - WP_ALEVEL1_UPG, WP_ALEVEL2, WP_ALEVEL2_UPG, WP_ALEVEL5, @@ -803,8 +800,6 @@ typedef enum PCL_ALIEN_BUILDER0_UPG, //offensive classes PCL_ALIEN_LEVEL0, - PCL_ALIEN_LEVEL1, - PCL_ALIEN_LEVEL1_UPG, PCL_ALIEN_LEVEL2, PCL_ALIEN_LEVEL2_UPG, PCL_ALIEN_LEVEL5, @@ -1061,7 +1056,6 @@ void BG_PositionBuildableRelativeToPlayer( const playerState_t *ps, vec3_t outOrigin, vec3_t outAngles, trace_t *tr ); int BG_GetValueOfPlayer( playerState_t *ps ); qboolean BG_PlayerCanChangeWeapon( playerState_t *ps ); -int BG_PlayerPoisonCloudTime( playerState_t *ps ); weapon_t BG_GetPlayerWeapon( playerState_t *ps ); qboolean BG_HasEnergyWeapon( playerState_t *ps ); diff --git a/src/game/g_active.c b/src/game/g_active.c index 84cf017..1a28de7 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -790,23 +790,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) client->time100 -= 100; - // Client is not moving - //client->ps.stats[ STAT_STATE ] &= ~SS_INVI; - if( client->ps.weapon == WP_ALEVEL1_UPG ) - { - client->ps.eFlags &= ~EF_MOVER_STOP; - - if( !G_Overmind( ) ) - client->ps.eFlags &= ~EF_MOVER_STOP; - else - if( stopped && !jumping && !( ucmd->buttons & BUTTON_ATTACK ) && ent->health >= 80 ){ - client->ps.eFlags |= EF_MOVER_STOP; - client->ps.stats[ STAT_STATE ] |= SS_INVI; - } - else - client->ps.stats[ STAT_STATE ] &= ~SS_INVI; - } - // Restore or subtract stamina if( stopped || client->ps.pm_type == PM_JETPACK ) client->ps.stats[ STAT_STAMINA ] += STAMINA_STOP_RESTORE; @@ -991,11 +974,8 @@ void ClientTimerActions( gentity_t *ent, int msec ) client->pers.aliveSeconds % g_freeFundPeriod.integer == 0 ) { // Give clients some credit periodically - // Basilisks receive even after sudden death const class_t class = client->ps.stats[ STAT_CLASS ]; - if( ( G_TimeTilSuddenDeath( ) > 0 ) || - ( class == PCL_ALIEN_LEVEL1 ) || - ( class == PCL_ALIEN_LEVEL1_UPG ) ) + if( ( G_TimeTilSuddenDeath( ) > 0 ) ) { if( client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) G_AddCreditToClient( client, FREEKILL_ALIEN, qtrue ); @@ -1039,17 +1019,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) { AddScore( ent, HUMAN_BUILDER_SCOREINC ); } - - // Give score to basis that healed other aliens - if( ent->client->pers.hasHealed ) - { - if( client->ps.weapon == WP_ALEVEL1 ) - AddScore( ent, LEVEL1_REGEN_SCOREINC ); - else if( client->ps.weapon == WP_ALEVEL1_UPG ) - AddScore( ent, LEVEL1_UPG_REGEN_SCOREINC ); - - ent->client->pers.hasHealed = qfalse; - } } //LVL2UPG barb regen (new) @@ -1097,30 +1066,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) else ent->timestamp = level.time; } - - - // Regenerate Basilisk acid bomb - if( client->ps.weapon == WP_ALEVEL1 || client->ps.weapon == WP_ALEVEL1_UPG ) - { - if( client->ps.ammo < BG_Weapon( WP_ALEVEL1 )->maxAmmo ) - { - if( ent->timestamp + 45000 < level.time ) - { - client->ps.ammo++; - ent->timestamp = level.time; - } - } - else if( client->ps.ammo < BG_Weapon( WP_ALEVEL1_UPG )->maxAmmo ) - { - if( ent->timestamp + 45000 < level.time ) - { - client->ps.ammo++; - ent->timestamp = level.time; - } - } - else - ent->timestamp = level.time; - } // Regenerate Tyrant FireBreath if( client->ps.weapon == WP_ALEVEL4 ) @@ -1725,12 +1670,6 @@ void ClientThink_real( gentity_t *ent ) client->ps.stats[ STAT_STATE ] |= SS_BOOSTEDWARNING; } - // Check if poison cloud has worn off - if( ( client->ps.eFlags & EF_POISONCLOUDED ) && - BG_PlayerPoisonCloudTime( &client->ps ) - level.time + - client->lastPoisonCloudedTime <= 0 ) - client->ps.eFlags &= ~EF_POISONCLOUDED; - if( client->ps.stats[ STAT_STATE ] & SS_POISONED && client->poisonExpiryTime < level.time ) client->ps.stats[ STAT_STATE ] &= ~SS_POISONED; @@ -1809,18 +1748,6 @@ void ClientThink_real( gentity_t *ent ) class_t class = boost->client->ps.stats[ STAT_CLASS ]; qboolean didBoost = qfalse; - if( class == PCL_ALIEN_LEVEL1 && modifier < LEVEL1_REGEN_MOD ) - { - modifier = LEVEL1_REGEN_MOD; - didBoost = qtrue; - } - else if( class == PCL_ALIEN_LEVEL1_UPG && - modifier < LEVEL1_UPG_REGEN_MOD ) - { - modifier = LEVEL1_UPG_REGEN_MOD; - didBoost = qtrue; - } - if( didBoost && ent->health < client->ps.stats[ STAT_MAX_HEALTH ] ) boost->client->pers.hasHealed = qtrue; } @@ -1988,11 +1915,6 @@ void ClientThink_real( gentity_t *ent ) } break; - case WP_ALEVEL1: - case WP_ALEVEL1_UPG: - CheckGrabAttack( ent ); - break; - case WP_ALEVEL3: case WP_ALEVEL3_UPG: if( !CheckPounceAttack( ent ) ) diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index a6daffa..472c70f 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -1900,41 +1900,6 @@ void ASpitefulAbcess_Die( gentity_t *self, gentity_t *inflictor, gentity_t *atta self->powered = qfalse; //free up power self->s.eFlags &= ~EF_FIRING; //prevent any firing effects - if ( self->spawned ) - { - // Grab all entities around us - VectorAdd(self->s.origin, range, maxs); - VectorSubtract(self->s.origin, range, mins); - - total_entities = trap_EntitiesInBox(mins, maxs, entityList, MAX_GENTITIES); - - // Loop entities looking for an enemy body - for( i = 0; i < total_entities; i++ ) - { - target = &g_entities[entityList[i]]; - if( target->client && target->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) - { - if( G_Visible( self, target, MASK_SHOT ) ) - { - if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, target->client->ps.stats ) ) - continue; - - if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, target->client->ps.stats ) ) - continue; - - if( !( target->client->ps.eFlags & EF_POISONCLOUDED ) ) - { - //target->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED; - target->client->ps.eFlags |= EF_POISONCLOUDED; - target->client->lastPoisonCloudedTime = level.time; - //target->client->lastPoisonCloudedClient = self; - trap_SendServerCommand( target->client->ps.clientNum, "poisoncloud" ); - } - } - } - } - } - //pretty events and item cleanup self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed G_AddEvent( self, EV_ALIEN_BUILDABLE_EXPLOSION, DirToByte( dir ) ); diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index f75241c..33fff3f 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -505,14 +505,6 @@ void Cmd_Give_f( gentity_t *ent ) } } - if( Q_stricmp( name, "gas" ) == 0 ) - { - ent->client->ps.eFlags |= EF_POISONCLOUDED; - ent->client->lastPoisonCloudedTime = level.time; - trap_SendServerCommand( ent->client->ps.clientNum, - "poisoncloud" ); - } - if( give_all || Q_stricmp( name, "ammo" ) == 0 ) { gclient_t *client = ent->client; @@ -1835,7 +1827,6 @@ void Cmd_Class_f( gentity_t *ent ) if( ent->client->ps.stats[ STAT_STATE ] & SS_BOOSTED ) oldBoostTime = ent->client->boostedTime; - oldTimeStamp = ( ent->client->ps.weapon == WP_ALEVEL1 ) ? ent->timestamp : 0; ClientSpawn( ent, ent, ent->s.pos.trBase, ent->s.apos.trBase ); @@ -1845,11 +1836,6 @@ void Cmd_Class_f( gentity_t *ent ) ent->client->boostedTime = oldBoostTime; ent->client->ps.stats[ STAT_STATE ] |= SS_BOOSTED; } - if( newClass == PCL_ALIEN_LEVEL1_UPG ) - { - ent->timestamp = oldTimeStamp; - ent->client->ps.ammo = 0; - } } else G_TriggerMenuArgs( clientNum, MN_A_CANTEVOLVE, newClass ); diff --git a/src/game/g_combat.c b/src/game/g_combat.c index a8938f8..03b8d82 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -978,10 +978,6 @@ static float G_CalcDamageModifier( vec3_t point, gentity_t *targ, gentity_t *att if( dflags & DAMAGE_NO_LOCDAMAGE ) { const int mod = targ->client->lasthurt_mod; - // basi - flamer protection - if( ( ( mod == MOD_FLAMER ) || ( mod == MOD_FLAMER_SPLASH ) ) && - ( ( class == PCL_ALIEN_LEVEL1 ) || ( class == PCL_ALIEN_LEVEL1_UPG ) ) ) - return 0.1f; return GetNonLocDamageModifier( targ, class ); } @@ -1448,19 +1444,15 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, && mod != MOD_POISON && mod != MOD_LEVEL2_ZAP && mod != MOD_LEVEL5_ZAP - && mod != MOD_LEVEL1_PCLOUD && mod != MOD_HSPAWN && mod != MOD_ASPAWN && mod != MOD_LEVEL5_PRICKLES && mod != MOD_FLAMER_SPLASH) poisonTime = level.time + ALIEN_POISON_TIME; // no more zap poisen - else if( mod == MOD_LEVEL1_CLAW && ( mod != MOD_LEVEL2_ZAP || mod != MOD_LEVEL5_ZAP || mod != MOD_FLAMES )) + else if( mod != MOD_LEVEL2_ZAP || mod != MOD_LEVEL5_ZAP || mod != MOD_FLAMES ) { - if( attacker->client->ps.weapon == WP_ALEVEL1_UPG ) - poisonTime = level.time + g_basiPoisonTime.integer * 1000; - else - poisonTime = level.time + g_basiUpgPoisonTime.integer * 1000; + poisonTime = level.time + g_basiUpgPoisonTime.integer * 1000; } if( poisonTime > 0 ) { diff --git a/src/game/g_csw.h b/src/game/g_csw.h index 96158b7..49e2088 100644 --- a/src/game/g_csw.h +++ b/src/game/g_csw.h @@ -17,7 +17,6 @@ CSW( CSW_GRENADE, MOD_GRENADE, "Grenade", GRENADE_DAMAGE ), CSW( CSW_ABUILDER, MOD_ABUILDER_CLAW, "Granger", ABUILDER_CLAW_DMG ), CSW( CSW_ABUILDER_ALT, MOD_SLOWBLOB, "Granger Spit", ABUILDER_BLOB_DMG ), -CSW( CSW_LEVEL1, MOD_LEVEL1_CLAW, "Basilisk", LEVEL1_CLAW_DMG ), CSW( CSW_LEVEL2, MOD_LEVEL2_CLAW, "Marauder", LEVEL2_CLAW_DMG ), CSW( CSW_LEVEL2_UPG, MOD_LEVEL2_CLAW_UPG, "Adv. Marauder", LEVEL2_CLAW_UPG_DMG ), CSW( CSW_LEVEL2_ALT, MOD_LEVEL2_ZAP, "Marauder Zap", LEVEL2_AREAZAP_DMG ), diff --git a/src/game/g_local.h b/src/game/g_local.h index 1b602a6..925359c 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -1039,8 +1039,6 @@ gentity_t *launch_mine( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *launch_flames( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *launch_smoke( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *fire_rocket( gentity_t *self, vec3_t start, vec3_t dir ); -gentity_t *fire_acidBomb( gentity_t *self, vec3_t start, vec3_t dir, int wp ); -gentity_t *fire_acidBomb2( gentity_t *self, vec3_t start, vec3_t dir, int wp ); gentity_t *fire_fern( vec3_t origin, vec3_t angles, int lifespan ); gentity_t *Prickles_Fire( gentity_t *self, vec3_t start, vec3_t dir ); diff --git a/src/game/g_missile.c b/src/game/g_missile.c index 3ac98f2..071d26d 100644 --- a/src/game/g_missile.c +++ b/src/game/g_missile.c @@ -1525,86 +1525,6 @@ gentity_t *fire_slowBlob( gentity_t *self, vec3_t start, vec3_t dir ) return bolt; } -/* -================= -fire_acidBomb2 -adv basi -================= -*/ -gentity_t *fire_acidBomb2( gentity_t *self, vec3_t start, vec3_t dir, int wp ) -{ - gentity_t *bolt; - - VectorNormalize ( dir ); - - bolt = G_Spawn( ); - bolt->classname = "acidbomb"; - bolt->nextthink = level.time + 8000; - bolt->think = G_ExplodeMissile; - bolt->s.eType = ET_MISSILE; - bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN; - bolt->s.weapon = wp; - bolt->s.eFlags = EF_BOUNCE_HALF; - bolt->s.generic1 = self->s.generic1; //weaponMode - bolt->r.ownerNum = self->s.number; - bolt->parent = self; - bolt->damage = ABOMB2_DMG; - bolt->splashDamage = ABOMB2_SPLASH_DMG; - bolt->splashRadius = ABOMB2_SPLASH_RADIUS; - bolt->methodOfDeath = MOD_ABOMB; - bolt->splashMethodOfDeath = MOD_ABOMB; - bolt->clipmask = MASK_SHOT; - bolt->target_ent = NULL; - bolt->r.mins[ 0 ] = bolt->r.mins[ 1 ] = bolt->r.mins[ 2 ] = -5.0f; - bolt->r.maxs[ 0 ] = bolt->r.maxs[ 1 ] = bolt->r.maxs[ 2 ] = 5.0f; - bolt->s.pos.trType = TR_GRAVITY; - bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame - VectorCopy( start, bolt->s.pos.trBase ); - VectorScale( dir, ABOMB2_SPEED, bolt->s.pos.trDelta ); - SnapVector( bolt->s.pos.trDelta ); // save net bandwidth - VectorCopy( start, bolt->r.currentOrigin ); - return bolt; -} - -/* -================= -fire_acidBomb -================= -*/ -gentity_t *fire_acidBomb( gentity_t *self, vec3_t start, vec3_t dir, int wp ) -{ - gentity_t *bolt; - VectorNormalize ( dir ); - bolt = G_Spawn( ); - bolt->classname = "acidbomb"; - bolt->nextthink = level.time + 8000; - bolt->think = G_ExplodeMissile; - bolt->s.eType = ET_MISSILE; - bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN; - bolt->s.weapon = wp; - bolt->s.eFlags = EF_BOUNCE_HALF; - bolt->s.generic1 = self->s.generic1; //weaponMode - bolt->r.ownerNum = self->s.number; - bolt->parent = self; - bolt->damage = ABOMB_DMG; - bolt->splashDamage = ABOMB_SPLASH_DMG; - bolt->splashRadius = ABOMB_SPLASH_RADIUS; - bolt->methodOfDeath = MOD_ABOMB; - bolt->splashMethodOfDeath = MOD_ABOMB; - bolt->clipmask = MASK_SHOT; - bolt->target_ent = NULL; - bolt->r.mins[ 0 ] = bolt->r.mins[ 1 ] = bolt->r.mins[ 2 ] = -5.0f; - bolt->r.maxs[ 0 ] = bolt->r.maxs[ 1 ] = bolt->r.maxs[ 2 ] = 5.0f; - bolt->s.pos.trType = TR_GRAVITY; - bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame - VectorCopy( start, bolt->s.pos.trBase ); - VectorScale( dir, ABOMB_SPEED, bolt->s.pos.trDelta ); - SnapVector( bolt->s.pos.trDelta ); // save net bandwidth - VectorCopy( start, bolt->r.currentOrigin ); - - return bolt; -} - void mine_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int mod ) { diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 56f931a..b3a9440 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -695,21 +695,6 @@ void throwMine( gentity_t *ent ) /* ====================================================================== -ACID BOMBS -====================================================================== -*/ -void acidBombFire( gentity_t *ent, int wp ) -{ - fire_acidBomb( ent, muzzle, forward, wp ); -} - -void acidBombFire2x( gentity_t *ent, int wp ) -{ - fire_acidBomb2( ent, muzzle, forward, wp ); -} - -/* -====================================================================== LAS GUN ====================================================================== */ @@ -1172,130 +1157,6 @@ qboolean CheckVenomAttack( gentity_t *ent ) /* ====================================================================== -LEVEL1 -====================================================================== -*/ -/* -=============== -CheckGrabAttack -=============== -*/ -void CheckGrabAttack( gentity_t *ent ) -{ - trace_t tr; - vec3_t end, dir; - float dot; - gentity_t *traceEnt; - - // set aiming directions - AngleVectors( ent->client->ps.viewangles, forward, right, up ); - CalcMuzzlePoint( ent, forward, right, up, muzzle ); - - if( ent->client->ps.weapon == WP_ALEVEL1 ) - VectorMA( muzzle, LEVEL1_GRAB_RANGE, forward, end ); - else if( ent->client->ps.weapon == WP_ALEVEL1_UPG ) - VectorMA( muzzle, LEVEL1_GRAB_U_RANGE, forward, end ); - - trap_Trace( &tr, muzzle, NULL, NULL, end, ent->s.number, MASK_SHOT ); - if( tr.surfaceFlags & SURF_NOIMPACT ) - return; - - traceEnt = &g_entities[ tr.entityNum ]; - - if( !traceEnt->takedamage ) - return; - - if( traceEnt->client ) - { - if( traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) - return; - - if( traceEnt->client->ps.stats[ STAT_HEALTH ] <= 0 ) - return; - - // NOTE: Re-using end,dir for optimal/current target direction in the following - if( !( traceEnt->client->ps.stats[ STAT_STATE ] & SS_GRABBED ) ) - { - AngleVectors( traceEnt->client->ps.viewangles, dir, NULL, NULL ); - traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( dir ); - VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end); - VectorNormalize(end); - ent->client->ps.stats[ STAT_MISC ] = DotProduct(dir, end); - - //event for client side grab effect - G_AddPredictableEvent( ent, EV_LEV1_GRAB, 0 ); - } else if (traceEnt->client->ps.pm_type == PM_JETPACK) { - // jetpack enabled, do nothing - } else if (ent->client->ps.stats[ STAT_MISC ] >= 0.9f) { - VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end); - VectorNormalize(end); - traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( end ); - } else { - VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end); - VectorNormalize(end); - - AngleVectors( traceEnt->client->ps.viewangles, dir, NULL, NULL ); - dot = DotProduct(dir, end); - - if (dot >= ent->client->ps.stats[ STAT_MISC ]) { - traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( end ); - ent->client->ps.stats[ STAT_MISC ] = dot; - } - } - - traceEnt->client->ps.stats[ STAT_STATE ] |= SS_GRABBED; - - if( ent->client->ps.weapon == WP_ALEVEL1 ) - traceEnt->client->grabExpiryTime = level.time + LEVEL1_GRAB_TIME; - else if( ent->client->ps.weapon == WP_ALEVEL1_UPG ) - traceEnt->client->grabExpiryTime = level.time + LEVEL1_GRAB_U_TIME; - } -} - -/* -=============== -poisonCloud -=============== -*/ -void poisonCloud( gentity_t *ent ) -{ - int entityList[ MAX_GENTITIES ]; - vec3_t range = { LEVEL1_PCLOUD_RANGE, LEVEL1_PCLOUD_RANGE, LEVEL1_PCLOUD_RANGE }; - vec3_t mins, maxs; - int i, num; - gentity_t *humanPlayer; - trace_t tr; - - VectorAdd( ent->client->ps.origin, range, maxs ); - VectorSubtract( ent->client->ps.origin, range, mins ); - - G_UnlaggedOn( ent, ent->client->ps.origin, LEVEL1_PCLOUD_RANGE ); - num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); - for( i = 0; i < num; i++ ) - { - humanPlayer = &g_entities[ entityList[ i ] ]; - - if( humanPlayer->client && - humanPlayer->client->pers.teamSelection == TEAM_HUMANS ) - { - trap_Trace( &tr, muzzle, NULL, NULL, humanPlayer->s.origin, - humanPlayer->s.number, CONTENTS_SOLID ); - - //can't see target from here - if( tr.entityNum == ENTITYNUM_WORLD ) - continue; - - humanPlayer->client->ps.eFlags |= EF_POISONCLOUDED; - humanPlayer->client->lastPoisonCloudedTime = level.time; - - trap_SendServerCommand( humanPlayer->client->ps.clientNum,"poisoncloud" ); - } - } - G_UnlaggedOff( ); -} - -/* -====================================================================== LEVEL2 ====================================================================== */ @@ -1852,13 +1713,6 @@ void FireWeapon3( gentity_t *ent ) massDriverFire2( ent ); } break; - - case WP_ALEVEL1: - acidBombFire2x( ent, WP_ALEVEL1 ); - break; - case WP_ALEVEL1_UPG: - acidBombFire( ent, WP_ALEVEL1_UPG ); - break; default: break; @@ -1891,10 +1745,6 @@ void FireWeapon2( gentity_t *ent ) case WP_MACHINEGUN: bulletFire( ent, RIFLE_SPREAD2, RIFLE_DMG2, MOD_MACHINEGUN ); break; - - case WP_ALEVEL1_UPG: - poisonCloud( ent ); - break; case WP_ALEVEL2_UPG: areaZapFire( ent ); @@ -1956,14 +1806,6 @@ void FireWeapon( gentity_t *ent ) // fire the specific weapon switch( ent->s.weapon ) { - case WP_ALEVEL1: - meleeAttack( ent, LEVEL1_CLAW_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH, - LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW ); - break; - case WP_ALEVEL1_UPG: - meleeAttack( ent, LEVEL1_CLAW_U_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH, - LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW ); - break; case WP_ALEVEL3: meleeAttack( ent, LEVEL3_CLAW_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW ); diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 9610077..7028ae7 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -74,8 +74,6 @@ TREMULOUS EDGE MOD SRC FILE #define ALIEN_POISON_TIME 10000 #define ALIEN_POISON_DMG 5 #define ALIEN_POISON_DIVIDER (1.0f/1.32f) //about 1.0/(time`th root of damage) -#define ALIEN_INFECTION_TIME 7000 -#define ALIEN_INFECTION_DMG 2 #define ALIEN_SPAWN_REPEAT_TIME 11000 #define ALIEN_REGEN_DAMAGE_TIME 2000 //msec since damage that regen starts again #define ALIEN_REGEN_NOCREEP_MOD (1.0f/3.0f) //regen off creep @@ -130,55 +128,12 @@ TREMULOUS EDGE MOD SRC FILE #define LEVEL0_BITE_REPEAT 500 #define LEVEL0_BITE_K_SCALE 1.0f -//Basilik -#define LEVEL1_SPEED 1.25f -#define LEVEL1_VALUE AVM(270) -#define LEVEL1_HEALTH AHM(60) -#define LEVEL1_REGEN (0.03f * LEVEL1_HEALTH) -#define LEVEL1_COST 1 -#define LEVEL1_UPG_SPEED 1.25f -#define LEVEL1_UPG_VALUE AVM(330) -#define LEVEL1_UPG_HEALTH AHM(80) -#define LEVEL1_UPG_REGEN (0.03f * LEVEL1_UPG_HEALTH) -#define LEVEL1_UPG_COST 1 - -#define LEVEL1_CLAW_DMG ADM(32) -#define LEVEL1_CLAW_RANGE 64.0f -#define LEVEL1_CLAW_U_RANGE LEVEL1_CLAW_RANGE + 3.0f -#define LEVEL1_CLAW_WIDTH 10.0f -#define LEVEL1_CLAW_REPEAT 600 -#define LEVEL1_CLAW_U_REPEAT 500 -#define LEVEL1_CLAW_K_SCALE 1.0f -#define LEVEL1_CLAW_U_K_SCALE 1.0f -#define LEVEL1_GRAB_RANGE 96.0f -#define LEVEL1_GRAB_U_RANGE LEVEL1_GRAB_RANGE + 3.0f -#define LEVEL1_GRAB_TIME 300 -#define LEVEL1_GRAB_U_TIME 300 -#define LEVEL1_PCLOUD_DMG ADM(5) -#define LEVEL1_PCLOUD_RANGE 150.0f -#define LEVEL1_PCLOUD_REPEAT 2000 -#define LEVEL1_PCLOUD_TIME 10000 -#define LEVEL1_REGEN_MOD 2.0f -#define LEVEL1_UPG_REGEN_MOD 3.0f -#define LEVEL1_REGEN_SCOREINC AVM(100) // score added for healing per 10s -#define LEVEL1_UPG_REGEN_SCOREINC AVM(200) -#define ABOMB_DMG ADM(60) -#define ABOMB_SPLASH_DMG ADM(200) -#define ABOMB_SPLASH_RADIUS 200 -#define ABOMB_SPEED 400.0f -#define ABOMB_REPEAT 1000 -#define ABOMB2_DMG ADM(50) -#define ABOMB2_SPLASH_DMG ADM(170) -#define ABOMB2_SPLASH_RADIUS 180 -#define ABOMB2_SPEED 500.0f -#define ABOMB2_REPEAT 1000 - //Marauder #define LEVEL2_SPEED 1.2f #define LEVEL2_VALUE AVM(420) #define LEVEL2_HEALTH AHM(150) #define LEVEL2_REGEN (0.03f * LEVEL2_HEALTH) -#define LEVEL2_COST 1 +#define LEVEL2_COST 2 #define LEVEL2_UPG_SPEED 1.2f #define LEVEL2_UPG_VALUE AVM(540) #define LEVEL2_UPG_HEALTH AHM(175) @@ -550,14 +505,10 @@ TREMULOUS EDGE MOD SRC FILE */ #define LIGHTARMOUR_PRICE 50 #define LIGHTARMOUR_POISON_PROTECTION 1 -#define LIGHTARMOUR_INFECTION_PROTECTION 0 -#define LIGHTARMOUR_PCLOUD_PROTECTION 1000 #define HELMET_PRICE 80 #define HELMET_RANGE 1000.0f #define HELMET_POISON_PROTECTION 1 -#define HELMET_INFECTION_PROTECTION 1 -#define HELMET_PCLOUD_PROTECTION 1000 #define SPAWN_WITH_MEDKIT 1 #define MEDKIT_PRICE 50 @@ -576,8 +527,6 @@ TREMULOUS EDGE MOD SRC FILE #define BSUIT_PRICE 400 #define BSUIT_POISON_PROTECTION 3 -#define BSUIT_INFECTION_PROTECTION 1 -#define BSUIT_PCLOUD_PROTECTION 3000 #define MGCLIP_PRICE 0 @@ -591,7 +540,6 @@ TREMULOUS EDGE MOD SRC FILE #define BIOKIT_PRICE 200 #define BIOKIT_POISON_PROTECTION 1 -#define BIOKIT_INFECTION_PROTECTION 3 #define BIOKIT_HEALTH_RATE 2.0 // 5000/BIOKIT_HEALTH_RATE = * msec before regenerate #define BIOKIT_STAMINA_RATE 2 @@ -619,9 +567,6 @@ TREMULOUS EDGE MOD SRC FILE #define CREEP_ARMOUR_MODIFIER 0.75f #define CREEP_SCALEDOWN_TIME 3000 -#define PCLOUD_MODIFIER 0.5f -#define PCLOUD_ARMOUR_MODIFIER 0.75f - #define ASPAWN_BP 10 #define ASPAWN_BT 15000 #define ASPAWN_HEALTH ABHM(250) |