forked from External/mage
38 lines
1.1 KiB
Java
38 lines
1.1 KiB
Java
package mage.game.stack;
|
|
|
|
import mage.MageObject;
|
|
import mage.abilities.Ability;
|
|
import mage.constants.Zone;
|
|
import mage.constants.ZoneDetail;
|
|
import mage.filter.FilterPermanent;
|
|
import mage.game.Controllable;
|
|
import mage.game.Game;
|
|
|
|
import java.util.UUID;
|
|
|
|
public interface StackObject extends MageObject, Controllable {
|
|
|
|
boolean resolve(Game game);
|
|
|
|
UUID getSourceId();
|
|
|
|
void counter(UUID sourceId, Game game);
|
|
|
|
void counter(UUID sourceId, Game game, Zone zone, boolean owner, ZoneDetail zoneDetail);
|
|
|
|
Ability getStackAbility();
|
|
|
|
// int getConvertedManaCost();
|
|
boolean chooseNewTargets(Game game, UUID playerId, boolean forceChange, boolean onlyOneTarget, FilterPermanent filterNewTarget);
|
|
|
|
StackObject createCopyOnStack(Game game, Ability source, UUID newControllerId, boolean chooseNewTargets);
|
|
|
|
StackObject createCopyOnStack(Game game, Ability source, UUID newControllerId, boolean chooseNewTargets, int amount);
|
|
|
|
boolean isTargetChanged();
|
|
|
|
void setTargetChanged(boolean targetChanged);
|
|
|
|
@Override
|
|
StackObject copy();
|
|
}
|