本文整理汇总了C++中Slash::addSubcard方法的典型用法代码示例。如果您正苦于以下问题:C++ Slash::addSubcard方法的具体用法?C++ Slash::addSubcard怎么用?C++ Slash::addSubcard使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Slash
的用法示例。
在下文中一共展示了Slash::addSubcard方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: foreach
const Card *WuxinCard::validate(CardUseStruct &cardUse) const{
QList<int> skysoldier = cardUse.from->getPile("skysoldier");
QList<int> black_skysoldier, disabled_skysoldier;
foreach(int id, skysoldier){
if (Sanguosha->getCard(id)->isBlack()){
Slash *theslash = new Slash(Card::SuitToBeDecided, -1);
theslash->setSkillName("wuxin");
theslash->addSubcard(id);
theslash->deleteLater();
bool can_slash = theslash->isAvailable(cardUse.from) &&
theslash->targetsFeasible(ServerPlayerList2PlayerList(cardUse.to), cardUse.from);
if (can_slash)
black_skysoldier << id;
else
disabled_skysoldier << id;
}
else
disabled_skysoldier << id;
}
if (black_skysoldier.isEmpty())
return NULL;
Room *room = cardUse.from->getRoom();
room->fillAG(skysoldier, cardUse.from, disabled_skysoldier);
int slash_id = room->askForAG(cardUse.from, black_skysoldier, false, "wuxin");
room->clearAG(cardUse.from);
Slash *slash = new Slash(Card::SuitToBeDecided, -1);
slash->addSubcard(slash_id);
slash->setSkillName("wuxin");
return slash;
}
示例2: if
virtual const Card *viewAs(const QList<CardItem *> &cards) const{
if(cards.length() != 2)
return NULL;
const Card *first = cards.at(0)->getFilteredCard();
const Card *second = cards.at(1)->getFilteredCard();
Card::Suit suit = Card::NoSuit;
if(first->isBlack() && second->isBlack())
suit = Card::Spade;
else if(first->isRed() && second->isRed())
suit = Card::Heart;
Slash *slash = new Slash(suit, 0);
slash->setSkillName(objectName());
slash->addSubcard(first);
slash->addSubcard(second);
return slash;
}
示例3: targetsFeasible
bool WuxinCard::targetsFeasible(const QList<const Player *> &targets, const Player *Self) const{
foreach(int id, Self->getPile("skysoldier")){
if (Sanguosha->getCard(id)->isBlack()){
Slash *theslash = new Slash(Card::SuitToBeDecided, -1);
theslash->setSkillName("wuxin");
theslash->addSubcard(id);
theslash->deleteLater();
bool can_slash = theslash->isAvailable(Self) && theslash->targetsFeasible(targets, Self);
if (can_slash)
return true;
}
}
return false;
}
示例4: Jink
virtual const Card *viewAs(CardItem *card_item) const{
const Card *card = card_item->getFilteredCard();
bool clone_jink = false;
if(ClientInstance->getStatus() == Client::Responsing)
clone_jink = ClientInstance->getPattern() == "jink";
if(clone_jink){
Jink *jink = new Jink(card->getSuit(), card->getNumber());
jink->addSubcard(card);
jink->setSkillName(objectName());
return jink;
}
else{
Slash *slash = new Slash(card->getSuit(), card->getNumber());
slash->addSubcard(card);
slash->setSkillName(objectName());
return slash;
}
}