Eviternity 2 changed some monsters.

This commit is contained in:
Mari the Deer 2024-09-30 21:24:34 +02:00
commit d3ce281abb
10 changed files with 148 additions and 93 deletions

View file

@ -99,8 +99,8 @@ extend Class SWWMHandler
ui Font mSmallFont, mTinyFont;
bool archangelus_zapped; // skips second phase dialogue
bool eviternatus_zapped; // bonus dlg for ynykron survival
bool eviternatus_postzap; // so the bonus dlg doesn't play twice
bool origin_zapped; // bonus dlg for ynykron survival
bool origin_postzap; // so the bonus dlg doesn't play twice
enum EVanillaMap
{
@ -471,15 +471,15 @@ extend Class SWWMHandler
}
else if ( bossmap == MAP_EVIIMAP30 )
{
if ( e.Thing.GetClassName() == "EviternatusAntaSpawner" )
if ( (e.Thing.GetClassName() == "The_Origin_Phase_1_Spawner") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1_Spawner") )
{
bossactors.Push(e.Thing);
bossviewactor = e.Thing;
bosstag = "$BT_EVITERNATUS";
bosstag = "$BT_ORIGIN";
// hack to avoid "all clear" between phases
level.total_monsters += 3;
}
else if ( e.Thing.GetClassName() == "EviternatusAnta" )
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_1") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1") )
{
// first phase
bossactors.Clear();
@ -487,13 +487,13 @@ extend Class SWWMHandler
initialized = false;
bossactors.Push(e.Thing);
e.Thing.StartHealth = e.Thing.Health *= 5;
bosstag = "$BT_EVITERNATUS";
bosstag = "$BT_ORIGIN";
e.Thing.GiveInventory('BossMarker',1);
e.Thing.GiveInventory('EndgameBossMarker',1);
// undo the hack (part 1)
level.total_monsters--;
}
else if ( e.Thing.GetClassName() == "EviternatusBete" )
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_2") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_2") )
{
// second phase
bossactors.Clear();
@ -501,19 +501,19 @@ extend Class SWWMHandler
initialized = false;
bossactors.Push(e.Thing);
e.Thing.StartHealth = e.Thing.Health *= 5;
bosstag = "$BT_EVITERNATUS";
bosstag = "$BT_ORIGIN";
e.Thing.GiveInventory('BossMarker',1);
e.Thing.GiveInventory('EndgameBossMarker',1);
if ( eviternatus_zapped )
if ( origin_zapped )
{
eviternatus_postzap = true;
origin_postzap = true;
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.EV2N");
}
else SendInterfaceEvent(consoleplayer,"swwmsetdialogue.EV2L");
// undo the hack (part 2)
level.total_monsters--;
}
else if ( e.Thing.GetClassName() == "EviternatusCeph" )
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_3") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_3") )
{
// third phase
bossactors.Clear();
@ -521,12 +521,12 @@ extend Class SWWMHandler
initialized = false;
bossactors.Push(e.Thing);
e.Thing.StartHealth = e.Thing.Health *= 5;
bosstag = "$BT_EVITERNATUS";
bosstag = "$BT_ORIGIN";
e.Thing.GiveInventory('BossMarker',1);
e.Thing.GiveInventory('EndgameBossMarker',1);
if ( eviternatus_zapped )
if ( origin_zapped )
{
if ( eviternatus_postzap )
if ( origin_postzap )
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.EV2O");
else SendInterfaceEvent(consoleplayer,"swwmsetdialogue.EV2N");
}
@ -581,12 +581,12 @@ extend Class SWWMHandler
else if ( bossmap == MAP_EVIIMAP30 )
{
highesttic = gametic;
if ( a.GetClassName() == "EviternatusAnta" )
lastcombat = AddOneliner("eviternatus1",1,40);
else if ( a.GetClassName() == "EviternatusBete" )
lastcombat = AddOneliner("eviternatus2",1,40);
else if ( a.GetClassName() == "EviternatusCeph" )
lastcombat = AddOneliner("eviternatus3",1,40);
if ( (a.GetClassName() == "The_Origin_Phase_1") || (a.GetClassName() == "The_Absolute_Origin_Phase_1") )
lastcombat = AddOneliner("origin1",1,40);
else if ( (a.GetClassName() == "The_Origin_Phase_2") || (a.GetClassName() == "The_Absolute_Origin_Phase_2") )
lastcombat = AddOneliner("origin2",1,40);
else if ( (a.GetClassName() == "The_Origin_Phase_3") || (a.GetClassName() == "The_Absolute_Origin_Phase_3") )
lastcombat = AddOneliner("origin3",1,40);
}
break;
}

View file

@ -135,11 +135,13 @@ extend Class SWWMHandler
a.DamageMobj(e.Thing,e.Thing,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS);
}
}
// Eviternatus instakill
if ( ((e.Thing.GetClassName() == "EviternatusAnta") || (e.Thing.GetClassName() == "EviternatusBete")) && (e.Thing.DamageType == 'Ynykron') )
// Origin instakill
if ( ((e.Thing.GetClassName() == "The_Origin_Phase_1") || (e.Thing.GetClassName() == "The_Origin_Phase_2")
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1") || (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_2"))
&& (e.Thing.DamageType == 'Ynykron') )
{
// this will trigger special dialogue on the next phase
eviternatus_zapped = true;
origin_zapped = true;
}
if ( swwm_partytime )
{
@ -293,7 +295,7 @@ extend Class SWWMHandler
e.Thing.SetTag("$FN_DUKE");
else if ( e.Thing.GetClassName() == "AstralBabycaco" )
e.Thing.SetTag("$FN_ASTRALBABY");
else if ( e.Thing.GetClassName() == "NAC" )
else if ( e.Thing.GetClassName() == "NightmareCacodemon" )
e.Thing.SetTag("$FN_NAC");
else if ( e.Thing.GetClassName() == "AstralMancubus" )
e.Thing.SetTag("$FN_ASTRALFATSO");
@ -302,10 +304,17 @@ extend Class SWWMHandler
|| (e.Thing.GetClassName() == "NecromenaceC")
|| (e.Thing.GetClassName() == "NecromenaceD") )
e.Thing.SetTag("$FN_NECROMENACE");
else if ( (e.Thing.GetClassName() == "EviternatusAnta")
|| (e.Thing.GetClassName() == "EviternatusBete")
|| (e.Thing.GetClassName() == "EviternatusCeph") )
e.Thing.SetTag("$FN_EVITERNATUS");
else if ( (e.Thing.GetClassName() == "The_Origin_Phase_1")
|| (e.Thing.GetClassName() == "The_Origin_Phase_2")
|| (e.Thing.GetClassName() == "The_Origin_Phase_3")
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_1")
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_2")
|| (e.Thing.GetClassName() == "The_Absolute_Origin_Phase_3") )
e.Thing.SetTag("$FN_ORIGIN");
else if ( e.Thing.GetClassName() == "SpectralAstralCacodemon" )
e.Thing.SetTag("$FN_SAC");
else if ( e.Thing.GetClassName() == "GrandDukeofHell" )
e.Thing.SetTag("$FN_GDUKE");
// doom vacation stuff
else if ( indoomvacation )
{