void CEneH0401MovingCannon::SeqMain() { //----------------------------------------------------- //メイン //----------------------------------------------------- if( m_HitKurai.is_dead() ) { SetActionSeq( enActionSeqCrash ); return; } if( IsScrollOut( enScrollOutWidth , enScrollOutHeight ) ) { return; } LogicAI(); SetRader( enTypeMarkerGroundObject ); DirectionAdjust(); //くらい判定登録 m_HitKurai.SetHantei(ID_ENEMY_DEF , &m_Pos ); }
void CEneH0104LightTank::SeqMain() { //----------------------------------------------------- //メイン //----------------------------------------------------- if( m_HitKurai.is_dead() ) { SetActionSeq( enActionSeqCrash ); return; } /* if( IsScrollOut( enScrollOutWidth , enScrollOutHeight ) ) { return; } */ LogicAI(); SetRader( enTypeMarkerGroundObject ); DirectionAdjust(); m_bDamage = m_HitKurai.is_damage(); //くらい判定登録 m_HitKurai.SetHantei( ID_ENEMY_DEF , &m_Pos ); }
// ============================================================================= // Nat Ryall 11-Jul-2008 // ============================================================================= void CPlayer::Logic() { switch (m_iLogicType) { case PlayerLogicType_Local: LogicLocal(); break; case PlayerLogicType_AI: LogicAI(); break; case PlayerLogicType_Remote: LogicRemote(); break; } }
void CEneEx0006Tank::SeqMain() { //----------------------------------------------------- //メイン //----------------------------------------------------- if( m_HitKurai.is_dead() ) { viiMus::PlaySound( enSoundExplosionLarge , gxFalse ); SetActionSeq( enActionSeqCrash ); return; } /* if(Joy[0].psh&BTN_X) { SeqCrashCore(); } else { m_sCrashTimer = 0; } */ if( IsScrollOut( enScrollOutWidth , enScrollOutHeight ) ) { return; } m_bDamage = m_HitKurai.is_damage(); m_bCoreDamage = m_bDamage; LogicAI(); //くらい判定登録 m_HitKurai.SetHantei(ID_ENEMY_DEF , &m_Pos ); m_HitAtari.set_ap( enAtkPointBazooka ); m_HitAtari.set_hp( HP_ARMORCLASS_B ); m_HitAtari.SetAtackType( ATK_TYPE_CANNON ); m_HitAtari.SetHantei(ID_ENEMY_ATK , &m_Pos ); }
void CEneH0203Snake::SeqMain() { //----------------------------------------------------- //メイン //----------------------------------------------------- // if(Joy[0].psh&JOY_U ) m_sRotation --; // if(Joy[0].psh&JOY_D ) m_sRotation ++; //----------------------------------------------------- //思考パターン //----------------------------------------------------- LogicAI(); SetRader( enTypeMarkerMiddleBoss ); if( m_pChild[ enSnakeHead ]->IsDamage( ) ) { m_sDamageCnt ++; if( m_sDamageCnt >= 60 ) { //のけぞりカウンタ m_sDamageFrm = 90; } } if( m_pChild[ enSnakeBody ]->IsDamage( ) ) { //全ボディフラッシュ for(Sint32 ii=0;ii<enMaxSnakeLength;ii++) { m_pChild[ ii ]->SetFlash(); } } if( m_pChild[ enSnakeBody ]->IsCrash( ) ) //Joy[0].trg&BTN_X || { SetActionSeq( enActionSeqCrash ); } }
void CEneH0203BigBody::SeqMain() { //----------------------------------------------------- //メイン //----------------------------------------------------- OBJ_POS_T StPos; StPos.x = m_Pos.x; StPos.y = m_Pos.y; if( m_bDestroy ) { // viiMus::PlaySound( enSoundCrashA ); EffectMakeBigBomb(m_Pos.x , m_Pos.y); viiEff::SetBombDeluxe( m_Pos.x , m_Pos.y , 3 , 5 ); m_Add.x = (1+viiSub::Rand()%3)*30; m_Add.y = -viiSub::Rand()%200; if( m_ID == enSnakeHead ) { new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+15*1 , 600 ); new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+45*1 , 800 ); new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+135*1 ,600 ); new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+165 , 600 ); ScorePlus( enScore ); } SetActionSeq( enActionSeqCrash ); if( m_ID%4==0) { new CEffectDmgprt( m_Pos.x, m_Pos.y -3200, -90 , 100 ); new CEffectDmgprt( m_Pos.x, m_Pos.y -3200, -88 , 120 ); new CEffectDmgprt( m_Pos.x, m_Pos.y -3200, -92 , 80 ); } } if( IsScrollOut( enScrollOutWidth , enScrollOutHeight ) ) { } //----------------------------------------------------- //思考パターン //----------------------------------------------------- LogicAI(); //----------------------------------------------------- //くらい判定登録 //----------------------------------------------------- Sint32 ax,ay; if( m_ID == enSnakeHead ) { m_bDamage = m_HitKurai.is_damage(); m_HitKurai.ax1 = enKuraiLeft*3; m_HitKurai.ax2 = enKuraiRight*3; m_HitKurai.ay1 = enKuraiTop*3; m_HitKurai.ay2 = enKuraiBottom*3; ax = m_Pos.x+viiMath::Cos100( m_sRotation )*24; ay = m_Pos.y+viiMath::Sin100( m_sRotation )*24; StPos.x = ax; StPos.y = ay; if( !m_bCrashHead && m_HitKurai.is_dead() ) { viiEff::SetBombDeluxe( ax , ay , 5 , 5+viiSub::Rand()%2 ); m_bCrashHead = gxTrue; m_bDamage = gxFalse; } } else if( m_ID == enSnakeBody ) { m_bDamage = m_HitKurai.is_damage(); m_HitKurai.ax1 = enKuraiLeft*3; m_HitKurai.ax2 = enKuraiRight*3; m_HitKurai.ay1 = enKuraiTop*3; m_HitKurai.ay2 = enKuraiBottom*3; ax = m_Pos.x+viiMath::Cos100( m_sRotation )*24; ay = m_Pos.y+viiMath::Sin100( m_sRotation )*24; StPos.x = ax; StPos.y = ay; if( m_HitKurai.is_dead() ) { m_bDead = gxTrue; } } else { ax = m_Pos.x+viiMath::Cos100( m_sRotation )*24; ay = m_Pos.y+viiMath::Sin100( m_sRotation )*24; m_HitKurai.set_hp(1); m_HitKurai.set_ap(1); m_bDamage = m_bFlash; m_bFlash = gxFalse; } Sint32 sLine = pGame->GetMarineLine(); if( sLine && m_Pos.y>sLine-3800 && m_Pos.y<sLine ) { if( m_Old.y < sLine-3800 )//viiSub::GameCounter()%16 == 0 ) { new CEffWater( ax , sLine , enTypeSplashLarge , 0); MakeSplash( ax+(-8+viiSub::Rand()%16)*100 , sLine , PRIO_EFFECT ); } } else if( m_Old.y > sLine-3800 && m_Pos.y<sLine-3800)//viiSub::GameCounter()%16 == 0 ) { new CEffWater( ax , sLine , enTypeSplashLarge , 0); MakeSplash( ax+(-8+viiSub::Rand()%16)*100 , sLine , PRIO_EFFECT ); } //----------------------------------- //くらい判定登録 //----------------------------------- m_HitKurai.SetHantei(ID_ENEMY_DEF,&StPos ); //----------------------------------- //あたり判定登録 //----------------------------------- m_HitAtari.set_hp(1); m_HitAtari.set_ap(1); m_HitAtari.SetAtackType( ATK_TYPE_CANNON ); m_HitAtari.SetHantei(ID_ENEMY_ATK,&m_Pos ); m_bAtack = gxFalse; }
void CEneH0102NightSpider::SeqMain() { //----------------------------------------------------- //メイン //----------------------------------------------------- for(Sint32 ii=0;ii<4;ii++) { m_HitShield[ii].ax1 = sShieldTbl[ii][0]*m_sDirection; m_HitShield[ii].ay1 = sShieldTbl[ii][1]; m_HitShield[ii].ax2 = sShieldTbl[ii][2]*m_sDirection; m_HitShield[ii].ay2 = sShieldTbl[ii][3]; if( m_sHitpointShield ) { //m_HitShield[ii].SetHantei( ID_ENEMY_DEF , &m_Pos ); } } m_HitShield[3].SetHantei( ID_ENEMY_DEF , &m_Pos ); //------------------------------- m_sHitpointShield -= m_HitShield[0].GetTotalDamage(); m_sHitpointShield -= m_HitShield[1].GetTotalDamage(); m_sHitpointShield -= m_HitShield[2].GetTotalDamage(); m_HitShield[0].set_hp(100); m_HitShield[1].set_hp(100); m_HitShield[2].set_hp(100); //---------------------------- m_sHitpointBody -= m_HitShield[3].GetTotalDamage(); m_sHitpointBody -= m_HitKurai.GetTotalDamage(); //---------------------------- m_HitShield[3].set_hp(100); m_HitKurai.set_hp(100); if( 0 )//m_sHitpointShield <= 0 ) { if( m_bShield ) { //---------------------------------------------------------- //シールド破壊 //---------------------------------------------------------- StPartsInfo *p = m_pEnemyAnime->GetParts( enFSHIELD ); CEffectDmgprt *pDmg; pDmg = new CEffectDmgprt( m_Pos.x+p->dx*100*m_sDirection , m_Pos.y + p->dy*100 +m_Offset.y , -90 , 100 ); pDmg->SetSprite( &SprCEneH0102NightSpider[ p->sDispSprite ] ); pDmg->SetHeavy(); pDmg->SetRotation( p->dr ); pDmg->SetAtribute( (m_sDirection == DIR_LEFT)? ATR_FLIP_X : 0 ); m_bShield = gxFalse; } m_sHitpointShield = 0; } if( m_sHitpointBody <= 0 ) { if( m_sMode == enLogicModeDefault ) { SetActionSeq( enActionSeqCrash ); } else { m_bDead = gxTrue; } //return; } m_pEnemyAnime->PosCalc(); m_pEnemyAnime->GetParts( enFSHIELD )->bDisp = gxFalse; LogicAI(); Gimmick(); SetRader( enTypeMarkerMiddleBoss ); DirectionAdjust(); m_bDamage = m_HitKurai.is_damage(); if( m_HitShield[3].is_damage() ) m_bDamage = gxTrue; m_bDamageShield = gxFalse; if( m_HitShield[0].is_damage() ) m_bDamageShield = gxTrue; if( m_HitShield[1].is_damage() ) m_bDamageShield = gxTrue; if( m_HitShield[2].is_damage() ) m_bDamageShield = gxTrue; m_HitKurai.SetHantei( ID_ENEMY_DEF , &m_Pos ); }