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 );

}
Ejemplo n.º 2
0
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 );

}
Ejemplo n.º 3
0
// =============================================================================
// 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;
	}
}
Ejemplo n.º 4
0
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 );

}
Ejemplo n.º 5
0
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 );
	}

}
Ejemplo n.º 6
0
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 );

}