// Take damage. public bool TakeDamage(int damage, string damageType, RaycastHit dmgInfo) { if (dead) { return(true); } int damageMult = 1; if (damageType == "LeftLeg" || damageType == "LeftUpLeg" || damageType == "RightLeg" || damageType == "RightUpLeg") { DeductPart("Leg"); } else if (damageType == "LeftArm" || damageType == "RightArm") { DeductPart("Arm"); } switch (damageType) { case "Head": damageMult = 5; break; case "RightLeg": damageMult = 2; break; case "LeftLeg": damageMult = 2; break; default: break; } GameObject hitMarker = Instantiate(HM); hitMarker.transform.position = dmgInfo.point; HitMarker hmMarker = hitMarker.GetComponent <HitMarker>(); hmMarker.damage = damage * damageMult; hmMarker.faceTowards = playerEyes; health -= damage * damageMult; if (health <= 0) { Kill(); return(true); } return(false); }
public void DestroyActiveHitMarker(float time = 0) { if (activeHitMarker) { StartCoroutine(activeHitMarker.DestroyHitMarker(time)); activeHitMarkerCollider = null; activeHitMarker = null; } }
public IEnumerator ToggleHitMarkerVisibility(HitMarker hitMarker, GameObject visual, bool toggle, float time = 0) { yield return(new WaitForSeconds(time)); visual.SetActive(toggle); if (toggle) { hitMarker.curHitMarkerVisibility = HitMarker.HitMarkerVisible.VISIBLE; } else { hitMarker.curHitMarkerVisibility = HitMarker.HitMarkerVisible.HIDDEN; } }
public void Damage(float damageAmount, string damageType, Vector3 hitDirection, GameObject entity) { if (damageAmount > 0) { health -= damageAmount; GameObject hit = Instantiate(hitMarker); Vector3 hitMarkerPos = transform.position - hitDirection; hit.transform.position = hitMarkerPos; hit.transform.rotation = Quaternion.Euler(90, 0, 0); HitMarker hitScript = hit.GetComponent <HitMarker>(); hitScript.SetHitMarker(damageAmount, damageType, entity); lastDamagedTime = Time.time; } else { //Debug.Log("Got hit a 0"); } }
// Start is called before the first frame update void Awake() { instance = this; }
public void Init(HitMarker hitMarker) { _hitMarker = hitMarker; }
void SetActiveHitMarker(GameObject go) { activeHitMarker = go.GetComponent <HitMarker>(); }