* Hextproof from color - improved card icon, added details in icon's popup text;

This commit is contained in:
Oleg Agafonov 2021-09-26 00:31:17 +04:00
parent de378577a6
commit f3b8f0a44a
11 changed files with 72 additions and 3 deletions

View file

@ -4,12 +4,15 @@ import mage.MageObject;
import mage.ObjectColor;
import mage.abilities.MageSingleton;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.icon.CardIcon;
import mage.abilities.icon.CardIconImpl;
import mage.abilities.icon.CardIconType;
import mage.abilities.icon.abilities.HexproofAbilityIcon;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.permanent.Permanent;
import java.util.HashSet;
import java.util.Set;
import java.util.*;
/**
* an abstract base class for hexproof abilities
@ -20,7 +23,6 @@ public abstract class HexproofBaseAbility extends SimpleStaticAbility implements
HexproofBaseAbility() {
super(Zone.BATTLEFIELD, null);
this.addIcon(HexproofAbilityIcon.instance);
}
public abstract boolean checkObject(MageObject source, Game game);
@ -60,4 +62,20 @@ public abstract class HexproofBaseAbility extends SimpleStaticAbility implements
return null;
}
}
public abstract String getCardIconHint(Game game);
@Override
public List<CardIcon> getIcons(Game game) {
if (game == null) {
return new ArrayList<>(Collections.singletonList(
HexproofAbilityIcon.instance
));
}
// dynamic icon (example: colored hexproof)
return new ArrayList<>(Collections.singletonList(
HexproofAbilityIcon.createDynamicCardIcon(getCardIconHint(game))
));
}
}