Game: fixed rare bugs in some cards after rollback or cancel actions:

* Cumulative upkeep cost - fixed that it can lost payed state (cards: Aboroth, Karplusan Minotaur, Psychic Vortex, Sheltering Ancient);
 * Effects - fixed that it can lost selected targets or other settings (cards: Citadel of Pain, Crimson Honor Guard, Curfew, Leveler, Mana Cache, Monsoon, Paradigm Shift, Saprazzan Bailiff);
 * Exile all cards from graveyard ability - fixed that it can lost targets (example: Agent of Erebos);
 * Melee ability - fixed that it can lost targets (example: Adriana, Captain of the Guard).
This commit is contained in:
Oleg Agafonov 2021-07-07 16:51:53 +04:00
parent 82cc789534
commit 07ddad6e48
60 changed files with 163 additions and 224 deletions

View file

@ -3,11 +3,19 @@ package mage.abilities.dynamicvalue;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.game.Game;
import mage.util.Copyable;
import java.io.Serializable;
public interface DynamicValue extends Serializable {
/**
* Dynamic value can be called multiple times from different places, so don't use inner/changeable fields. If you
* use it then think x100 times and override Copy method with copy constructor.
*/
public interface DynamicValue extends Serializable, Copyable<DynamicValue> {
int calculate(Game game, Ability sourceAbility, Effect effect);
DynamicValue copy();
String getMessage();
}