コード例 #1
0
ファイル: PvESkill.cpp プロジェクト: 13609594236/ph-open
    // This skill does not account for hero color
    TaskPtr PvEActive::DamageByEnemyHealthFactor(BoardLayer* layer,
                                                 HeroControl* hc,
                                                 float factor,
                                                 bool isArea)
    {
        TaskBatchPtr areaBatch = TaskBatch::make();
        EnemyControlList targets = layer->getEnemiesInAttackOrder(hc->getColor(),
                                                                  isArea);

        float delay = 0.0f;
        for(EnemyControlPtr ec : targets)
        {
            float finalDamage = ec->getHealth() * factor;
            areaBatch << createFloatText(layer, finalDamage, ec->center(), hc->getColor(), delay+0.5f);
            areaBatch << layer->createAttackSequence(hc,
                                                     ec,
                                                     finalDamage,
                                                     hc->getColor(),
                                                     delay);

            float acDelay = -0.15f+delay+calOrbDelay(hc->center(), ec->center());
            TaskPtr hit = layer->dealDamageToOneWithAnim(finalDamage, ec, acDelay);
            areaBatch << TaskSequence::make(createDelay(layer, 0.5),
                                            hit);
            delay += 0.2f;
        }
        //layer->removeDeadEnemies();

        return areaBatch;
    }
コード例 #2
0
DelayNode* AudioContext::createDelay(ExceptionState& exceptionState)
{
    if (isContextClosed()) {
        throwExceptionForClosedState(exceptionState);
        return nullptr;
    }

    const double defaultMaxDelayTime = 1;
    return createDelay(defaultMaxDelayTime, exceptionState);
}
コード例 #3
0
ファイル: GHCreateEffects.c プロジェクト: blue-brick/dgn-1
void GHEffectViews_createEffects(LinkedList* effectParams) {

	createDistortion(effectParams);
	createTremolo(effectParams);
	createCompressor(effectParams);
	createDelay(effectParams);
	createOctaver(effectParams);
	createBitCrusher(effectParams);
	createMaster(effectParams);
}
コード例 #4
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
 QWidget* createEffects(QWidget* parent) {
     parent->setObjectName("effects");
     QGridLayout* grid = new QGridLayout(parent);
     // row 1
     grid->addWidget(createChorus(new QGroupBox("Chorus")), 0, 0);
     grid->addWidget(createPhaser(new QGroupBox("Phaser")), 0, 1);
     grid->addWidget(createDelay(new QGroupBox("Delay")), 0, 2);
     grid->addWidget(createReverb(new QGroupBox("Reverb")), 1, 0, 1, 2);
     grid->setRowStretch(2, 1);
     return parent;
 }
コード例 #5
0
ファイル: PvESkill.cpp プロジェクト: 13609594236/ph-open
    //----------------------------------------------------
    //--------------- Multiple Attacks -------------------
    //----------------------------------------------------
    TaskPtr PvEActive::MultipleAttacksByFactor(BoardLayer* layer,
                                               HeroControl* hc,
                                               int count,
                                               float factor,
                                               bool isArea)
    {
        TaskBatchPtr batch = TaskBatch::make();
        for(int i=0; i<count; i++)
        {
            TaskSequencePtr seq = TaskSequence::make();
            seq << createDelay(layer, 0.2f * i);
            seq << DamageByFactor(layer, hc, factor, isArea);
            batch << seq;
        }

        return batch;
    }
コード例 #6
0
ファイル: PvESkill.cpp プロジェクト: 13609594236/ph-open
    //---------------------------------------------
    //------------- Damage Skills -----------------
    //---------------------------------------------
    static TaskPtr DamageCommon(BoardLayer* layer,
                                HeroControl* hc,
                                boost::function<float (EnemyControlPtr)> f,
                                bool isArea,
                                float& totalDamage)
    {
        TaskBatchPtr areaBatch = TaskBatch::make();

        totalDamage = 0.0f;

        EnemyControlList targets = layer->getEnemiesInAttackOrder(hc->getColor(),
                                                                  isArea);
        float delay = 0.0f;
        for(EnemyControlPtr ec : targets)
        {
            float finalAttack = f(ec);
            float finalDamage;
            areaBatch << layer->calcDamageForTarget(finalAttack,
                                                    hc->getColor(),
                                                    ec,
                                                    finalDamage,
                                                    false,
                                                    delay + 0.5f);

            totalDamage += finalDamage;

            areaBatch << layer->createAttackSequence(hc,
                                                     ec,
                                                     finalDamage,
                                                     hc->getColor(),
                                                     delay);

            float acDelay = -0.15f+delay+calOrbDelay(hc->center(), ec->center());
            TaskPtr hit = layer->dealDamageToOneWithAnim(finalDamage, ec, acDelay);
            areaBatch << TaskSequence::make(createDelay(layer, 0.5),
                                            hit);
            delay += 0.2f;
        }
        //layer->removeDeadEnemies();

        return areaBatch;
    }
