// plays animation of goomba death shortly
    IEnumerator KillGoomba()
    {
        soundManager.PlaySoundEffect("enemyStomp");
        isHit          = true;
        gameObject.tag = "Untagged"; // remove tag so Mario not detected
        scoreManager.AddScore("goomba");
        mario.GetComponent <MarioAgentWithSound>().RewardGoombaKill();
        Physics2D.IgnoreLayerCollision(9, 10, true);  // make goombas ignore mario
        //TODO - play sound effect maybe?
        animator.SetBool("isHit", true);

        yield return(new WaitForSeconds(0.5f));

        gameObject.SetActive(false);
        Physics2D.IgnoreLayerCollision(9, 10, false);  // make goombas ignore mario
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        string collisionTag = collision.gameObject.tag;

        switch (collisionTag)
        {
        case "mushroom":
            //TODO - play sound effect, animation
            soundManager.PlaySoundEffect("getPowerUp");
            Destroy(collision.gameObject);
            ChangeToBigMario();
            scoreManager.AddScore(collisionTag);
            score = scoreManager.GetScore();
            AddReward(mushroomReward);
            break;

        case "flower":
            //TODO - play a sound effect, animation
            soundManager.PlaySoundEffect("getPowerUp");
            Destroy(collision.gameObject);
            scoreManager.AddScore(collisionTag);
            score = scoreManager.GetScore();
            AddReward(flowerReward);
            break;

        //case "goombaTop":
        //collision.gameObject.GetComponentInParent<GoombaManager>().HitGoomba();
        //score = scoreManager.GetScore();
        //AddReward(killGoombaReward);
        //Debug.Log("Boing");
        //break;
        case "goomba":
            StartCoroutine(CheckValidHit(collision));
            break;

        case "killbox":
            AddReward(hitByKillboxReward);
            StartCoroutine(PlayOtherAnimations("death"));
            break;

        case "brickBlockUnder":
            collision.gameObject.GetComponentInParent <BrickBlockManagerWithSound>().HitBrickBlock(isBig);
            score = scoreManager.GetScore();
            coins = coinManager.GetCoins();
            AddReward(brickBlockReward);
            break;

        case "mysteryBlockUnder":
            collision.gameObject.GetComponentInParent <MysteryBlockManagerWithSound>().HitMysteryBlock(isBig);
            score = scoreManager.GetScore();
            coins = coinManager.GetCoins();
            AddReward(mysteryBlockReward);
            break;

        case "endFlag":
            //TODO - play end flag animation, sounds then end episode?
            AddReward(flagReward);
            AddReward(timeLeft * timeLeftReward);     //add reward for doing it before timeLeft
            StartCoroutine(ReachFlag());
            break;

        default:
            break;
        }
    }