Esempio n. 1
0
//-----------------------------------------------------------------------------
// Zap!
//-----------------------------------------------------------------------------
void CRagdollBoogie::ZapThink()
{
    if (!GetMoveParent())
        return;

    CBaseAnimating *pRagdoll = GetMoveParent()->GetBaseAnimating();
    if (!pRagdoll)
        return;

    // Make electricity on the client
    CStudioHdr *pStudioHdr = pRagdoll->GetModelPtr();
    if (!pStudioHdr)
        return;

    mstudiohitboxset_t *set = pStudioHdr->pHitboxSet(pRagdoll->GetHitboxSet());

    if (set->numhitboxes == 0)
        return;

    if (m_nSuppressionCount == 0)
    {
        CEffectData	data;

        data.m_nEntIndex = GetMoveParent()->entindex();
        data.m_flMagnitude = 4;
        data.m_flScale = HasSpawnFlags(SF_RAGDOLL_BOOGIE_ELECTRICAL_NARROW_BEAM) ? 1.0f : 2.0f;

        DispatchEffect("TeslaHitboxes", data);
    }

    SetContextThink(&CRagdollBoogie::ZapThink, gpGlobals->curtime + random->RandomFloat(0.1f, 0.3f), s_pZapContext);
}