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

View File

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