public void BH_HealOrDamage(int bhDmgValue, T_DamageHeal dmgType) { if (alive) { if (bhDmgValue < 0) { if (bhDmgValue != -100) { bhDmgValue = Mathf.RoundToInt(bhDmgValue * (1f - dmgReduction)); } else { bhDmgValue = -burninghealth; } if (bhDmgValue == 0) { bhDmgValue = -1; } } BurningHealth += bhDmgValue; if (coroutines.ContainsKey("ui_display")) { StopCoroutine(coroutines["ui_display"]); } coroutines["ui_display"] = StartCoroutine(DisplayAnyDamageOrHeal(bhDmgValue, dmgType)); } }
IEnumerator DisplayAnyDamageOrHeal(int value, T_DamageHeal dmgHealType) { if (dmgHealType == T_DamageHeal._BHDMGWET || dmgHealType == T_DamageHeal._BHDMGSQUASH) { ui.healDmgHeader.text = "BHP"; } else { ui.healDmgHeader.text = "HP"; } if (dmgHealType == T_DamageHeal._BHDMGSQUASH || dmgHealType == T_DamageHeal._HDMGSQUASH) { ui.wetDmgIcon.gameObject.SetActive(false); ui.healIcon.gameObject.SetActive(false); ui.heal_DmgIndicator.color = ui.squashDmgColor; ui.squashDmgIcon.gameObject.SetActive(true); ui.healDmgValue.color = ui.squashDmgColor; ui.healDmgHeader.color = ui.squashDmgColor; } else if (dmgHealType == T_DamageHeal._BHDMGWET) { ui.squashDmgIcon.gameObject.SetActive(false); ui.healIcon.gameObject.SetActive(false); ui.heal_DmgIndicator.color = ui.wetDmgColor; ui.wetDmgIcon.gameObject.SetActive(true); ui.healDmgValue.color = ui.wetDmgColor; ui.healDmgHeader.color = ui.wetDmgColor; } else if (dmgHealType == T_DamageHeal._HHEAL) { ui.wetDmgIcon.gameObject.SetActive(false); ui.squashDmgIcon.gameObject.SetActive(false); ui.heal_DmgIndicator.color = ui.healColor; ui.healIcon.gameObject.SetActive(true); ui.healDmgValue.color = ui.healColor; ui.healDmgHeader.color = ui.healColor; } ui.heal_DmgIndicator.gameObject.SetActive(true); ui.healDmgValue.text = value.ToString(); ui.healDmgHeader.gameObject.SetActive(true); float t_start = Time.time; Color c = ui.heal_DmgIndicator.color; Color white = Color.white; while (Time.time - t_start < 1.5f) { c.a = ui.animCurveHealDmg.Evaluate((Time.time - t_start) / 1.5f); ui.heal_DmgIndicator.color = c; yield return(null); } if (dmgHealType == T_DamageHeal._BHDMGSQUASH || dmgHealType == T_DamageHeal._HDMGSQUASH) { ui.squashDmgIcon.gameObject.SetActive(false); } else if (dmgHealType == T_DamageHeal._BHDMGWET) { ui.wetDmgIcon.gameObject.SetActive(false); } else if (dmgHealType == T_DamageHeal._HHEAL) { ui.healIcon.gameObject.SetActive(false); } ui.heal_DmgIndicator.gameObject.SetActive(false); ui.healDmgHeader.gameObject.SetActive(false); }