mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
Added Riddlekeeper and refactored similar cards
This commit is contained in:
parent
070a0ca3fa
commit
a0e3571d7b
5 changed files with 464 additions and 491 deletions
|
|
@ -43,12 +43,12 @@ import mage.target.targetpointer.FixedTarget;
|
|||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
protected FilterCreaturePermanent filter;
|
||||
protected boolean attacksYouOrYourPlaneswalker;
|
||||
protected SetTargetPointer setTargetPointer;
|
||||
protected boolean controller;
|
||||
|
||||
public AttacksAllTriggeredAbility(Effect effect, boolean optional) {
|
||||
this(effect, optional, new FilterCreaturePermanent(), SetTargetPointer.NONE, false);
|
||||
|
|
@ -59,10 +59,15 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
public AttacksAllTriggeredAbility(Effect effect, boolean optional, FilterCreaturePermanent filter, SetTargetPointer setTargetPointer, boolean attacksYouOrYourPlaneswalker) {
|
||||
this(effect, optional, filter, setTargetPointer, attacksYouOrYourPlaneswalker, false);
|
||||
}
|
||||
|
||||
public AttacksAllTriggeredAbility(Effect effect, boolean optional, FilterCreaturePermanent filter, SetTargetPointer setTargetPointer, boolean attacksYouOrYourPlaneswalker, boolean controller) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.filter = filter;
|
||||
this.attacksYouOrYourPlaneswalker = attacksYouOrYourPlaneswalker;
|
||||
this.setTargetPointer = setTargetPointer;
|
||||
this.controller = controller;
|
||||
}
|
||||
|
||||
public AttacksAllTriggeredAbility(final AttacksAllTriggeredAbility ability) {
|
||||
|
|
@ -70,6 +75,7 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
this.filter = ability.filter.copy();
|
||||
this.attacksYouOrYourPlaneswalker = ability.attacksYouOrYourPlaneswalker;
|
||||
this.setTargetPointer = ability.setTargetPointer;
|
||||
this.controller = ability.controller;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -95,21 +101,20 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
switch(setTargetPointer) {
|
||||
switch (setTargetPointer) {
|
||||
case PERMANENT:
|
||||
for (Effect effect: getEffects()) {
|
||||
for (Effect effect : getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(permanent.getId()));
|
||||
}
|
||||
break;
|
||||
case PLAYER:
|
||||
UUID defendingPlayerId = game.getCombat().getDefendingPlayerId(permanent.getId(), game);
|
||||
if (defendingPlayerId != null) {
|
||||
for (Effect effect: getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(defendingPlayerId));
|
||||
UUID playerId = controller ? permanent.getControllerId() : game.getCombat().getDefendingPlayerId(permanent.getId(), game);
|
||||
if (playerId != null) {
|
||||
for (Effect effect : getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(playerId));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -123,7 +128,7 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a " + filter.getMessage() + " attacks" + (attacksYouOrYourPlaneswalker ? " you or a planeswalker you control":"") +", " + super.getRule();
|
||||
return "Whenever a " + filter.getMessage() + " attacks" + (attacksYouOrYourPlaneswalker ? " you or a planeswalker you control" : "") + ", " + super.getRule();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue