mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
* Zurgo Helmsmasher - Fixed a bug that could happen if Zurgo is used as commander.
This commit is contained in:
parent
23d7713498
commit
c9cc7d7920
2 changed files with 131 additions and 49 deletions
|
@ -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
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue