PokemonGo-Bot icon indicating copy to clipboard operation
PokemonGo-Bot copied to clipboard

TODO: New evolutions - changes required and help needed

Open pogarek opened this issue 8 years ago • 30 comments

Together with 0.57 we have new Pokemons released. This includes movesets and new evolutions. Now it is possible, that some pokemons can evolve to another (previously not available) Pokemons. Some of these evolution, requires a new item(s) : stones.

With 0.57 these new items has been added to the game:

  • 1101: Sun Stone
  • 1102: Kings Rock
  • 1103: Metal Coat
  • 1104: Dragon Scale
  • 1105: Upgrade

Currently bot knows about these new items, but it not aware, about evolution with them. So we have a challenges:

  1. Decide (by config? ) which evolution to take, if candies/stones requirements are met : evolve to Pokemon which doesn't require stone or to this one, which requires stone/rock ?
  2. Check if requirements are met. This can be done by hardcoding stones/rock in evolution logic, or by changing pokemon.json file (by moving NextEvolutionRequirements to Next Evolotuions/Pokemon )
  3. Changing pokemon.json will have a bigger impact on code change

We are open to suggestions and PRs around that. :-)

pogarek avatar Feb 19 '17 09:02 pogarek

Actually, there's a 4th easier option for us coders....

Can be used as a temporary measure until a preferred method has been chosen.

At login. If bot detected any of the evolution stones, just check if user has any of the Pokemons that can use it and throw a message: "you have (stone name), your (Pokemon name) can evolve to (new evolved name). Please login to game if you want to do so."

Just a suggestion before a more effective way is implemented

Can also register it as new events, so users who use telegram can also receive the message.

MerlionRock avatar Feb 20 '17 03:02 MerlionRock

might be. In this week I'll prepare the new pokemon.json, with new requirements within next evolution. So we could start looking at code.

pogarek avatar Feb 20 '17 09:02 pogarek

Adding json file with evolution requirements inside. Let's assume that structure of this JSON will be the one used going forward - when new evolutions will be done in bot pokemon.json.txt

(generated from GameMaster by https://github.com/pogarek/PokemonDataImporter/tree/evolution_change )

pogarek avatar Feb 21 '17 22:02 pogarek

@davidakachaos : thanks for your PR about evolutions. I think that file as above would be more readable and more flexible for future changes in this area. Can you try to change evolution according to the structure ?

pogarek avatar Feb 21 '17 22:02 pogarek

@pogarek Looking at your new changes, using Onix as an example, there is no information on "Next evolution(s)", game master doesn't have it? since Onix will evolve to Steelix, where will that information be?

Hmm.... Slowpoke has that new Gen 2 Slowking Evolution Requirements...

MerlionRock avatar Feb 22 '17 08:02 MerlionRock

GAME-Master.json.txt above is GameMaster decoded and serialized as json. Onix evolution is not there. Check also PoliWhirl - the one is already in GameMaster and jsons

pogarek avatar Feb 22 '17 09:02 pogarek

@pogarek have.... "EvolutionBranch": [ { "Evolution": 208, "EvolutionItemRequirement": 1103, "CandyCost": 50 } ]

208 = STEELIX

MerlionRock avatar Feb 22 '17 09:02 MerlionRock

oh , you are right, I've missed when I was checkin, lol. I don't know why :) maybe it was added in yesterday's GameMaster update. checking now

pogarek avatar Feb 22 '17 09:02 pogarek

ok, I know why. for onix : "EvolutionIds": [], is empty - I use that field somewhere else. I'll fix tool in 7-8 hours . maybe earlier.

pogarek avatar Feb 22 '17 09:02 pogarek

Lol. fixed. easier than I thought: pokemon.json.txt

pogarek avatar Feb 22 '17 09:02 pogarek

Another tricky question: What are we going to do with eevee if user want Espeon / Umbreon.

MerlionRock avatar Feb 22 '17 09:02 MerlionRock

Aren't they random like Vaporeon/Jolteon/Flareon are (except the trick with renaming :-) ) ?

pogarek avatar Feb 22 '17 09:02 pogarek

@davidakachaos waiting for you to join this discussion :) Maybe let us know your time zone? :)

MerlionRock avatar Feb 22 '17 09:02 MerlionRock

@pogarek I wish it's random.

http://pokemon24x7.com/pokemon-go-heres-another-espeon-umbreon-evolution-trick-gen-2-guide/

MerlionRock avatar Feb 22 '17 09:02 MerlionRock

LOL! wow :)

pogarek avatar Feb 22 '17 09:02 pogarek

Actually, I shall answer my own question: if user want, ask them catch themselves. Lol

