// Collect items and increase score
    private void OnTriggerEnter2D(Collider2D hit)
    {
        // Ignore hits by non-players
        if (!hit.CompareTag("Player"))
        {
            return;
        }

        Destroy(gameObject);

        // If this collectible is of default type, add a bubble
        if (defaultCollectible)
        {
            _eventHandler.AddPoints(1);
        }
        else
        {
            _eventHandler.AddPoints(5);
        }
    }
    public void DeleteUpgrade()
    {
        // Delete item
        string      latestUpgradeId    = InstalledUpgrades[InstalledUpgrades.Count - 1];
        ShipUpgrade latestUpgradedItem = UpgradeData.Find(item => item.UpgradeId == latestUpgradeId);

        // Find the item that is one tier worse than what the player has
        string[] splittedString = latestUpgradeId.Split('_');
        string   modifier       = splittedString[0];

        int downgradeToItemId = Int32.Parse(splittedString[1]) - 1;

        // Replace the item with the one that is one tier worse
        switch (modifier)
        {
        case "weapon":
            UpdateWeapon(downgradeToItemId);
            break;

        case "projectile":
            UpdateProjectile(downgradeToItemId);
            break;

        case "ship":
            UpdateShip(downgradeToItemId);
            break;

        case "defense":
            UpdateDefense(downgradeToItemId);
            break;
        }

        // Refund item
        _gameEventHandler.AddPoints(latestUpgradedItem.Cost);

        // Remove it from installed upgrades
        InstalledUpgrades.RemoveAt(InstalledUpgrades.Count - 1);
    }