This commit is contained in:
parent
10a01720c7
commit
8259aac172
1 changed files with 42 additions and 39 deletions
|
@ -1252,60 +1252,63 @@ void CNpcSeaSnakeEnemy::collidedWith( CThing *_thisThing )
|
||||||
{
|
{
|
||||||
case TYPE_PLAYER:
|
case TYPE_PLAYER:
|
||||||
{
|
{
|
||||||
CPlayer *player = (CPlayer *) _thisThing;
|
if ( m_invulnerableTimer <= 0 )
|
||||||
|
|
||||||
ATTACK_STATE playerState = player->getAttackState();
|
|
||||||
|
|
||||||
if(playerState==ATTACK_STATE__NONE)
|
|
||||||
{
|
{
|
||||||
if ( !player->isRecoveringFromHit() )
|
CPlayer *player = (CPlayer *) _thisThing;
|
||||||
|
|
||||||
|
ATTACK_STATE playerState = player->getAttackState();
|
||||||
|
|
||||||
|
if(playerState==ATTACK_STATE__NONE)
|
||||||
{
|
{
|
||||||
switch( m_data[m_type].detectCollision )
|
if ( !player->isRecoveringFromHit() )
|
||||||
{
|
{
|
||||||
case DETECT_NO_COLLISION:
|
switch( m_data[m_type].detectCollision )
|
||||||
{
|
{
|
||||||
// ignore
|
case DETECT_NO_COLLISION:
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case DETECT_ALL_COLLISION:
|
|
||||||
{
|
|
||||||
if ( m_controlFunc != NPC_CONTROL_COLLISION )
|
|
||||||
{
|
{
|
||||||
m_oldControlFunc = m_controlFunc;
|
// ignore
|
||||||
m_controlFunc = NPC_CONTROL_COLLISION;
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
processUserCollision( _thisThing );
|
case DETECT_ALL_COLLISION:
|
||||||
|
{
|
||||||
|
if ( m_controlFunc != NPC_CONTROL_COLLISION )
|
||||||
|
{
|
||||||
|
m_oldControlFunc = m_controlFunc;
|
||||||
|
m_controlFunc = NPC_CONTROL_COLLISION;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
processUserCollision( _thisThing );
|
||||||
}
|
|
||||||
|
|
||||||
case DETECT_ATTACK_COLLISION_GENERIC:
|
break;
|
||||||
{
|
}
|
||||||
processAttackCollision();
|
|
||||||
processUserCollision( _thisThing );
|
|
||||||
|
|
||||||
break;
|
case DETECT_ATTACK_COLLISION_GENERIC:
|
||||||
|
{
|
||||||
|
processAttackCollision();
|
||||||
|
processUserCollision( _thisThing );
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else if ( m_invulnerableTimer <= 0 )
|
|
||||||
{
|
|
||||||
// player is attacking, respond appropriately
|
|
||||||
|
|
||||||
if ( m_controlFunc != NPC_CONTROL_SHOT )
|
|
||||||
{
|
{
|
||||||
if(playerState==ATTACK_STATE__BUTT_BOUNCE)
|
// player is attacking, respond appropriately
|
||||||
{
|
|
||||||
player->justButtBouncedABadGuy();
|
|
||||||
}
|
|
||||||
m_controlFunc = NPC_CONTROL_SHOT;
|
|
||||||
m_state = NPC_GENERIC_HIT_CHECK_HEALTH;
|
|
||||||
|
|
||||||
drawAttackEffect();
|
if ( m_controlFunc != NPC_CONTROL_SHOT )
|
||||||
|
{
|
||||||
|
if(playerState==ATTACK_STATE__BUTT_BOUNCE)
|
||||||
|
{
|
||||||
|
player->justButtBouncedABadGuy();
|
||||||
|
}
|
||||||
|
m_controlFunc = NPC_CONTROL_SHOT;
|
||||||
|
m_state = NPC_GENERIC_HIT_CHECK_HEALTH;
|
||||||
|
|
||||||
|
drawAttackEffect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue