This commit is contained in:
Charles 2001-08-02 15:26:38 +00:00
parent 86419daa07
commit 7a1b470103
6 changed files with 75 additions and 8 deletions

View File

@ -48,3 +48,69 @@ void CNpcBossEnemy::addHealthMeter()
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CNpcBossEnemy::processShot( int _frames )
{
switch( m_data[m_type].shotFunc )
{
case NPC_SHOT_NONE:
{
// do nothing
m_controlFunc = m_oldControlFunc;
break;
}
case NPC_SHOT_GENERIC:
{
switch ( m_state )
{
case NPC_GENERIC_HIT_CHECK_HEALTH:
{
m_health--;
if ( m_health <= 0 )
{
m_state = NPC_GENERIC_HIT_DEATH_START;
m_isDying = true;
m_health = 0;
}
else
{
m_state = NPC_GENERIC_HIT_RECOIL;
m_animPlaying = true;
m_animNo = m_data[m_type].recoilAnim;
m_frame = 0;
}
break;
}
case NPC_GENERIC_HIT_RECOIL:
{
processShotRecoil( _frames );
break;
}
case NPC_GENERIC_HIT_DEATH_START:
{
processShotDeathStart( _frames );
break;
}
case NPC_GENERIC_HIT_DEATH_END:
{
processShotDeathEnd( _frames );
break;
}
}
break;
}
}
}

View File

@ -28,6 +28,7 @@ public:
virtual void shutdown();
protected:
void addHealthMeter();
virtual void processShot( int _frames );
bool m_meterOn;
CFXNRGBar *m_energyBar;

View File

@ -53,7 +53,7 @@ void CNpcIronDogfishEnemy::postInit()
if ( CLevel::getIsBossRespawn() )
{
m_health = CLevel::getBossHealth();
m_speed = m_data[m_type].speed + ( ( 3 * ( m_data[m_type].initHealth - m_health ) ) / m_data[m_type].initHealth );
//m_speed = m_data[m_type].speed + ( ( 3 * ( m_data[m_type].initHealth - m_health ) ) / m_data[m_type].initHealth );
}
CNpcBossEnemy::postInit();

View File

@ -780,9 +780,9 @@ void CNpcMotherJellyfishEnemy::processShot( int _frames )
{
case NPC_GENERIC_HIT_CHECK_HEALTH:
{
if ( m_health > 3 )
if ( m_health > 1 )
{
m_health -= 3;
m_health--;
m_renderScale = 2048 + ( ( ( 4096 - 2048 ) * m_health ) / m_data[m_type].initHealth );
m_speed = m_data[m_type].speed + ( ( 2 * ( m_data[m_type].initHealth - m_health ) ) / m_data[m_type].initHealth );

View File

@ -801,7 +801,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
256,
DETECT_ALL_COLLISION,
DAMAGE__SHOCK_ENEMY,
30,
10,
0,
NPC_SHOT_GENERIC,
0,
@ -827,7 +827,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
2048,
DETECT_ALL_COLLISION,
DAMAGE__HIT_ENEMY,
30,
10,
0,
NPC_SHOT_GENERIC,
ANIM_SHARKSUB_DEATH,
@ -879,7 +879,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
2048,
DETECT_ALL_COLLISION,
DAMAGE__HIT_ENEMY,
30,
10,
ANIM_FLYINGDUTCHMAN_FLY,
NPC_SHOT_GENERIC,
ANIM_FLYINGDUTCHMAN_DEATH,
@ -906,7 +906,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
//DETECT_ALL_COLLISION,
DETECT_ATTACK_COLLISION_GENERIC,
DAMAGE__HIT_ENEMY,
30,
10,
ANIM_IRONDOGFISH_WALK,
NPC_SHOT_GENERIC,
ANIM_IRONDOGFISH_DIE,

View File

@ -678,7 +678,7 @@ void CNpcSubSharkEnemy::processShot( int _frames )
{
case NPC_GENERIC_HIT_CHECK_HEALTH:
{
m_health -= 3;
m_health--;
if ( m_health <= 0 )
{