// Token: 0x06001825 RID: 6181 RVA: 0x00081EA0 File Offset: 0x000800A0
    public void ApplyDamageToRagdoll(DamageInfo damageInfo)
    {
        GameObject gameObject = null;

        switch (damageInfo.BodyPart)
        {
        case BodyPart.Body:
            gameObject = this.GetBone(BoneIndex.Spine).gameObject;
            break;

        case BodyPart.Head:
            gameObject = this.GetBone(BoneIndex.Head).gameObject;
            break;

        case BodyPart.Nuts:
            gameObject = this.GetBone(BoneIndex.Hips).gameObject;
            break;
        }
        if (gameObject != null)
        {
            RagdollBodyPart component = gameObject.GetComponent <RagdollBodyPart>();
            if (component != null)
            {
                base.StartCoroutine(this.Die(component, damageInfo));
            }
            else
            {
                Debug.LogError(gameObject.name + " doesn't contain a RagdollBodyPart component.");
            }
        }
        else
        {
            Debug.LogError("Bone GameObject " + damageInfo.BodyPart + " was not found.");
        }
    }
Example #2
0
    // Use this for initialization
    void Start()
    {
        bodyParts = new List <RagdollBodyPart>();
        HumanBodyBones[] bones = (HumanBodyBones[])Enum.GetValues(typeof(HumanBodyBones));
        for (int i = 0; i < bones.Length; i++)
        {
            Transform animatedTransform  = AnimatedAnimator.GetBoneTransform(bones[i]);
            Transform ragdolledTransform = RagdolledAnimator.GetBoneTransform(bones[i]);

            if (animatedTransform && ragdolledTransform)
            {
                if (ragdolledTransform.rigidbody)
                {
                    RagdollBodyPartCollider part = ragdolledTransform.gameObject.AddComponent <RagdollBodyPartCollider>();
                    part.script = this;
                    part.part   = bones[i];
                    part.Init(AnimatedAnimator, RagdolledAnimator);

                    bodyParts.Add(part);
                }
                else
                {
                    RagdollBodyPart part = ragdolledTransform.gameObject.AddComponent <RagdollBodyPart>();
                    part.script = this;
                    part.part   = bones[i];
                    part.Init(AnimatedAnimator, RagdolledAnimator);

                    bodyParts.Add(part);
                }
            }
        }
    }
Example #3
0
 public void LoseStrengthChildren(float loseStrength, Transform ignoreChild = null)
 {
     loseStrength *= strengthLoseFalloff;
     foreach (Transform item in transform)
     {
         if (ignoreChild != item)
         {
             RagdollBodyPart child = item.GetComponent <RagdollBodyPart>();
             if (child)
             {
                 child.LoseStrength(loseStrength);
                 child.LoseStrengthChildren(loseStrength);
             }
         }
     }
 }
Example #4
0
    public void LoseStrengthParents(float loseStrength, Transform currentTransform)
    {
        RagdollBodyPart parentScript = currentTransform.parent.GetComponent <RagdollBodyPart>();

        if (!parentScript)
        {
            return;
        }

        parentScript.LoseStrength(loseStrength);

        loseStrength *= strengthLoseFalloff;

        parentScript.LoseStrengthChildren(loseStrength, currentTransform);

        LoseStrengthParents(loseStrength, currentTransform.parent);
    }
    // Token: 0x06001826 RID: 6182 RVA: 0x00081F78 File Offset: 0x00080178
    private IEnumerator Die(RagdollBodyPart ragdollBodyPart, DamageInfo damageInfo)
    {
        this.SetGravity(false);
        if (damageInfo.IsExplosion)
        {
            damageInfo.Force *= (float)damageInfo.Damage;
            damageInfo.UpwardsForceMultiplier = 10f;
        }
        ragdollBodyPart.ApplyDamage(damageInfo);
        float bTime = 0f;

        while (bTime < this._hangTime)
        {
            bTime += Time.deltaTime;
            ragdollBodyPart.rigidbody.AddForce(Vector3.down * this._hangTimeDownwardForce);
            yield return(new WaitForEndOfFrame());
        }
        this.SetGravity(true);
        yield break;
    }
