Let Kline switch weapons on Venus (except in Classic difficulty).
It's a modified version of the weapon switching: if Kline's health is less than 1500, the spread shot replaces the concentrated triple shot. This also keeps Kline with bullet weapons during the third phase. The main purpose of this change is to make Kline consistent. He now switches his secondary weapon, and that's about it. The way it was in the original, it started out much easier than previous encounters, then it went to slightly easier than previous encounters, then something completely unlike previous encounters, and finally something noticeably harder than previous encounters. Now, it starts out exactly the same as previous encounters, and then gets progressively harder.
This commit is contained in:
parent
66faa897a5
commit
14a9dace7e
|
@ -1369,14 +1369,16 @@ void alien_setKlineAttackMethod(object *alien)
|
||||||
alien->flags |= FL_CANCLOAK;
|
alien->flags |= FL_CANCLOAK;
|
||||||
alien->chance[0] = 100;
|
alien->chance[0] = 100;
|
||||||
alien->chance[1] = 2;
|
alien->chance[1] = 2;
|
||||||
alien->flags &= ~FL_CANNOTDIE;
|
|
||||||
}
|
}
|
||||||
else if (alien->shield <= 1000)
|
else if (alien->shield <= 1000)
|
||||||
{
|
{
|
||||||
setRadioMessage(FS_KLINE, "Your ability to stay alive irritates me!! Try dodging some of these!!", 1);
|
setRadioMessage(FS_KLINE, "Your ability to stay alive irritates me!! Try dodging some of these!!", 1);
|
||||||
|
if (game.difficulty == DIFFICULTY_ORIGINAL)
|
||||||
|
{
|
||||||
alien->weaponType[0] = W_DIRSHOCKMISSILE;
|
alien->weaponType[0] = W_DIRSHOCKMISSILE;
|
||||||
alien->weaponType[1] = W_DIRSHOCKMISSILE;
|
|
||||||
alien->chance[0] = 2;
|
alien->chance[0] = 2;
|
||||||
|
}
|
||||||
|
alien->weaponType[1] = W_DIRSHOCKMISSILE;
|
||||||
alien->chance[1] = 2;
|
alien->chance[1] = 2;
|
||||||
alien->flags |= FL_AIMS;
|
alien->flags |= FL_AIMS;
|
||||||
}
|
}
|
||||||
|
@ -1396,14 +1398,17 @@ void alien_setKlineAI(object *alien)
|
||||||
// Weapon type change
|
// Weapon type change
|
||||||
if (CHANCE(1. / 3.))
|
if (CHANCE(1. / 3.))
|
||||||
{
|
{
|
||||||
if (game.area != MISN_VENUS)
|
if ((game.area != MISN_VENUS) || (game.difficulty != DIFFICULTY_ORIGINAL))
|
||||||
{
|
{
|
||||||
alien->flags &= ~FL_AIMS;
|
alien->flags &= ~FL_AIMS;
|
||||||
|
|
||||||
switch(rand() % 2)
|
switch(rand() % 2)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
if ((game.area != MISN_VENUS) || (alien->shield > 1500))
|
||||||
alien->weaponType[0] = W_TRIPLE_SHOT;
|
alien->weaponType[0] = W_TRIPLE_SHOT;
|
||||||
|
else
|
||||||
|
alien->weaponType[0] = W_SPREADSHOT;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
alien->weaponType[0] = W_AIMED_SHOT;
|
alien->weaponType[0] = W_AIMED_SHOT;
|
||||||
|
@ -1428,7 +1433,7 @@ void alien_setKlineAI(object *alien)
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
// Kline only attacks then he is ready!
|
// Kline only attacks when he is ready!
|
||||||
if ((!(alien->flags & FL_NOFIRE)) &&
|
if ((!(alien->flags & FL_NOFIRE)) &&
|
||||||
((game.area == MISN_MOEBO) ||
|
((game.area == MISN_MOEBO) ||
|
||||||
game.difficulty != DIFFICULTY_ORIGINAL))
|
game.difficulty != DIFFICULTY_ORIGINAL))
|
||||||
|
|
|
@ -73,7 +73,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#define FL_DROPMINES 512
|
#define FL_DROPMINES 512
|
||||||
#define FL_AIMS 1024
|
#define FL_AIMS 1024
|
||||||
#define FL_DISABLED 2048
|
#define FL_DISABLED 2048
|
||||||
#define FL_CANNOTDIE 4096 // This will only apply to Kline before the final mission
|
#define FL_CANNOTDIE 4096 // No longer used
|
||||||
#define FL_RUNSAWAY 8192
|
#define FL_RUNSAWAY 8192
|
||||||
#define FL_ALWAYSFACE 16384 // Kline doesn't turn his back on you! ;)
|
#define FL_ALWAYSFACE 16384 // Kline doesn't turn his back on you! ;)
|
||||||
#define FL_CIRCLES 32768L // Kline can circle around
|
#define FL_CIRCLES 32768L // Kline can circle around
|
||||||
|
|
Loading…
Reference in New Issue