mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 20:41:58 -08:00
* Adding some tests and minor changes to commander code.
This commit is contained in:
parent
bd14054372
commit
d8128d3741
5 changed files with 357 additions and 31 deletions
|
|
@ -27,7 +27,6 @@
|
|||
*/
|
||||
package mage.abilities.common;
|
||||
|
||||
|
||||
import mage.abilities.SpellAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.constants.SpellAbilityType;
|
||||
|
|
@ -57,22 +56,14 @@ public class CastCommanderAbility extends SpellAbility {
|
|||
public boolean activate(Game game, boolean noMana) {
|
||||
if (super.activate(game, noMana)) {
|
||||
// save amount of times commander was cast
|
||||
Integer castCount = (Integer)game.getState().getValue(sourceId + "_castCount");
|
||||
if(castCount != null){
|
||||
castCount++;
|
||||
game.getState().setValue(sourceId + "_castCount", castCount);
|
||||
}
|
||||
else {
|
||||
castCount = 1;
|
||||
game.getState().setValue(sourceId + "_castCount", castCount);
|
||||
}
|
||||
Integer castCount = (Integer) game.getState().getValue(sourceId + "_castCount");
|
||||
castCount++;
|
||||
game.getState().setValue(sourceId + "_castCount", castCount);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public CastCommanderAbility copy() {
|
||||
return new CastCommanderAbility(this);
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 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
|
||||
* provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 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
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
* 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
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* 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
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
|
|
@ -40,15 +40,14 @@ import mage.game.Game;
|
|||
*
|
||||
* @author Plopman
|
||||
*/
|
||||
|
||||
//20130711
|
||||
/*903.10. A player may cast a commander he or she owns from the command zone.
|
||||
* Doing so costs that player an additional {2} for each previous time he or she cast that commander from the command zone that game.
|
||||
* */
|
||||
public class CommanderCostModification extends CostModificationEffectImpl {
|
||||
|
||||
private UUID commanderId;
|
||||
|
||||
private final UUID commanderId;
|
||||
|
||||
public CommanderCostModification(UUID commanderId) {
|
||||
super(Duration.Custom, Outcome.Neutral, CostModificationType.INCREASE_COST);
|
||||
this.commanderId = commanderId;
|
||||
|
|
@ -61,22 +60,17 @@ public class CommanderCostModification extends CostModificationEffectImpl {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source, Ability abilityToModify) {
|
||||
Integer castCount = (Integer)game.getState().getValue(commanderId + "_castCount");
|
||||
if(castCount == null){
|
||||
castCount = 0;
|
||||
game.getState().setValue(commanderId + "_castCount", castCount);
|
||||
}
|
||||
abilityToModify.getManaCostsToPay().add(new GenericManaCost(2*castCount));
|
||||
Integer castCount = (Integer) game.getState().getValue(commanderId + "_castCount");
|
||||
if (castCount > 0) {
|
||||
abilityToModify.getManaCostsToPay().add(new GenericManaCost(2 * castCount));
|
||||
}
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(Ability abilityToModify, Ability source, Game game) {
|
||||
if (abilityToModify instanceof CastCommanderAbility && abilityToModify.getSourceId().equals(commanderId)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return abilityToModify instanceof CastCommanderAbility && abilityToModify.getSourceId().equals(commanderId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue