PokemonGoF / PokemonGo-Bot

The Pokemon Go Bot, baking with community.
MIT License
3.86k stars 1.54k forks source link

TODO: New evolutions - changes required and help needed #5922

Open pogarek opened 7 years ago

pogarek commented 7 years ago

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:

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. :-)

MerlionRock commented 7 years ago

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.

pogarek commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

@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 ?

MerlionRock commented 7 years ago

@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...

pogarek commented 7 years ago

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

MerlionRock commented 7 years ago

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

208 = STEELIX

pogarek commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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

MerlionRock commented 7 years ago

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

pogarek commented 7 years ago

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

MerlionRock commented 7 years ago

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

MerlionRock commented 7 years ago

@pogarek I wish it's random.

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

pogarek commented 7 years ago

LOL! wow :)

MerlionRock commented 7 years ago

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

davidakachaos commented 7 years ago

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 commented 7 years ago

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?

pogarek commented 7 years ago

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 :)

davidakachaos commented 7 years ago

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:

pogarek commented 7 years ago

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 :)

davidakachaos commented 7 years ago

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.

MerlionRock commented 7 years ago

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 commented 7 years ago

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

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

MerlionRock commented 7 years ago

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

davidakachaos commented 7 years ago

Not currently looking at this no. Go for it 😁

Op 16 mrt. 2017 04:52 schreef "MerlionRock" notifications@github.com:

@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 commented 7 years ago

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

pogarek commented 7 years ago

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...

davidakachaos commented 7 years ago

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....

MerlionRock commented 7 years ago

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.