foul-magics/Mage/src/main/java/mage/MageObject.java
2016-08-31 04:43:28 -06:00

79 lines
1.5 KiB
Java

package mage;
import java.io.Serializable;
import java.util.List;
import java.util.UUID;
import mage.abilities.Abilities;
import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCosts;
import mage.constants.CardType;
import mage.game.Game;
public interface MageObject extends MageItem, Serializable {
String getName();
String getIdName();
String getLogName();
String getImageName();
void setName(String name);
List<CardType> getCardType();
List<String> getSubtype();
boolean hasSubtype(String subtype);
List<String> getSupertype();
Abilities<Ability> getAbilities();
boolean hasAbility(UUID abilityId, Game game);
ObjectColor getColor(Game game);
ObjectColor getFrameColor(Game game);
ManaCosts<ManaCost> getManaCost();
int getConvertedManaCost();
MageInt getPower();
MageInt getToughness();
int getStartingLoyalty();
void adjustCosts(Ability ability, Game game);
void adjustTargets(Ability ability, Game game);
MageObject copy();
/**
* Defines that MageObject is a copy of another object
*
* @param isCopy
*/
void setCopy(boolean isCopy);
/**
* Checks if current MageObject is a copy of another object
*
* @return
*/
boolean isCopy();
int getZoneChangeCounter(Game game);
void updateZoneChangeCounter(Game game);
void setZoneChangeCounter(int value, Game game);
}