[DFT] Guidelight Matrix and Kolodin, Triumph Caster

This commit is contained in:
Jmlundeen 2025-03-18 22:23:40 -05:00 committed by GitHub
commit 0d0a6691f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 197 additions and 16 deletions

View file

@ -0,0 +1,40 @@
package mage.abilities.effects.common;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.SaddleAbility;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.game.Game;
import mage.game.permanent.Permanent;
/**
* @author Jmlundeen
*/
public class SaddleTargetMountEffect extends OneShotEffect {
public SaddleTargetMountEffect() {
super(Outcome.Benefit);
staticText = "Target Mount you control becomes saddled until end of turn";
}
public SaddleTargetMountEffect(String rule) {
super(Outcome.Benefit);
staticText = rule;
}
protected SaddleTargetMountEffect(final SaddleTargetMountEffect effect) {
super(effect);
}
@Override
public SaddleTargetMountEffect copy() {
return new SaddleTargetMountEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
return SaddleAbility.applySaddle(game.getPermanent(getTargetPointer().getFirst(game, source)), game);
}
}

View file

@ -48,6 +48,23 @@ public class SaddleAbility extends SimpleActivatedAbility {
this.value = ability.value;
}
public static boolean applySaddle(Permanent permanent, Game game) {
if (permanent == null) {
return false;
}
SaddleAbility saddleAbility = permanent.getAbilities().stream()
.filter(a -> a instanceof SaddleAbility)
.map(a -> (SaddleAbility) a)
.findFirst()
.orElse(null);
if (saddleAbility != null) {
SaddleEventEffect effect = new SaddleEventEffect();
effect.apply(game, saddleAbility);
return true;
}
return false;
}
@Override
public SaddleAbility copy() {
return new SaddleAbility(this);