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(); virtual void shutdown();
protected: protected:
void addHealthMeter(); void addHealthMeter();
virtual void processShot( int _frames );
bool m_meterOn; bool m_meterOn;
CFXNRGBar *m_energyBar; CFXNRGBar *m_energyBar;

View file

@ -53,7 +53,7 @@ void CNpcIronDogfishEnemy::postInit()
if ( CLevel::getIsBossRespawn() ) if ( CLevel::getIsBossRespawn() )
{ {
m_health = CLevel::getBossHealth(); 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(); CNpcBossEnemy::postInit();

View file

@ -780,9 +780,9 @@ void CNpcMotherJellyfishEnemy::processShot( int _frames )
{ {
case NPC_GENERIC_HIT_CHECK_HEALTH: 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_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 ); 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, 256,
DETECT_ALL_COLLISION, DETECT_ALL_COLLISION,
DAMAGE__SHOCK_ENEMY, DAMAGE__SHOCK_ENEMY,
30, 10,
0, 0,
NPC_SHOT_GENERIC, NPC_SHOT_GENERIC,
0, 0,
@ -827,7 +827,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
2048, 2048,
DETECT_ALL_COLLISION, DETECT_ALL_COLLISION,
DAMAGE__HIT_ENEMY, DAMAGE__HIT_ENEMY,
30, 10,
0, 0,
NPC_SHOT_GENERIC, NPC_SHOT_GENERIC,
ANIM_SHARKSUB_DEATH, ANIM_SHARKSUB_DEATH,
@ -879,7 +879,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
2048, 2048,
DETECT_ALL_COLLISION, DETECT_ALL_COLLISION,
DAMAGE__HIT_ENEMY, DAMAGE__HIT_ENEMY,
30, 10,
ANIM_FLYINGDUTCHMAN_FLY, ANIM_FLYINGDUTCHMAN_FLY,
NPC_SHOT_GENERIC, NPC_SHOT_GENERIC,
ANIM_FLYINGDUTCHMAN_DEATH, ANIM_FLYINGDUTCHMAN_DEATH,
@ -906,7 +906,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
//DETECT_ALL_COLLISION, //DETECT_ALL_COLLISION,
DETECT_ATTACK_COLLISION_GENERIC, DETECT_ATTACK_COLLISION_GENERIC,
DAMAGE__HIT_ENEMY, DAMAGE__HIT_ENEMY,
30, 10,
ANIM_IRONDOGFISH_WALK, ANIM_IRONDOGFISH_WALK,
NPC_SHOT_GENERIC, NPC_SHOT_GENERIC,
ANIM_IRONDOGFISH_DIE, ANIM_IRONDOGFISH_DIE,

View file

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