Dynamite Sapper

From Team Fortress Wiki
< Dynamite Sapper
Revision as of 09:26, 25 May 2020 by Jan (talk | contribs) (Made the whole page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Dynamite Sapper je vyřazený Sapper pro Spye, který existuje pouze ve formě různých referencí na různých místech v herním kódu. Dynamite Sapper by měl stejné vlastnosti jako ostatní Sappery, s tím rozdílem, že by při detonaci explodoval, čímž by udělil velké poškození všem nepřátelům v jeho dosahu.

#ifdef STAGING_ONLY	
 PrecacheScriptSound( "WeaponDynamiteSapper.TickTock" );
 PrecacheScriptSound( "WeaponDynamiteSapper.BellRing" );
#endif
#ifdef STAGING_ONLY
 // // Attr on Det
 float flExplodeOnTimer = 0;
 CALL_ATTRIB_HOOK_FLOAT_ON_OTHER( GetBuilder(), flExplodeOnTimer, sapper_explodes_on_det );
 if ( flExplodeOnTimer )
 {
     EmitSound( "Weapon_Sapper.Timer" );
     return "WeaponDynamiteSapper.TickTock";
 }
#endif
#ifdef STAGING_ONLY
 CTFPlayer *pBuilder = GetBuilder();
 if ( pBuilder && pParent->GetHealth() < 0 )
 {
     // Attr on Det
     float flExplodeOnTimer = 0;
     CALL_ATTRIB_HOOK_FLOAT_ON_OTHER( pBuilder, flExplodeOnTimer, sapper_explodes_on_det );

     if ( flExplodeOnTimer )
     {
         float flDamage = pParent->GetMaxHealth() * 1.5;
         Vector vecOrigin = GetAbsOrigin();

         // Use the building as the det position         
         CTakeDamageInfo detInfo;
         detInfo.SetDamage( flDamage );
         detInfo.SetAttacker( this );
         detInfo.SetInflictor( this );
         detInfo.SetDamageType( DMG_BLAST );

         // Generate Large Radius Damage
         float flRadius = 200.0f;
         CTFRadiusDamageInfo radiusinfo( &detInfo, vecOrigin, flRadius, NULL, flRadius );
         TFGameRules()->RadiusDamage( radiusinfo );

         DispatchParticleEffect( "explosionTrail_seeds_mvm", vecOrigin, GetAbsAngles() );
     }
 }
#endif