using System.Collections; using System.Collections.Generic; using UnityEngine; using RPGCreationKit; namespace RPGCreationKit { /// /// Settings for the locational damage. /// [System.Serializable] public class LocationalDamage : MonoBehaviour { public float HEAD_MULTIPLIER = 2.5f; public float UPPERCHEST_MULTIPLIER = 1.0f; public float CHEST_MULTIPLIER = 1.0f; public float ARMS_MULTIPLIER = .9f; public float HANDS_MULTIPLIER = .85f; public float LEGS_MULTIPLIER = .9f; public float FEET_MULTIPLIER = .85f; /// /// Given a base damage and the hit body part, returns the locational damage. /// /// /// /// public float CalculateLocationalDamage(BodyPart bodyPart, float _baseDamage) { if (bodyPart != null) { switch (bodyPart.thisBodyPart) { case BodyPart.BodyParts.Head: return (_baseDamage * HEAD_MULTIPLIER); case BodyPart.BodyParts.Upperchest: return (_baseDamage * UPPERCHEST_MULTIPLIER); case BodyPart.BodyParts.Chest: return (_baseDamage * CHEST_MULTIPLIER); case BodyPart.BodyParts.Arm: return (_baseDamage * ARMS_MULTIPLIER); case BodyPart.BodyParts.Hand: return (_baseDamage * HANDS_MULTIPLIER); case BodyPart.BodyParts.Foot: return (_baseDamage * FEET_MULTIPLIER); default: return _baseDamage; } } else return _baseDamage; } } }