Beispiel #1
0
    /// <summary>
    /// Función que busca el <see cref="mapaActualEditor"/> y lo carga en el editor
    /// </summary>
    public void CargarMapaAlEditor()
    {
        BorrarCuadriculas();
        GenerarCuadriculas();
        Toggle tsuelo = GameObject.Find("Hsuelo").GetComponent <Toggle>();

        tsuelo.isOn = true;
        //Mapa mapa = new Mapa(CrearArchivo.cargarObjetosMapa());
        Mapa            mapa   = new Mapa(CrearArchivo.cargarObjetosMapa(mapaActualEditor));
        ObjetoMapa      evento = null;
        List <TileMapa> suelos = new List <TileMapa>();

        suelos.AddRange(mapa.TerrenoTraspasable);
        suelos.AddRange(mapa.TerrenoNoTraspasable);
        foreach (TileMapa suelotras in suelos)
        {
            evento = null;
            foreach (JugadorMapa jugador in mapa.Jugador)
            {
                if (jugador.X == suelotras.X && jugador.Y == suelotras.Y && jugador.Z == suelotras.Z)
                {
                    //Debug.Log("Entro aqui siempre ????");
                    evento = jugador;
                    break;
                }
            }
            if (evento == null)
            {
                foreach (EnemigoMapa enemigo in mapa.Enemigo)
                {
                    if (enemigo.X == suelotras.X && enemigo.Y == suelotras.Y && enemigo.Z == suelotras.Z)
                    {
                        evento = enemigo;
                        break;
                    }
                }
            }
            if (evento == null)
            {
                foreach (ArbustoMapa arbusto in mapa.Arbusto)
                {
                    if (arbusto.X == suelotras.X && arbusto.Y == suelotras.Y && arbusto.Z == suelotras.Z)
                    {
                        evento = arbusto;
                        break;
                    }
                }
            }
            if (evento == null)
            {
                foreach (ObstaculosMapa obstaculo in mapa.Obstaculos)
                {
                    if (obstaculo.X == suelotras.X && obstaculo.Y == suelotras.Y && obstaculo.Z == suelotras.Z)
                    {
                        evento = obstaculo;
                        break;
                    }
                }
            }
            //Debug.Log("buscando pos x: " + suelotras.X + " pos y: " + suelotras.Y);
            foreach (GameObject celda in cuadriculas)
            {
                PulsarCuadricula pulsar    = celda.GetComponent <PulsarCuadricula>();
                RectTransform    rectTrans = celda.GetComponent <RectTransform>();
                //Debug.Log("pos x: " + tilemap.WorldToCell(rectTrans.position).x + " pos y: " + tilemap.WorldToCell(rectTrans.position).y);
                if (tilemap.WorldToCell(rectTrans.position).x == suelotras.X &&
                    tilemap.WorldToCell(rectTrans.position).y == suelotras.Y)
                {
                    pulsar.pintarSuelo(suelotras.Tile, suelotras.Traspasable);
                    if (evento != null)
                    {
                        if (evento is JugadorMapa)
                        {
                            if (pulsar.Evento != eventosMapa.jugador)
                            {
                                pulsar.actualizarEvento(eventosMapa.jugador, true);
                            }
                        }
                        else if (evento is EnemigoMapa)
                        {
                            switch (((EnemigoMapa)evento).TipoEnemigo)
                            {
                            case eEnemigo.Moco:
                                if (pulsar.Evento != eventosMapa.moco)
                                {
                                    pulsar.actualizarEvento(eventosMapa.moco, true);
                                }
                                break;

                            case eEnemigo.Orco:
                                if (pulsar.Evento != eventosMapa.orco)
                                {
                                    pulsar.actualizarEvento(eventosMapa.orco, true);
                                }
                                break;

                            case eEnemigo.Tronquito:
                                if (pulsar.Evento != eventosMapa.tronquito)
                                {
                                    pulsar.actualizarEvento(eventosMapa.tronquito, true);
                                }
                                break;
                            }
                        }
                        else if (evento is ArbustoMapa)
                        {
                            if (pulsar.Evento != eventosMapa.arbusto)
                            {
                                pulsar.actualizarEvento(eventosMapa.arbusto, true);
                            }
                        }
                        else if (evento is ObstaculosMapa)
                        {
                            switch (((ObstaculosMapa)evento).TipoObstaculo)
                            {
                            case eObstaculos.Arbol:
                                if (pulsar.Evento != eventosMapa.arbol)
                                {
                                    pulsar.actualizarEvento(eventosMapa.arbol, true);
                                }
                                break;

                            case eObstaculos.Tocon:
                                if (pulsar.Evento != eventosMapa.tocon)
                                {
                                    pulsar.actualizarEvento(eventosMapa.tocon, true);
                                }
                                break;

                            case eObstaculos.RocaGrande:
                                if (pulsar.Evento != eventosMapa.rocaGrande)
                                {
                                    pulsar.actualizarEvento(eventosMapa.rocaGrande, true);
                                }
                                break;
                            }
                        }
                    }
                    break;
                }
            }
        }
    }
