Example #1
0
    public void OnDamageHit(HitBox.HitInfo hitInfo)
    {
        var damage = new Damage(currentMeleeWeapon.damage);

        switch (hitInfo.hitBarPoint)
        {
        case HitBarPoints.Top:
            damage.value = (int)((currentMeleeWeapon.damagePercentage.Top * (currentMeleeWeapon.damage.value)) / 100);
            TryApplyDamage(hitInfo.hitCollider, damage, HitBarPoints.Top);
            break;

        case HitBarPoints.Center:
            damage.value = (int)((currentMeleeWeapon.damagePercentage.Center * (currentMeleeWeapon.damage.value)) / 100);
            TryApplyDamage(hitInfo.hitCollider, damage, HitBarPoints.Center);
            break;
        }
    }
Example #2
0
    public void OnRecoilHit(HitBox.HitInfo hitInfo)
    {
        if (!hitProperts.useRecoil || !inAttack)
        {
            return;
        }
        Ray ray       = new Ray(bodyCenter.position, transform.forward);
        var inForward = (Physics.SphereCast(new Ray(ray.origin, ray.GetPoint(0.1f) - bodyCenter.position), 0.1f, hitProperts.recoilMaxDistance, hitProperts.hitRecoilLayer));

        if (hitInfo.hitBarPoint == HitBarPoints.Bottom && inForward)
        {
            //var recoil_id = (int)damage.recoil_id - (int)(currentMeleeShield != null ? currentMeleeShield.Recoil_ID : 0);
            SendMessage("TriggerRecoil", 0, SendMessageOptions.DontRequireReceiver);
            inAttack = false;
            ClearHitColliders();
        }
    }