Fixed Kline

This commit is contained in:
Layla Marchant 2020-05-26 20:25:50 -04:00
parent b73a56e587
commit 97bcd873c7
2 changed files with 19 additions and 33 deletions

View File

@ -1586,7 +1586,7 @@ void alien_setAI(Object *alien)
void alien_setKlineAttackMethod(Object *alien)
{
if (alien->shield <= 500)
if (alien->shield <= alien->maxShield / 4)
{
/// Dialog (Kline Kethlan)
/// Used when the final "stage" of the Venus fight is entered.
@ -1597,7 +1597,7 @@ void alien_setKlineAttackMethod(Object *alien)
alien->chance[0] = 100;
alien->chance[1] = 2;
}
else if (alien->shield <= 1000)
else if (alien->shield <= alien->maxShield / 2)
{
/// Dialog (Kline Kethlan)
/// Used when the third "stage" of the Vinus fight is entered.
@ -2190,11 +2190,9 @@ void alien_hurt(Object *alien, Object *attacker, int damage, int ion)
if (game.area == MISN_ELAMALE)
{
if (game.difficulty == DIFFICULTY_ORIGINAL)
stage1_shield = 750;
else if (game.difficulty == DIFFICULTY_SUPEREASY)
stage1_shield = 250;
stage1_shield = alien->maxShield * 3 / 8;
else
stage1_shield = 500;
stage1_shield = alien->maxShield / 4;
if ((alien->shield <= alien->maxShield - stage1_shield)
&& !(alien->flags & FL_LEAVESECTOR))
@ -2209,11 +2207,9 @@ void alien_hurt(Object *alien, Object *attacker, int damage, int ion)
else if (game.area == MISN_EARTH)
{
if (game.difficulty == DIFFICULTY_ORIGINAL)
stage1_shield = 500;
else if (game.difficulty == DIFFICULTY_SUPEREASY)
stage1_shield = 375;
stage1_shield = alien->maxShield / 4;
else
stage1_shield = 750;
stage1_shield = alien->maxShield * 3 / 8;
if ((alien->shield <= alien->maxShield - stage1_shield)
&& !(alien->flags & FL_LEAVESECTOR))
@ -2227,18 +2223,9 @@ void alien_hurt(Object *alien, Object *attacker, int damage, int ion)
}
else if (game.area == MISN_VENUS)
{
if (game.difficulty == DIFFICULTY_SUPEREASY)
{
stage1_shield = 750;
stage2_shield = 500;
stage3_shield = 250;
}
else
{
stage1_shield = 1500;
stage2_shield = 1000;
stage3_shield = 500;
}
stage1_shield = alien->maxShield * 3 / 4;
stage2_shield = alien->maxShield / 2;
stage3_shield = alien->maxShield / 4;
if (alien->shield + damage > stage1_shield
&& alien->shield <= stage1_shield)
@ -2252,10 +2239,7 @@ void alien_hurt(Object *alien, Object *attacker, int damage, int ion)
}
else
{
if (game.difficulty == DIFFICULTY_SUPEREASY)
stage1_shield = 50;
else
stage1_shield = 100;
stage1_shield = alien->maxShield / 20;
if ((alien->shield <= alien->maxShield - stage1_shield)
&& !(alien->flags & FL_LEAVESECTOR))

View File

@ -1287,8 +1287,8 @@ static void game_doAliens()
else
{
aliens[i].shield--;
if ((aliens[i].x > 0) && (aliens[i].x < screen->w) &&
(aliens[i].y > 0) && (aliens[i].y < screen->h))
if ((aliens[i].x > 0) && (aliens[i].x < screen->w)
&& (aliens[i].y > 0) && (aliens[i].y < screen->h))
{
screen_blit(aliens[i].image[aliens[i].face], (int)aliens[i].x,
(int)aliens[i].y);
@ -1299,13 +1299,15 @@ static void game_doAliens()
if (aliens[i].shield < aliens[i].deathCounter)
{
aliens[i].active = 0;
if ((aliens[i].classDef == CD_BOSS) ||
(aliens[i].owner == &aliens[ALIEN_BOSS]) ||
(aliens[i].flags & FL_FRIEND) ||
(aliens[i].classDef == CD_ASTEROID) ||
(aliens[i].classDef == CD_KLINE))
if ((aliens[i].classDef == CD_BOSS)
|| (aliens[i].owner == &aliens[ALIEN_BOSS])
|| (aliens[i].flags & FL_FRIEND)
|| (aliens[i].classDef == CD_ASTEROID)
|| (aliens[i].classDef == CD_KLINE))
{
game_addDebris((int)aliens[i].x, (int)aliens[i].y,
aliens[i].maxShield);
}
if (aliens[i].classDef == CD_ASTEROID)
{