summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c42
-rw-r--r--src/game/bg_public.h1
-rw-r--r--src/game/g_active.c6
-rw-r--r--src/game/g_buildable.c26
4 files changed, 74 insertions, 1 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 431f433f..32c20566 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -881,6 +881,22 @@ TA: droid defense item
"" //sounds
},
+/*QUAKED team_droid_trapper (0 0 1) (-16 -16 -16) (16 16 16)
+TA: droid defense item
+*/
+ {
+ "team_droid_booster",
+ "sound/items/holdable.wav",
+ { "models/buildables/booster/booster.md3", 0, 0, 0 },
+ "icons/teleporter", //icon
+ "Booster", //pickup
+ 0,
+ IT_BUILDABLE,
+ BA_D_BOOSTER,
+ "", //precache
+ "" //sounds
+ },
+
/*QUAKED team_droid_hivemind (0 0 1) (-16 -16 -16) (16 16 16)
TA: droid build limitation item
*/
@@ -1260,6 +1276,32 @@ buildableAttributes_t bg_buildableList[ ] =
qfalse //qboolean reactorTest;
},
{
+ BA_D_BOOSTER, //int buildNum;
+ "booster", //char *buildName;
+ "team_droid_booster", //char *entityName;
+ { -15, -15, -15 }, //vec3_t mins;
+ { 15, 15, 15 }, //vec3_t maxs;
+ TR_GRAVITY, //trType_t traj;
+ 0.0, //float bounce;
+ 80, //int buildPoints;
+ 1000, //int health;
+ 50, //int damage;
+ 20, //int splashDamage;
+ 50, //int splashRadius;
+ MOD_DSPAWN, //int meansOfDeath;
+ BIT_DROIDS, //int team;
+ ( 1 << WP_DBUILD )|( 1 << WP_DBUILD2 ), //weapon_t buildWeapon;
+ BANIM_IDLE1, //int idleAnim;
+ 100, //int nextthink;
+ 0, //int turretFireSpeed;
+ 0, //int turretRange;
+ WP_NONE, //weapon_t turretProjType;
+ 0.707f, //float minNormal;
+ qfalse, //qboolean invertNormal;
+ qtrue, //qboolean creepTest;
+ qfalse //qboolean reactorTest;
+ },
+ {
BA_D_ACIDTUBE, //int buildNum;
"acid_tube", //char *buildName;
"team_droid_acid_tube",//char *entityName;
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index e03ef4bd..b0acd7a7 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -403,6 +403,7 @@ typedef enum
BA_D_BARRICADE,
BA_D_ACIDTUBE,
BA_D_TRAPPER,
+ BA_D_BOOSTER,
BA_H_SPAWN,
diff --git a/src/game/g_active.c b/src/game/g_active.c
index 95b638b3..5abeeaf8 100644
--- a/src/game/g_active.c
+++ b/src/game/g_active.c
@@ -848,7 +848,11 @@ void ClientThink_real( gentity_t *ent ) {
( temp_v[ 2 ] <= 21 ) && //assumes mins of player is (x, x, -24)
( client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS ) )
{
- client->ps.speed *= 0.5;
+ if( BG_gotItem( UP_LIMBARMOUR, client->ps.stats ) )
+ client->ps.speed *= 0.75;
+ else
+ client->ps.speed *= 0.5;
+
client->ps.stats[ STAT_STATE ] |= SS_CREEPSLOWED;
cSlowed = qtrue;
break;
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c
index 09630f5b..013a7e93 100644
--- a/src/game/g_buildable.c
+++ b/src/game/g_buildable.c
@@ -590,6 +590,25 @@ void DAcidTube_Think( gentity_t *self )
//==================================================================================
+
+/*
+================
+DBooster_Touch
+
+Called when an alien touches a booster
+================
+*/
+void DBooster_Touch( gentity_t *self, gentity_t *other, trace_t *trace )
+{
+ G_Printf( "%d is touching me\n", other->s.number );
+}
+
+
+
+
+//==================================================================================
+
+
#define BLOB_PROJSPEED 500
/*
@@ -1736,6 +1755,13 @@ gentity_t *G_buildItem( gentity_t *ent, buildable_t buildable, int distance, flo
built->pain = DBarricade_Pain;
break;
+ case BA_D_BOOSTER:
+ built->die = DBarricade_Die;
+ built->think = DBarricade_Think;
+ built->pain = DBarricade_Pain;
+ built->touch = DBooster_Touch;
+ break;
+
case BA_D_ACIDTUBE:
built->die = DBarricade_Die;
built->think = DAcidTube_Think;