From c9083efba65343e9242ab05acd82ee7fcfa17e54 Mon Sep 17 00:00:00 2001 From: Michael Levin Date: Sat, 3 Oct 2009 11:20:08 +0000 Subject: * Pulse Rifle has a small impact "particle system" to show impact flash Lucifer Cannon aesthetic changes: * Secondary fire has a blaster-like trail and impact flash * Primary fire missile sprite and impact particles scale their size with charge strength * Other players can hear Humans overcharge --- src/game/bg_misc.c | 2 +- src/game/bg_pmove.c | 6 ++++++ src/game/bg_public.h | 2 +- src/game/g_missile.c | 3 +++ 4 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/game') diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 45f6281f..1686f172 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -5079,7 +5079,7 @@ void BG_PlayerStateToEntityState( playerState_t *ps, entityState_t *s, qboolean if( s->generic1 <= WPM_NONE || s->generic1 >= WPM_NUM_WEAPONMODES ) s->generic1 = WPM_PRIMARY; - s->otherEntityNum = ps->otherEntityNum; + s->otherEntityNum = ps->otherEntityNum; } diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c index 45cf89e0..3f44debd 100644 --- a/src/game/bg_pmove.c +++ b/src/game/bg_pmove.c @@ -2783,6 +2783,12 @@ static void PM_Weapon( void ) qboolean attack2 = qfalse; qboolean attack3 = qfalse; + // Set overcharging flag so other players can hear warning + pm->ps->eFlags &= ~EF_WARN_CHARGE; + if( pm->ps->weapon == WP_LUCIFER_CANNON && + pm->ps->stats[ STAT_MISC ] > LCANNON_TOTAL_CHARGE * 2 / 3 ) + pm->ps->eFlags |= EF_WARN_CHARGE; + // don't allow attack until all buttons are up if( pm->ps->pm_flags & PMF_RESPAWNED ) return; diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 572430fc..ecc284e3 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -294,7 +294,7 @@ typedef enum #define EF_VOTED 0x00008000 // already cast a vote #define EF_TEAMVOTED 0x00010000 // already cast a vote #define EF_BLOBLOCKED 0x00020000 // caught by a trapper -#define EF_REAL_LIGHT 0x00040000 // light sprites according to ambient light +#define EF_WARN_CHARGE 0x00040000 // Lucifer Cannon is about to overcharge typedef enum { diff --git a/src/game/g_missile.c b/src/game/g_missile.c index 373bf390..2991ec48 100644 --- a/src/game/g_missile.c +++ b/src/game/g_missile.c @@ -465,6 +465,9 @@ gentity_t *fire_luciferCannon( gentity_t *self, vec3_t start, vec3_t dir, bolt->splashMethodOfDeath = MOD_LCANNON_SPLASH; bolt->clipmask = MASK_SHOT; bolt->target_ent = NULL; + + // Pass the missile charge through + bolt->s.torsoAnim = damage; bolt->s.pos.trType = TR_LINEAR; bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame -- cgit