summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2015-06-22 01:24:58 +0200
committerPaweł Redman <pawel.redman@gmail.com>2015-06-22 01:24:58 +0200
commit451f2ca7c8d832d2691dde2510e613373c312cd1 (patch)
tree936a5222f7b6ac947561542b48f86c264a6f72d7
parentdc87cba52101aa4c6ad94c652460bff8520231bd (diff)
Remove Basilisk and Advanced Basilisk.
-rw-r--r--assets/configs/classes/level1.cfg17
-rw-r--r--assets/configs/classes/level1upg.cfg17
-rw-r--r--assets/models/players/level1/animation.cfg48
-rw-r--r--assets/models/weapons/level1/bomb.wavbin81448 -> 0 bytes
-rw-r--r--assets/models/weapons/level1/weapon.cfg19
-rw-r--r--assets/models/weapons/level1upg/weapon.cfg25
-rw-r--r--assets/sound/player/level0upg/death1.wavbin20652 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/death2.wavbin30636 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/death3.wavbin30892 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/drown.wavbin20652 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/gasp.wavbin23660 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/jump1.wavbin18796 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/pain100_1.wavbin23660 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/pain25_1.wavbin20524 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/pain50_1.wavbin18700 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/pain75_1.wavbin6812 -> 0 bytes
-rw-r--r--assets/sound/player/level0upg/taunt.wavbin52268 -> 0 bytes
-rw-r--r--src/cgame/cg_draw.c118
-rw-r--r--src/cgame/cg_event.c24
-rw-r--r--src/cgame/cg_local.h2
-rw-r--r--src/cgame/cg_main.c1
-rw-r--r--src/cgame/cg_players.c60
-rw-r--r--src/cgame/cg_servercmds.c18
-rw-r--r--src/cgame/cg_tutorial.c31
-rw-r--r--src/cgame/cg_view.c36
-rw-r--r--src/game/bg_misc.c134
-rw-r--r--src/game/bg_mod.h5
-rw-r--r--src/game/bg_pmove.c34
-rw-r--r--src/game/bg_public.h6
-rw-r--r--src/game/g_active.c80
-rw-r--r--src/game/g_buildable.c35
-rw-r--r--src/game/g_cmds.c14
-rw-r--r--src/game/g_combat.c12
-rw-r--r--src/game/g_csw.h1
-rw-r--r--src/game/g_local.h2
-rw-r--r--src/game/g_missile.c80
-rw-r--r--src/game/g_weapon.c158
-rw-r--r--src/game/tremulous.h57
38 files changed, 13 insertions, 1021 deletions
diff --git a/assets/configs/classes/level1.cfg b/assets/configs/classes/level1.cfg
deleted file mode 100644
index e4312c1..0000000
--- a/assets/configs/classes/level1.cfg
+++ /dev/null
@@ -1,17 +0,0 @@
-name "Basilisk"
-model level1
-modelScale 1.0
-skin default
-shadowScale 1.0
-hud alien_general_hud
-
-mins -18 -18 -18
-maxs 18 18 18
-crouchMaxs 18 18 18
-deadMins -18 -18 -4
-deadMaxs 18 18 4
-zOffset 0.0
-
-viewheight 0
-crouchViewheight 0
-shoulderOffsets -10 0 18
diff --git a/assets/configs/classes/level1upg.cfg b/assets/configs/classes/level1upg.cfg
deleted file mode 100644
index f7d2d7d..0000000
--- a/assets/configs/classes/level1upg.cfg
+++ /dev/null
@@ -1,17 +0,0 @@
-name "Advanced Basilisk"
-model level1
-modelScale 1.1666
-skin upgrade
-shadowScale 1.0
-hud alien_general_hud
-
-mins -21 -21 -21
-maxs 21 21 21
-crouchMaxs 21 21 21
-deadMins -21 -21 -4.666
-deadMaxs 21 21 4.666
-zOffset 0.0
-
-viewheight 0
-crouchViewheight 0
-shoulderOffsets -10 0 18
diff --git a/assets/models/players/level1/animation.cfg b/assets/models/players/level1/animation.cfg
deleted file mode 100644
index 248bf6c..0000000
--- a/assets/models/players/level1/animation.cfg
+++ /dev/null
@@ -1,48 +0,0 @@
-// animation config file
-// Tremulous: level1 alien
-
-sex n
-
-// first frame, num frames, looping frames, frames per second
-
-footsteps flesh
-
-nonsegmented
-
-0 40 40 30 //NSPA_STAND
-
-41 141 0 60 //NSPA_GESTURE
-
-182 31 31 30 //NSPA_WALK
-182 31 31 60 //NSPA_RUN
-182 -31 31 60 //NSPA_RUNBACK
-
-0 0 0 30 //NSPA_CHARGE
-
-213 31 31 60 //NSPA_RUNLEFT
-213 31 31 30 //NSPA_WALKLEFT
-244 31 31 60 //NSPA_RUNRIGHT
-244 31 31 30 //NSPA_WALKRIGHT
-
-182 31 31 30 //NSPA_SWIM
-
-275 41 20 30 //NSPA_JUMP
-316 20 0 30 //NSPA_LAND
-275 41 20 30 //NSPA_JUMPBACK
-316 20 0 30 //NSPA_LANDBACK
-
-182 31 31 30 //NSPA_TURN
-
-336 31 0 30 //NSPA_ATTACK1
-336 31 0 30 //NSPA_ATTACK2
-336 31 0 30 //NSPA_ATTACK3
-
-367 11 0 30 //NSPA_PAIN1
-367 11 0 30 //NSPA_PAIN2
-
-378 41 0 30 //NSPA_DEATH1
-418 1 0 30 //NSPA_DEAD1
-378 41 0 30 //NSPA_DEATH2
-418 1 0 30 //NSPA_DEAD2
-378 41 0 30 //NSPA_DEATH3
-418 1 0 30 //NSPA_DEAD3
diff --git a/assets/models/weapons/level1/bomb.wav b/assets/models/weapons/level1/bomb.wav
deleted file mode 100644
index 0d5a2bf..0000000
--- a/assets/models/weapons/level1/bomb.wav
+++ /dev/null
Binary files differ
diff --git a/assets/models/weapons/level1/weapon.cfg b/assets/models/weapons/level1/weapon.cfg
deleted file mode 100644
index db17776..0000000
--- a/assets/models/weapons/level1/weapon.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-disableIn3rdPerson
-crosshair 15 gfx/2d/crosshair-alien_s
-
-icon icons/icona_lev1
-
-primary
-{
- flashSound 0 models/weapons/level1/flash0.wav
- impactFleshSound 0 models/weapons/level1/impactflesh0.wav
- alwaysImpact
-}
-
-tertiary
-{
- missileModel models/weapons/acidbomb/acid.md3
- flashSound 0 models/weapons/level1/bomb.wav
- impactSound 0 sound/misc/abomb_explode.wav
- impactParticleSystem models/weapons/acidbomb/impactPS
-}
diff --git a/assets/models/weapons/level1upg/weapon.cfg b/assets/models/weapons/level1upg/weapon.cfg
deleted file mode 100644
index f2d5f60..0000000
--- a/assets/models/weapons/level1upg/weapon.cfg
+++ /dev/null
@@ -1,25 +0,0 @@
-disableIn3rdPerson
-crosshair 15 gfx/2d/crosshair-alien_s
-
-icon icons/icona_lev1
-
-primary
-{
- flashSound 0 models/weapons/level1/flash0.wav
- impactFleshSound 0 models/weapons/level1/impactflesh0.wav
- alwaysImpact
-}
-
-secondary
-{
- flashSound 0 models/weapons/level1upg/gas.wav
- muzzleParticleSystem models/weapons/level1upg/muzzlePS
-}
-
-tertiary
-{
- missileModel models/weapons/acidbomb/acid.md3
- flashSound 0 models/weapons/level1/bomb.wav
- impactSound 0 sound/misc/abomb_explode.wav
- impactParticleSystem models/weapons/acidbomb/impactPSBIG
-}
diff --git a/assets/sound/player/level0upg/death1.wav b/assets/sound/player/level0upg/death1.wav
deleted file mode 100644
index 55f5408..0000000
--- a/assets/sound/player/level0upg/death1.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/death2.wav b/assets/sound/player/level0upg/death2.wav
deleted file mode 100644
index 7fcdb3b..0000000
--- a/assets/sound/player/level0upg/death2.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/death3.wav b/assets/sound/player/level0upg/death3.wav
deleted file mode 100644
index 41fa6b0..0000000
--- a/assets/sound/player/level0upg/death3.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/drown.wav b/assets/sound/player/level0upg/drown.wav
deleted file mode 100644
index 55f5408..0000000
--- a/assets/sound/player/level0upg/drown.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/gasp.wav b/assets/sound/player/level0upg/gasp.wav
deleted file mode 100644
index 50310ba..0000000
--- a/assets/sound/player/level0upg/gasp.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/jump1.wav b/assets/sound/player/level0upg/jump1.wav
deleted file mode 100644
index c104513..0000000
--- a/assets/sound/player/level0upg/jump1.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/pain100_1.wav b/assets/sound/player/level0upg/pain100_1.wav
deleted file mode 100644
index 50310ba..0000000
--- a/assets/sound/player/level0upg/pain100_1.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/pain25_1.wav b/assets/sound/player/level0upg/pain25_1.wav
deleted file mode 100644
index e38acce..0000000
--- a/assets/sound/player/level0upg/pain25_1.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/pain50_1.wav b/assets/sound/player/level0upg/pain50_1.wav
deleted file mode 100644
index 2410652..0000000
--- a/assets/sound/player/level0upg/pain50_1.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/pain75_1.wav b/assets/sound/player/level0upg/pain75_1.wav
deleted file mode 100644
index a0c57fd..0000000
--- a/assets/sound/player/level0upg/pain75_1.wav
+++ /dev/null
Binary files differ
diff --git a/assets/sound/player/level0upg/taunt.wav b/assets/sound/player/level0upg/taunt.wav
deleted file mode 100644
index c2beed1..0000000
--- a/assets/sound/player/level0upg/taunt.wav
+++ /dev/null
Binary files differ
diff --git a/src/cgame/cg_draw.c b/src/cgame/cg_draw.c
index fb5741d..a20be8b 100644
--- a/src/cgame/cg_draw.c
+++ b/src/cgame/cg_draw.c
@@ -561,39 +561,6 @@ static void CG_DrawPlayerBoosterBolt( rectDef_t *rect, vec4_t backColor,
}
-
-/*
-==============
-CG_DrawInvisbleStatus
-==============
-*/
-static void CG_DrawInvisbleStatus( rectDef_t *rect, vec4_t color, qhandle_t shader )
-{
- qhandle_t detail1;
- if( cg.snap->ps.stats[ STAT_STATE ] & SS_INVI && cg.snap->ps.weapon == WP_ALEVEL1_UPG)
- {
-
- detail1 = trap_R_RegisterShader( "icons/advbasiinvi.tga" );
- CG_DrawPic( rect->x, rect->y, rect->w, rect->h, detail1 );
- }
-}
-
-/*
-==============
-CG_DrawInvisbleOverlay
-==============
-*/
-static void CG_DrawInvisbleOverlay( rectDef_t *rect, vec4_t color, qhandle_t shader )
-{
- qhandle_t detail2;
- if( cg.snap->ps.stats[ STAT_STATE ] & SS_INVI && cg.snap->ps.weapon == WP_ALEVEL1_UPG)
- {
- detail2 = trap_R_RegisterShader( "gfx/edge/basi_invisble_overlay" );
- CG_DrawPic( rect->x, rect->y, rect->w, rect->h, detail2 );
- }
-}
-
-
/*
==============
CG_DrawPlayerPrickles (ammo)
@@ -609,9 +576,9 @@ static void CG_DrawPlayerPrickles( rectDef_t *rect, vec4_t color, qhandle_t shad
maxBarbs = BG_Weapon( cg.snap->ps.weapon )->maxAmmo;
numBarbs = cg.snap->ps.ammo;
-
-if( cg.snap->ps.weapon == WP_ALEVEL2_UPG || cg.snap->ps.weapon == WP_ALEVEL3 || cg.snap->ps.weapon == WP_ALEVEL3_UPG || cg.snap->ps.weapon == WP_ALEVEL1 || cg.snap->ps.weapon == WP_ALEVEL1_UPG || cg.snap->ps.weapon == WP_ALEVEL4 )
- return;
+
+ if( cg.snap->ps.weapon != WP_ALEVEL5 )
+ return;
if( maxBarbs <= 0 || numBarbs <= 0 )
return;
@@ -670,69 +637,8 @@ static void CG_DrawPlayerFbreath( rectDef_t *rect, vec4_t color, qhandle_t shade
maxBarbs = BG_Weapon( cg.snap->ps.weapon )->maxAmmo;
numBarbs = cg.snap->ps.ammo;
- if( cg.snap->ps.weapon == WP_ALEVEL2_UPG || cg.snap->ps.weapon == WP_ALEVEL3 || cg.snap->ps.weapon == WP_ALEVEL3_UPG || cg.snap->ps.weapon == WP_ALEVEL1 || cg.snap->ps.weapon == WP_ALEVEL1_UPG || cg.snap->ps.weapon == WP_ALEVEL5 )
- return;
-
- if( maxBarbs <= 0 || numBarbs <= 0 )
+ if( cg.snap->ps.weapon != WP_ALEVEL4 )
return;
-
- // adjust these first to ensure the aspect ratio of the barb image is
- // preserved
- CG_AdjustFrom640( &x, &y, &width, &height );
-
- if( height > width )
- {
- vertical = qtrue;
- iconsize = width;
- if( maxBarbs != 1 ) // avoid division by zero
- diff = ( height - iconsize ) / (float)( maxBarbs - 1 );
- else
- diff = 0; // doesn't matter, won't be used
- }
- else
- {
- vertical = qfalse;
- iconsize = height;
- if( maxBarbs != 1 )
- diff = ( width - iconsize ) / (float)( maxBarbs - 1 );
- else
- diff = 0;
- }
-
- //trap_R_SetColor( color );
-
- for( ; numBarbs > 0; numBarbs-- )
- {
- trap_R_DrawStretchPic( x, y, iconsize, iconsize, 0, 0, 1, 1, shader );
- if( vertical )
- y += diff;
- else
- x += diff;
- }
-
-
- trap_R_SetColor( NULL );
-}
-
-
-/*
-==============
-CG_DrawPlayerBombs
-==============
-*/
-static void CG_DrawPlayerBombs( rectDef_t *rect, vec4_t color, qhandle_t shader )
-{
- qboolean vertical;
- float x = rect->x, y = rect->y;
- float width = rect->w, height = rect->h;
- float diff;
- int iconsize, numBarbs, maxBarbs;
-
- maxBarbs = BG_Weapon( cg.snap->ps.weapon )->maxAmmo;
- numBarbs = cg.snap->ps.ammo;
-
- if( !(cg.snap->ps.weapon == WP_ALEVEL1 || cg.snap->ps.weapon == WP_ALEVEL1_UPG) )
- return;
if( maxBarbs <= 0 || numBarbs <= 0 )
return;
@@ -760,7 +666,7 @@ static void CG_DrawPlayerBombs( rectDef_t *rect, vec4_t color, qhandle_t shader
diff = 0;
}
-
+ //trap_R_SetColor( color );
for( ; numBarbs > 0; numBarbs-- )
{
@@ -776,7 +682,6 @@ static void CG_DrawPlayerBombs( rectDef_t *rect, vec4_t color, qhandle_t shader
}
-
/*
==============
CG_DrawPlayerPoisonBarbs
@@ -2137,8 +2042,6 @@ static void CG_DrawTeamOverlay( rectDef_t *rect, float scale, vec4_t color )
{
if( ci->curWeaponClass == PCL_ALIEN_BUILDER0 ||
ci->curWeaponClass == PCL_ALIEN_BUILDER0_UPG ||
- ci->curWeaponClass == PCL_ALIEN_LEVEL1 ||
- ci->curWeaponClass == PCL_ALIEN_LEVEL1_UPG ||
ci->curWeaponClass == WP_HBUILD )
{
displayClients[ maxDisplayCount++ ] = i;
@@ -2234,7 +2137,7 @@ static void CG_DrawTeamOverlay( rectDef_t *rect, float scale, vec4_t color )
}
else
{
- if( curWeapon == WP_ALEVEL1_UPG || curWeapon == WP_ALEVEL2_UPG ||
+ if( curWeapon == WP_ALEVEL2_UPG ||
curWeapon == WP_ALEVEL3_UPG )
{
CG_DrawPic( x + iconSize + leftMargin, y, iconSize,
@@ -3163,18 +3066,9 @@ void CG_OwnerDraw( float x, float y, float w, float h, float text_x,
case CG_PLAYER_PRICKLES:
CG_DrawPlayerPrickles( &rect, foreColor, shader );
break;
- case CG_PLAYER_BOMBS:
- CG_DrawPlayerBombs( &rect, foreColor, shader );
- break;
case CG_PLAYER_POISON_BARBS:
CG_DrawPlayerPoisonBarbs( &rect, foreColor, shader );
break;
- case CG_DRAW_INVI_STAT:
- CG_DrawInvisbleStatus( &rect, foreColor, shader );
- break;
- case CG_DRAW_INVI_OVERLAY:
- CG_DrawInvisbleOverlay( &rect, foreColor, shader );
- break;
case CG_PLAYER_ALIEN_SENSE:
CG_DrawAlienSense( &rect );
break;
diff --git a/src/cgame/cg_event.c b/src/cgame/cg_event.c
index 5b159a6..7e20cc5 100644
--- a/src/cgame/cg_event.c
+++ b/src/cgame/cg_event.c
@@ -246,10 +246,6 @@ static void CG_Obituary( entityState_t *ent )
message = "^5was terminated by own flames";
break;
- case MOD_ABOMB:
- message = "^5bombed himself up";
- break;
-
default:
if( gender == GENDER_FEMALE )
message = "^5killed herself";
@@ -365,12 +361,6 @@ static void CG_Obituary( entityState_t *ent )
case MOD_LEVEL0_BITE:
message = "^5was bitten by^7";
break;
- case MOD_LEVEL1_CLAW:
- message = "^5was swiped by^7";
- Com_sprintf( className, 64, "^5's %s",
- BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName );
- message2 = className;
- break;
case MOD_LEVEL2_CLAW:
case MOD_LEVEL2_CLAW_UPG:
message = "^5was clawed by^7";
@@ -462,26 +452,12 @@ static void CG_Obituary( entityState_t *ent )
message = "^5should have used a medkit against^7";
message2 = "^5's poison";
break;
- case MOD_LEVEL1_PCLOUD:
- message = "^5was gassed by^7";
- Com_sprintf( className, 64, "^5's %s",
- BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName );
- message2 = className;
- break;
-
case MOD_TELEFRAG:
message = "^5tried to invade^7";
message2 = "^5's personal space";
break;
- case MOD_ABOMB:
- message = "^5was bombed by^7";
- Com_sprintf( className, 64, "^5's %s",
- BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName );
- message2 = className;
- break;
-
default:
message = "^5was killed by^7";
break;
diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h
index 9f8de96..2233414 100644
--- a/src/cgame/cg_local.h
+++ b/src/cgame/cg_local.h
@@ -669,8 +669,6 @@ typedef struct centity_s
particleSystem_t *jetPackPS;
jetPackState_t jetPackState;
- particleSystem_t *poisonCloudedPS;
-
particleSystem_t *entityPS;
qboolean entityPSMissing;
diff --git a/src/cgame/cg_main.c b/src/cgame/cg_main.c
index bd758e6..c3f45dd 100644
--- a/src/cgame/cg_main.c
+++ b/src/cgame/cg_main.c
@@ -1614,7 +1614,6 @@ static const char *CG_FeederItemText( int feederID, int index, int column, qhand
{
switch( sp->weapon )
{
- case WP_ALEVEL1_UPG:
case WP_ALEVEL2_UPG:
case WP_ALEVEL3_UPG:
*handle = cgs.media.upgradeClassIconShader;
diff --git a/src/cgame/cg_players.c b/src/cgame/cg_players.c
index 29f6992..c8183e8 100644
--- a/src/cgame/cg_players.c
+++ b/src/cgame/cg_players.c
@@ -2019,50 +2019,6 @@ void CG_Player( centity_t *cent )
legs.hModel = ci->nonSegModel;
legs.customSkin = ci->nonSegSkin;
- // we can't hit what we can't see :P
- if( es->weapon == WP_ALEVEL1_UPG )
- {
- if( es->eFlags & EF_MOVER_STOP )
- {
- if( !cent->invisible )
- {
- cent->invisibleTime = cg.time;
- cent->invisible = qtrue;
- }
- }
- else
- {
- if( cent->invisible )
- {
- cent->invisibleTime = cg.time;
- cent->invisible = qfalse;
- }
- }
-
- if( cent->invisible )
- {
- legs.shaderTime = cent->invisibleTime/1000.0f;
-
- if( cg.time - cent->invisibleTime < 1000.0f )
- legs.customShader = cgs.media.invisibleFadeShader;
-
- else{
- if( ci->team != cg.snap->ps.stats[ STAT_TEAM ] )
- legs.customShader = cgs.media.invisibleShader;
- else
- legs.customShader = cgs.media.invisibleShaderTeam;
- }
- }
- else
- {
- if( cg.time - cent->invisibleTime < 500.0f )
- {
- legs.shaderTime = (cent->invisibleTime+500.0f)/1000.0f;
- legs.customShader = cgs.media.invisibleFadeShader;
- }
- }
- }
-
if( ( cent->currentState.legsAnim & ~ANIM_TOGGLEBIT ) == NSPA_SWIM && es->weapon == WP_ALEVEL5)
{
trap_S_AddLoopingSound( cent->currentState.number, cent->lerpOrigin, vec3_origin, cgs.media.hummelSound );
@@ -2190,22 +2146,6 @@ void CG_Player( centity_t *cent )
head.renderfx = renderfx;
trap_R_AddRefEntityToScene( &head );
-
-
- // if this player has been hit with poison cloud, add an effect PS
- if( ( es->eFlags & EF_POISONCLOUDED ) &&
- ( es->number != cg.snap->ps.clientNum || cg.renderingThirdPerson ) )
- {
- if( !CG_IsParticleSystemValid( &cent->poisonCloudedPS ) )
- cent->poisonCloudedPS = CG_SpawnNewParticleSystem( cgs.media.poisonCloudedPS );
-
- CG_SetAttachmentTag( &cent->poisonCloudedPS->attachment,
- head, head.hModel, "tag_head" );
- CG_SetAttachmentCent( &cent->poisonCloudedPS->attachment, cent );
- CG_AttachToTag( &cent->poisonCloudedPS->attachment );
- }
- else if( CG_IsParticleSystemValid( &cent->poisonCloudedPS ) )
- CG_DestroyParticleSystem( &cent->poisonCloudedPS );
}
//
diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c
index 7326ba8..c2be336 100644
--- a/src/cgame/cg_servercmds.c
+++ b/src/cgame/cg_servercmds.c
@@ -1291,23 +1291,6 @@ static void CG_ServerCloseMenus_f( void )
trap_SendConsoleCommand( "closemenus\n" );
}
-/*
-=================
-CG_PoisonCloud_f
-=================
-*/
-static void CG_PoisonCloud_f( void )
-{
- cg.poisonedTime = cg.time;
-
- if( CG_IsParticleSystemValid( &cg.poisonCloudPS ) )
- {
- cg.poisonCloudPS = CG_SpawnNewParticleSystem( cgs.media.poisonCloudPS );
- CG_SetAttachmentCent( &cg.poisonCloudPS->attachment, &cg.predictedPlayerEntity );
- CG_AttachToCent( &cg.poisonCloudPS->attachment );
- }
-}
-
static void CG_GameCmds_f( void )
{
int i;
@@ -1349,7 +1332,6 @@ static consoleCommand_t svcommands[ ] =
{ "cs", CG_ConfigStringModified },
{ "di", CG_DamageIndicator_f },
{ "map_restart", CG_MapRestart },
- { "poisoncloud", CG_PoisonCloud_f },
{ "print", CG_Print_f },
{ "scores", CG_ParseScores },
{ "serverclosemenus", CG_ServerCloseMenus_f },
diff --git a/src/cgame/cg_tutorial.c b/src/cgame/cg_tutorial.c
index d36ecac..0819892 100644
--- a/src/cgame/cg_tutorial.c
+++ b/src/cgame/cg_tutorial.c
@@ -258,32 +258,6 @@ static void CG_AlienLevel0Text( char *text, playerState_t *ps )
/*
===============
-CG_AlienLevel1Text
-===============
-*/
-static void CG_AlienLevel1Text( char *text, playerState_t *ps )
-{
- Q_strcat( text, MAX_TUTORIAL_TEXT,
- "Touch humans to grab them\n" );
-
- Q_strcat( text, MAX_TUTORIAL_TEXT,
- va( "Press %s to swipe\n",
- CG_KeyNameForCommand( "+attack" ) ) );
-
- if( ps->stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL1_UPG )
- {
- Q_strcat( text, MAX_TUTORIAL_TEXT,
- va( "Press %s to spray poisonous gas\n",
- CG_KeyNameForCommand( "+button5" ) ) );
- }
-
- Q_strcat( text, MAX_TUTORIAL_TEXT,
- va( "Press %s to walk on walls\n",
- CG_KeyNameForCommand( "+movedown" ) ) );
-}
-
-/*
-===============
CG_AlienLevel2Text
===============
*/
@@ -657,11 +631,6 @@ const char *CG_TutorialText( void )
CG_AlienLevel0Text( text, ps );
break;
- case PCL_ALIEN_LEVEL1:
- case PCL_ALIEN_LEVEL1_UPG:
- CG_AlienLevel1Text( text, ps );
- break;
-
case PCL_ALIEN_LEVEL2:
case PCL_ALIEN_LEVEL2_UPG:
CG_AlienLevel2Text( text, ps );
diff --git a/src/cgame/cg_view.c b/src/cgame/cg_view.c
index 1221fe9..9145b32 100644
--- a/src/cgame/cg_view.c
+++ b/src/cgame/cg_view.c
@@ -782,27 +782,6 @@ void CG_OffsetFirstPersonView( void )
cg.upMoveTime = cg.time;
}
- if( ( cg.predictedPlayerEntity.currentState.eFlags & EF_POISONCLOUDED ) &&
- ( cg.time - cg.poisonedTime < PCLOUD_DISORIENT_DURATION) &&
- !( cg.snap->ps.pm_flags & PMF_FOLLOW ) )
- {
- float scale, fraction, pitchFraction;
-
- scale = 1.0f - (float)( cg.time - cg.poisonedTime ) /
- BG_PlayerPoisonCloudTime( &cg.predictedPlayerState );
- if( scale < 0.0f )
- scale = 0.0f;
-
- fraction = sin( ( cg.time - cg.poisonedTime ) / 500.0f * M_PI * PCLOUD_ROLL_FREQUENCY ) *
- scale;
- pitchFraction = sin( ( cg.time - cg.poisonedTime ) / 200.0f * M_PI * PCLOUD_ROLL_FREQUENCY ) *
- scale;
-
- angles[ ROLL ] += fraction * PCLOUD_ROLL_AMPLITUDE;
- angles[ YAW ] += fraction * PCLOUD_ROLL_AMPLITUDE;
- angles[ PITCH ] += pitchFraction * PCLOUD_ROLL_AMPLITUDE / 2.0f;
- }
-
// this *feels* more realisitic for humans
if( cg.predictedPlayerState.stats[ STAT_TEAM ] == TEAM_HUMANS &&
( cg.predictedPlayerState.pm_type == PM_NORMAL ||
@@ -1022,21 +1001,6 @@ static int CG_CalcFov( void )
else
inwater = qfalse;
- if( ( cg.predictedPlayerEntity.currentState.eFlags & EF_POISONCLOUDED ) &&
- ( cg.time - cg.poisonedTime < PCLOUD_DISORIENT_DURATION) &&
- cg.predictedPlayerState.stats[ STAT_HEALTH ] > 0 &&
- !( cg.snap->ps.pm_flags & PMF_FOLLOW ) )
- {
- float scale = 1.0f - (float)( cg.time - cg.poisonedTime ) /
- BG_PlayerPoisonCloudTime( &cg.predictedPlayerState );
-
- phase = ( cg.time - cg.poisonedTime ) / 1000.0f * PCLOUD_ZOOM_FREQUENCY * M_PI * 2.0f;
- v = PCLOUD_ZOOM_AMPLITUDE * sin( phase ) * scale;
- fov_x += v;
- fov_y += v;
- }
-
-
// set it
cg.refdef.fov_x = fov_x;
cg.refdef.fov_y = fov_y;
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)