IEnumerator Burning(float flame) { for (int i = 0; i <= Burns.Timer; i++) { yield return(new WaitForSeconds(1f)); TakeDamage(flame); int firedisp = Mathf.RoundToInt(flame); FloatingTextController.CreateFloatingTextFire(firedisp.ToString(), transform); } Burns.CurrentlyOn = false; yield return(null); }
public void CalcDamage(float dmg, float fire, float water, float air, float earth) { float PhysicHurt = (1 - defenace) * dmg; float FireHurt = ((1 - FireRes) * fire); float WaterHurt = ((1 - WaterRes) * water); float AirHurt = ((1 - AirRes) * air); float EarthHurt = ((1 - EarthRes) * earth); if (FireHurt > 0) { int firedisp = Mathf.RoundToInt(FireHurt); FloatingTextController.CreateFloatingTextFire(firedisp.ToString(), transform); if (Random.Range(0F, 100F) <= Burns.Chance) { if (!Burns.CurrentlyOn) { Burns.CurrentlyOn = true; F = StartCoroutine(Burning(FireHurt * Burns.EffStr)); } else { StopCoroutine(F); F = StartCoroutine(Burning(FireHurt * Burns.EffStr)); } } } if (WaterHurt > 0) { int waterdisp = Mathf.RoundToInt(WaterHurt); FloatingTextController.CreateFloatingTextWater(waterdisp.ToString(), transform); if (Random.Range(0F, 100F) <= Frozen.Chance) { Frozen.CurrentTimer = Frozen.Timer; if (!Frozen.CurrentlyOn) { Frozen.CurrentlyOn = true; this.gameObject.GetComponent <EnemyPath>().SetSpeed(1 - Frozen.EffStr); W = StartCoroutine(Freezing()); } else { StopCoroutine(W); W = StartCoroutine(Freezing()); } } } if (AirHurt > 0) { int Airdisp = Mathf.RoundToInt(AirHurt); FloatingTextController.CreateFloatingTextAir(Airdisp.ToString(), transform); if (Random.Range(0F, 100F) <= Stunned.Chance) { GetStunnedBitch(); } } if (EarthHurt > 0) { int earthdisp = Mathf.RoundToInt(EarthHurt); FloatingTextController.CreateFloatingTextEarth(earthdisp.ToString(), transform); if (Random.Range(0F, 100F) <= Poisoned.Chance) { if (Poisoning.Count < Poisoned.Stack) { Poisoning.Add(StartCoroutine(PoisonStackTimer(EarthHurt * Poisoned.EffStr))); } else { StopCoroutine(Poisoning[0]); Poisoning.RemoveAt(0); Poisoning.TrimExcess(); Poisoning.Add(StartCoroutine(PoisonStackTimer(EarthHurt * Poisoned.EffStr))); } } } if (PhysicHurt > 0) { int display = Mathf.RoundToInt(PhysicHurt); FloatingTextController.CreateFloatingText(display.ToString(), transform); } TakeDamage(PhysicHurt + FireHurt + WaterHurt + AirHurt + EarthHurt); }