protected void TakeDamage(float _dame) { transform.GetChild(0).GetComponent <SpriteRenderer>().color = new Color32(128, 42, 42, 128); parHit.Play(); int numberRemove = (int)(_dame / infoHero.health); int numberSub = numberRemove; if (numberSub > infoHero.countHero) { numberSub = infoHero.countHero; } if (infoHero.countHero <= 0) { numberSub = 0; } infoHero.countHero -= numberRemove; if (house != null) { house.AddHero(-numberSub); } else if (goldMine != null) { goldMine.AddHero(idGoldMine, -numberSub); if (GameManager.Instance.isAttackGoldMineEnemy && infoHero.ID < 31) { long expAdd = (long)((numberSub * GameManager.Instance.ratioBorn * GameManager.Instance.ratioBorn) / (GameManager.Instance.dateGame)); GameManager.Instance.AddExp(expAdd); } } if (infoHero.countHero <= 0) { infoHero.countHero = 0; Die(); } else { Invoke("EndTakeDamage", 0.15f); } txtCountHero.text = UIManager.Instance.ConvertNumber(infoHero.countHero); }