Loreinator / Shuffle-Move

Program to help choose moves in the Pokemon Shuffle puzzle game
GNU General Public License v3.0
95 stars 18 forks source link

Allow extra pre-sorting of results #193

Closed Loreinator closed 6 years ago

Loreinator commented 8 years ago

Source thread: https://www.reddit.com/r/ShuffleMove/comments/51m3aq/request_choose_thispokemon_as_first_move/

Original request by TherkFr

Hey !

First thanks for all you've done. ;)

Sometimes, i need to trigger a very specific ability over another, such as Mind Zap, Sleep Charm, Chill, Quake... I don't know. Is it possible to add an option in the Move Chooser to select the Pokemon I want to move for my first move ?

Thanks !

Summary of my implementation idea:

They'll act like a supplementary function before the normal ranking behaviour takes effect.

Any other ideas for filters? I'm thinking of having it populated with the following:

Mega delay if mega progress is less than mega threshold
Each species in your team or board
Each skill of those in your team or board

Filter effect: All moves that match the filter are at the top, the rest at the bottom. The "Grading Mode" sorting occurs within each of these sections. I should be able to wedge this functionality in as a pre-sort for the results ranking.

It will require new keys for the move menu, and the move chooser window. There should be a new value stored in the main preferences manager for "TARGET_PRIORITY" or something similar. This will be modified by either the menu or the selector in the move chooser. The value of this will be queried in the model class in the step where it gets the Comparrator for the results depending on the current grading mode. It will wrap it in a new one that applies the filter if present, and if two moves equally meet (or don't meet) the filter, then use the grading mode.

Construction of the comparator: Three separate private Classes defined in the model, one for Mega Delay, one for Species, and one for Effects. They each will take grading mode and either species or effect as argument. Mega delay would take species itself as the argument (filter to only the mega species).