forked from External/mage
Modal Double Faces cards fixes:
* Fixed that mdf card can duplicate triggers (example: Skyclave Cleric, see #7187); * Fixed that mdf card can raise triggers from another side (example: Kazandu Mammoth, see #7180);
This commit is contained in:
parent
6dcf7a2e53
commit
656653f38b
5 changed files with 132 additions and 31 deletions
|
|
@ -241,40 +241,43 @@ public abstract class GameImpl implements Game, Serializable {
|
|||
if (card instanceof PermanentCard) {
|
||||
card = ((PermanentCard) card).getCard();
|
||||
}
|
||||
|
||||
// main card
|
||||
card.setOwnerId(ownerId);
|
||||
gameCards.put(card.getId(), card);
|
||||
state.addCard(card);
|
||||
addCardToState(card);
|
||||
|
||||
// parts
|
||||
if (card instanceof SplitCard) {
|
||||
// left
|
||||
Card leftCard = ((SplitCard) card).getLeftHalfCard();
|
||||
leftCard.setOwnerId(ownerId);
|
||||
gameCards.put(leftCard.getId(), leftCard);
|
||||
state.addCard(leftCard);
|
||||
addCardToState(leftCard);
|
||||
// right
|
||||
Card rightCard = ((SplitCard) card).getRightHalfCard();
|
||||
rightCard.setOwnerId(ownerId);
|
||||
gameCards.put(rightCard.getId(), rightCard);
|
||||
state.addCard(rightCard);
|
||||
addCardToState(rightCard);
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
// left
|
||||
Card leftCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
leftCard.setOwnerId(ownerId);
|
||||
gameCards.put(leftCard.getId(), leftCard);
|
||||
state.addCard(leftCard);
|
||||
addCardToState(leftCard);
|
||||
// right
|
||||
Card rightCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
rightCard.setOwnerId(ownerId);
|
||||
gameCards.put(rightCard.getId(), rightCard);
|
||||
state.addCard(rightCard);
|
||||
addCardToState(rightCard);
|
||||
} else if (card instanceof AdventureCard) {
|
||||
Card spellCard = ((AdventureCard) card).getSpellCard();
|
||||
spellCard.setOwnerId(ownerId);
|
||||
gameCards.put(spellCard.getId(), spellCard);
|
||||
state.addCard(spellCard);
|
||||
addCardToState(spellCard);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addCardToState(Card card) {
|
||||
gameCards.put(card.getId(), card);
|
||||
state.addCard(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Card> getCards() {
|
||||
return gameCards.values();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue