| name | Migrate AttackId Cards |
| description | Migrates attack implementations from the old approach (using AttackId) to use new approach (Mechanic enum) |
The codebase is in a dirty state, don't try to eliminate compilation warnings, or apply clippy suggestions.
Read the
modelsmodule and thestatemodule.Find the
AttackIdto migrate in the commented match statement inapply_attack_action.rsSearch for the card information with the following script (e.g. AttackId::A1004VenusaurExGiantBloom):
cargo run --bin search "Venusaur" --attack "Giant Bloom"Search for the effect text in the above JSON in the
effect_mechanic_map.rsfile.Decide if we should introduce a new Mechanic or re-use or generalize an existing one. Try to re-use existing ones first.
Uncomment the all the effect lines in
effect_mechanic_map.rsthat just require different parameters on the decided Mechanic variant, and map to the correct Mechanic variant instance.Implement the mechanic logic in
forecast_effect_attack_by_mechanicinapply_attack_action.rs.- Identify how it was implemented before. Refactor the old function to be usable with the new structure.
- Keep the code as a simple one-liner in the match statement by using helper functions
- Remove their old usage in the big commented out match statement, and any other old implementation for this attack.
DO NOT run
cargo fmtorclippyfor now, or try to cleanup unused functions for now.