virtual const Card *viewAs(CardItem *card_item) const{
        ZhiyuanCard *card = new ZhiyuanCard;
        card->addSubcard(card_item->getFilteredCard());

        return card;
    }
 virtual const Card *viewAs(const Card *originalCard) const{
     ZhiyuanCard *zhiyuanCard = new ZhiyuanCard;
     zhiyuanCard->addSubcard(originalCard);
     return zhiyuanCard;
 }