Example #1
0
        public override int[] moverse(Terreno terrenoActual, Johto region, int direccionMov)
        {
            int filaActual = terrenoActual.getFila();
            int colActual  = terrenoActual.getColumna();

            return(new int[] { filaActual, colActual });
        }
Example #2
0
        public override void pelear(Terreno terreno, Bitmon peleador)
        {
            foreach (Bitmon bitmon in terreno.bitmonsTerreno)
            {
                if (bitmon != peleador && bitmon.puntosVida > 0 && peleador.puntosVida > 0)
                {
                    if ((peleador.enemigos.ContainsKey(bitmon.getTipo()) && bitmon.enemigos.ContainsKey(peleador.getTipo())))
                    {
                        double multiplicadorPeleador = peleador.enemigos[bitmon.getTipo()];
                        double multiplicadorBitmon   = bitmon.enemigos[peleador.getTipo()];

                        bitmon.puntosVida -= peleador.puntosAtaque * multiplicadorPeleador;
                        bitmon.puntosVida -= peleador.puntosAtaque * multiplicadorPeleador;

                        peleador.yaPeleo = true;
                        bitmon.yaPeleo   = true;

                        if (bitmon.puntosVida < 0 && peleador.puntosVida > 0)
                        {
                            peleador.puntosVida = peleador.puntosVidaOriginal;
                        }

                        else if (bitmon.puntosVida > 0 && peleador.puntosVida < 0)
                        {
                            bitmon.puntosVida = bitmon.puntosVidaOriginal;
                        }

                        break;
                    }
                }
            }
        }
Example #3
0
        public override void transformarTerreno(Terreno terreno)
        {
            Bitmon bitmon;
            int    prob = random.Next(0, 2);
            string tipoTerrenoActual = terreno.getTipo();

            if (prob == 1)
            {
                if (tipoTerrenoActual == "Vegetacion")
                {
                    terreno.setTipo("Desierto");
                }
                else if (tipoTerrenoActual == "Nieve")
                {
                    terreno.setTipo("Acuatico");
                    //Elimina todos los Ent que se encontraban en el terreno de Nieve ( No son capaces de vivir en terrenos acuaticos)
                    for (int i = terreno.bitmonsTerreno.Count() - 1; i >= 0; i--)
                    {
                        bitmon = terreno.bitmonsTerreno[i];
                        if (bitmon.getTipo() == "Ent")
                        {
                            terreno.bitmonsTerreno.Remove(bitmon);
                        }
                    }
                }
            }
        }
Example #4
0
        public override void transformarTerreno(Terreno terreno)
        {
            int prob = random.Next(0, 2);

            if (prob == 1)
            {
                terreno.setTipo("Vegetacion");
            }
        }
Example #5
0
        public override int[] moverse(Terreno terrenoActual, Johto region, int direccionMov)
        {
            int filaActual = terrenoActual.getFila();
            int colActual  = terrenoActual.getColumna();
            int filaNueva  = 0;
            int colNueva   = 0;

            switch (direccionMov)
            {
            // Se mueve al terreno de arriba
            case 0:
                filaNueva = filaActual - 1;
                colNueva  = colActual;
                break;

            // Se mueve al terreno de la deracha
            case 1:
                colNueva  = colActual + 1;
                filaNueva = filaActual;
                break;

            // Se mueve al terreno de abajo
            case 2:
                filaNueva = filaActual + 1;
                colNueva  = colActual;
                break;

            // Se mueve al terreno de la izquierda
            case 3:
                colNueva  = colActual - 1;
                filaNueva = filaActual;
                break;

            // Se mantiene en el mismo terreno
            case 4:
                colNueva  = colActual;
                filaNueva = filaActual;
                break;

            default:
                colNueva  = colActual;
                filaNueva = filaActual;
                break;
            }

            //Valida si se puede mover o no , dependiendo de las dimensiones del mapa.
            if (puedeMoverse(colNueva, filaNueva, direccionMov, region) == true)
            {
                return(new int[] { filaNueva, colNueva });
            }
            else
            {
                return(new int[] { filaActual, colActual });
            }
        }
Example #6
0
        public void crearMapa()
        {
            for (int i = 0; i < mapaRegion.GetLength(0); i++)
            {
                for (int j = 0; j < mapaRegion.GetLength(1); j++)
                {
                    int num           = terrenos.Count();
                    int terrenoRandom = random.Next(0, num);

                    Terreno terrenonuevo = new Terreno(terrenos[terrenoRandom].getTipo());
                    terrenonuevo.setColumna(j);
                    terrenonuevo.setFila(i);
                    mapaRegion[i, j] = terrenonuevo;
                }
            }
        }
