Skip to content

Comments

Stating which stat was increased from Protosynthesis or Quark Drive.#81

Open
gikouw wants to merge 5 commits intoFlame442:masterfrom
gikouw:proto/drive
Open

Stating which stat was increased from Protosynthesis or Quark Drive.#81
gikouw wants to merge 5 commits intoFlame442:masterfrom
gikouw:proto/drive

Conversation

@gikouw
Copy link
Contributor

@gikouw gikouw commented Dec 16, 2024

No description provided.

@Flame442
Copy link
Owner

This doesn't cover all cases. If the terrain changes, no message will be sent. If a pokemon gets booster energy from snatch, no message will be sent and the ability would be prevented from activating. Ideally there would be a proper way to check for changes in weather/terrain/item/etc without resorting to ugly edge case hacks, but that does not currently exist.

Unrelated to this change, but noticed as a result of it, these abilities probably aren't implemented correctly currently. I would need to do some very nitty gritty testing to know exactly how these abilities are supposed to work. Bulbapedia is implying that a one-time check for the highest stat is performed, and that stat remains increased. However, it could also be dynamic, since it should be taking into account the stage changes. I believe I probably went for a simple approach of ignoring the stat stage changes to make it consistent without needing to figure out if it needed to remember the stat once it triggered.

I don't have any good direction for how this PR can be improved right now, I would need to investigate how it should be working much closer to determine what needs to be changed to achieve that.

@gikouw
Copy link
Contributor Author

gikouw commented Dec 17, 2024

For the the abilities/items that are activated(instantly) with the presence of terrain/weather, the only way i can think of without making substantial logic change is to make a function that is called when the pokemon is sent out and after each current pokemon uses an action(move or switch)
same thing as the "edge case hacks" just inside a function

Kinda confused about booster energy, according to bulbapedia description it cannot be transfered to or from a Paradox pokemon except Koraidon and Miraidon
so this implies that this could only be done if both the active pokemon are koraidon or miraidon?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants