void TaichenFightCard::use(Room *room, ServerPlayer *source, QList<ServerPlayer *> &) const { room->loseHp(source); if (source->isAlive()) { Duel *duel = new Duel(Card::NoSuit, 0); duel->setSkillName("_taichenfight"); duel->setCancelable(false); QStringList wushuang_tag; wushuang_tag << room->getLord()->objectName(); source->tag["Wushuang_" + duel->toString()] = wushuang_tag; try { room->useCard(CardUseStruct(duel, source, room->getLord())); } catch (TriggerEvent triggerEvent) { if (triggerEvent == StageChange || triggerEvent == TurnBroken) source->tag.remove("Wushuang_" + duel->toString()); throw triggerEvent; } source->tag.remove("Wushuang_" + duel->toString()); } }