@Override
                public boolean canPlayAI() {
                    CardList wolves = AllZoneUtil.getPlayerCardsInPlay(AllZone.getComputerPlayer());
                    wolves = wolves.getType("Wolf");

                    wolves = wolves.filter(new CardListFilter() {
                        public boolean addCard(Card c) {
                            return c.isUntapped() && c.isCreature();
                        }
                    });
                    int power = 0;
                    for (int i = 0; i < wolves.size(); i++)
                        power += wolves.get(i).getNetAttack();

                    if (power == 0)
                        return false;

                    final int totalPower = power;

                    CardList targetables = AllZoneUtil.getPlayerCardsInPlay(AllZone.getHumanPlayer());

                    targetables = targetables.filter(new CardListFilter() {
                        public boolean addCard(Card c) {
                            return CardFactoryUtil.canTarget(card, c) && c.isCreature() && c.getNetDefense() <= totalPower;
                        }
                    });

                    if (targetables.size() == 0)
                        return false;

                    getTarget().resetTargets();
                    setTargetCard(CardFactoryUtil.AI_getBestCreature(targetables));

                    return true;
                }