- Added Venerated Loxodon

This commit is contained in:
swordshine
2018-10-07 19:29:27 +08:00
parent 6f0871724f
commit c2d0648655
5 changed files with 32 additions and 1 deletions

View File

@@ -428,6 +428,7 @@ public class GameAction {
if (!c.isToken() && !toBattlefield) { if (!c.isToken() && !toBattlefield) {
copied.clearDevoured(); copied.clearDevoured();
copied.clearDelved(); copied.clearDelved();
copied.clearConvoked();
} }
// rule 504.6: reveal a face-down card leaving the stack // rule 504.6: reveal a face-down card leaving the stack

View File

@@ -98,7 +98,7 @@ public class Card extends GameEntity implements Comparable<Card> {
private final KeywordCollection hiddenExtrinsicKeyword = new KeywordCollection(); private final KeywordCollection hiddenExtrinsicKeyword = new KeywordCollection();
// cards attached or otherwise linked to this card // cards attached or otherwise linked to this card
private CardCollection equippedBy, fortifiedBy, hauntedBy, devouredCards, delvedCards, imprintedCards, encodedCards; private CardCollection equippedBy, fortifiedBy, hauntedBy, devouredCards, delvedCards, convokedCards, imprintedCards, encodedCards;
private CardCollection mustBlockCards, clones, gainControlTargets, chosenCards, blockedThisTurn, blockedByThisTurn; private CardCollection mustBlockCards, clones, gainControlTargets, chosenCards, blockedThisTurn, blockedByThisTurn;
// if this card is attached or linked to something, what card is it currently attached to // if this card is attached or linked to something, what card is it currently attached to
@@ -725,6 +725,20 @@ public class Card extends GameEntity implements Comparable<Card> {
delvedCards = null; delvedCards = null;
} }
public final CardCollectionView getConvoked() {
return CardCollection.getView(convokedCards);
}
public final void addConvoked(final Card c) {
if (convokedCards == null) {
convokedCards = new CardCollection();
}
convokedCards.add(c);
}
public final void clearConvoked() {
convokedCards = null;
}
public MapOfLists<GameEntity, Object> getRememberMap() { public MapOfLists<GameEntity, Object> getRememberMap() {
return rememberMap; return rememberMap;
} }

View File

@@ -1378,6 +1378,10 @@ public class CardProperty {
if (!source.getDelved().contains(card)) { if (!source.getDelved().contains(card)) {
return false; return false;
} }
} else if (property.startsWith("convoked")) {
if (!source.getConvoked().contains(card)) {
return false;
}
} else if (property.startsWith("unequalPT")) { } else if (property.startsWith("unequalPT")) {
if (card.getNetPower() == card.getNetToughness()) { if (card.getNetPower() == card.getNetToughness()) {
return false; return false;

View File

@@ -237,6 +237,7 @@ public class CostAdjustment {
} }
} }
if (sa.getHostCard().hasKeyword(Keyword.CONVOKE)) { if (sa.getHostCard().hasKeyword(Keyword.CONVOKE)) {
sa.getHostCard().clearConvoked();
adjustCostByConvokeOrImprovise(cost, sa, false, test); adjustCostByConvokeOrImprovise(cost, sa, false, test);
} }
if (sa.getHostCard().hasKeyword(Keyword.IMPROVISE)) { if (sa.getHostCard().hasKeyword(Keyword.IMPROVISE)) {
@@ -270,6 +271,9 @@ public class CostAdjustment {
cost.decreaseShard(conv.getValue(), 1); cost.decreaseShard(conv.getValue(), 1);
if (!test) { if (!test) {
conv.getKey().tap(); conv.getKey().tap();
if (!improvise) {
sa.getHostCard().addConvoked(conv.getKey());
}
} }
} }
} }

View File

@@ -0,0 +1,8 @@
Name:Venerated Loxodon
ManaCost:4 W
Types:Creature Elephant Cleric
PT:4/4
K:Convoke
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounterAll | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each creature that convoked it.
SVar:TrigPutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.convoked | CounterType$ P1P1 | CounterNum$ 1
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of the creature's color.)\nWhen Venerated Loxodon enters the battlefield, put a +1/+1 counter on each creature that convoked it.