magefree / magefree/mage

Miss ProcessAction after card move in some color dependent effects (Chandra, Dressed to Kill and other)

Open
#12,279 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
2.4k
Forks
940
Avg merge
2d 12h
Merged PRs (30d)
160

Description

From 8002cdf88fd4df21923cf46a931c654316aed68d

Some multi-steps effects must move card to another zone and apply another color depended effect. It must check color of the actual card (e.g. card's color in destination zone):
> +1: Exile the top card of your library. If it's red, you may cast it this turn.

So effect must call `game.processAction()` to apply color/ability changing effects like [[Celestial Dawn]] with:
> Nonland cards you own that aren't on the battlefield, spells you control, and nonland permanents you control are white.

Code search example: `card.getColor(game).is`
![shot_240523_070325](https://github.com/magefree/mage/assets/8344157/1dde7b43-ed76-474c-8b6c-401dd85edace)

Potentially buggy cards:
* +1 ability from [[Chandra, Dressed to Kill]];
* +1 ability from [[Chandra Ablaze]];
* [[Specter's Shriek]];
* -3 ability from [[Tamiyo, Seasoned Scholar]]
* [[Stormscale Anarch]] -- it's a different use case cause have discard cost;
* maybe other cards under `object.getColor(game).is` or `.getColor(game).is` usage (need research to find cards, not permanents);

Contributor guide

No contributing guide indexed for this repository

Research direction

Search the card implementations named in the issue, then inspect usages of object.getColor(game).is and card.getColor(game).is. Trace each multi-step effect across the zone move and determine whether game.processAction() is reached before the destination card's color is checked; done means the listed cases and any related usages evaluate the actual destination-zone color.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.