Beispiel #2
0
 /// <summary>
 /// Función que genera el mapa de la escena en función de un archivo
 /// </summary>
 public void generarMapa()
 {
     if (mapaActualPartida != null)
     {
         tilemapSuelo = terrenoTraspasable.GetComponent <Tilemap>();
         tilemapMuro  = terrenoNoTraspasable.GetComponent <Tilemap>();
         generarLimitesMapa();
         List <ObjetoMapa> objetos = CrearArchivo.cargarObjetosMapa(mapaActualPartida);
         Mapa map = new Mapa(objetos);
         foreach (TileMapa terreno in map.TerrenoTraspasable)
         {
             if (terreno.Traspasable)
             {
                 tilemapSuelo.SetTile(new Vector3Int(terreno.X, terreno.Y, 0), Tiles.obtenerTile(terreno.Tile));
             }
             else
             {
                 tilemapMuro.SetTile(new Vector3Int(terreno.X, terreno.Y, 0), Tiles.obtenerTile((eTiles)terreno.Tile));
             }
         }
         foreach (JugadorMapa jugador in map.Jugador)
         {
             Vector3 vec = tilemapMuro.CellToWorld(new Vector3Int(jugador.X, jugador.Y, jugador.Z));
             vec = new Vector3(vec.x + 0.08f, vec.y + 0.16f, vec.z);
             Instantiate(Resources.Load <GameObject>("Jugador"), vec, Quaternion.identity).name = "Jugador";
             jugable = true;
             break;
         }
         foreach (ObjetoMapa arbusto in map.Arbusto)
         {
             Vector3 vec = tilemapMuro.CellToWorld(new Vector3Int(arbusto.X, arbusto.Y, arbusto.Z));
             vec = new Vector3(vec.x + 0.08f, vec.y + 0.08f, vec.z);
             Instantiate(Resources.Load <GameObject>("Arbusto"), vec, Quaternion.identity);
         }
         if (jugable)
         {
             foreach (EnemigoMapa enemigos in map.Enemigo)
             {
                 Vector3 vec = tilemapMuro.CellToWorld(new Vector3Int(enemigos.X, enemigos.Y, enemigos.Z));
                 vec = new Vector3(vec.x + 0.08f, vec.y + 0.16f, vec.z);
                 if (Enemigos.obtenerEnemigo(enemigos.TipoEnemigo) != null)
                 {
                     GameObject enemi = Instantiate(Enemigos.obtenerEnemigo((eEnemigo)enemigos.TipoEnemigo), vec, Quaternion.identity);
                     enemi.transform.parent = ObjetosEnemigos.transform;
                 }
             }
         }
         foreach (ObstaculosMapa obstaculo in map.Obstaculos)
         {
             Vector3 vec = tilemapMuro.CellToWorld(new Vector3Int(obstaculo.X, obstaculo.Y, obstaculo.Z));
             vec = new Vector3(vec.x + 0.16f, vec.y + 0.16f, vec.z);
             if (Obstaculos.obtenerObstaculo(obstaculo.TipoObstaculo) != null)
             {
                 Instantiate(Obstaculos.obtenerObstaculo(obstaculo.TipoObstaculo), vec, Quaternion.identity);
             }
         }
         Debug.Log("childCount: " + ObjetosEnemigos.transform.childCount);
         if (ObjetosEnemigos.transform.childCount == 0)
         {
             jugable = false;
         }
     }
     else
     {
         jugable = false;
     }
 }