public override void RestoreHealth(int amount) { base.RestoreHealth(amount); if (m_StateOfBuilding == STATE_OF_BUILDING.RUINED) { m_StateOfBuilding = STATE_OF_BUILDING.COMPLETE; BuildingManager.Instance.SetBuildingTile(m_ListOfUpgrades[m_CurrentUpgradeIndex].m_UpgradedTile, transform.position); } }
public override void TakeDamage(int amount) { health = Mathf.Max(0, health - amount); if (health == 0 && m_StateOfBuilding != STATE_OF_BUILDING.RUINED) { m_CurrentUpgradeIndex = 0; m_StateOfBuilding = STATE_OF_BUILDING.RUINED; BuildingManager.Instance.SetBuildingTile(m_RuinedBuildingTile, transform.position); maxHealth = m_OriginalMaxHP; ObjectManager.Instance.RemoveObject(objectType, this); isRuined = true; // trigger that it is being destroyed SubscriptionSystem.Instance.TriggerEvent <BaseObject.OBJECT_TYPE>("HouseDestroyed", objectType); } }