Fix boss oneliners and boss detection.
This commit is contained in:
parent
fef9db20d0
commit
b9206521fd
23 changed files with 132 additions and 37 deletions
|
|
@ -1133,6 +1133,10 @@ BT_DEATHKINGS_FUN = "A Very Anticlimactic Boss Rehash";
|
|||
// eviternity
|
||||
BT_ARCHANGELUS = "Archangelus, Celestial Agent";
|
||||
BT_ARCHANGELUS_FUN = "Big Fucking Angel Dude";
|
||||
// boss oneliners
|
||||
BOSSLINE_IOS = "\crIcon of Sin\c-: !oremoR nhoJ ,em llik tsum uoy emag eht niw oT";
|
||||
BOSSLINE_DSPARIL = "\cgD'Sparil\c-: .hself ruoy erutrot lliw I";
|
||||
BOSSLINE_ARCHANGELUS = "\cfArchangelus\c-: Foolish mortal, only your death is eternal!";
|
||||
// targetter
|
||||
SWWM_OVERKILL = "Overkill";
|
||||
SWWM_MULTIKILL = "Multi Kill";
|
||||
|
|
|
|||
|
|
@ -360,13 +360,14 @@ SWWM_SUBS_DEFAULT_ARCHANGELUS6 = "Yeah yeah, it's always the same with you peopl
|
|||
SWWM_SUBS_DEFAULT_ARCHANGELUS7 = "Boy, you people really go hard on the pretend-god bullshit, huh?";
|
||||
SWWM_SUBS_DEFAULT_ARCHANGELUS8 = "I think I'm going to have to beat some sense into you.";
|
||||
// "hself ruoy erutrot lliw I" (supposedly)
|
||||
SWWM_SUBS_DEFAULT_NDSPARIL = "6";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL1 = "What's with you people and backwards speech?";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL2 = "Sorry, could you repeat that?";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL3 = "Oh look at you, little red riding hood.";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL4 = "How about you get down from that thing and we have a talk?";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL5 = ".oot sdrawkcab klat nac I"; // record this line normally then just reverse it, really
|
||||
SWWM_SUBS_DEFAULT_DSPARIL6 = "I'm gonna wipe the floor with you, nerd.";
|
||||
SWWM_SUBS_DEFAULT_NDSPARILA = "3";
|
||||
SWWM_SUBS_DEFAULT_DSPARILA1 = "Oh look at you, little red riding hood.";
|
||||
SWWM_SUBS_DEFAULT_DSPARILA2 = "How about you get down from that thing and we have a talk?";
|
||||
SWWM_SUBS_DEFAULT_DSPARILA3 = "I'm gonna wipe the floor with you, nerd.";
|
||||
SWWM_SUBS_DEFAULT_NDSPARILB = "3";
|
||||
SWWM_SUBS_DEFAULT_DSPARILB1 = "What's with you people and backwards speech?";
|
||||
SWWM_SUBS_DEFAULT_DSPARILB2 = "Sorry, could you repeat that?";
|
||||
SWWM_SUBS_DEFAULT_DSPARILB3 = ".oot sdrawkcab klat nac I"; // record this line normally then just reverse it, really
|
||||
// (H-Doom compat) Demon girl petting
|
||||
SWWM_SUBS_DEFAULT_NPETHDOOM = "9";
|
||||
SWWM_SUBS_DEFAULT_PETHDOOM1 = "That's a good girl~";
|
||||
|
|
|
|||
|
|
@ -1011,6 +1011,10 @@ BT_DEATHKINGS_FUN = "Un Refrito de Jefes muy Anticlimático";
|
|||
// eviternity
|
||||
BT_ARCHANGELUS = "Archangelus, Agente Celestial";
|
||||
BT_ARCHANGELUS_FUN = "Un Putísimo Ángel Enorme";
|
||||
// boss oneliners
|
||||
BOSSLINE_IOS = "\crIcono del Pecado\c-: !oremoR nhoJ ,ím a emratam sebed ogeuj le ranag araP¡";
|
||||
BOSSLINE_DSPARIL = "\cgD'Sparil\c-: .senrac sut érarutroT";
|
||||
BOSSLINE_ARCHANGELUS = "\cfArchangelus\c-: Mortal insensato, ¡solo tu muerte es eterna!";
|
||||
// targetter
|
||||
SWWM_OVERKILL = "Sobremuerte";
|
||||
SWWM_MULTIKILL = "Racha";
|
||||
|
|
|
|||
|
|
@ -327,12 +327,12 @@ SWWM_SUBS_DEFAULT_ARCHANGELUS6 = "Ya ya, siempre es lo mismo con gente como tú.
|
|||
SWWM_SUBS_DEFAULT_ARCHANGELUS7 = "Bueno, pero vosotros vais a tope con la mierda de pretender ser dioses, ¿no?";
|
||||
SWWM_SUBS_DEFAULT_ARCHANGELUS8 = "Me parece que voy a tener que hacerte entenderlo a ostias.";
|
||||
// "hself ruoy erutrot lliw I" (supposedly)
|
||||
SWWM_SUBS_DEFAULT_DSPARIL1 = "¿Pero que os pasa a todos con lo de hablar al revés?";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL2 = "Lo siento, ¿podrías repetir eso?";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL3 = "Oh pero mírate, si es caperucita roja.";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL4 = "¿Por que no te bajas de esa cosa y hablamos?";
|
||||
SWWM_SUBS_DEFAULT_DSPARIL5 = "séver la ralbah odeup néibmat oY."; // record this line normally then just reverse it, really
|
||||
SWWM_SUBS_DEFAULT_DSPARIL6 = "Voy a fregar el suelo contigo, friki.";
|
||||
SWWM_SUBS_DEFAULT_DSPARILA1 = "Oh pero mírate, si es caperucita roja.";
|
||||
SWWM_SUBS_DEFAULT_DSPARILA2 = "¿Por que no te bajas de esa cosa y hablamos?";
|
||||
SWWM_SUBS_DEFAULT_DSPARILA3 = "Voy a fregar el suelo contigo, friki.";
|
||||
SWWM_SUBS_DEFAULT_DSPARILB1 = "¿Pero que os pasa a todos con lo de hablar al revés?";
|
||||
SWWM_SUBS_DEFAULT_DSPARILB2 = "Lo siento, ¿podrías repetir eso?";
|
||||
SWWM_SUBS_DEFAULT_DSPARILB3 = "séver la ralbah odeup néibmat oY."; // record this line normally then just reverse it, really
|
||||
// (H-Doom compat) Demon girl petting
|
||||
SWWM_SUBS_DEFAULT_PETHDOOM1 = "Buena chica~";
|
||||
SWWM_SUBS_DEFAULT_PETHDOOM2 = "Eh, no tienes por qué pelear.";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r34 \cu(Tue 19 Oct 22:56:03 CEST 2021)\c-";
|
||||
SWWM_SHORTVER="\cw1.2pre r34 \cu(2021-10-19 22:56:03)\c-";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r35 \cu(Wed 20 Oct 00:15:43 CEST 2021)\c-";
|
||||
SWWM_SHORTVER="\cw1.2pre r35 \cu(2021-10-20 00:15:43)\c-";
|
||||
|
|
|
|||
12
sndinfo.txt
12
sndinfo.txt
|
|
@ -392,12 +392,12 @@ voice/default/archangelus5 sounds/voice/default/va/demoarchangelus5.ogg
|
|||
voice/default/archangelus6 sounds/voice/default/va/demoarchangelus6.ogg
|
||||
voice/default/archangelus7 sounds/voice/default/va/demoarchangelus7.ogg
|
||||
voice/default/archangelus8 sounds/voice/default/va/demoarchangelus8.ogg
|
||||
voice/default/dsparil1 sounds/voice/default/va/demodsparil1.ogg
|
||||
voice/default/dsparil2 sounds/voice/default/va/demodsparil2.ogg
|
||||
voice/default/dsparil3 sounds/voice/default/va/demodsparil3.ogg
|
||||
voice/default/dsparil4 sounds/voice/default/va/demodsparil4.ogg
|
||||
voice/default/dsparil5 sounds/voice/default/va/demodsparil5.ogg
|
||||
voice/default/dsparil6 sounds/voice/default/va/demodsparil6.ogg
|
||||
voice/default/dsparila1 sounds/voice/default/va/demodsparila1.ogg
|
||||
voice/default/dsparila2 sounds/voice/default/va/demodsparila2.ogg
|
||||
voice/default/dsparila3 sounds/voice/default/va/demodsparila3.ogg
|
||||
voice/default/dsparilb1 sounds/voice/default/va/demodsparilb1.ogg
|
||||
voice/default/dsparilb2 sounds/voice/default/va/demodsparilb2.ogg
|
||||
voice/default/dsparilb3 sounds/voice/default/va/demodsparilb3.ogg
|
||||
voice/default/pethdoom1 sounds/voice/default/va/demopethdoom1.ogg
|
||||
voice/default/pethdoom2 sounds/voice/default/va/demopethdoom2.ogg
|
||||
voice/default/pethdoom3 sounds/voice/default/va/demopethdoom3.ogg
|
||||
|
|
|
|||
|
|
@ -3,6 +3,45 @@
|
|||
Class EndgameBossMarker : Inventory {}
|
||||
Class BossMarker : Inventory {}
|
||||
|
||||
Class IconMessage : Inventory
|
||||
{
|
||||
override void DoEffect()
|
||||
{
|
||||
if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) )
|
||||
{
|
||||
Console.MidPrint(smallfont,StringTable.Localize("$BOSSLINE_IOS"));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class ArchangelusMessage : Inventory
|
||||
{
|
||||
override void DoEffect()
|
||||
{
|
||||
if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) )
|
||||
{
|
||||
Console.MidPrint(smallfont,StringTable.Localize("$BOSSLINE_ARCHANGELUS"));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class DSparilMessage : Inventory
|
||||
{
|
||||
override void DoEffect()
|
||||
{
|
||||
if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) )
|
||||
{
|
||||
Console.MidPrint(smallfont,StringTable.Localize("$BOSSLINE_DSPARIL"));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extend Class SWWMHandler
|
||||
{
|
||||
String bosstag;
|
||||
|
|
@ -179,7 +218,10 @@ extend Class SWWMHandler
|
|||
e.Thing.GiveInventory('EndgameBossMarker',1);
|
||||
}
|
||||
if ( e.Thing is 'BossEye' )
|
||||
{
|
||||
bossviewactor = e.Thing;
|
||||
e.Thing.GiveInventory('IconMessage',1);
|
||||
}
|
||||
bosstag = "$BT_IOS";
|
||||
}
|
||||
else if ( bossmap == MAP_DLVL08 )
|
||||
|
|
@ -237,6 +279,7 @@ extend Class SWWMHandler
|
|||
bosstag = "$BT_DSPARIL2";
|
||||
e.Thing.GiveInventory('BossMarker',1);
|
||||
e.Thing.GiveInventory('EndgameBossMarker',1);
|
||||
e.Thing.GiveInventory('DSparilMessage',1);
|
||||
}
|
||||
}
|
||||
else if ( bossmap == MAP_HMAP38 )
|
||||
|
|
@ -321,8 +364,19 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_EVMAP30 )
|
||||
{
|
||||
if ( e.Thing.GetClassName() == "ArchangelusA" )
|
||||
if ( e.Thing.GetClassName() == "Archangelus" )
|
||||
{
|
||||
bossactors.Push(e.Thing);
|
||||
bossviewactor = e.Thing;
|
||||
bosstag = "$BT_ARCHANGELUS";
|
||||
e.Thing.GiveInventory('ArchangelusMessage',1);
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "ArchangelusA" )
|
||||
{
|
||||
// first phase
|
||||
bossactors.Clear();
|
||||
bossviewactor = null;
|
||||
initialized = false;
|
||||
bossactors.Push(e.Thing);
|
||||
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
|
||||
if ( trk ) trk.bBOSS = true;
|
||||
|
|
@ -334,6 +388,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
// second phase
|
||||
bossactors.Clear();
|
||||
bossviewactor = null;
|
||||
initialized = false;
|
||||
bossactors.Push(e.Thing);
|
||||
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
|
||||
|
|
@ -355,12 +410,28 @@ extend Class SWWMHandler
|
|||
if ( (!bossactors[i].target || !bossactors[i].CheckSight(bossactors[i].target,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY))
|
||||
&& (!bossviewactor || (bossviewactor && !bossviewactor.target)) ) continue;
|
||||
initialized = true;
|
||||
// hacky
|
||||
// oneliners
|
||||
if ( bossmap == MAP_DMAP30 )
|
||||
{
|
||||
highesttic = gametic;
|
||||
lastcombat = AddOneliner("romero",1,200);
|
||||
}
|
||||
else if ( bossmap == MAP_HE3M8 )
|
||||
{
|
||||
highesttic = gametic;
|
||||
if ( bosstag = "$BT_DSPARIL2" ) lastcombat = AddOneliner("dsparilb",1,100);
|
||||
else lastcombat = AddOneliner("dsparila",1,80);
|
||||
}
|
||||
else if ( bossmap == MAP_HMAP40 )
|
||||
{
|
||||
highesttic = gametic;
|
||||
lastcombat = AddOneliner("korax",1,40);
|
||||
}
|
||||
else if ( (bossmap == MAP_EVMAP30) && bossviewactor )
|
||||
{
|
||||
highesttic = gametic;
|
||||
lastcombat = AddOneliner("archangelus",1,300);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,6 +120,18 @@ extend Class SWWMHandler
|
|||
let t = new("UglyBoyGetsFuckedUp");
|
||||
t.ChangeStatNum(Thinker.STAT_USER);
|
||||
}
|
||||
// Archangelus death
|
||||
if ( e.Thing.GetClassName() == "ArchangelusB" )
|
||||
{
|
||||
// kill all other monsters
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
if ( (a != e.Thing) && (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) )
|
||||
a.DamageMobj(e.Thing,e.Thing,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS);
|
||||
}
|
||||
}
|
||||
if ( swwm_partytime )
|
||||
{
|
||||
let pt = Actor.Spawn("PartyTime",e.Thing.pos);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ extend Class SWWMHandler
|
|||
int lastorder;
|
||||
bool lastloop;
|
||||
transient ThinkerIterator cti;
|
||||
bool tauntedboss;
|
||||
Actor tauntedboss;
|
||||
|
||||
private void LangRefresh()
|
||||
{
|
||||
|
|
@ -127,21 +127,10 @@ extend Class SWWMHandler
|
|||
combatactors.Push(a);
|
||||
combattics.Push(gametic);
|
||||
enteredcombat = true;
|
||||
if ( (a is 'Korax') || (a is 'Sorcerer1') || (a.GetClassName() == "ArchangelusA") )
|
||||
keyactor = a;
|
||||
if ( a.bBOSS || a.FindInventory("BossMarker") )
|
||||
bossfound = true;
|
||||
}
|
||||
}
|
||||
// special combat start lines
|
||||
if ( enteredcombat && keyactor && !tauntedboss )
|
||||
{
|
||||
if ( keyactor is 'Korax' ) lastcombat = AddOneliner("korax",1,40);
|
||||
else if ( keyactor is 'Sorcerer1' ) lastcombat = AddOneliner("dsparil",1,100);
|
||||
else if ( keyactor.GetClassName() == "ArchangelusA" ) lastcombat = AddOneliner("archangelus",1,350);
|
||||
tauntedboss = true;
|
||||
return;
|
||||
}
|
||||
// be smart, demo-chan, don't shout if you're invisible, or you'll make it worse
|
||||
if ( enteredcombat && ((bossfound && (!lastcombat || (gametic > lastcombat+120))) || (!bossfound && (!highesttic || (gametic > highesttic+700)))) && !players[consoleplayer].mo.FindInventory("GhostPower") )
|
||||
lastcombat = AddOneliner("fightstart",1,10);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
String midstr;
|
||||
int midtic, midtype;
|
||||
|
||||
bool koraxhack, mainframehack;
|
||||
bool koraxhack, mainframehack, bosshack;
|
||||
int puzzlecnt, realpuzzlecnt;
|
||||
|
||||
SWWMWeaponTooltip ctip;
|
||||
|
|
@ -586,6 +586,15 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
mainframehack = false;
|
||||
return true;
|
||||
}
|
||||
if ( (msg == StringTable.Localize("$BOSSLINE_IOS"))
|
||||
|| (msg == StringTable.Localize("$BOSSLINE_ARCHANGELUS"))
|
||||
|| (msg == StringTable.Localize("$BOSSLINE_DSPARIL")) )
|
||||
{
|
||||
bosshack = true;
|
||||
Console.Printf(msg);
|
||||
bosshack = false;
|
||||
return true;
|
||||
}
|
||||
if ( !fnt || (fnt == smallfont) )
|
||||
{
|
||||
midstr = msg;
|
||||
|
|
@ -616,12 +625,17 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
printlevel = PRINT_CHAT;
|
||||
outline = "\cmKorax\c-: "..outline;
|
||||
}
|
||||
if ( mainframehack )
|
||||
else if ( mainframehack )
|
||||
{
|
||||
// same here, hi yholl
|
||||
printlevel = PRINT_CHAT;
|
||||
outline = "\cmAI Mainframe\c-: "..outline;
|
||||
}
|
||||
else if ( bosshack )
|
||||
{
|
||||
// no need to attach name, these are done specifically for this
|
||||
printlevel = PRINT_CHAT;
|
||||
}
|
||||
let m = new("MsgLine");
|
||||
m.str = outline.Left(outline.Length()-1); // strip newline
|
||||
m.type = printlevel;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue