diff options
Diffstat (limited to 'src/game')
-rw-r--r-- | src/game/bg_misc.c | 42 | ||||
-rw-r--r-- | src/game/bg_public.h | 1 | ||||
-rw-r--r-- | src/game/g_active.c | 6 | ||||
-rw-r--r-- | src/game/g_buildable.c | 26 |
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; |