mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
- Some safety fixes for Muck Drubb.
This commit is contained in:
@@ -4,7 +4,7 @@ Types:Creature Beast
|
|||||||
PT:3/3
|
PT:3/3
|
||||||
K:Flash
|
K:Flash
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, change the target of target spell that targets only a single creature to Muck Drubb.
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, change the target of target spell that targets only a single creature to Muck Drubb.
|
||||||
SVar:TrigChange:AB$ ChangeTargets | Cost$ 0 | TargetType$ Spell | ValidTgts$ Card | Defined$ Self | TargetsSingleTarget$ True | ChangeSingleTarget$ True | TargetValidTargeting$ Creature
|
SVar:TrigChange:AB$ ChangeTargets | Cost$ 0 | TargetType$ Spell | ValidTgts$ Card | Defined$ Self | TargetsSingleTarget$ True | TargetValidTargeting$ Creature
|
||||||
K:Madness:2 B
|
K:Madness:2 B
|
||||||
SVar:RemAIDeck:True
|
SVar:RemAIDeck:True
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/muck_drubb.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/muck_drubb.jpg
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ public class ChangeTargetsEffect extends SpellAbilityEffect {
|
|||||||
public void resolve(SpellAbility sa) {
|
public void resolve(SpellAbility sa) {
|
||||||
final List<SpellAbility> sas = getTargetSpells(sa);
|
final List<SpellAbility> sas = getTargetSpells(sa);
|
||||||
final boolean remember = sa.hasParam("RememberTargetedCard");
|
final boolean remember = sa.hasParam("RememberTargetedCard");
|
||||||
final boolean random = sa.hasParam("RandomTarget");
|
|
||||||
|
|
||||||
final MagicStack stack = sa.getActivatingPlayer().getGame().getStack();
|
final MagicStack stack = sa.getActivatingPlayer().getGame().getStack();
|
||||||
for (final SpellAbility tgtSA : sas) {
|
for (final SpellAbility tgtSA : sas) {
|
||||||
@@ -86,18 +85,25 @@ public class ChangeTargetsEffect extends SpellAbilityEffect {
|
|||||||
} else {
|
} else {
|
||||||
while(changingTgtSI != null) {
|
while(changingTgtSI != null) {
|
||||||
SpellAbility changingTgtSA = changingTgtSI.getSpellAbility();
|
SpellAbility changingTgtSA = changingTgtSI.getSpellAbility();
|
||||||
if (!random) {
|
if (sa.hasParam("RandomTarget")){
|
||||||
// Update targets, with a potential new target
|
|
||||||
TargetChoices newTarget = sa.getActivatingPlayer().getController().chooseNewTargetsFor(changingTgtSA);
|
|
||||||
if (null != newTarget) {
|
|
||||||
changingTgtSI.updateTarget(newTarget);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
changingTgtSA.resetTargets();
|
changingTgtSA.resetTargets();
|
||||||
List<GameObject> candidates = changingTgtSA.getTargetRestrictions().getAllCandidates(changingTgtSA, true);
|
List<GameObject> candidates = changingTgtSA.getTargetRestrictions().getAllCandidates(changingTgtSA, true);
|
||||||
GameObject choice = Aggregates.random(candidates);
|
GameObject choice = Aggregates.random(candidates);
|
||||||
changingTgtSA.getTargets().add(choice);
|
changingTgtSA.getTargets().add(choice);
|
||||||
changingTgtSI.updateTarget(changingTgtSA.getTargets());
|
changingTgtSI.updateTarget(changingTgtSA.getTargets());
|
||||||
|
} else if (sa.hasParam("Defined")){
|
||||||
|
GameObject newTarget = Iterables.getFirst(getDefinedCardsOrTargeted(sa), null);
|
||||||
|
if(changingTgtSA.canTarget(newTarget)) {
|
||||||
|
changingTgtSA.resetTargets();
|
||||||
|
changingTgtSA.getTargets().add(newTarget);
|
||||||
|
changingTgtSI.updateTarget(changingTgtSA.getTargets());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Update targets, with a potential new target
|
||||||
|
TargetChoices newTarget = sa.getActivatingPlayer().getController().chooseNewTargetsFor(changingTgtSA);
|
||||||
|
if (null != newTarget) {
|
||||||
|
changingTgtSI.updateTarget(newTarget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
changingTgtSI = changingTgtSI.getSubInstace();
|
changingTgtSI = changingTgtSI.getSubInstace();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user