Example #7
0
        public override void breed(Johto region, Terreno terreno, Bitmon reproductor)
        {
            TiposBitmons tipos = new TiposBitmons();

            int    randomBitmon      = random.Next(0, 6);
            string tipoBitmon        = tipos.tipo[randomBitmon];
            int    randomTerrenoFila = random.Next(0, region.alto);
            int    randomTerrenoCol  = random.Next(0, region.ancho);

            if ((region.mapaRegion[randomTerrenoFila, randomTerrenoCol].getTipo() != "Volcan") && (region.mapaRegion[randomTerrenoFila, randomTerrenoCol].getTipo() != "Acuatico"))
            {
                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Ent());
                reproductor.tiempoVida      += reproductor.tiempoVidaPerdido * 0.3;
                reproductor.cantidadDeHijos += 1;
            }
        }
Example #8
0
        public string getTipoTerreno(int x, int y)
        {
            Terreno tmpterreno = mapaRegion[x, y];

            return(tmpterreno.getTipo());
        }
Example #9
0
 public override void transformarTerreno(Terreno terreno)
 {
 }
Example #10
0
        public override void breed(Johto region, Terreno terreno, Bitmon reproductor)
        {
            TiposBitmons tipos = new TiposBitmons();

            foreach (Bitmon bitmon in terreno.bitmonsTerreno)
            {
                if (bitmon != reproductor)
                {
                    if ((reproductor.bitmonsAfines.Contains(bitmon.getTipo()) && bitmon.bitmonsAfines.Contains(reproductor.getTipo())))
                    {
                        reproductor.yaSeReprodujo = true;
                        bitmon.yaSeReprodujo      = true;

                        if (bitmon.cantidadDeHijos == reproductor.cantidadDeHijos)
                        {
                            int    randomBitmon      = random.Next(0, 6);
                            string tipoBitmon        = tipos.tipo[randomBitmon];
                            int    randomTerrenoFila = random.Next(0, region.alto);
                            int    randomTerrenoCol  = random.Next(0, region.ancho);

                            switch (tipoBitmon)
                            {
                            case "Dorvalo":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Dorvalo());
                                break;

                            case "Doti":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Doti());
                                break;

                            case "Ent":
                                break;

                            case "Gofue":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Gofue());
                                break;

                            case "Taplan":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Taplan());
                                break;

                            case "Wetar":
                                if (region.mapaRegion[randomTerrenoFila, randomTerrenoCol].getTipo() != "Acuatico")
                                {
                                    continue;
                                }
                                else
                                {
                                    region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Wetar());
                                    break;
                                }
                            }
                            bitmon.cantidadDeHijos      += 1;
                            reproductor.cantidadDeHijos += 1;
                        }

                        else
                        {
                            int randomBitmon = random.Next(0, 7);
                            if (randomBitmon == 6)
                            {
                                if (reproductor.cantidadDeHijos > bitmon.cantidadDeHijos)
                                {
                                    foreach (KeyValuePair <int, string> pair in tipos.tipo)
                                    {
                                        if (pair.Value == reproductor.getTipo())
                                        {
                                            randomBitmon = pair.Key;
                                        }
                                    }
                                }

                                else if (reproductor.cantidadDeHijos < bitmon.cantidadDeHijos)
                                {
                                    foreach (KeyValuePair <int, string> pair in tipos.tipo)
                                    {
                                        if (pair.Value == bitmon.getTipo())
                                        {
                                            randomBitmon = pair.Key;
                                        }
                                    }
                                }
                            }

                            string tipoBitmon        = tipos.tipo[randomBitmon];
                            int    randomTerrenoFila = random.Next(0, region.alto);
                            int    randomTerrenoCol  = random.Next(0, region.ancho);

                            switch (tipoBitmon)
                            {
                            case "Dorvalo":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Dorvalo());
                                break;

                            case "Doti":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Doti());
                                break;

                            case "Ent":
                                break;

                            case "Gofue":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Gofue());
                                break;

                            case "Taplan":
                                region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Taplan());
                                break;

                            case "Wetar":
                                if (region.mapaRegion[randomTerrenoFila, randomTerrenoCol].getTipo() != "Acuatico")
                                {
                                    continue;
                                }
                                else
                                {
                                    region.mapaRegion[randomTerrenoFila, randomTerrenoCol].bitmonsTerreno.Add(new Wetar());
                                    break;
                                }
                            }
                            bitmon.cantidadDeHijos      += 1;
                            reproductor.cantidadDeHijos += 1;
                        }

                        reproductor.yaSeReprodujo = true;
                        reproductor.tiempoVida   += reproductor.tiempoVidaPerdido * 0.3;
                        bitmon.yaSeReprodujo      = true;
                        bitmon.tiempoVida        += bitmon.tiempoVidaPerdido * 0.3;

                        break;
                    }
                }
            }
        }
Example #11
0
 public abstract void transformarTerreno(Terreno terreno);
Example #12
0
 public abstract void breed(Johto region, Terreno terreno, Bitmon reproductor);
Example #13
0
 public abstract void pelear(Terreno terreno, Bitmon peleador);
Example #14
0
 public abstract int[] moverse(Terreno terreno, Johto region, int direccionMov);