* Zurgo Helmsmasher - Fixed a bug that could happen if Zurgo is used as commander.

This commit is contained in:
LevelX2 2015-07-12 09:03:04 +02:00
parent 23d7713498
commit c9cc7d7920
2 changed files with 131 additions and 49 deletions

View file

@ -0,0 +1,90 @@
1 [M15:36] Spectra Ward
1 [MBS:43] Go for the Throat
1 [8ED:204] Obliterate
1 [BNG:4] Archetype of Courage
1 [EVE:176] Fetid Heath
1 [AVR:6] Avacyn, Angel of Hope
1 [10E:61] Wrath of God
1 [CHK:283] Shizo, Death's Storehouse
1 [M11:221] Whispersilk Cloak
1 [PLC:85] Damnation
1 [M15:110] Ob Nixilis, Unshackled
1 [M15:100] In Garruk's Wake
1 [M14:210] Fireshrieker
1 [AVR:209] Gisela, Blade of Goldnight
1 [M12:160] Warstorm Surge
1 [BNG:93] Fall of the Hammer
1 [TSB:117] Arena
5 [ORI:261] Swamp
1 [GTC:17] Holy Mantle
1 [M15:225] Phyrexian Revoker
1 [TOR:139] Cabal Coffers
1 [NPH:9] Elesh Norn, Grand Cenobite
1 [BNG:58] Archetype of Finality
1 [MBS:39] Black Sun's Zenith
1 [M12:98] Grave Titan
1 [GTC:245] Sacred Foundry
1 [ALA:217] Quietus Spike
1 [WWK:20] Stoneforge Mystic
1 [M12:12] Day of Judgment
1 [ULG:63] Phyrexian Reclamation
1 [GTC:242] Godless Shrine
4 [ORI:265] Mountain
1 [GTC:6] Blind Obedience
1 [M14:1] Ajani, Caller of the Pride
1 [M12:109] Sorin Markov
1 [M12:147] Inferno Titan
1 [ICE:278] Swords to Plowshares
1 [CMD:269] Command Tower
1 [M12:222] Worldslayer
1 [M15:133] Burning Anger
1 [ORI:250] Rogue's Passage
1 [10E:359] Sulfurous Springs
1 [M14:209] Elixir of Immortality
1 [GTC:61] Crypt Ghast
1 [BNG:151] Mogis, God of Slaughter
4 [ORI:253] Plains
1 [M12:39] Sun Titan
1 [CHK:268] Sensei's Divining Top
1 [SOM:25] True Conviction
1 [THS:187] Ashen Rider
1 [9ED:152] Phyrexian Arena
1 [AVR:86] Blood Artist
1 [SHM:278] Reflecting Pool
1 [SHM:272] Graven Cairns
1 [M13:222] Dragonskull Summit
1 [THS:227] Temple of Silence
1 [THS:228] Temple of Triumph
1 [3ED:274] Sol Ring
1 [MOR:24] Stonehewer Giant
1 [NPH:73] Sheoldred, Whispering One
1 [C13:310] Opal Palace
1 [CON:15] Path to Exile
1 [ZEN:208] Trailblazer's Boots
1 [ISD:242] Isolated Chapel
1 [M15:248] Urborg, Tomb of Yawgmoth
1 [ZEN:203] Grappling Hook
1 [ORI:244] Battlefield Forge
1 [ORI:245] Caves of Koilos
1 [3ED:13] Demonic Tutor
1 [GTC:143] Aurelia, the Warleader
1 [AVR:36] Silverblade Paladin
1 [THS:85] Erebos, God of the Dead
1 [LRW:3] Austere Command
1 [ULG:14] Mother of Runes
1 [ALA:154] Ajani Vengeant
1 [ZEN:131] Hellkite Charger
1 [THS:219] Prowler's Helm
1 [GPT:122] Mortify
1 [DKA:158] Vault of the Archangel
1 [RTR:238] Blood Crypt
1 [ORI:21] Knight of the White Orchid
1 [MBS:104] Darksteel Plate
1 [MRD:199] Lightning Greaves
1 [DGM:135] Wear // Tear
1 [5ED:246] Jokulhaups
1 [BNG:88] Archetype of Aggression
1 [JOU:93] Dictate of the Twin Gods
1 [GTC:177] Merciless Eviction
1 [CNS:35] Scourge of the Throne
SB: 1 [KTK:214] Zurgo Helmsmasher

