Example #1
0
    //Metodo toma los 5 TextMesh y asigna las palabras
    private void InicializarPalabrasPosibles(Poema p)
    {
        List<TextMesh> palabrasUi = new List<TextMesh>() {Palabra1, Palabra2, Palabra3, Palabra4, Palabra5};
        List<Palabra> todaspalabras = p.Palabras.Concat(p.Falsaspalabras).ToList();//Uno las palabras verdaderas y las falsas en una lista
        int cont = 0;//contador para iterar por la lista de palabras que forme
        while (palabrasUi.Count!=0)//Cilco par asignar random las palabras del poema a los mesh botones
        {
            int pos = Random.Range(0, palabrasUi.Count);//Posicion random en la lista de palabras
            TextMesh t = palabrasUi[pos];//Obtengo el Textmesh que esta en la lista
            t.text = todaspalabras[cont].palabra;//Asigno al texto la primera palabra de mi lista de palabras
            if (t.gameObject.GetComponent<BoxCollider>()==null)
            {
                t.gameObject.AddComponent<BoxCollider>();//Asignar un collider al objeto para poder arrastrarlo en la Interfaz
                t.GetComponent<Collider>().isTrigger = true;//Se dispara cuando choca con otro collider
            }
            ActivarMesh(t);//Lo pongo en la x original por si no estaba ahi

            palabrasUi.RemoveAt(pos);//Elimino el textMesh de la lista para no repetirlo en la sig Iteracion
            cont++;//Incremento cont para pasar el siguiente elemento en mi lista de palabras

        }
    }
Example #2
0
    public void CheckAndSet()
    {
        //Obtengo las lineas que estan en pantalla en ese momento
        List<TextMesh> lineasenInterfaz =
            FindObjectsOfType<TextMesh>().Where(a => a.name.Contains("Linea")).OrderBy(a => a.name).ToList();

        if (lineasenInterfaz.Select(l => l.GetComponent<ManejadorLinea>()).Any(m => m.GetActualPuesta() == ""))
        {
            _modalPanel.ShowPoema("Hay espacios sin completar.", TextoPema, Aceptar, Cancelar, _modalPanel.CerrarPanel);
            return; //No estan completas retorno falso para q el jugador termine de completar el poema
        }
        // Si todas estan completas Obtengo el poema actual
        Poema poemaActual = _controladorPoema.Poemas[_controladorPoema._poemaactual];
        PoemaActual = poemaActual;
        //Obtengo las palabras correctas del poema las ordeno por su posicion para asegurar el orden
        List<Palabra> lineasPema = poemaActual.Palabras.OrderBy(a => a.posicion).ToList();
        bool bandera = true; //para controlar si se resolvieron todos los poemas
        string poema = ""; //Guardar texto del poema para mostrarlo
        for (int i = 0; i < lineasenInterfaz.Count; i++)
        {
            ManejadorLinea manejador = lineasenInterfaz[i].GetComponent<ManejadorLinea>();
            //Obtengo el script manejador para cada linea
            poema += manejador.PintarPalabra(lineasenInterfaz[i].text, "#008000ff") + "\n";
            if (manejador.ContienePalabraDeResp())
            {
                if (manejador.GetActualPuesta() == poemaActual.GetPalabradeLina(lineasPema, i).palabra)
                    //Si la palabra que tiene puesta coincide con la que le toca en el poema
                {
                    manejador.SetCorrectWord("#008000ff");
                    //Pongo la palabra en Coorecta asignandole un nuevo color, verde en este caso
                }
                else
                {
                    bandera = false;
                    IntentosValue--;
                    _incorgullo = false;
                    SetIntentos(IntentosValue);
                    if (IntentosValue == 0)
                        //Si ya ha agotado sus intentos significa que fallo el poema hay que mostrar el otro opema y resetear los intentos
                    {

                        if (_controladorPoema._poemaactual <= 2)
                        {
                            if (lastPoema == false)
                            {
                                IntentosValue = 3;
                                SetIntentos(3);
                                CheckAYuda(); //Si utilizo la ayuda la reseteo para el siguiente poema
                                DecDiamantes();//Le quito un diamante fallo el poema
                            }

                            if (_controladorPoema._poemaactual == 2)
                            {
                                lastPoema = true;
                                _modalPanel.ShowPoema("<color=red>Poema Fallido</color>\n" + GetCorrectPoema(),
                                    TextoPema, Aceptar, Cancelar,_modalPanel.CerrarPanel);
                            }
                            if (_controladorPoema._poemaactual <2)
                            {
                                _controladorPoema._poemaactual++;
                                _modalPanel.ShowPoema("<color=red>Poema Fallido</color>\n" + GetCorrectPoema(), TextoPema, Aceptar, Cancelar, _controladorPoema.SetUI);
                            }
                        }

                    }
                }
            }

        }
        if (bandera)
        {
            if (_incdiamantel)
            {
                if (_controladorPoema._poemaactual == 2)
                    _incdiamantel = false;
                else
                {
                    _diamantes++;
                    UpdateTextMesh(Diamantes, _diamantes.ToString());
                }

            }

            if (_controladorPoema._poemaactual < 2)
            {

                IntentosValue = 3;
                SetIntentos(IntentosValue);
                _controladorPoema._poemaactual++;
                CheckAYuda();
                _modalPanel.ShowPoema("<color=blue>Correcto</color>\n"+poema, TextoPema, Aceptar, Cancelar, _controladorPoema.SetUI);
            }
            else
            {
                if (_incorgullo)
                {
                    IncOrgullo();
                    _incorgullo = false;
                }
                IntentosValue = 0;
                SetIntentos(IntentosValue);
                _modalPanel.ShowPoema("<color=blue>Correcto</color>\n" + poema, TextoPema, Aceptar, Cancelar, _controladorPoema.SetUI);
            }

        }
    }