コード例 #1
0
void ServerPlayer::playCardEffect(const Card *card){
    if(card->isVirtualCard() && !card->isMute()){
        QString skill_name = card->getSkillName();
        const Skill *skill = Sanguosha->getSkill(skill_name);
        int index = -1;
        if(skill){
            if(skill->useCardSoundEffect()){
                room->playCardEffect(card->objectName(), getGeneral()->isMale());
                return;
            }
            index = skill->getEffectIndex(this, card);
        }
        room->playSkillEffect(skill_name, index);
    }else
        room->playCardEffect(card->objectName(), getGeneral()->isMale());
}
コード例 #2
0
ファイル: equipment_make.cpp プロジェクト: lindianyin/sgbj
int EquipmentData::upgrade(bool cost_gold)
{
    if (baseEq.get() && baseEq->m_next.get())
    {
        baseEq = baseEq->m_next;
        baseid = baseEq->baseid;
        quality = baseEq->quality;
        up_quality = baseEq->up_quality;
        value = baseEq->baseValue;
        value2 = baseEq->baseValue2;

        if (!cost_gold)
            qLevel = equipmentUpgrade::getInstance()->convertUpgradeLevel(quality, type, qLevel);
        addValue = 0;
        addValue2 = 0;
        for (int l = 1; l <= qLevel; ++l)
        {
            int add2 = 0;
            int add = equipmentUpgrade::getInstance()->getUpgradeValue(up_quality, type, l, add2);
            addValue += add;
            addValue2 += add2;
        }
        price = 50*quality*(qLevel+1)*(qLevel+20);

        if (getGeneral().get())
        {
            getGeneral()->updateEquipmentEffect();
        }
        m_changed = true;
        setSubType(baseid);
        Save();
        if (quality > 1 && NULL != getChar())
        {
            //制造装备,请好友祝贺 - 蓝色品质及以上
            Singleton<relationMgr>::Instance().postCongradulation(getChar()->m_id, CONGRATULATION_MAKE_EQUIP, baseid, 0);
        }
#ifdef QQ_PLAT
        //首次制作装备分享
        Singleton<inviteMgr>::Instance().update_event(getChar()->m_id, SHARE_EVENT_FIRST_MAKE_EQUIPTMENT, 0);
#endif
    }
}
コード例 #3
0
ファイル: serverplayer.cpp プロジェクト: wenq1217/msgs
void ServerPlayer::playCardEffect(const Card *card){
    if(card->isVirtualCard() && !card->isMute()){
        QString skill_name = card->getSkillName();
        if(skill_name == "xuanfeng")
            skill_name.remove("xuanfeng");
        const Skill *skill = Sanguosha->getSkill(skill_name);
        int index = -1;
        if(skill)
            index = skill->getEffectIndex(this, card);

        room->playSkillEffect(skill_name, index);
    }else
        room->playCardEffect(card->objectName(), getGeneral()->isMale());
}
コード例 #4
0
ファイル: expressionutil.cpp プロジェクト: DarkDare/voltdb
/** convert the enumerated value type into a concrete c type for the
 * comparison helper templates. */
AbstractExpression *
ExpressionUtil::comparisonFactory(PlannerDomValue obj, ExpressionType et, AbstractExpression *lc, AbstractExpression *rc)
{
    assert(lc);

    // more specialization available?
    ConstantValueExpression *l_const =
      dynamic_cast<ConstantValueExpression*>(lc);

    ConstantValueExpression *r_const =
      dynamic_cast<ConstantValueExpression*>(rc);

    TupleValueExpression *l_tuple =
      dynamic_cast<TupleValueExpression*>(lc);

    TupleValueExpression *r_tuple =
      dynamic_cast<TupleValueExpression*>(rc);

    // this will inline getValue(), hooray!
    if (l_const != NULL && r_const != NULL) { // CONST-CONST can it happen?
        return getMoreSpecialized<ConstantValueExpression, ConstantValueExpression>(et, l_const, r_const);
    } else if (l_const != NULL && r_tuple != NULL) { // CONST-TUPLE
        return getMoreSpecialized<ConstantValueExpression, TupleValueExpression>(et, l_const, r_tuple);
    } else if (l_tuple != NULL && r_const != NULL) { // TUPLE-CONST
        return getMoreSpecialized<TupleValueExpression, ConstantValueExpression >(et, l_tuple, r_const);
    } else if (l_tuple != NULL && r_tuple != NULL) { // TUPLE-TUPLE
        return getMoreSpecialized<TupleValueExpression, TupleValueExpression>(et, l_tuple, r_tuple);
    }

    SubqueryExpression *l_subquery =
        dynamic_cast<SubqueryExpression*>(lc);

    SubqueryExpression *r_subquery =
        dynamic_cast<SubqueryExpression*>(rc);

    if (l_subquery != NULL || r_subquery != NULL) {
        return subqueryComparisonFactory(obj, et, lc, rc);
    }

    //okay, still getTypedValue is beneficial.
    return getGeneral(et, lc, rc);
}
コード例 #5
0
ファイル: expressionutil.cpp プロジェクト: JGarfunkel/voltdb
/** convert the enumerated value type into a concrete c type for the
 * comparison helper templates. */
AbstractExpression *
ExpressionUtil::comparisonFactory(ExpressionType et, AbstractExpression *lc, AbstractExpression *rc)
{
    assert(lc);
    /*printf("left: %s\n", left_optimized->debug("").c_str());
    fflush(stdout);
    printf("right: %s\n", right_optimized->debug("").c_str());
    fflush(stdout);*/

    //printf("%s\n", right_optimized->debug().c_str());
    //fflush(stdout);

    // more specialization available?
    ConstantValueExpression *l_const =
      dynamic_cast<ConstantValueExpression*>(lc);

    ConstantValueExpression *r_const =
      dynamic_cast<ConstantValueExpression*>(rc);

    TupleValueExpression *l_tuple =
      dynamic_cast<TupleValueExpression*>(lc);

    TupleValueExpression *r_tuple =
      dynamic_cast<TupleValueExpression*>(rc);

    // this will inline getValue(), hooray!
    if (l_const != NULL && r_const != NULL) { // CONST-CONST can it happen?
        return getMoreSpecialized<ConstantValueExpression, ConstantValueExpression>(et, l_const, r_const);
    } else if (l_const != NULL && r_tuple != NULL) { // CONST-TUPLE
        return getMoreSpecialized<ConstantValueExpression, TupleValueExpression>(et, l_const, r_tuple);
    } else if (l_tuple != NULL && r_const != NULL) { // TUPLE-CONST
        return getMoreSpecialized<TupleValueExpression, ConstantValueExpression >(et, l_tuple, r_const);
    } else if (l_tuple != NULL && r_tuple != NULL) { // TUPLE-TUPLE
        return getMoreSpecialized<TupleValueExpression, TupleValueExpression>(et, l_tuple, r_tuple);
    }

    //okay, still getTypedValue is beneficial.
    return getGeneral(et, lc, rc);
}
コード例 #6
0
ファイル: serverplayer.cpp プロジェクト: upidea/QSanguosha
void ServerPlayer::playCardEffect(const Card *card){
    if(card->isVirtualCard() && !card->isMute()){
        room->playSkillEffect(card->getSkillName());        
    }else
        room->playCardEffect(card->objectName(), getGeneral()->isMale());
}