diff --git a/src/aliens.cpp b/src/aliens.cpp index 7f91ff3..df81668 100644 --- a/src/aliens.cpp +++ b/src/aliens.cpp @@ -417,16 +417,14 @@ void alien_setAI(object *alien) void alien_setKlineAttackMethod(object *alien) { alien->maxShield -= 750; - if (alien->maxShield == 0) - alien->flags &= ~FL_CANNOTDIE; - if (alien->maxShield == 1500) + if (alien->maxShield >= 1500) { setRadioMessage(FACE_KLINE, "Very good, Bainfield. Now let's get a little more serious...", 1); alien->weaponType[0] = W_SPREADSHOT; alien->chance[1] = 40; } - else if (alien->maxShield == 750) + else if (alien->maxShield >= 750) { setRadioMessage(FACE_KLINE, "Your ability to stay alive irritates me!! Try dodging some of these!!", 1); alien->weaponType[0] = W_DIRSHOCKMISSILE; @@ -435,7 +433,7 @@ void alien_setKlineAttackMethod(object *alien) alien->chance[1] = 2; alien->flags |= FL_AIMS; } - else if (alien->maxShield == 0) + else { setRadioMessage(FACE_KLINE, "ENOUGH!! THIS ENDS NOW!!!", 1); alien->weaponType[0] = W_AIMED_SHOT; @@ -443,6 +441,7 @@ void alien_setKlineAttackMethod(object *alien) alien->flags |= FL_CANCLOAK; alien->chance[0] = 100; alien->chance[1] = 2; + alien->flags &= ~FL_CANNOTDIE; } alien->shield = 750; diff --git a/src/bullets.cpp b/src/bullets.cpp index 750f191..e2c2f1f 100644 --- a/src/bullets.cpp +++ b/src/bullets.cpp @@ -363,7 +363,7 @@ static void alien_destroy(object *alien, object *attacker) { setRadioMessage(FACE_KLINE, "It was an honor... to have fought you...", 1); alien->dx = alien->dy = 0; - alien->maxShield = 1500; + alien->maxShield = 2250; alien->shield = -200; } } diff --git a/src/game.cpp b/src/game.cpp index c14c8ba..9a72a5e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -395,8 +395,8 @@ int mainGameLoop() aliens[WC_KLINE].y = screen->h * 2 / 3; aliens[WC_KLINE].deathCounter = -250; - aliens[WC_KLINE].maxShield = 1500; - aliens[WC_KLINE].shield = 500; + aliens[WC_KLINE].maxShield = 2250; + aliens[WC_KLINE].shield = 750; } for (int i = 0 ; i < MAX_ALIENS ; i++) diff --git a/src/messages.cpp b/src/messages.cpp index c788af4..435f444 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -135,8 +135,8 @@ void getKillMessage(object *ally) const char *getKlineInsult() { static const char *insult[] = { - "Pathetic", "How very disappointing...", "Heroic. And stupid", "Fool", - "And now you're nothing but a DEAD hero" + "Pathetic.", "How very disappointing...", "Heroic. And stupid.", "Fool.", + "And now you're nothing but a DEAD hero." }; if (currentGame.area != 26) diff --git a/src/script.cpp b/src/script.cpp index c51cca6..0713ccb 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -48,7 +48,9 @@ void loadScriptEvents() gameEvent[i].flag = 0; } - if ((currentGame.area == 27) && (aliens[WC_KLINE].classDef == CD_KLINE)) + if ((currentGame.area == MAX_MISSIONS - 1) && + (aliens[WC_KLINE].classDef == CD_KLINE) && + (aliens[WC_KLINE].active)) setKlineGreeting(); char filename[255]; diff --git a/src/shop.cpp b/src/shop.cpp index facfeb6..46095c6 100644 --- a/src/shop.cpp +++ b/src/shop.cpp @@ -113,6 +113,12 @@ static void adjustShopPrices() if (currentGame.minPlasmaRate >= currentGame.minPlasmaRateLimit) shopItems[SHOP_PLASMA_MIN_RATE].price = 0; + + if (currentGame.maxPlasmaAmmo >= currentGame.maxPlasmaAmmoLimit) + shopItems[SHOP_PLASMA_MAX_AMMO].price = 0; + + if (currentGame.maxRocketAmmo >= currentGame.maxRocketAmmoLimit) + shopItems[SHOP_ROCKET_MAX_AMMO].price = 0; } static void drawShop()