Взрывной жучок

From Team Fortress Wiki
< Dynamite Sapper
Revision as of 09:27, 1 July 2020 by TheRilonh (talk | contribs) (Translated to russian)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Взрывной жучок — это вырезанное оружие слота КПК2 для шпиона, упоминание о котором встречается в некоторых кодах. Принцип его действия аналогичен другим жучкам, разве что уничтожение постройки сопровождалось бы взрывом, нанося большой урон всем игрокам, находящимся в зоне поражения.

#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