View file

@ -1,32 +1,34 @@
/* /*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modification, are * Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met: * permitted provided that the following conditions are met:
* *
* 1. Redistributions of source code must retain the above copyright notice, this list of * 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer. * conditions and the following disclaimer.
* *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list * 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials * of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution. * provided with the distribution.
* *
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* The views and conclusions contained in the software and documentation are those of the * The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed * authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com. * or implied, of BetaSteward_at_googlemail.com.
*/ */
package mage.game.command; package mage.game.command;
import java.util.List;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.Abilities; import mage.abilities.Abilities;
@ -39,24 +41,14 @@ import mage.abilities.costs.mana.ManaCosts;
import mage.cards.Card; import mage.cards.Card;
import mage.constants.CardType; import mage.constants.CardType;
import mage.game.Game; import mage.game.Game;
import java.util.List;
import java.util.UUID;
import mage.util.GameLog; import mage.util.GameLog;
/** public class Commander implements CommandObject {
*
* @author Plopman
*/
public class Commander implements CommandObject{
private final Card card; private final Card card;
private final Abilities<Ability> abilites = new AbilitiesImpl<>(); private final Abilities<Ability> abilites = new AbilitiesImpl<>();
public Commander(Card card) {
public Commander(Card card){
this.card = card; this.card = card;
abilites.add(new CastCommanderAbility(card)); abilites.add(new CastCommanderAbility(card));
for (Ability ability : card.getAbilities()) { for (Ability ability : card.getAbilities()) {
@ -66,15 +58,15 @@ public class Commander implements CommandObject{
} }
} }
} }
private Commander(Commander copy) { private Commander(Commander copy) {
this.card = copy.card; this.card = copy.card;
} }
public Card getCard(){ public Card getCard() {
return card; return card;
} }
@Override @Override
public UUID getSourceId() { public UUID getSourceId() {
return card.getId(); return card.getId();
@ -101,7 +93,7 @@ public class Commander implements CommandObject{
@Override @Override
public String getIdName() { public String getIdName() {
return card.getName() + " ["+card.getId().toString().substring(0,3) +"]"; return card.getName() + " [" + card.getId().toString().substring(0, 3) + "]";
} }
@Override @Override
@ -111,7 +103,7 @@ public class Commander implements CommandObject{
@Override @Override
public void setName(String name) { public void setName(String name) {
} }
@Override @Override
@ -145,7 +137,7 @@ public class Commander implements CommandObject{
return true; return true;
} }
Abilities<Ability> otherAbilities = game.getState().getAllOtherAbilities(getId()); Abilities<Ability> otherAbilities = game.getState().getAllOtherAbilities(getId());
return otherAbilities != null && otherAbilities.containsKey(abilityId); return otherAbilities != null && otherAbilities.containsKey(abilityId);
} }
@Override @Override
@ -201,17 +193,17 @@ public class Commander implements CommandObject{
@Override @Override
public int getZoneChangeCounter(Game game) { public int getZoneChangeCounter(Game game) {
throw new UnsupportedOperationException("Unsupported operation"); return card.getZoneChangeCounter(game);
} }
@Override @Override
public void updateZoneChangeCounter(Game game) { public void updateZoneChangeCounter(Game game) {
throw new UnsupportedOperationException("Unsupported operation"); card.updateZoneChangeCounter(game);
} }
@Override @Override
public void setZoneChangeCounter(int value, Game game) { public void setZoneChangeCounter(int value, Game game) {
throw new UnsupportedOperationException("Unsupported operation"); card.setZoneChangeCounter(value, game);
} }
} }