IEnumerator Attack() { float randomDamage = Random.Range(damage, damage * damageMultiplier); Vector3 originalAngle = sword.localEulerAngles; float time = 0f; while (time <= attackTime) { time += Time.fixedDeltaTime; sword.localEulerAngles += new Vector3(0, 0, time * 1.5f); if (time >= attackTime * 0.9f) { sword.localEulerAngles -= new Vector3(0, 0, swingSpeed); } yield return(null); } sword.localEulerAngles = originalAngle; if (Vector3.Distance(transform.position, playerPos.position) <= attackDistance && Time.timeScale != 0) { playerPos.GetComponent <PlayerHealth> ().TakeDamage(randomDamage); damageText.CreateText(randomDamage, damage, playerPos, false); StartCoroutine(Attack()); } else { isAttacking = false; } }
public void Attack(float damage, string typeOfAttack) { for (int i = 0; i < checkenemy.enemyIndexes.Count; i++) { float randomDamage; bool crit = false; if (typeOfAttack == "slash") { randomDamage = Random.Range(damage, damage * slashDamageMultiplier); if (randomDamage >= critChance * (slashDamageMultiplier / 10) + (damage * (slashDamageMultiplier / 2))) { crit = true; randomDamage *= Random.Range(1.2f, critMultiplier); } } else { randomDamage = Random.Range(damage, damage * dashDamageMultiplier); if (randomDamage >= critChance * (dashDamageMultiplier / 10) + (damage * (dashDamageMultiplier / 2))) { crit = true; randomDamage *= Random.Range(1.2f, critMultiplier); } } checkenemy.enemies [checkenemy.enemyIndexes[i]].GetComponent <EnemyHealth> ().TakeDamage(randomDamage); damageText.CreateText(randomDamage, damage, checkenemy.enemies [checkenemy.enemyIndexes [i]].transform, crit); } }
void TakeDamage(float damage) { damageText.CreateText(damage, transform); if (damage >= health) { health = 0; Destroy(Instantiate(explosion, transform.position, Quaternion.identity), 1f); gameOver.GameOverScreen(); Destroy(this.gameObject); } else { health -= damage; } }
void TakeDamage(float damage) { damageText.CreateText(damage, transform); if (damage >= health) { mission.AddKill(); Destroy(Instantiate(explosion, transform.position, Quaternion.identity), 1f); Destroy(this.gameObject); } else { health -= damage; } healthSlider.UpdateSlider(); }