Jump to content

RBY Golbat and Screech


BeyondTheHorizon

Recommended Posts

A few days ago I posted this at the PKHeX GitHub errors page. I asked why Golbat with Screech is marked as illegal in PKHeX. I accepted the answer and thanked the responder.

However, as Smogon recommends Screech on Golbat for its moveset here, I decided to look again at Golbat's RBY learnset on Bulbapedia as well as the Levels you can obtain him at in the Seafoam Islands, and I still don't think I understand. If Golbat can be caught at Level 27 in the wild—which is the lowest Level it can be caught in those games—it should have Screech, as well as Bite, Supersonic and Confuse Ray. PKHeX recommends Leech Life when I click on the box surrounding the moves, but according to Bulbapedia Leech Life comes before Screech on the learnset, meaning Leech Life should be overridden by Confuse Ray if you catch Golbat at Level 27 in the wild, not Screech.

I'm confused.

Link to comment
Share on other sites

I will look into that later.

Maybe the problem is caused by the catch rate. PKHeX uses the catch rate in generation 1 games to determine in what species was captured the pokemon. A Golbat with catch rate 255 was caught as a zubat, and a golbat with catch rate 90 was caught as a Golbat, only the second one could learn Screech. Of course this only apply to pokemon in generation 1 format with VC mode, not generation 2, 7 or generation 1 with tradebacks from generation 2.

Link to comment
Share on other sites

I think i now understant where is the problem. When PKHeX search for valid encounters for a pokemon if the encounters is a Wild Encounter PKHeX just select the minimun level and miminun species that is legal for the giving pokemon. It is assuming that all the valid moves for an evolved encounter are valid for unevoled encounters, but that for generation 1 Golbat is not true because of the Screech move. This means the methods to search for generation 1 wild encounters should be refactor to return the 2 potential encounters in this case, Zubat and Golbat

Link to comment
Share on other sites

On 5/23/2017 at 0:45 AM, javier_himura said:

I think i now understant where is the problem. When PKHeX search for valid encounters for a pokemon if the encounters is a Wild Encounter PKHeX just select the minimun level and miminun species that is legal for the giving pokemon. It is assuming that all the valid moves for an evolved encounter are valid for unevoled encounters, but that for generation 1 Golbat is not true because of the Screech move. This means the methods to search for generation 1 wild encounters should be refactor to return the 2 potential encounters in this case, Zubat and Golbat

PKHeX assumed pre-filtering could select a precise encounter prior to checking moves; the EncounterGiftMatch list and EncounterStaticMatch list are evidence that it's not 100% possible. I'm thinking that the main encounter matching setup needs to be refactored to more of a yield-return ienumerable pattern.

With that setup, multiple encounters can be checked. The static/gift workaround will end up being simplified so that the entire legality check first yields valid encounters then checks moves. If all moves are valid then the encounter passes, leading to remainder of the checks, else it will try the next encounter.

Overall logic flow:

  1. IEnumerable to yield possible encounters
  2. Pre-move check rejection scenarios (invalid encounter slots/types)
  3. Move Checks
  4. Final Checks

Will need to make the rejection loop flexible enough so that post-move checks can be inserted. Will also need to have a way to peek at the next possible encounter; if none, the flow will continue through the remainder of the checks as there is no other encounter to compare against.

Won't be straightforward as the program has to be able to restart for the next encounter.

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...