virtual const Card *viewAs(const Card *originalCard) const{ if (originalCard->isKindOf("Armor")) { Analeptic *anal = new Analeptic(originalCard->getSuit(), originalCard->getNumber()); anal->setSkillName(objectName()); anal->addSubcard(originalCard); return anal; } else if (originalCard->isKindOf("Weapon")) { KnownBoth *kb = new KnownBoth(originalCard->getSuit(), originalCard->getNumber()); kb->setSkillName(objectName()); kb->addSubcard(originalCard); return kb; } else if (originalCard->isKindOf("Horse")) { ExNihilo *en = new ExNihilo(originalCard->getSuit(), originalCard->getNumber()); en->setSkillName(objectName()); en->addSubcard(originalCard); return en; } else return NULL; }