Esempio n. 1
0
 private void AniadirPokemonAlEquipoEnemigo(PokemonEntrenador p)
 {
     if (p.id != PokemonID.NINGUNO)
     {
         EquipoPokemonEnemigos.Add(new PokemonLuchador(p.id, p.nivel, 1, new AtaqueID[] { p.ataque1, p.ataque2, p.ataque3, p.ataque4 }));
     }
 }
Esempio n. 2
0
    private void GenerarPokemonSalvaje(EventoIniciarCombatePokemonSalvaje pokemonSalvaje)
    {
        int posibilidadTotal = 0;

        ProbabilidadEncuentroPokemon[] pokemonOrdenadorPorProbabilidad = new ProbabilidadEncuentroPokemon[pokemonSalvaje.PokemonEnLaZona.pokemons.Count];

        //Almacenamos el porcentaje de todos los pokémon
        for (int i = 0; i < pokemonSalvaje.PokemonEnLaZona.pokemons.Count; i++)
        {
            posibilidadTotal += pokemonSalvaje.PokemonEnLaZona.pokemons[i].posibilidadAparicion;
        }

        //Calculamos el porcentaje individual de cada pokémon en proporción al total
        for (int i = 0; i < pokemonSalvaje.PokemonEnLaZona.pokemons.Count; i++)
        {
            pokemonOrdenadorPorProbabilidad[i].probabilidad = ((pokemonSalvaje.PokemonEnLaZona.pokemons[i].posibilidadAparicion * 100) / posibilidadTotal);
            pokemonOrdenadorPorProbabilidad[i].pokemon      = pokemonSalvaje.PokemonEnLaZona.pokemons[i];
        }
        //Lo ordenamos por porcentaje de menos a más
        pokemonOrdenadorPorProbabilidad = pokemonOrdenadorPorProbabilidad.OrderBy(i => i.probabilidad).ToArray();

        //Sumamos el porcentaje del pokémon anterior al actual para establecer el rango de aparición y que no se solapen
        float porcentajeYaAsignado = 0;

        for (int i = 0; i < pokemonOrdenadorPorProbabilidad.Length; i++)
        {
            pokemonOrdenadorPorProbabilidad[i].probabilidad += porcentajeYaAsignado;
            porcentajeYaAsignado = pokemonOrdenadorPorProbabilidad[i].probabilidad;
        }
        float random         = UnityEngine.Random.Range(0f, 100f);
        int   nivelPokemon   = UnityEngine.Random.Range(pokemonSalvaje.PokemonEnLaZona.nivelMinimoPokemonSalvaje, pokemonSalvaje.PokemonEnLaZona.nivelMaximoPokemonSalvaje + 1);
        int   calidadPokemon = UnityEngine.Random.Range(Ajustes.calidadMinimaPokemon, Ajustes.calidadMaximaPokemon + 1);

        for (int i = 0; i < pokemonOrdenadorPorProbabilidad.Length; i++)
        {
            if (random < pokemonOrdenadorPorProbabilidad[i].probabilidad || i == pokemonOrdenadorPorProbabilidad.Length - 1) //Si es el último pokémon y no se ha asgiando todavía el pokémon salvaje forzamos que se asigne el último
            {
                EquipoPokemonEnemigos.Add(new PokemonLuchador(pokemonOrdenadorPorProbabilidad[i].pokemon.id, nivelPokemon, calidadPokemon, new AtaqueID[] { pokemonOrdenadorPorProbabilidad[i].pokemon.ataque1, pokemonOrdenadorPorProbabilidad[i].pokemon.ataque2, pokemonOrdenadorPorProbabilidad[i].pokemon.ataque3, pokemonOrdenadorPorProbabilidad[i].pokemon.ataque4 }));
                break;
            }
        }
    }
Esempio n. 3
0
 public bool ElEnemigoTieneAlgunPokemonVivo()
 {
     return(EquipoPokemonEnemigos.Where(x => x.Pokemon.EstaVivo()).ToList().Count() > 0);
 }