Ejemplo n.º 1
0
    private void disposicionGeneradoresObjetos()
    {
        int aux       = 0;
        int auxCamera = 0;

        switch (dificultad)
        {
        case 1:
            aux       = Random.Range(0, 2);
            auxCamera = Random.Range(0, 2);
            break;

        case 2:
            aux       = 1;
            auxCamera = Random.Range(0, 2);
            break;

        case 3:
            aux       = Random.Range(1, 3);
            auxCamera = Random.Range(0, 3);
            break;

        case 4:
            aux       = 2;
            auxCamera = Random.Range(0, 3);
            break;

        case 5:
            aux       = Random.Range(2, 4);
            auxCamera = Random.Range(1, 3);
            break;

        case 6:
            aux       = 3;
            auxCamera = Random.Range(1, 3);
            break;
        }

        if (auxCamera == 1)
        {
            cameraPosition = Random.Range(auxCamera, 3);
        }
        else if (auxCamera == 2)
        {
            cameraPosition = 3;
        }

        if (tipoHabitacion == tipo.Entrada || tipoHabitacion == tipo.Banyo)
        {
            cameraPosition = 0;
        }

        edificio.setCameraPosition(cameraPosition, this.id);

        aux++;

        if (tipoHabitacion == tipo.Banyo)
        {
            aux = 0;
            if (reward == ObjetoRecompensa.tipoRecompensa.ninguno)
            {
                int auxPuntos = Random.Range(0, 3);
                if (auxPuntos == 0)
                {
                    reward = ObjetoRecompensa.tipoRecompensa.conjuntoPuntos;
                    edificio.setReward(reward, this.id);
                }
            }
        }

        if (reward == ObjetoRecompensa.tipoRecompensa.ninguno)
        {
            if (listaTrampas.Count != 0)
            {
                aux = listaTrampas.Count;
            }
            else
            {
                aux--;
            }

            if (aux > 0)
            {
                bool generoNuevas = true;

                if (listaTrampas.Count != 0)
                {
                    generoNuevas = false;
                }

                Vector3 position;
                for (int i = 0; i < aux; i++)
                {
                    position   = limiteIzquierdo;
                    position.x = position.x + (i + 1) * (tHab / (aux + 1));

                    //print (position.x + " + " + i +" * (" +tHab+" / "+aux+")");

                    GameObject objeto = Instantiate(generadorPrefab, position, Quaternion.identity);
                    objeto.GetComponent <GeneradorObjetos>().nivel  = dificultad;
                    objeto.GetComponent <GeneradorObjetos>().estilo = estilo;
                    GameObject auxObj;
                    if (generoNuevas)
                    {
                        GeneradorObjetos.trapStruct auxItem = new GeneradorObjetos.trapStruct();

                        auxItem.tipo          = GeneradorObjetos.getRandomObject();
                        auxItem.level         = dificultad;
                        auxItem.verticalSpeed = 0;
                        auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(auxItem.tipo);

                        if (auxItem.tipo == GeneradorObjetos.tipo.RedLaser)
                        {
                            auxItem.verticalSpeed = getRandomVerticalSpeed();
                            auxObj.GetComponent <RedLaserController>().setVerticalSpeed(auxItem.verticalSpeed);
                        }

                        listaTrampas.Add(auxItem);
                    }
                    else
                    {
                        if (listaTrampas[i].tipo == GeneradorObjetos.tipo.RedLaser)
                        {
                            auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(listaTrampas[i].tipo);
                            auxObj.GetComponent <RedLaserController>().setVerticalSpeed(listaTrampas[i].verticalSpeed);
                        }
                        else
                        {
                            auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(listaTrampas[i].tipo);
                        }
                    }

                    objeto.transform.SetParent(this.transform);
                    auxObj.transform.SetParent(this.transform);
                }
                edificio.setListaTrampas(listaTrampas, this.id);
            }
        }
        else
        {
            Vector3 position;
            position   = limiteIzquierdo;
            position.x = position.x + (tHab / 2);

            //print (position.x + " + " + i +" * (" +tHab+" / "+aux+")");

            GameObject objeto = Instantiate(generadorPrefab, position, Quaternion.identity);
            objeto.GetComponent <GeneradorObjetos>().nivel  = dificultad;
            objeto.GetComponent <GeneradorObjetos>().estilo = estilo;

            GameObject auxObj = objeto.GetComponent <GeneradorObjetos>().generateObjects(GeneradorObjetos.tipo.Recompensa);
            auxObj.GetComponent <ObjetoRecompensa>().tipoObjeto = reward;
            objeto.transform.SetParent(this.transform);
            auxObj.transform.SetParent(this.transform);
            edificio.setListaTrampas(listaTrampas, this.id);
        }
    }