package magic.ui.duel.viewerinfo; import javax.swing.ImageIcon; import magic.data.MagicIcon; import magic.model.MagicCard; import magic.model.MagicCardDefinition; import magic.model.MagicGame; import magic.model.stack.MagicAbilityOnStack; import magic.model.stack.MagicCardOnStack; import magic.model.stack.MagicItemOnStack; import magic.model.stack.MagicTriggerOnStack; import magic.ui.MagicImages; public class StackViewerInfo { public final MagicItemOnStack itemOnStack; public final MagicCardDefinition cardDefinition; public final String name; public final ImageIcon icon; public final String description; public final boolean visible; StackViewerInfo(final MagicGame game,final MagicItemOnStack itemOnStack) { this.itemOnStack=itemOnStack; cardDefinition=itemOnStack.getController().isHuman() ? itemOnStack.getRealCardDefinition() : itemOnStack.getCardDefinition(); name=itemOnStack.getName(); description=itemOnStack.getDescription(); visible=itemOnStack.getController()==game.getVisiblePlayer(); icon = getIcon(itemOnStack); } private ImageIcon getIcon(final MagicItemOnStack itemOnStack) { if (itemOnStack instanceof MagicAbilityOnStack) { return MagicImages.getIcon(MagicIcon.ABILITY); } else if (itemOnStack instanceof MagicCardOnStack) { return MagicImages.getIcon(itemOnStack.getCardDefinition()); } else if (itemOnStack instanceof MagicTriggerOnStack) { return MagicImages.getIcon(MagicIcon.TRIGGER); } return null; } boolean isMagicCard(long magicCardId) { if (itemOnStack.isSpell()) { return magicCardId == ((MagicCard) itemOnStack.getSource()).getId(); } return false; } }