예제 #1
0
 public void MasterBallCatchedByPlayer(PlayerScript _Player)
 {
     _Player.AddPoint();
     this.m_Spawner.Spawn();
 }
예제 #2
0
    private void OnCollisionEnter(Collision collision)
    {
        if (!dead)
        {
            Transform colTran = collision.transform;

            switch (colTran.tag)
            {
            case "Wall":
                //rb.velocity = new Vector3(-rb.velocity.x, rb.velocity.y, 0);
                forward = !forward;
                _audio.CreateSound(3);
                break;

            case "Roof":
                Die();
                GameManager.instance.ContarMuerte(1);
                _audio.CreateSound(5);
                break;

            case "Coin":
                AddPoint(colTran.GetComponent <Coin>().value);
                Destroy(colTran.gameObject);
                _audio.CreateSound(0);
                break;

            case "Shield":
                shielded.SetActive(true);
                shield = true;
                Destroy(colTran.gameObject);
                _audio.CreateSound(6);
                break;

            case "Gravity":
                GameManager.instance.ChangeGravity(rb);
                Destroy(colTran.gameObject);
                _audio.CreateSound(20);
                break;

            case "SlowingField":
                GameManager.instance.SlowPlayers(this);
                Destroy(colTran.gameObject);
                _audio.CreateSound(20);
                break;

            case "Color":
                GameManager.instance.ChangeColor(mat0, this);
                Destroy(colTran.gameObject);
                _audio.CreateSound(7);
                break;

            case "Clone":
                GameManager.instance.SpawnPlayer(ID);
                Destroy(colTran.gameObject);
                break;

            case "Player":
                PlayerScript colScript = collision.gameObject.GetComponent <PlayerScript>();

                if (colScript.dead)
                {
                    AddPoint((colScript.puntos / 2) + 1);
                    colTran.gameObject.GetComponent <PlayerScript>().Destroy();
                    print(name + " recogio un botin de los restos de " + colTran.name);
                    _audio.CreateSound(10);
                }
                else
                {
                    float angulo = Vector2.Angle((transform.position - colTran.position), transform.up);

                    if (angulo >= 25 && angulo <= 155)
                    {
                        Vector2 vecTemp = colTran.GetComponent <Rigidbody>().velocity;
                        rb.velocity = new Vector3(-rb.velocity.x, rb.velocity.y + (Mathf.Abs(vecTemp.y) / 2), 0);
                        forward     = !forward;
                    }
                    else if (angulo < 25)
                    {
                        //Aca no se hace nada :v r
                    }
                    else
                    {
                        if (Die())
                        {
                            colScript.AddPoint(5);
                            GameManager.instance.ContarMuerte(0);
                        }
                        //colScript.AddPoint(Die() ? 5 : 0);
                        print(name + "fue pisado por " + colTran.name + " en un angulo de " + angulo);
                    }
                }
                break;
            }
        }
        else
        {
            string colTag = collision.transform.tag;

            if (colTag == "Floor")
            {
                anim.SetInteger("State", 2);
            }
            else if (colTag != "Untagged" && colTag != "Player" && colTag != "Wall" && colTag != "Roof")
            {
                Destroy(collision.gameObject);
            }
        }
    }