This commit is contained in:
parent
86419daa07
commit
7a1b470103
6 changed files with 75 additions and 8 deletions
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue