- Added Price of Glory

This commit is contained in:
swordshine
2014-02-26 04:14:10 +00:00
parent 47e70694bf
commit fbbab5110c
8 changed files with 45 additions and 2 deletions

1
.gitattributes vendored
View File

@@ -9338,6 +9338,7 @@ forge-gui/res/cardsfolder/p/pretenders_claim.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/prey_upon.txt -text
forge-gui/res/cardsfolder/p/preys_vengeance.txt -text
forge-gui/res/cardsfolder/p/preyseizer_dragon.txt -text
forge-gui/res/cardsfolder/p/price_of_glory.txt -text
forge-gui/res/cardsfolder/p/price_of_knowledge.txt -text
forge-gui/res/cardsfolder/p/price_of_progress.txt svneol=native#text/plain
forge-gui/res/cardsfolder/p/prickly_boggart.txt svneol=native#text/plain

View File

@@ -176,6 +176,17 @@ public class AiController {
return spellAbilities;
}
private boolean checkCurseEffects() {
for (final Card c : game.getCardsIn(ZoneType.Battlefield)) {
for (Trigger t : c.getTriggers()) {
if (t.getMapParams().containsKey("CurseNonActive")
&& !player.equals(game.getPhaseHandler().getPlayerTurn())) {
return true;
}
}
}
return false;
}
public boolean checkETBEffects(final Card card, final SpellAbility sa, final ApiType api) {
boolean rightapi = false;
@@ -631,6 +642,9 @@ public class AiController {
card.setSVar("PayX", Integer.toString(xPay));
}
}
if (checkCurseEffects()) {
return AiPlayDecision.CurseEffects;
}
if( sa instanceof SpellPermanent ) {
ManaCost mana = sa.getPayCosts().getTotalMana();
if (mana.countX() > 0) {

View File

@@ -16,5 +16,6 @@ public enum AiPlayDecision {
WouldDestroyOtherPlaneswalker,
WouldBecomeZeroToughnessCreature,
WouldDestroyWorldEnchantment,
BadEtbEffects;
BadEtbEffects,
CurseEffects;
}

View File

@@ -2327,6 +2327,10 @@ public class Player extends GameEntity implements Comparable<Player> {
if (this.equals(sourceController) || !this.isOpponentOf(sourceController)) {
return false;
}
} else if (property.equals("NonActive")) {
if (this.equals(game.getPhaseHandler().getPlayerTurn())) {
return false;
}
} else if (property.equals("OpponentToActive")) {
final Player active = game.getPhaseHandler().getPlayerTurn();
if (this.equals(active) || !this.isOpponentOf(active)) {

View File

@@ -162,6 +162,12 @@ public abstract class Trigger extends TriggerReplacementBase {
}
}
if (this.mapParams.containsKey("NotPlayerTurn")) {
if (phaseHandler.isPlayerTurn(this.getHostCard().getController())) {
return false;
}
}
if (this.mapParams.containsKey("OpponentTurn")) {
if (!phaseHandler.getPlayerTurn().isOpponentOf(this.getHostCard().getController())) {
return false;

View File

@@ -77,6 +77,15 @@ public class TriggerTapsForMana extends Trigger {
}
}
if (this.mapParams.containsKey("Activator")) {
final SpellAbility sa = (SpellAbility) runParams2.get("AbilityMana");
if (sa == null) return false;
final Player activator = sa.getActivatingPlayer();
if (!activator.isValid(this.mapParams.get("Activator").split(","), this.getHostCard().getController(), this.getHostCard())) {
return false;
}
}
if (this.mapParams.containsKey("Produced")) {
Object prod = runParams2.get("Produced");
if (prod == null || !(prod instanceof String)) {

View File

@@ -8,7 +8,7 @@ S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 4 | Check
S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 5 | AddTrigger$ TriggerExtraTurn | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 7+ 3/5 At the beginning of each end step, if it's not your turn, take an extra turn after this one.
SVar:X:Count$Valid Card.Self+counters_GE4_LEVEL+counters_LE6_LEVEL
SVar:Y:Count$Valid Card.Self+counters_GE7_LEVEL
SVar:TriggerExtraTurn:Mode$ Phase | Phase$ End of Turn | OpponentTurn$ True | Execute$ TrigExtraTurn | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each end step, if it's not your turn, take an extra turn after this one.
SVar:TriggerExtraTurn:Mode$ Phase | Phase$ End of Turn | NotPlayerTurn$ True | Execute$ TrigExtraTurn | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each end step, if it's not your turn, take an extra turn after this one.
SVar:TrigExtraTurn:DB$ AddTurn | NumTurns$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/lighthouse_chronologist.jpg
Oracle:Level up {U} ({U}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 4-6\n2/4\nLEVEL 7+\n3/5\nAt the beginning of each end step, if it's not your turn, take an extra turn after this one.

View File

@@ -0,0 +1,8 @@
Name:Price of Glory
ManaCost:2 R
Types:Enchantment
T:Mode$ TapsForMana | ValidCard$ Land | Execute$ TrigDestroy | TriggerZones$ Battlefield | Activator$ Player.NonActive | CurseNonActive$ True | TriggerDescription$ Whenever a player taps a land for mana, if it's not that player's turn, destroy that land.
SVar:TrigDestroy:DB$ Destroy | Defined$ TriggeredCard
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/price_of_glory.jpg
Oracle:Whenever a player taps a land for mana, if it's not that player's turn, destroy that land.