Difference between revisions of "Dynamite Sapper"

From Team Fortress Wiki
Jump to: navigation, search
(Creating stub article)
 
m (Better functionality snippet)
Line 30: Line 30:
 
  #endif<!--End-->
 
  #endif<!--End-->
  
  <!--Begin--> #ifdef STAGING_ONLY
+
  <!--Begin-->#ifdef STAGING_ONLY
   if ( !m_bIsRinging && pObject->GetHealth() < 60.0f )
+
  CTFPlayer *pBuilder = GetBuilder();
 +
   if ( pBuilder && pParent->GetHealth() < 0 )
 
   {
 
   {
       int iDetonate = 0;
+
       // Attr on Det
       CALL_ATTRIB_HOOK_INT_ON_OTHER( pBuilder, iDetonate, sapper_explodes_on_det );
+
      float flExplodeOnTimer = 0;
       if ( iDetonate )
+
       CALL_ATTRIB_HOOK_FLOAT_ON_OTHER( pBuilder, flExplodeOnTimer, sapper_explodes_on_det );
 +
 +
       if ( flExplodeOnTimer )
 
       {
 
       {
           EmitSound( "WeaponDynamiteSapper.BellRing" );
+
           float flDamage = pParent->GetMaxHealth() * 1.5;
           m_bIsRinging = true;
+
           Vector vecOrigin = GetAbsOrigin();
      }
 
  }
 
 
   
 
   
  //float flExplodeOnTimer = 0;
+
          // Use the building as the det position       
  //CALL_ATTRIB_HOOK_FLOAT_ON_OTHER( pBuilder, flExplodeOnTimer, sapper_explodes_on_det );
+
          CTakeDamageInfo detInfo;
 +
          detInfo.SetDamage( flDamage );
 +
          detInfo.SetAttacker( this );
 +
          detInfo.SetInflictor( this );
 +
          detInfo.SetDamageType( DMG_BLAST );
 
   
 
   
  ////if ( flExplodeOnTimer != 0 && m_flSelfDestructTime < gpGlobals->curtime )
+
          // Generate Large Radius Damage
  //if ( flExplodeOnTimer )
+
          float flRadius = 200.0f;
  //{
+
          CTFRadiusDamageInfo radiusinfo( &detInfo, vecOrigin, flRadius, NULL, flRadius );
  //  float flDamage = pObject->GetMaxHealth() * 1.5;
+
          TFGameRules()->RadiusDamage( radiusinfo );
  //  Explode();
 
  //  DestroyObject();
 
 
   
 
   
  //  Vector vecOrigin = GetAbsOrigin();
+
          DispatchParticleEffect( "explosionTrail_seeds_mvm", vecOrigin, GetAbsAngles() );
+
      }
  //  // Use the building as the det position       
+
   }
  //  CTakeDamageInfo detInfo;
 
  //  detInfo.SetDamage( flDamage );
 
  //  detInfo.SetAttacker( this );
 
  //  detInfo.SetInflictor( this );
 
  //  detInfo.SetDamageType( DMG_BLAST );
 
 
  //  // Destroy the building by doubly applying damage
 
  //  pObject->TakeDamage( detInfo );
 
 
  //  // Generate Large Radius Damage
 
  //  float flRadius = 200.0f;    // same as pipebomb launcher
 
  //  CTFRadiusDamageInfo radiusinfo( &detInfo, vecOrigin, flRadius, NULL, flRadius );
 
  //  TFGameRules()->RadiusDamage( radiusinfo );
 
 
  //  DispatchParticleEffect( "explosionTrail_seeds_mvm", vecOrigin, GetAbsAngles() );
 
   //}
 
 
  #endif<!--End-->
 
  #endif<!--End-->
  
 
{{Unused Content Nav}}
 
{{Unused Content Nav}}

Revision as of 03:37, 25 April 2020

The Dynamite Sapper is a scrapped Spy sapper, referenced in code in some places.

#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