void ServerPlayer::throwAllEquips() { QList<const Card *> equips = getEquips(); if (equips.isEmpty()) return; DummyCard *card = new DummyCard; foreach (const Card *equip, equips) { if (!isJilei(card)) card->addSubcard(equip); } if (card->subcardsLength() > 0) room->throwCard(card, this); delete card; }
void ServerPlayer::throwAllCards() { DummyCard *card = isKongcheng() ? new DummyCard : wholeHandCards(); QList<const Card *> equips = getEquips(); foreach (const Card *equip, equips) card->addSubcard(equip); if (card->subcardsLength() != 0) room->throwCard(card, this); delete card; QList<const Card *> tricks = getJudgingArea(); foreach (const Card *trick, tricks) { CardMoveReason reason(CardMoveReason::S_REASON_THROW, this->objectName()); room->throwCard(trick, reason, NULL); }
virtual bool trigger(TriggerEvent, Room *room, ServerPlayer *caopi, QVariant &data) const{ DeathStruct death = data.value<DeathStruct>(); ServerPlayer *player = death.who; if (player->isNude() || caopi == player) return false; if (caopi->isAlive() && room->askForSkillInvoke(caopi, objectName(), data)) { room->broadcastSkillInvoke(objectName()); DummyCard *dummy = new DummyCard(player->handCards()); QList <const Card *> equips = player->getEquips(); foreach (const Card *card, equips) dummy->addSubcard(card); if (dummy->subcardsLength() > 0) { CardMoveReason reason(CardMoveReason::S_REASON_RECYCLE, caopi->objectName()); room->obtainCard(caopi, dummy, reason, false); } delete dummy; }