Allow the Shred Alert to tauntkill if tf_allow_econ_tauntkill cvar is enabled

Also make heads explode on kill with it.
This commit is contained in:
FlaminSarge 2025-03-14 04:48:27 -07:00
parent a62efecf62
commit bcdc271fd7
5 changed files with 21 additions and 6 deletions

View file

@ -818,8 +818,10 @@ void C_TFRagdoll::CreateTFRagdoll()
}
// did we find a death sequence?
if ( iDeathSeq > -1 && (m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_BARBARIAN_SWING) &&
(m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_ENGINEER_GUITAR_SMASH) && (m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_ALLCLASS_GUITAR_RIFF) )
if ( iDeathSeq > -1
&& (m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_BARBARIAN_SWING)
&& (m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_ENGINEER_GUITAR_SMASH)
&& (m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_ALLCLASS_GUITAR_RIFF) )
{
// we only want to show the death anims 25% of the time, unless this is a demoman kill taunt
// always play backstab animations for the ice ragdoll
@ -1238,7 +1240,11 @@ void C_TFRagdoll::OnDataChanged( DataUpdateType_t type )
CreateTFRagdoll();
if ( IsDecapitation() )
{
CreateTFHeadGib();
// no head gib if their minds are blown
if ( m_iDamageCustom != TF_DMG_CUSTOM_TAUNTATK_ALLCLASS_GUITAR_RIFF )
{
CreateTFHeadGib();
}
EmitSound( "TFPlayer.Decapitated" );
bool bBlood = true;
@ -1301,7 +1307,8 @@ bool C_TFRagdoll::IsDecapitation()
|| (m_iDamageCustom == TF_DMG_CUSTOM_TAUNTATK_BARBARIAN_SWING)
|| (m_iDamageCustom == TF_DMG_CUSTOM_DECAPITATION_BOSS)
|| (m_iDamageCustom == TF_DMG_CUSTOM_HEADSHOT_DECAPITATION)
|| (m_iDamageCustom == TF_DMG_CUSTOM_MERASMUS_DECAPITATION) );
|| (m_iDamageCustom == TF_DMG_CUSTOM_MERASMUS_DECAPITATION)
|| (m_iDamageCustom == TF_DMG_CUSTOM_TAUNTATK_ALLCLASS_GUITAR_RIFF) );
}
//-----------------------------------------------------------------------------
@ -10060,7 +10067,8 @@ static bool IsDecapitationCustomDamageType( int iCustomDamageType )
return iCustomDamageType == TF_DMG_CUSTOM_DECAPITATION
|| iCustomDamageType == TF_DMG_CUSTOM_TAUNTATK_BARBARIAN_SWING
|| iCustomDamageType == TF_DMG_CUSTOM_DECAPITATION_BOSS
|| iCustomDamageType == TF_DMG_CUSTOM_MERASMUS_DECAPITATION;
|| iCustomDamageType == TF_DMG_CUSTOM_MERASMUS_DECAPITATION
|| iCustomDamageType == TF_DMG_CUSTOM_TAUNTATK_ALLCLASS_GUITAR_RIFF;
}
void C_TFPlayer::CreateBoneAttachmentsFromWearables( C_TFRagdoll *pRagdoll, bool bDisguised )

View file

@ -229,6 +229,8 @@ ConVar tf_highfive_max_range( "tf_highfive_max_range", "150", FCVAR_CHEAT | FCVA
ConVar tf_highfive_height_tolerance( "tf_highfive_height_tolerance", "12", FCVAR_CHEAT | FCVAR_DEVELOPMENTONLY, "The maximum height difference allowed for two high-fivers." );
ConVar tf_highfive_debug( "tf_highfive_debug", "0", FCVAR_NONE, "Turns on some console spew for debugging high five issues." );
ConVar tf_allow_econ_tauntkill( "tf_allow_econ_tauntkill", "0", FCVAR_NOTIFY, "Allow equippable taunts to tauntkill." );
ConVar tf_test_teleport_home_fx( "tf_test_teleport_home_fx", "0", FCVAR_CHEAT );
ConVar tf_halloween_giant_health_scale( "tf_halloween_giant_health_scale", "10", FCVAR_CHEAT );
@ -18745,7 +18747,7 @@ void CTFPlayer::DoTauntAttack( void )
SpawnClientsideFlyingBird( vecPos );
}
}
else if ( iTauntAttack == TAUNTATK_PYRO_ARMAGEDDON )
else if ( iTauntAttack == TAUNTATK_PYRO_ARMAGEDDON || ( tf_allow_econ_tauntkill.GetBool() && iTauntAttack == TAUNTATK_ALLCLASS_GUITAR_RIFF_EXPLODE ) )
{
Vector origin( GetAbsOrigin() );
@ -18841,6 +18843,8 @@ void CTFPlayer::DoTauntAttack( void )
}
else if ( iTauntAttack == TAUNTATK_ALLCLASS_GUITAR_RIFF )
{
m_iTauntAttack = TAUNTATK_ALLCLASS_GUITAR_RIFF_EXPLODE;
m_flTauntAttackTime = gpGlobals->curtime + 3.13f;
// We need to parent this to a target instead of the player because the player changing their camera view can twist the rainbow
CBaseEntity *pTarget = CreateEntityByName( "info_target" );
if ( pTarget )

View file

@ -13332,6 +13332,7 @@ int CTFPlayerShared::GetSequenceForDeath( CBaseAnimating* pRagdoll, bool bBurnin
case TF_DMG_CUSTOM_TAUNTATK_BARBARIAN_SWING:
case TF_DMG_CUSTOM_DECAPITATION:
case TF_DMG_CUSTOM_HEADSHOT:
case TF_DMG_CUSTOM_TAUNTATK_ALLCLASS_GUITAR_RIFF:
iDeathSeq = pRagdoll->LookupSequence( "primary_death_headshot" );
break;
case TF_DMG_CUSTOM_BACKSTAB:

View file

@ -1053,6 +1053,7 @@ static const char* taunt_attack_name[] =
"TAUNTATK_ALLCLASS_GUITAR_RIFF",
"TAUNTATK_MEDIC_HEROIC_TAUNT",
"TAUNTATK_PYRO_GASBLAST",
"TAUNTATK_ALLCLASS_GUITAR_RIFF_EXPLODE",
//
// INSERT NEW ITEMS HERE TO AVOID BREAKING DEMOS

View file

@ -966,6 +966,7 @@ enum taunt_attack_t
TAUNTATK_ALLCLASS_GUITAR_RIFF,
TAUNTATK_MEDIC_HEROIC_TAUNT,
TAUNTATK_PYRO_GASBLAST,
TAUNTATK_ALLCLASS_GUITAR_RIFF_EXPLODE,
//
// INSERT NEW ITEMS HERE TO AVOID BREAKING DEMOS