Ejemplo n.º 1
0
    void OnTriggerEnter(Collider collideWith)
    {
        if (collideWith.gameObject.CompareTag(GameCore.STR_GAMEOBJ_TAG_AMMO))
        {
            if (IsCoolingDown())
            {
                return;
            }
            collisionCooldown = Stopwatch.StartNew();

            if (collideWith.gameObject.name.Contains(GameCore.STR_GAMEOBJ_TAG_SPECIAL2))
            {
                enemyRemainingHealth = 0;
            }
            else
            {
                enemyRemainingHealth--;
                Destroy(collideWith.gameObject);
            }
        }

        if (collideWith.gameObject.name == GameCore.STR_GAMEOBJ_NAME_HERO)
        {
            Destroy(collideWith.gameObject);
            SceneManager.LoadScene(GameCore.STR_SCENE_END, LoadSceneMode.Single);
            return;
        }

        if (enemyRemainingHealth <= 0)
        {
            if (GameCore.GetRandomNumber(0, 6) == 5)                 // 20% chance that the enemy drops a special ammo.
            {
                Player.SetAmmo(GameCore.GetRandomNumber(1, 3));
            }
            GameCore.AddScore(enemyHealth * GameCore.INT_SCORE_POINTS_PER_HP, transform.position.y > GameCore.INT_SCORE_MULTIPLIER_OFFSET);

            Destroy(gameObject);
        }
    }