Example #6
0
    public void Hit(RagdollBodyPart part)
    {
        switch (part.part)
        {
        case HumanBodyBones.Chest:
            break;

        case HumanBodyBones.Head:
            helper.ragdolled = true;
            Ragdoll(true);
            break;

        case HumanBodyBones.Hips:
            helper.ragdolled = true;
            Ragdoll(true);
            break;

        case HumanBodyBones.Jaw:
            break;

        case HumanBodyBones.LastBone:
            break;

        case HumanBodyBones.LeftEye:
            break;

        case HumanBodyBones.LeftFoot:
            break;

        case HumanBodyBones.LeftHand:
            break;

        case HumanBodyBones.LeftIndexDistal:
            break;

        case HumanBodyBones.LeftIndexIntermediate:
            break;

        case HumanBodyBones.LeftIndexProximal:
            break;

        case HumanBodyBones.LeftLittleDistal:
            break;

        case HumanBodyBones.LeftLittleIntermediate:
            break;

        case HumanBodyBones.LeftLittleProximal:
            break;

        case HumanBodyBones.LeftLowerArm:
            break;

        case HumanBodyBones.LeftLowerLeg:
            break;

        case HumanBodyBones.LeftMiddleDistal:
            break;

        case HumanBodyBones.LeftMiddleIntermediate:
            break;

        case HumanBodyBones.LeftMiddleProximal:
            break;

        case HumanBodyBones.LeftRingDistal:
            break;

        case HumanBodyBones.LeftRingIntermediate:
            break;

        case HumanBodyBones.LeftRingProximal:
            break;

        case HumanBodyBones.LeftShoulder:
            break;

        case HumanBodyBones.LeftThumbDistal:
            break;

        case HumanBodyBones.LeftThumbIntermediate:
            break;

        case HumanBodyBones.LeftThumbProximal:
            break;

        case HumanBodyBones.LeftToes:
            break;

        case HumanBodyBones.LeftUpperArm:

            break;

        case HumanBodyBones.LeftUpperLeg:
            break;

        case HumanBodyBones.Neck:
            break;

        case HumanBodyBones.RightEye:
            break;

        case HumanBodyBones.RightFoot:
            break;

        case HumanBodyBones.RightHand:
            break;

        case HumanBodyBones.RightIndexDistal:
            break;

        case HumanBodyBones.RightIndexIntermediate:
            break;

        case HumanBodyBones.RightIndexProximal:
            break;

        case HumanBodyBones.RightLittleDistal:
            break;

        case HumanBodyBones.RightLittleIntermediate:
            break;

        case HumanBodyBones.RightLittleProximal:
            break;

        case HumanBodyBones.RightLowerArm:
            break;

        case HumanBodyBones.RightLowerLeg:
            break;

        case HumanBodyBones.RightMiddleDistal:
            break;

        case HumanBodyBones.RightMiddleIntermediate:
            break;

        case HumanBodyBones.RightMiddleProximal:
            break;

        case HumanBodyBones.RightRingDistal:
            break;

        case HumanBodyBones.RightRingIntermediate:
            break;

        case HumanBodyBones.RightRingProximal:
            break;

        case HumanBodyBones.RightShoulder:
            break;

        case HumanBodyBones.RightThumbDistal:
            break;

        case HumanBodyBones.RightThumbIntermediate:
            break;

        case HumanBodyBones.RightThumbProximal:
            break;

        case HumanBodyBones.RightToes:
            break;

        case HumanBodyBones.RightUpperArm:
            break;

        case HumanBodyBones.RightUpperLeg:
            break;

        case HumanBodyBones.Spine:
            break;

        default:
            break;
        }
    }