Merge branch 'EquipInstantSpeed' into 'master'

GameActionUtil: EquipInstantSpeed should affect the player

See merge request core-developers/forge!871
This commit is contained in:
Michael Kamensky
2018-08-21 16:41:40 +00:00
2 changed files with 13 additions and 13 deletions

View File

@@ -109,7 +109,7 @@ public final class GameActionUtil {
final SpellAbility newSA = sa.copy(activator); final SpellAbility newSA = sa.copy(activator);
final SpellAbilityRestriction sar = newSA.getRestrictions(); final SpellAbilityRestriction sar = newSA.getRestrictions();
if (o.isWithFlash()) { if (o.isWithFlash()) {
sar.setInstantSpeed(true); sar.setInstantSpeed(true);
} }
sar.setZone(null); sar.setZone(null);
newSA.setMayPlay(o.getAbility()); newSA.setMayPlay(o.getAbility());
@@ -187,6 +187,15 @@ public final class GameActionUtil {
alternatives.add(newSA); alternatives.add(newSA);
} }
if (sa.hasParam("Equip") && activator.hasKeyword("EquipInstantSpeed")) {
final SpellAbility newSA = sa.copy(activator);
SpellAbilityRestriction sar = newSA.getRestrictions();
sar.setSorcerySpeed(false);
sar.setInstantSpeed(true);
newSA.setDescription(sa.getDescription() + " (you may activate any time you could cast an instant )");
alternatives.add(newSA);
}
for (final KeywordInterface inst : source.getKeywords()) { for (final KeywordInterface inst : source.getKeywords()) {
final String keyword = inst.getOriginal(); final String keyword = inst.getOriginal();
if (sa.isSpell() && keyword.startsWith("Flashback")) { if (sa.isSpell() && keyword.startsWith("Flashback")) {
@@ -208,15 +217,6 @@ public final class GameActionUtil {
} }
alternatives.add(flashback); alternatives.add(flashback);
} }
if (sa.hasParam("Equip") && sa instanceof AbilityActivated && keyword.equals("EquipInstantSpeed")) {
final SpellAbility newSA = sa.copy(activator);
SpellAbilityRestriction sar = newSA.getRestrictions();
sar.setSorcerySpeed(false);
sar.setInstantSpeed(true);
newSA.setDescription(sa.getDescription() + " (you may activate any time you could cast an instant )");
alternatives.add(newSA);
}
} }
return alternatives; return alternatives;
} }
@@ -391,8 +391,8 @@ public final class GameActionUtil {
} }
} }
} else if (keyword.startsWith("Kicker")) { } else if (keyword.startsWith("Kicker")) {
String[] sCosts = TextUtil.split(keyword.substring(6), ':'); String[] sCosts = TextUtil.split(keyword.substring(6), ':');
boolean generic = "Generic".equals(sCosts[sCosts.length - 1]); boolean generic = "Generic".equals(sCosts[sCosts.length - 1]);
// If this is a "generic kicker" (Undergrowth), ignore value for kicker creations // If this is a "generic kicker" (Undergrowth), ignore value for kicker creations
int numKickers = sCosts.length - (generic ? 1 : 0); int numKickers = sCosts.length - (generic ? 1 : 0);
for (int i = 0; i < abilities.size(); i++) { for (int i = 0; i < abilities.size(); i++) {

View File

@@ -2,6 +2,6 @@ Name:Leonin Shikari
ManaCost:1 W ManaCost:1 W
Types:Creature Cat Soldier Types:Creature Cat Soldier
PT:2/2 PT:2/2
S:Mode$ Continuous | AddHiddenKeyword$ EquipInstantSpeed | Affected$ Card.withEquip+YouCtrl | Description$ You may activate equip abilities any time you could cast an instant. S:Mode$ Continuous | Affected$ You | AddKeyword$ EquipInstantSpeed | Description$ You may activate equip abilities any time you could cast an instant.
SVar:Picture:http://www.wizards.com/global/images/magic/general/leonin_shikari.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/leonin_shikari.jpg
Oracle:You may activate equip abilities any time you could cast an instant. Oracle:You may activate equip abilities any time you could cast an instant.