Improved canActivate support:

* added support of non controller activates in ActivatedManaAbility (mayActivate);
* removed custom code from ActivatedManaAbility;
* removed custom code from Mana Cache;
* added additional comments;
This commit is contained in:
Oleg Agafonov 2021-08-21 01:44:00 +04:00
parent bdeb0dde66
commit 33380f09c2
8 changed files with 33 additions and 29 deletions

View file

@ -25,6 +25,14 @@ public class PlayLandAbility extends ActivatedAbilityImpl {
@Override
public ActivationStatus canActivate(UUID playerId, Game game) {
// 20210723 - 116.2a
// Playing a land is a special action. To play a land, a player puts that land onto the battlefield
// from the zone it was in (usually that players hand). By default, a player can take this action
// only once during each of their turns. A player can take this action any time they have priority
// and the stack is empty during a main phase of their turn. See rule 305, Lands.
// no super.canActivate() call
ApprovingObject approvingObject = game.getContinuousEffects().asThough(getSourceId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, this, playerId, game);
if (!controlsAbility(playerId, game) && null == approvingObject) {
return ActivationStatus.getFalse();