Пример #1
0
    public static void Explosion()
    {
        C4Place.isActive = false;
        if (C4Place.asBeep == null)
        {
            return;
        }
        float num;

        if (SpecCam.show)
        {
            if (SpecCam.FID >= 0 && SpecCam.mode == 1 && PlayerControll.Player[SpecCam.FID] != null)
            {
                num = Vector3.Distance(C4.bombGo.transform.position, PlayerControll.Player[SpecCam.FID].go.transform.position);
            }
            else
            {
                num = Vector3.Distance(C4.bombGo.transform.position, SpecCam.position);
            }
        }
        else
        {
            num = Vector3.Distance(C4.bombGo.transform.position, BasePlayer.go.transform.position);
        }
        if (num < 50f)
        {
            C4Place.asBeep.volume      = 0.5f * Options.gamevol;
            C4Place.asBeep.maxDistance = 55f;
            C4Place.asBeep.PlayOneShot(C4Place.detonationSound);
        }
        else
        {
            C4Place.asBeep.volume      = 1f * Options.gamevol;
            C4Place.asBeep.maxDistance = 999999f;
            C4Place.asBeep.PlayOneShot(C4Place.detonationFarSound);
        }
        GameObject original = ContentLoader_.LoadGameObject("Detonator");

        UnityEngine.Object.Instantiate(original, C4.bombGo.transform.position + Vector3.up * 0.1f, C4.bombGo.transform.rotation);
        if (vp_FPController.cs == null || vp_FPCamera.cs == null)
        {
            return;
        }
        float num2 = Vector3.Distance(vp_FPController.cs.SmoothPosition, C4.bombGo.transform.position);

        if (num2 > 30f)
        {
            return;
        }
        float num3 = 0.001f;

        if (num2 < 5f)
        {
            num3 = 0.005f;
        }
        else if (num2 < 10f)
        {
            num3 = 0.003f;
        }
        num2 = 30f - num2;
        vp_FPCamera.cs.AddForce2(new Vector3(2f, -10f, 2f) * num2 * num3);
        if (UnityEngine.Random.value > 0.5f)
        {
            num3 = -num3;
        }
        vp_FPCamera.cs.AddRollForce(num3 * 200f);
        C4.DestroyBomb();
    }