コード例 #7
0
ファイル: PvESkill.cpp プロジェクト: 13609594236/ph-open
    TaskPtr PvEActive::DamageByFactorWithoutArmor(BoardLayer * layer,
                                                  HeroControl * hc,
                                                  GemUtils::GemColor color,
                                                  float factor,
                                                  bool isArea)
    {
        TaskBatchPtr areaBatch = TaskBatch::make();

        EnemyControlList targets = layer->getEnemiesInAttackOrder(hc->getColor(),
                                                                  isArea);
        float delay = 0.0f;
        float skillMod;
        areaBatch << layer->mPlayer->getAttackFactor(hc, skillMod, [](){return rand();});
        const float finalAttack = hc->attack * ( factor * skillMod );

        for(EnemyControlPtr ec : targets)
        {
            float finalDamage = 0.f;
            areaBatch << layer->calcDamageForTarget(finalAttack,
                                                    hc->getColor(),
                                                    ec,
                                                    finalDamage,
                                                    true,
                                                    delay + 0.5f);
            areaBatch << layer->createAttackSequence(hc,
                                                     ec,
                                                     finalDamage,
                                                     color,
                                                     delay);
            float acDelay = -0.15f+delay+calOrbDelay(hc->center(), ec->center());
            TaskPtr hit = layer->dealDamageToOneWithAnim(finalDamage, ec, acDelay);
            
            areaBatch << TaskSequence::make(createDelay(layer, 0.5),
                                            hit);
            delay += 0.2f;
        }

        return areaBatch;
    }
コード例 #8
0
ファイル: PvESkill.cpp プロジェクト: 13609594236/ph-open
 TaskPtr PvEActive::Damage(PH::BoardLayer *layer,
                           PH::HeroControl *hc,
                           GemUtils::GemColor color,
                           float damage,
                           bool isArea,
                           bool ignoreArmor)
 {
     TaskBatchPtr areaBatch = TaskBatch::make();
     
     EnemyControlList targets = layer->getEnemiesInAttackOrder(hc->getColor(),
                                                               isArea);
     float delay = 0.0f;
     
     for(EnemyControlPtr ec : targets)
     {
         float finalDamage = 0.f;
         areaBatch << layer->calcDamageForTarget(damage,
                                                 color,
                                                 ec,
                                                 finalDamage,
                                                 ignoreArmor,
                                                 delay + 0.5f);
         areaBatch << layer->createAttackSequence(hc,
                                                  ec,
                                                  finalDamage,
                                                  color,
                                                  delay);
         float acDelay = -0.15f+delay+calOrbDelay(hc->center(), ec->center());
         TaskPtr hit = layer->dealDamageToOneWithAnim(finalDamage, ec, -delay+acDelay);
         
         areaBatch << TaskSequence::make(createDelay(layer, 0.5),
                                         hit);
         delay += 0.2f;
     }
     //layer->removeDeadEnemies();
     
     return areaBatch;
 }
コード例 #9
0
ファイル: PvPSkill.cpp プロジェクト: 13609594236/ph-open
 TaskPtr PvPActive::TransformAllGem(PVPBoardLayer* layer)
 {
     auto fadeOutTask = TaskBatch::make();
     auto & grid = layer->mBoardControl->getGrid();
     
     float delay = 0.01f;
     for(int i=0; i<grid.size(); i++)
     {
         GemPtr fromGem = grid(i);
         
         auto seq = TaskSequence::make();
         seq << createDelay(layer, delay);
         seq << fromGem->sweep(layer->mBoardControl.get());
         
         fadeOutTask << seq;
         delay += 0.02;
     }
     
     return TaskSequence::make()
     << TaskSound::make("sound/v/evolve_success.mp3")
     << fadeOutTask
     << layer->mBoardControl->fillBoard([=](){return layer->randGemWeighted();},
                                        false);
 }
コード例 #10
0
PassRefPtr<DelayNode> AudioContext::createDelay(ExceptionCode& ec)
{
    const double defaultMaxDelayTime = 1;
    return createDelay(defaultMaxDelayTime, ec);
}
コード例 #11
0
DelayNode* AbstractAudioContext::createDelay(ExceptionState& exceptionState)
{
    const double defaultMaxDelayTime = 1;
    return createDelay(defaultMaxDelayTime, exceptionState);
}