Skip to content
This repository has been archived by the owner on Jul 22, 2019. It is now read-only.

[Discussion] Evolution features and settings #465

Open
Forty-Tw0 opened this issue Jul 27, 2016 · 18 comments
Open

[Discussion] Evolution features and settings #465

Forty-Tw0 opened this issue Jul 27, 2016 · 18 comments

Comments

@Forty-Tw0
Copy link
Contributor

There are a few different configurations for evolution strategies. Here are some of the use cases I came up with. The first one results in maximally efficient trainer xp, the second results in evolved pokemon with the best possible CP/IV (and subsequentially fills out the pokedex!). If you can think of more useful use cases, please share!

  1. Do not transfer pokemon and ignore keep_pokemon_amount until the bag is full, if the user does not have a lucky egg transfer one pokemon to have limit - 1 bag space, otherwise use a lucky egg and begin evolving only the 1st pokemon in each evolutionary line for maximally efficient xp, there could then be an option to evolve the rest of the evolutionary line, after the lucky egg runs out stop evolving pokemon, repeat. This should still transfer pokemon in the obligatory_transfer list and subsequently respect the keep_pokemon_amount for each pokemon on that list.
  2. When it catches a pokemon and has greater than keep_pokemon_amount, evolve the best pokemon based on CP/IV depending on sort_by_iv & transfer_iv_threshold & transfer_cp_threshold if and only if the pokemon in question has a higher IV or will have a higher CP (how to calculate?) than existing pokemon of the next evolution if there are enough candies to do so, otherwise transfer the worst pokemon. This process would apply to the 2nd evolutionary form pokemon as well. This should still transfer pokemon in the obligatory_transfer list and subsequently respect the keep_pokemon_amount for each pokemon on that list.
@iamthasasquatch
Copy link

I honestly do not think XP is an issue in 2 days of running bot my guy is already lvl26 and I live in a crap area for pokestops/pokemon so i can only imagine if i had it going somewhere that is highly active. I would go for the evolving highest IV

@Forty-Tw0
Copy link
Contributor Author

Forty-Tw0 commented Jul 27, 2016

XP required ramps up exponentially in the 20s, max level currently is 40. 28 to 29 is 300k xp and you only get 200 from catching and 500 from evolving, while pokestops give 50-100.

@ghost
Copy link

ghost commented Jul 27, 2016

I heard rumors from dataminers that leveling 39-40 requires 5 million experience.
So I believe we should incline more towards building Experience instead of building Best Team, the bot doesn't (and will probably never) battle Gyms, so no point yet in having high CP/IV evolutions.

@Forty-Tw0
Copy link
Contributor Author

We can use conditional branching to do both or more, I am just wondering if there are more ideas for useful evolutionary strategies.

@iamthasasquatch
Copy link

I read somewhere though that over 30 didnt do much in terms of CP on the pokemons. I think it was 30 I am trying to dig the thread up.

@Forty-Tw0
Copy link
Contributor Author

At level 30 your trainer level stops effecting the CP of pokemon in the wild I think.
Eggs never give pokemone with CP more than what you would find at level 20.

@ghost
Copy link

ghost commented Jul 27, 2016

Strategies on this can be very wide, maybe we could add functionalities and conditions in the config.properties.template so anyone can build their own strategy. Maybe some people would want to focus on very specific pokemons, regardless of CP/IV.

@Forty-Tw0
Copy link
Contributor Author

Could use an auto_evolve list which could be set to ALL for all pokemon, this way people can have more control over what pokemon evolve.

@Agronis
Copy link
Contributor

Agronis commented Jul 27, 2016

tldr honestly.. took cliff notes.

auto_evolve = true/false

Maximum XP output.

  • When engaged, least expensive evolutions occur disregarding later tier evolutions.
  • If build_pokedex is active, follow it's rules.

build_pokedex=true/false

  • Build out Pokedex.
  • If any Pokemon is missing, and is attainable from evolution - do so, ignoring least expensive route.
  • Once Pokedex slot is filled, use remaining candy on least expensive evolutions.
  • This will only occur when possibility is available.

As far as evolving based on CP or IV.. CP can be raised, IV can't be changed. This only matters for build_pokedex, as it will grab highest IV.

use_lucky=true/false

  • Engage lucky egg prior to evolution train.
  • This should only engage ONE lucky egg and write back into config file to set to false preventing accidental use.

