mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
- Added an optional "Destroy" parameter to AF Sacrifice and fixed Imperial Edict with it.
This commit is contained in:
@@ -2,7 +2,7 @@ Name:Imperial Edict
|
|||||||
ManaCost:1 B
|
ManaCost:1 B
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
Text:no text
|
Text:no text
|
||||||
A:SP$ Sacrifice | Cost$ 1 B | ValidTgts$ Opponent | SacValid$ Creature | SacMessage$ Creature | SpellDescription$ Target opponent sacrifices a creature.
|
A:SP$ Sacrifice | Cost$ 1 B | ValidTgts$ Opponent | SacValid$ Creature | SacMessage$ Creature | Destroy$ True | SpellDescription$ Target opponent sacrifices a creature.
|
||||||
SVar:Rarity:Common
|
SVar:Rarity:Common
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/imperial_edict.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/imperial_edict.jpg
|
||||||
SetInfo:PTK|Common|http://magiccards.info/scans/en/p3k/77.jpg
|
SetInfo:PTK|Common|http://magiccards.info/scans/en/p3k/77.jpg
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import forge.Constant;
|
|||||||
import forge.Constant.Zone;
|
import forge.Constant.Zone;
|
||||||
import forge.MyRandom;
|
import forge.MyRandom;
|
||||||
import forge.Player;
|
import forge.Player;
|
||||||
import forge.PlayerUtil;
|
|
||||||
import forge.card.cardfactory.CardFactoryUtil;
|
import forge.card.cardfactory.CardFactoryUtil;
|
||||||
import forge.card.cost.Cost;
|
import forge.card.cost.Cost;
|
||||||
import forge.card.cost.CostUtil;
|
import forge.card.cost.CostUtil;
|
||||||
@@ -446,6 +445,7 @@ public class AbilityFactorySacrifice {
|
|||||||
|
|
||||||
msg = "Sacrifice a " + msg;
|
msg = "Sacrifice a " + msg;
|
||||||
|
|
||||||
|
final boolean destroy = params.containsKey("Destroy");
|
||||||
final boolean remSacrificed = params.containsKey("RememberSacrificed");
|
final boolean remSacrificed = params.containsKey("RememberSacrificed");
|
||||||
if (remSacrificed) {
|
if (remSacrificed) {
|
||||||
card.clearRemembered();
|
card.clearRemembered();
|
||||||
@@ -480,9 +480,9 @@ public class AbilityFactorySacrifice {
|
|||||||
CardList sacList = null;
|
CardList sacList = null;
|
||||||
for (final Player p : tgts) {
|
for (final Player p : tgts) {
|
||||||
if (p.isComputer()) {
|
if (p.isComputer()) {
|
||||||
sacList = AbilityFactorySacrifice.sacrificeAI(p, amount, valid, sa);
|
sacList = AbilityFactorySacrifice.sacrificeAI(p, amount, valid, sa, destroy);
|
||||||
} else {
|
} else {
|
||||||
sacList = AbilityFactorySacrifice.sacrificeHuman(p, amount, valid, sa, msg);
|
sacList = AbilityFactorySacrifice.sacrificeHuman(p, amount, valid, sa, destroy);
|
||||||
}
|
}
|
||||||
if (remSacrificed) {
|
if (remSacrificed) {
|
||||||
for (int i = 0; i < sacList.size(); i++) {
|
for (int i = 0; i < sacList.size(); i++) {
|
||||||
@@ -509,7 +509,8 @@ public class AbilityFactorySacrifice {
|
|||||||
* @param sa
|
* @param sa
|
||||||
* a {@link forge.card.spellability.SpellAbility} object.
|
* a {@link forge.card.spellability.SpellAbility} object.
|
||||||
*/
|
*/
|
||||||
private static CardList sacrificeAI(final Player p, final int amount, final String valid, final SpellAbility sa) {
|
private static CardList sacrificeAI(final Player p, final int amount, final String valid, final SpellAbility sa,
|
||||||
|
final boolean destroy) {
|
||||||
CardList list = p.getCardsIn(Zone.Battlefield);
|
CardList list = p.getCardsIn(Zone.Battlefield);
|
||||||
list = list.getValidCards(valid.split(","), sa.getActivatingPlayer(), sa.getSourceCard());
|
list = list.getValidCards(valid.split(","), sa.getActivatingPlayer(), sa.getSourceCard());
|
||||||
|
|
||||||
@@ -535,7 +536,7 @@ public class AbilityFactorySacrifice {
|
|||||||
* a {@link java.lang.String} object.
|
* a {@link java.lang.String} object.
|
||||||
*/
|
*/
|
||||||
private static CardList sacrificeHuman(final Player p, final int amount, final String valid, final SpellAbility sa,
|
private static CardList sacrificeHuman(final Player p, final int amount, final String valid, final SpellAbility sa,
|
||||||
final String message) {
|
final boolean destroy) {
|
||||||
CardList saccedList = new CardList();
|
CardList saccedList = new CardList();
|
||||||
CardList list = p.getCardsIn(Zone.Battlefield);
|
CardList list = p.getCardsIn(Zone.Battlefield);
|
||||||
list = list.getValidCards(valid.split(","), sa.getActivatingPlayer(), sa.getSourceCard());
|
list = list.getValidCards(valid.split(","), sa.getActivatingPlayer(), sa.getSourceCard());
|
||||||
@@ -548,7 +549,16 @@ public class AbilityFactorySacrifice {
|
|||||||
o = GuiUtils.getChoice("Select a card to sacrifice", list.toArray());
|
o = GuiUtils.getChoice("Select a card to sacrifice", list.toArray());
|
||||||
if (o != null) {
|
if (o != null) {
|
||||||
final Card c = (Card) o;
|
final Card c = (Card) o;
|
||||||
AllZone.getGameAction().sacrifice(c);
|
|
||||||
|
if (destroy) {
|
||||||
|
if(!AllZone.getGameAction().destroy(c)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(!AllZone.getGameAction().sacrifice(c)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
saccedList.add(c);
|
saccedList.add(c);
|
||||||
list.remove(c);
|
list.remove(c);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user