mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 04:22:01 -08:00
* Added logic to add permitting object to play/cast events.
This commit is contained in:
parent
b97a443a37
commit
27ced167fb
124 changed files with 1095 additions and 964 deletions
|
|
@ -28,6 +28,7 @@
|
|||
package mage.abilities;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageObjectReference;
|
||||
import mage.abilities.mana.ManaOptions;
|
||||
import mage.constants.TargetController;
|
||||
import mage.game.Game;
|
||||
|
|
@ -38,9 +39,36 @@ import mage.game.Game;
|
|||
*/
|
||||
public interface ActivatedAbility extends Ability {
|
||||
|
||||
boolean canActivate(UUID playerId, Game game);
|
||||
final public class ActivationStatus {
|
||||
|
||||
public void setMayActivate(TargetController mayActivate);
|
||||
private final boolean canActivate;
|
||||
private final MageObjectReference permittingObject;
|
||||
|
||||
public ActivationStatus(boolean canActivate, MageObjectReference permittingObject) {
|
||||
this.canActivate = canActivate;
|
||||
this.permittingObject = permittingObject;
|
||||
}
|
||||
|
||||
public boolean canActivate() {
|
||||
return canActivate;
|
||||
}
|
||||
|
||||
public MageObjectReference getPermittingObject() {
|
||||
return permittingObject;
|
||||
}
|
||||
|
||||
public static ActivationStatus getFalse() {
|
||||
return new ActivationStatus(false, null);
|
||||
}
|
||||
|
||||
public static ActivationStatus getTrue() {
|
||||
return new ActivationStatus(true, null);
|
||||
}
|
||||
}
|
||||
|
||||
ActivationStatus canActivate(UUID playerId, Game game); // has to return a reference to the permitting ability/source
|
||||
|
||||
void setMayActivate(TargetController mayActivate);
|
||||
|
||||
/**
|
||||
* Returns the minimal possible cost for what the ability can be activated
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue