Exemple #1
0
    public void OnTriggerEnter2D(Collider2D col)
    {
        if (!dead)
        {
            if (col.tag == "EnemyBullet0" || col.tag == "EnemyMissile0" || col.tag == "EnemyBullet1" || col.tag == "Explosion")
            {
                switch (col.tag)
                {
                case "EnemyBullet0":
                    health -= 10.0f;
                    Destroy(col.gameObject);
                    break;

                case "EnemyBullet1":
                    health -= 20.0f;
                    Destroy(col.gameObject);
                    break;

                case "EnemyMissile0":
                    health -= 40.0f;
                    GameObject tmp       = Instantiate(sideExplosionPrefab, col.transform.position, Quaternion.identity);
                    float      direction = col.GetComponent <Bullet> ().direction;
                    tmp.transform.localScale = new Vector3(-Mathf.Abs(tmp.transform.localScale.x) * direction / Mathf.Abs(direction), tmp.transform.localScale.y, tmp.transform.localScale.z);
                    Destroy(col.gameObject);
                    break;

                case "Explosion":
                    health -= 60.0f;
                    break;
                }


                if (health > 0)
                {
                    TakeDamage();
                    if (col.tag.Contains("Bullet"))
                    {
                        canvas.sounds [UnityEngine.Random.Range(1, 4)].Play();
                    }
                    else
                    {
                        canvas.sounds [4].Play();
                    }
                }
                else
                {
                    dead = true;
                    CanvasScript canvas = FindObjectOfType <CanvasScript> ();
                    Instantiate(explosionPrefab, transform.position, Quaternion.identity);
                    if (canvas.score > canvas.highestScore)
                    {
                        PlayerPrefs.SetInt("HighestScore", canvas.score);
                    }
                    canvas.RequestReloadLevel();
                    Destroy(gameObject);
                }
            }

            if (col.tag == "RepairItem")
            {
                Destroy(col.gameObject);
                numberOfRepairItems++;
            }

            if (col.tag == "Box")
            {
                CanvasScript canvas    = FindObjectOfType <CanvasScript> ();
                int          whichAmmo = UnityEngine.Random.Range(1, 3);
                if (whichAmmo == 1)
                {
                    numberOfAirMissile++;
                    canvas.airMissileButton.GetComponent <Animator> ().SetTrigger("animate");
                }
                else
                {
                    numberOfSpecialBullet = 100;
                    int whichSpecialBullet = UnityEngine.Random.Range(1, 4);
                    switch (whichSpecialBullet)
                    {
                    case 1:
                        selectedSpecialBullet = 3;
                        canvas.specialBulletImage.GetComponent <Image> ().sprite = canvas.redBulletSprite;
                        break;

                    case 2:
                        selectedSpecialBullet = 4;
                        canvas.specialBulletImage.GetComponent <Image> ().sprite = canvas.blueBulletSprite;
                        break;

                    case 3:
                        selectedSpecialBullet = 5;
                        canvas.specialBulletImage.GetComponent <Image> ().sprite = canvas.yellowBulletSprite;
                        break;
                    }
                }
                Destroy(col.gameObject.transform.parent.gameObject);
            }
        }
    }