Skip to content

Commit

Permalink
make napalmlets tick more often (1s => 0.25s) and slightly increase t…
Browse files Browse the repository at this point in the history
…heir overall damage
  • Loading branch information
mikeparker committed Aug 21, 2016
1 parent 1f5ea73 commit 6350261
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 54 deletions.
91 changes: 43 additions & 48 deletions dlls/ff/ff_grenade_napalmlet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ ConVar ffdev_nap_flamesize("ffdev_nap_flamesize", "30.0", 0, "Napalmlet flame si
ConVar ffdev_nap_burnamount("ffdev_nap_burnamount", "20.0", 0, "Napalmlet burn increase per tick, 100 is a full burn level");
#define FFDEV_NAPALM_BURNAMOUNT ffdev_nap_burnamount.GetFloat() // 50.0f

#define BURN_STANDON_NG 7
#define BURN_STANDON_NG 2

BEGIN_DATADESC( CFFGrenadeNapalmlet )
DEFINE_THINKFUNC( FlameThink ),
Expand Down Expand Up @@ -200,65 +200,60 @@ void CFFGrenadeNapalmlet::FlameThink()
return;
}

if((gpGlobals->curtime - m_flLastBurnCheck) >= 1.0f)
{
m_flLastBurnCheck = gpGlobals->curtime;

Vector vecSrc = GetAbsOrigin();
vecSrc.z += 1;
Vector vecSrc = GetAbsOrigin();
vecSrc.z += 1;

CBaseEntity *pEntity = NULL;
CBaseEntity *pEntity = NULL;

for( CEntitySphereQuery sphere( vecSrc, m_flBurnRadius ); ( pEntity = sphere.GetCurrentEntity() ) != NULL; sphere.NextEntity() )
{
if( !pEntity )
continue;
for( CEntitySphereQuery sphere( vecSrc, m_flBurnRadius ); ( pEntity = sphere.GetCurrentEntity() ) != NULL; sphere.NextEntity() )
{
if( !pEntity )
continue;

// Bug #0000269: Napalm through walls.
// Mulch: if we hit water w/ the trace, abort too!
trace_t tr;
UTIL_TraceLine(GetAbsOrigin(), pEntity->GetAbsOrigin(), MASK_SOLID_BRUSHONLY | CONTENTS_WATER, this, COLLISION_GROUP_DEBRIS, &tr);
// Bug #0000269: Napalm through walls.
// Mulch: if we hit water w/ the trace, abort too!
trace_t tr;
UTIL_TraceLine(GetAbsOrigin(), pEntity->GetAbsOrigin(), MASK_SOLID_BRUSHONLY | CONTENTS_WATER, this, COLLISION_GROUP_DEBRIS, &tr);

if (tr.fraction < 1.0f)
continue;
if (tr.fraction < 1.0f)
continue;

// Bug #0000270: Napalm grenade burn radius reaches unrealisticly high.
float height = tr.startpos.z - tr.endpos.z;
if (height < -40.0f || height > 40.0f)
continue;
// Bug #0000270: Napalm grenade burn radius reaches unrealisticly high.
float height = tr.startpos.z - tr.endpos.z;
if (height < -40.0f || height > 40.0f)
continue;

// Don't damage if entity is more than feet deep in water
if( pEntity->GetWaterLevel() >= 2 )
continue;
// Don't damage if entity is more than feet deep in water
if( pEntity->GetWaterLevel() >= 2 )
continue;

switch( pEntity->Classify() )
switch( pEntity->Classify() )
{
case CLASS_PLAYER:
{
case CLASS_PLAYER:
{
CFFPlayer *pPlayer = ToFFPlayer( pEntity );
if( !pPlayer )
continue;

if (g_pGameRules->FCanTakeDamage(pPlayer, GetOwnerEntity()))
{
pPlayer->TakeDamage( CTakeDamageInfo( this, GetOwnerEntity(), BURN_STANDON_NG, DMG_BURN ) );
pPlayer->IncreaseBurnLevel ( FFDEV_NAPALM_BURNAMOUNT );
}
}
break;
case CLASS_SENTRYGUN:
case CLASS_MANCANNON://Adding napalm damage to jumppad -GreenMushy
case CLASS_DISPENSER:
CFFPlayer *pPlayer = ToFFPlayer( pEntity );
if( !pPlayer )
continue;

if (g_pGameRules->FCanTakeDamage(pPlayer, GetOwnerEntity()))
{
if (g_pGameRules->FCanTakeDamage( pEntity, GetOwnerEntity()))
pEntity->TakeDamage( CTakeDamageInfo( this, GetOwnerEntity(), 8.0f, DMG_BURN ) );
pPlayer->TakeDamage( CTakeDamageInfo( this, GetOwnerEntity(), BURN_STANDON_NG, DMG_BURN ) );
pPlayer->IncreaseBurnLevel ( FFDEV_NAPALM_BURNAMOUNT );
}

default:
break;
}
break;
case CLASS_SENTRYGUN:
case CLASS_MANCANNON://Adding napalm damage to jumppad -GreenMushy
case CLASS_DISPENSER:
{
if (g_pGameRules->FCanTakeDamage( pEntity, GetOwnerEntity()))
pEntity->TakeDamage( CTakeDamageInfo( this, GetOwnerEntity(), 8.0f, DMG_BURN ) );
}

default:
break;
}
}

SetNextThink( gpGlobals->curtime + 1.0f );
SetNextThink( gpGlobals->curtime + 0.25f );
}
7 changes: 1 addition & 6 deletions dlls/ff/ff_grenade_napalmlet.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,24 +33,19 @@ class CFFGrenadeNapalmlet : public CBaseAnimating
DECLARE_CLASS( CFFGrenadeNapalmlet, CBaseAnimating );
void Precache();


CFFGrenadeNapalmlet( void ){m_flBurnTime = gpGlobals->curtime + 5.0f; m_flLastBurnCheck = 0; m_flBurnDamage = 15; /*m_bFlameSwitch = true;*/}
CFFGrenadeNapalmlet( void ){m_flBurnTime = gpGlobals->curtime + 5.0f;}
void UpdateOnRemove( void );

void Spawn();
void SetBurnRadius( float burnRadius ){ m_flBurnRadius = burnRadius; }
void SetBurnTime( float burnTime ){ m_flBurnTime = gpGlobals->curtime + burnTime; if (m_pFlame) m_pFlame->SetLifetime( m_flBurnTime );}
void SetBurnDamage( float burnDamage ){ m_flBurnDamage = burnDamage; }


void ResolveFlyCollisionCustom( trace_t &trace, Vector &vecVelocity );
void FlameThink(void);
DECLARE_DATADESC();
private:
float m_flBurnTime;
float m_flLastBurnCheck;
float m_flBurnRadius;
float m_flBurnDamage;
CEntityFlame *m_pFlame;
};

Expand Down

0 comments on commit 6350261

Please sign in to comment.