public void TakeDamage(WeaponInfoObject weapon) { GameObject dmg = Instantiate(floatingDmg, damagePosition.position, Quaternion.Euler(transform.GetChild(0).localEulerAngles)); Text[] dmgText = dmg.GetComponentsInChildren <Text>(); //Check if miss CalculationManager.HitCheck(weapon, UnitConfig.accuracy); if (CalculationManager.hit == false) { dmgText[0].text = "Missed!"; dmgText[1].text = "-"; //Temporary lazy code preventing zombies from missing CalculationManager.hit = true; } else { dmgText[1].text = CalculationManager.damage.ToString(); currentUnitHealth -= CalculationManager.damage; Instantiate(unitConfig.unitClassStats.hitParticleSystem, transform.GetChild(0).position, transform.rotation); if (currentUnitHealth <= 0) { //unitConfig.isDead = true; if (!unitConfig.isFriendly) { mapConfig.turnSystem.enemyUnits.Remove(unitConfig); } else { mapConfig.turnSystem.playerUnits.Remove(unitConfig); } unitConfig.SetUnitState(UnitConfig.UnitState.Dead); mapConfig.turnSystem.AddKillCount(unitConfig.unitClassStats); } UpdateUnitHealth(); } if (!unitConfig.isFriendly)// FOR TUTORIAL { TurnSystem.hasShot = true; } TurnSystem.selectedTarget = null; }