@Override
                public void resolve() {
                    AllZone.getInputControl().setInput(new Input() {
                        private static final long serialVersionUID = 6150236529653275947L;
                        CardList revealed = new CardList();

                        @Override
                        public void showMessage() {
                            //in case hand is empty, don't do anything
                            if (AllZoneUtil.getPlayerHand(card.getController()).size() == 0) stop();

                            AllZone.getDisplay().showMessage(card.getName() + " - Reveal an artifact.  Revealed " + revealed.size() + " so far.  Click OK when done.");
                            ButtonUtil.enableOnlyOK();
                        }

                        @Override
                        public void selectCard(Card c, PlayerZone zone) {
                            if (zone.is(Constant.Zone.Hand) && c.isArtifact() && !revealed.contains(c)) {
                                revealed.add(c);

                                //in case no more cards in hand to reveal
                                if (revealed.size() == AllZoneUtil.getPlayerHand(card.getController()).size()) done();
                                else
                                    showMessage();
                            }
                        }

                        @Override
                        public void selectButtonOK() {
                            done();
                        }

                        void done() {
                            StringBuilder sb = new StringBuilder();
                            for (Card reveal : revealed) sb.append(reveal.getName() + "\n");
                            JOptionPane.showMessageDialog(null, "Revealed Cards:\n" + sb.toString(), card.getName(), JOptionPane.PLAIN_MESSAGE);
                            //adding mana

                            Ability_Mana abMana = new Ability_Mana(card, "0", "1", 2 * revealed.size()) {
                                private static final long serialVersionUID = -2182129023960978132L;
                            };
                            abMana.setUndoable(false);
                            abMana.produceMana();

                            stop();
                        }
                    });
                }