MerlionRock avatar Feb 22 '17 10:02 MerlionRock

I'm in the Netherlands, so currently GMT+1. About the eevee evolutions, naming works or there is a trick of walking 10km with them AFAIK. But imo there should be at least a bit of work for the users to get the new evolutions of Eevee haha.

davidakachaos avatar Feb 22 '17 11:02 davidakachaos

This way seems much better then what was in my PR. That got merged in de so quick, I don't know if you have seen it?

davidakachaos avatar Feb 22 '17 11:02 davidakachaos

Do you mean the json ? :) Yes , I have seen the commit. And that time my json generator wasn't ready to current format, so I could not change to the new format :)

pogarek avatar Feb 22 '17 11:02 pogarek

Yes I added only a bit for Onix, and a bit in the optimizer to see if we had the evolution items needed. It doesn't seem to work as expected for now.... More work needed. But let's take things one step at the time here :smile:

davidakachaos avatar Feb 22 '17 11:02 davidakachaos

I agree. I'm a lot more C# guy than python.. I can fix minor things in python, but I', not able write something from scratch. :-) New json is the 1st step for someone, to do the rest. :-) I can test or help with changing json format, if needed :)

pogarek avatar Feb 22 '17 11:02 pogarek

I hear you, I'm more of a Ruby developer myself, but as I'm doing more programming in this bot I learn more and more python haha.

davidakachaos avatar Feb 22 '17 11:02 davidakachaos

I'm not much better. This PokemonGoF bot is the first time I did programming. The last time I did was about 15 years back. Was programming in C, C++ , Java, PHP, ASP.....

15 years ago.... Haha

MerlionRock avatar Feb 22 '17 15:02 MerlionRock

Leaving a link here as a form of documentation...

One more tricky evolution.... http://www.coco01.net/post/326368

MerlionRock avatar Feb 23 '17 13:02 MerlionRock

@davidakachaos Are you working on this? Else I'll start looking into it since I just fixed the berries

MerlionRock avatar Mar 16 '17 03:03 MerlionRock

Not currently looking at this no. Go for it 😁

Op 16 mrt. 2017 04:52 schreef "MerlionRock" [email protected]:

@davidakachaos https://github.com/davidakachaos Are you working on this? Else I'll start looking into it since I just fixed the berries

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PokemonGoF/PokemonGo-Bot/issues/5922#issuecomment-286950729, or mute the thread https://github.com/notifications/unsubscribe-auth/AAD5Y9YOJxkGzdgYRWkXuxxOL2vKRVizks5rmLHsgaJpZM4MFamA .

davidakachaos avatar Mar 16 '17 08:03 davidakachaos

@MerlionRock my changes work if the right data is added to pokemons.json (see my fork) Maybe not nice looking, but it works 😉

davidakachaos avatar Apr 11 '17 14:04 davidakachaos

what do you mean by changes in pokemons.json ?

check sample in https://github.com/PokemonGoF/PokemonGo-Bot/issues/5922#issuecomment-281498994

json's are generated right now from game master. no manual addition should be done...

pogarek avatar Apr 11 '17 14:04 pogarek

For example:

"Next Evolution Requirements": {
      "Amount": 100,
      "Family": 116,
      "Name": "Horsea candies"
    },

would become

"Next Evolution Requirements": {
      "Amount": 100,
      "Family": 116,
      "Name": "Horsea candies",
      "EvoItem": 1104,
      "EvoItemNeeded": 1
    },

I know it's ugly, but I made it work on my fork... But yeah, no solution yet with the multiple evolution options that some mons have....

davidakachaos avatar Apr 11 '17 14:04 davidakachaos

I am using's pogarek's file.

"Next evolution(s)": [
      {
        "Evolution Requirements": {
          "ItemsNeeded": [
            {
              "Amount": 100,
              "Name": "Oddish candies"
            }
          ]
        },
        "Number": "045",
        "Name": "Vileplume"
      },
      {
        "Evolution Requirements": {
          "ItemsNeeded": [
            {
              "Amount": 100,
              "Name": "Oddish candies"
            },
            {
              "Amount": 1,
              "Name": "Sun Stone"
            }
          ]
        },
        "Number": "182",
        "Name": "Bellossom"
      },
]

This configuration is giving me alot of headaches.... haha... We see which one our dear friend @pogarek prefers... I am still working on it, no ETA, exploring if multi-array/list/dictionary can help with multiple evolution. I'm taking my time. No worries, if pogarekis okay with your config, you go ahead and implenemt it.

MerlionRock avatar Apr 14 '17 02:04 MerlionRock