evolve_only_these=LIST,POKEMON,HERE

  • This allows us to set basic Pokemon to be evolved automatically without giving concern to wasting candy on a 93% IV Charmander when I may get a 100%.

evolve_IV_threshold=INTEGER

  • This IV % threshhold is required before auto-evolve takes place.
  • This disregards evolve_only_these so I may say "If 100% - Evolve"

@iamthasasquatch
Copy link

iamthasasquatch commented Jul 27, 2016

honestly this would be best

#calculate max evolutions then use lucky
Use_Lucky=true/false
#continuous evolve
Evolve_XP=true/false
#Evolve based on IV%, -1 for off
Evolve_IV=95

@Agronis
Copy link
Contributor

Agronis commented Jul 27, 2016

Calculating evolutions won't matter.. I'd assume you could do several hundred in the course of 30 minutes through the CLI.

Continuous evolve.. and evolve_IV matches my post. So I agree with you, just not your naming scheme.

@iamthasasquatch
Copy link

you would need that many base pokemon to evolve though like if you had candy for 700 evolve of rattata youd need 700 rattata to evolve. Would want to make sure there was enough pokemon to fully make use of the lucky egg instead of 3 evolves ok need to catch another pidgey so i can evolve it and waste time waiting till bot catches another

@Forty-Tw0
Copy link
Contributor Author

Forty-Tw0 commented Jul 27, 2016

The reason I have option 1 is because later we might want to limit actions based on the actual time it takes in the app to appear human, rather than doing 200 evolves per second. As it stands, even a full bag of pokemon will take less than a minute to evolve which still leaves 29 minutes of lucky egg. Just a precaution to avoid requirement volatility down the road.

@Forty-Tw0
Copy link
Contributor Author

As far as CP, some casuals only care about CP. I wrote #208 to implement IV sorting to keep the best pokemon.

@iamthasasquatch
Copy link

I only keep pokemon over 95 IV ;/

@Forty-Tw0
Copy link
Contributor Author

Forty-Tw0 commented Jul 27, 2016

I keep two of every pokemon so that the bot keeps the two best IVs which I can manually evolve to eventually have the best IV pokemon in every tier of the evolutionary line. Which is why I came up with strategy 2.

keep_pokemon_amount=2
sort_by_iv=true
transfer_iv_threshold=-1
transfer_cp_threshold=-1

@Agronis
Copy link
Contributor

Agronis commented Jul 27, 2016

you would need that many base pokemon to evolve though like if you had candy for 700 evolve of rattata youd need 700 rattata to evolve. Would want to make sure there was enough pokemon to fully make use of the lucky egg instead of 3 evolves ok need to catch another pidgey so i can evolve it and waste time waiting till bot catches another

  • auto_evolve in my post would evolve when possible.
  • use_lucky is a one time only trigger to prevent use of lucky's while without a large batch.

I do agree with introducing a human 'algorithm' and only allowing 1 evolution every 12-15s.

I'm able to hit evolve in app, close, reopen and evolve again in no more than 15s allowing for at least 90 by human input while leaving room for error/lag.

@Simpuhl
Copy link

Simpuhl commented Jul 27, 2016

For the evolve what I would like to see is

We specify amount of Pokemon to save up for an evolve. Let's say 50

wait_for_evolve_count=50

Then the bot does it's thing, how ever, if I have let's say 24 Pidgey candy, it will keep 3 pidgey's, or if I have 100 Squrtle Candy it will keep 3 Squrtle. This way it can evolve 2 and keep 1. Also, it should evolve the highest CP.

Also let's say if we have 200 squrtle candy and so we have 5 squrtle's stored. But it finds a higher CP Squrtle than the current 5. Now we have 203 candy, it will transfer the lowest CP one since now we have too many and keep the new one one. Back to 5. Since we will be evolving at least 4.

There should also an option like complete pokedex

complete_pokedex=true

What this would do is if I have 200 squrtle candy, I already have a warturtle(2nd level), but have yet to find a Blastoise (3rd level), it will instead count that as 3 evolves instead of 4. 100 candy to create the Blastoise and then 50 and 50 for the warturtle. How ever, it should do the two evolves from highest CP Squrtle to Warturtle first, this way if you manage to get a higher CP Wartutle than your current one then it will finally evolve that one.

After that, it would transfer the extra warturtle (lowest cp)

Hope this makes sense.

Also needs this to happen only if you have a lucky egg to activate.

This also needs to some what take into effect the time it takes to evolve the pokemon. If we just massive evolve 50 in a matter of seconds, that doesn't look right.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants