Example #1
0
    private void ClientLocalDeath()
    {
        Transform transforms;
        bool      flag;
        Ragdoll   ragdoll = this.DeathRagdoll();

        if (base.localControlled)
        {
            if (!actor.forceThirdPerson)
            {
                CameraMount componentInChildren = base.GetComponentInChildren <CameraMount>();
                if (!componentInChildren || !componentInChildren.open)
                {
                    Debug.Log("No camera?");
                }
                else
                {
                    RagdollTransferInfoProvider ragdollTransferInfoProvider = base.controller as RagdollTransferInfoProvider;
                    if (ragdollTransferInfoProvider == null)
                    {
                        transforms = null;
                        flag       = false;
                    }
                    else
                    {
                        try
                        {
                            RagdollTransferInfo ragdollTransferInfo = ragdollTransferInfoProvider.RagdollTransferInfo;
                            flag = ragdollTransferInfo.FindHead(ragdoll.transform, out transforms);
                        }
                        catch (Exception exception)
                        {
                            Debug.LogException(exception, this);
                            transforms = null;
                            flag       = false;
                        }
                    }
                    if (flag)
                    {
                        Vector3 vector3 = transforms.InverseTransformPoint(componentInChildren.transform.position);
                        vector3.y = vector3.y + 0.08f;
                        Vector3 vector31 = transforms.TransformPoint(vector3);
                        Ragdoll ragdoll1 = ragdoll;
                        ragdoll1.origin = ragdoll1.origin + (vector31 - transforms.position);
                        CameraMount.CreateTemporaryCameraMount(componentInChildren, transforms).camera.nearClipPlane = 0.02f;
                    }
                    ArmorModelRenderer local = ragdoll.GetLocal <ArmorModelRenderer>();
                    if (local)
                    {
                        local.enabled = false;
                    }
                }
            }
            UnityEngine.Object.Destroy(base.GetComponent <LocalDamageDisplay>());
        }
    }
Example #2
0
    private void ClientLocalDeath()
    {
        Ragdoll ragdoll = this.DeathRagdoll();

        if (base.localControlled)
        {
            if (!actor.forceThirdPerson)
            {
                CameraMount componentInChildren = base.GetComponentInChildren <CameraMount>();
                if ((componentInChildren != null) && componentInChildren.open)
                {
                    Transform transform;
                    bool      flag;
                    RagdollTransferInfoProvider controller = base.controller as RagdollTransferInfoProvider;
                    if (controller != null)
                    {
                        try
                        {
                            flag = controller.RagdollTransferInfo.FindHead(ragdoll.transform, out transform);
                        }
                        catch (Exception exception)
                        {
                            Debug.LogException(exception, this);
                            transform = null;
                            flag      = false;
                        }
                    }
                    else
                    {
                        transform = null;
                        flag      = false;
                    }
                    if (flag)
                    {
                        Vector3 position = transform.InverseTransformPoint(componentInChildren.transform.position);
                        position.y += 0.08f;
                        Vector3 vector2 = transform.TransformPoint(position);
                        ragdoll.origin += vector2 - transform.position;
                        CameraMount.CreateTemporaryCameraMount(componentInChildren, transform).camera.nearClipPlane = 0.02f;
                    }
                    ArmorModelRenderer local = ragdoll.GetLocal <ArmorModelRenderer>();
                    if (local != null)
                    {
                        local.enabled = false;
                    }
                }
                else
                {
                    Debug.Log("No camera?");
                }
            }
            Object.Destroy(base.GetComponent <LocalDamageDisplay>());
        }
    }
Example #3
0
 public static CameraMount CreateTemporaryCameraMount(CameraMount copyFrom, Transform parent)
 {
     return(CameraMount.CreateTemporaryCameraMount(copyFrom, parent, parent));
 }
Example #4
0
 public static CameraMount CreateTemporaryCameraMount(CameraMount copyFrom)
 {
     return(CameraMount.CreateTemporaryCameraMount(copyFrom, null, false));
 }