diff --git a/language.def_dlg b/language.def_dlg index 4df658ca0..a87a2249e 100644 --- a/language.def_dlg +++ b/language.def_dlg @@ -77,6 +77,34 @@ SWWM_CYTHONERVE2 = "Many other groups have already been suppressed worldwide, th SWWM_CYTHONERVE3 = "You, however, are up against a cybernetic lieutenant known as the \"Last Tyrant\". This will be tough."; SWWM_CYTHONERVE4 = "Nevertheless... You are the hero \cdDemolitionist\c-, and you are going to teach these vile fiends a lesson."; SWWM_CYTHONERVE5 = "Extinguish the flames of demonic corruption that tarnish this land.\nWe the Kuriste believe in you."; +// Eviternity MAP05 +SWWM_SAYADMN1 = "I think this is the right place, \cdDemo\c-. Getting some BIG energy readings."; +SWWM_SAYADMN2 = "Yup, plenty of demons waiting to jump on your ass. I mean, of course they'd be gathered here."; +SWWM_SAYADMN3 = "I have to warn you, though. These portals are unstable, so you might pass out in the process."; +SWWM_SAYADMN4 = "Oh, and by the way, bad news. You're going to lose all your shit once you cross over as well."; +SWWM_SAYADMN5 = "That NERD has reassured me that it's not on purpose, but I'm not buying it."; +SWWM_SAYADMN6 = "The most he can do is \"give you a set of starting equipment\" after the wipe."; +SWWM_SAYADMN7 = "I don't like how he seemed amused by this. Heard him mumble something about \"episode transitions\"."; +SWWM_SAYADMN8 = "Oh well, whatever... Damn nerd..."; +// Eviternity MAP10 +SWWM_SAYACRE1 = "I'm so going to lambast the UAC for all this shit I've witnessed. So much for that \"reparation\"."; +SWWM_SAYACRE2 = "Their bases are still riddled with demons. Come on, where's the cleaning squads?"; +SWWM_SAYACRE3 = "Wait... Are we the cleaning squad? Did they plan for US to do their job?"; +SWWM_SAYACRE4 = "If that manchild Kelliher hadn't blocked me, he would never hear the end of this, I swear."; +// Eviternity MAP15 +SWWM_SAYACRY1 = "This place is huge, holy shit!"; +SWWM_SAYACRY2 = "Alright. You got it, right? Look for the portal. Should be easy to find, well-signalled, etc."; +SWWM_SAYACRY3 = "Hopefully, once you cross over, you'll finally be right in Xevetha territory."; +SWWM_SAYACRY4 = "Mission stuff aside, I'm really hyped for this... Having you travel to a distant planet."; +SWWM_SAYACRY5 = "Get going, \cdDemo-chan\c-. A new world awaits you."; +// Eviternity MAP20 +SWWM_SAYACON1 = "Dense ardent energy readings again... We both know exactly what that means."; +SWWM_SAYACON2 = "Not sure where the next portal will take you, but hopefully it's further into enemy territory."; +SWWM_SAYACON3 = "We'll see when you get there. With each step, we're getting closer to their leader."; +SWWM_SAYACON4 = "I am so ready for you to kick his ass. Fucker thinks he can start shit just like that? Hell no."; +SWWM_SAYACON5 = "Go get 'em, \cdDemo\c-!"; +// Eviternity MAP25 +SWWM_SAYASLA1 = "I wanna get off this wild ride... Please, please let it be the end, I'm so tired of Hell..."; // Eviternity MAP30 SWWM_SAYAEVIA1 = "Psch... Look at this place. This dude couldn't be more of a pretentious show-off if he tried."; SWWM_SAYAEVIA2 = "However \"angelic\" he may look, he's just some dude in pretty armor, so you can kick his ass."; @@ -256,3 +284,25 @@ SWWM_SAYAFOOL2 = "Shit, wait... Did I seriously forget to activate a license?"; SWWM_SAYAFOOL3 = "... ... Hold on... Just hold the fuck on... What even is Ultracam?"; SWWM_SAYAFOOL4 = "Oh for fuck's sake. This has to be Taro-nii's doing. Can't believe I fell for it. Damn it all."; SWWM_SAYAFOOL5 = "Well, I don't know how to get rid of it so... Just ignore it, I guess. I'll figure it out later."; +// corruption cards +SWWM_CYTHOCCA1 = "\cdDemolitionist\c-, do not be alarmed by what you've just witnessed."; +SWWM_CYTHOCCA2 = "This is all part of Prince Baphomet's plan. He has decided to test you."; +SWWM_CYTHOCCA3 = "I'm afraid there is no choice but for you to play along, and accept the cards you are being dealt."; +SWWM_CYTHOCCA4 = "Only time will tell if he's satisfied with the results."; +SWWM_CYTHOCCA5 = "All I can offer from my part is... To wish you luck. Good luck, \cdDemolitionist\c-."; +SWWM_CYTHOCCB1 = "What? And we gotta take it, just like that? I'm calling a lawyer."; // Saya reply +SWWM_CYTHOCCC1 = "\cgSaya\c-, you wouldn't want to take legal action against the second prince of Hell. That's very unwise."; +// grace of lilith +SWWM_SAYALILITHA1 = "WHAT IN THE NAME OF FUCK IS GOING ON???"; +SWWM_SAYALILITHA2 = "HELLO??? IS REALITY JUST BREAKING APART IN FRONT OF OUR EYES???"; +SWWM_SAYALILITHB1 = "Stay calm, \cgSaya\c-, this is the power of Matriarch Lilith at work. It's all an illusion."; // Cytho reply +SWWM_SAYALILITHC1 = "Good fucking grief... Is this why the archdemon generals are afraid of her?"; +SWWM_SAYALILITHD1 = "In part, yes. Among our kind, only Archlord Aximal can compare to her."; // Cytho reply +SWWM_SAYALILITHE1 = "Fucking... Hell."; +// ROM3R-0 +SWWM_SAYAROMEROA1 = "What the fuck? Is that John Romero?? Why is he a giant robot???"; +SWWM_SAYAROMEROB1 = "It's a long story. Him and his games were definitely popular among our people, back in the day."; // Cytho reply +SWWM_SAYAROMEROC1 = "That doesn't explain the robot."; +SWWM_SAYAROMEROD1 = "I'll summarize by saying it's just a robot, and I don't know why Lord Baphomet brought it here."; // Cytho reply +SWWM_SAYAROMEROD2 = "It's simply the last obstacle in the \cdDemolitionist\c-'s path."; +SWWM_SAYAROMEROE1 = "Romerobot's about to make you his bitch, huh..."; diff --git a/language.es_dlg b/language.es_dlg index b07847a57..345fce0df 100644 --- a/language.es_dlg +++ b/language.es_dlg @@ -68,6 +68,34 @@ SWWM_CYTHONERVE2 = "Muchos otros grupos ya han sido suprimidos a escala mundial, SWWM_CYTHONERVE3 = "Tú, sin embargo, te enfrentas a un teniente cibernético conocido como el \"Último Tirano\". Será difícil."; SWWM_CYTHONERVE4 = "Sin embargo... Eres la heroica \cdDemolicionista\c-, y les darás una lección a estas viles bestias."; SWWM_CYTHONERVE5 = "Extingue las llamas de corrupción demoníaca que mancillan esta tierra. Los Kuriste creemos en ti."; +// Eviternity MAP05 +SWWM_SAYADMN1 = "Creo que este es el lugar correcto, \cdDemo\c-. Me salen lecturas TOCHAS de energía."; +SWWM_SAYADMN2 = "Sí, un puñado de demonios esperando para echarte el guante. A ver, claro que iban a estar aquí."; +SWWM_SAYADMN3 = "Una advertencia, por cierto. Estos portales son inestables, puede que te desmayes al cruzarlos."; +SWWM_SAYADMN4 = "Oh, y malas noticias ya de paso. También vas a perder todos los trastos en el proceso."; +SWWM_SAYADMN5 = "El FRIKI ese asegura que no es a propósito, pero yo no me lo trago."; +SWWM_SAYADMN6 = "Lo más que puede hacer es \"ofrecer un set de equipamiento inicial\" tras el borrado."; +SWWM_SAYADMN7 = "No me gusta como parecía alegrarle el tema. Cuchicheaba algo sobre \"transiciones de episodio\"."; +SWWM_SAYADMN8 = "Oh bueno, da lo mismo... Maldito friki..."; +// Eviternity MAP10 +SWWM_SAYACRE1 = "Es que voy a poner a caldo a la UAC con toda esta mierda. Y una polla lo de la \"reparación\"."; +SWWM_SAYACRE2 = "Sus bases siguen infestadas de demonios. A ver, ¿Donde están los escuadrones de limpieza?"; +SWWM_SAYACRE3 = "Espera... ¿Somos nosotros el escuadrón de limpieza? ¿Esperaban que NOSOTROS hiciéramos su trabajo?"; +SWWM_SAYACRE4 = "Si el niñato Kelliher ese no me hubiera bloqueado, es que se iba a enterar, en serio."; +// Eviternity MAP15 +SWWM_SAYACRY1 = "¡La madre, este sitio es enorme!"; +SWWM_SAYACRY2 = "A ver. Ya sabes, ¿no? Busca el portal. Debería ser fácil de encontrar, bien señalizado, etc."; +SWWM_SAYACRY3 = "Por suerte, en cuanto cruces, por fin estarás en territorio Xevetha."; +SWWM_SAYACRY4 = "Cosas de la misión aparte, tengo muchas ganas de esto... Que viajes a un planeta lejano."; +SWWM_SAYACRY5 = "Andando, \cdDemo-chan\c-. Un nuevo mundo te espera."; +// Eviternity MAP20 +SWWM_SAYACON1 = "Lecturas densas de energía ardiente otra vez... Ambas sabemos exactamente lo que significa."; +SWWM_SAYACON2 = "No tengo claro donde te llevará el próximo portal, pero espero que se adentre en territorio enemigo."; +SWWM_SAYACON3 = "Ya veremos cuando llegues. Con cada paso, nos estamos acercando a su líder."; +SWWM_SAYACON4 = "Que ganas tengo de que le partas el culo. ¿Este cretino se cree que puede liarla así como así? Pues no."; +SWWM_SAYACON5 = "¡A por ellos, \cdDemo\c-!"; +// Eviternity MAP25 +SWWM_SAYASLA1 = "Que alguien pare esta mierda... Por favor, que se acabe ya, estoy hartísima de tanto Infierno..."; // Eviternity MAP30 SWWM_SAYAEVIA1 = "Pst... Mira este sitio. Este tío no podía ser más pretencioso ni aunque lo intentara."; SWWM_SAYAEVIA2 = "Da igual lo \"angelical\" que parezca, es solo un tío con armadura bonita, le puedes patear el culo."; @@ -247,3 +275,25 @@ SWWM_SAYAFOOL2 = "Mierda, espera... ¿En serio olvidé activar una licencia?"; SWWM_SAYAFOOL3 = "... ... Un momento... Espera un puto momento... ¿Que puñetas es Ultracam?"; SWWM_SAYAFOOL4 = "Ay la puta hostia. Esto tiene que ser cosa de Taro-nii. No me puedo creer que haya picado. Hostia puta."; SWWM_SAYAFOOL5 = "Bueno, no sé como quitarlo así que... Tú haz como si nada, supongo. Ya veré que hacer."; +// corruption cards +SWWM_CYTHOCCA1 = "\cdDemolicionista\c-, no te sientas alarmada por lo que has visto."; +SWWM_CYTHOCCA2 = "Es todo parte del plan del Príncipe Baphomet. Ha decidido ponerte a prueba."; +SWWM_CYTHOCCA3 = "Me temo que no tienes otra elección que jugar, aceptando las cartas que se te ofrecen."; +SWWM_CYTHOCCA4 = "Solo el tiempo dirá si se siente satisfecho con los resultados."; +SWWM_CYTHOCCA5 = "Lo único que puedo ofrecer de mi parte... Es desearte suerte. Buena suerte, \cdDemolicionista\c-."; +SWWM_CYTHOCCB1 = "¿Que? ¿Y se supone que tenemos que aceptarlo, así porque sí? Pienso llamar a un abogado."; // Saya reply +SWWM_CYTHOCCC1 = "\cgSaya\c-, no deberías tomar acciones legales contra el segundo príncipe del Infierno. Sería poco prudente."; +// grace of lilith +SWWM_SAYALILITHA1 = "¿¿¿PERO QUE COJONES ESTÁ PASANDO???"; +SWWM_SAYALILITHA2 = "¿¿¿HOLA??? ¿¿¿LA REALIDAD SE DESMORONA ANTE NUESTROS OJOS???"; +SWWM_SAYALILITHB1 = "Mantén la calma, \cgSaya\c-, este es el poder de la Matriarca Lilith. Es todo una ilusión."; // Cytho reply +SWWM_SAYALILITHC1 = "Su puta madre... ¿Es por esto que los generales archidemonios le tienen miedo?"; +SWWM_SAYALILITHD1 = "En parte, sí. De entre nosotros, solo el Archiseñor Aximal puede compararse a ella."; // Cytho reply +SWWM_SAYALILITHE1 = "Hostia... Joder."; +// ROM3R-0 +SWWM_SAYAROMEROA1 = "¿Que cojones? ¿¿Es ese John Romero?? ¿¿¿Por que es un robot gigante???"; +SWWM_SAYAROMEROB1 = "Es una larga historia. Él y sus juegos fueron antaño definitivamente populares entre nuestra gente."; // Cytho reply +SWWM_SAYAROMEROC1 = "Eso no explica el robot."; +SWWM_SAYAROMEROD1 = "Resumiré diciendo que es solo un robot, y no sé por que Lord Baphomet lo ha traido aquí."; // Cytho reply +SWWM_SAYAROMEROD2 = "Es simplemente el último obstáculo en el camino de la \cdDemolicionista\c-."; +SWWM_SAYAROMEROE1 = "Romerobot está a punto de hacerte su perra, hm..."; diff --git a/language.version b/language.version index e087bed3a..c84bda48a 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r246 \cu(Thu 4 Aug 13:35:29 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r246 \cu(2022-08-04 13:35:29)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r248 \cu(Thu 4 Aug 17:20:02 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r248 \cu(2022-08-04 17:20:02)\c-"; diff --git a/zscript/handler/swwm_handler_process.zsc b/zscript/handler/swwm_handler_process.zsc index d02cf2e16..84a3ee730 100644 --- a/zscript/handler/swwm_handler_process.zsc +++ b/zscript/handler/swwm_handler_process.zsc @@ -594,6 +594,10 @@ extend Class SWWMHandler if ( (e.Args[0] < 0) || (e.Args[0] > 9) ) return; WeaponFlash[e.Args[0]] = gametic+25; } + else if ( e.Name ~== "swwmccstart" ) + gdat.ccstartonce = true; + else if ( e.Name ~== "swwmcclilith" ) + gdat.cclilithonce = true; // cheats go here else CheatEvent(e); } diff --git a/zscript/handler/swwm_handler_uitick.zsc b/zscript/handler/swwm_handler_uitick.zsc index 8551968fe..4671d121e 100644 --- a/zscript/handler/swwm_handler_uitick.zsc +++ b/zscript/handler/swwm_handler_uitick.zsc @@ -7,6 +7,10 @@ extend Class SWWMHandler ui bool didextramsg; // april fools special ui bool didaprmsg; + // corruption cards stuff + ui bool incardmenu, cardmessaged; + bool dolilithmsg, doromerobotmsg; + ui bool didlilithmsg, didromerobotmsg; private ui void MapstartUITick() { @@ -23,6 +27,115 @@ extend Class SWWMHandler } didextramsg = true; } + if ( !didlilithmsg && !gdat.cclilithonce && dolilithmsg ) + { + if ( !swwm_nomapmsg ) + { + // saya's live freakout™ + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYALILITHA"; + msg.seqcnt = 2; + msg.delay = 1050; // give it about 15 seconds for it to happen + StatusBar.AttachMessage(msg,-1232); + let msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_CYTHOSNAME"),StringTable.Localize("$SWWM_CYTHONAME"),"Cytho"); + msg2.seqname = "SAYALILITHB"; + msg2.seqcnt = 1; + msg2.delay = 30; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg2.seqname = "SAYALILITHC"; + msg2.seqcnt = 1; + msg2.delay = 20; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_CYTHOSNAME"),StringTable.Localize("$SWWM_CYTHONAME"),"Cytho"); + msg2.seqname = "SAYALILITHD"; + msg2.seqcnt = 1; + msg2.delay = 40; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg2.seqname = "SAYALILITHE"; + msg2.seqcnt = 1; + msg2.delay = 50; + msg.nextmsg = msg2; + msg.nextdirect = true; + } + didlilithmsg = true; + SendNetworkEvent("swwmcclilith"); + } + if ( !didromerobotmsg && doromerobotmsg ) + { + if ( !swwm_nomapmsg ) + { + // rom3r-0 is about to make you his bitch + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYAROMEROA"; + msg.seqcnt = 1; + msg.delay = 50; + StatusBar.AttachMessage(msg,-1232); + let msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_CYTHOSNAME"),StringTable.Localize("$SWWM_CYTHONAME"),"Cytho"); + msg2.seqname = "SAYAROMEROB"; + msg2.seqcnt = 1; + msg2.delay = 40; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg2.seqname = "SAYAROMEROC"; + msg2.seqcnt = 1; + msg2.delay = 30; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_CYTHOSNAME"),StringTable.Localize("$SWWM_CYTHONAME"),"Cytho"); + msg2.seqname = "SAYAROMEROD"; + msg2.seqcnt = 2; + msg2.delay = 50; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg2.seqname = "SAYAROMEROE"; + msg2.seqcnt = 1; + msg2.delay = 70; + msg.nextmsg = msg2; + msg.nextdirect = true; + } + didromerobotmsg = true; + } + if ( ccloaded && !gdat.ccstartonce && !cardmessaged && (gamestate == GS_LEVEL) ) + { + let m = Menu.GetCurrentMenu(); + if ( m && (m.GetClassName() == 'CorruptionCardsSelector') ) incardmenu = true; + else if ( incardmenu ) + { + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_CYTHOSNAME"),StringTable.Localize("$SWWM_CYTHONAME"),"Cytho"); + msg.seqname = "CYTHOCCA"; + msg.seqcnt = 4; + msg.delay = 120; + StatusBar.AttachMessage(msg,-1232); + let msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg2.seqname = "CYTHOCCB"; + msg2.seqcnt = 1; + msg2.delay = 30; + msg.nextmsg = msg2; + msg.nextdirect = true; + msg = msg2; + msg2 = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_CYTHOSNAME"),StringTable.Localize("$SWWM_CYTHONAME"),"Cytho"); + msg2.seqname = "CYTHOCCC"; + msg2.seqcnt = 1; + msg2.delay = 45; + msg.nextmsg = msg2; + msg.nextdirect = true; + cardmessaged = true; + SendNetworkEvent("swwmccstart"); + } + } if ( didstartmsg ) return; if ( swwm_nomapmsg ) { @@ -324,6 +437,52 @@ extend Class SWWMHandler msg.delay = 40; StatusBar.AttachMessage(msg,-1232); } + // Eviternity + // MAP05 + else if ( csum ~== "33B8501B10CE5E2555C03725F765A914" ) + { + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYADMN"; + msg.seqcnt = 8; + msg.delay = 40; + StatusBar.AttachMessage(msg,-1232); + } + // MAP10 + else if ( csum ~== "9E83602D325677B8D7C3BC44BEF9B03F" ) + { + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYACRE"; + msg.seqcnt = 4; + msg.delay = 50; + StatusBar.AttachMessage(msg,-1232); + } + // MAP15 + else if ( csum ~== "CA40E6DDAB6B5C924CDC36B1F851421E" ) + { + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYACRY"; + msg.seqcnt = 5; + msg.delay = 30; + StatusBar.AttachMessage(msg,-1232); + } + // MAP20 + else if ( csum ~== "F34B3FD4D13AC763469A8E0D7379B9D0" ) + { + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYACON"; + msg.seqcnt = 5; + msg.delay = 50; + StatusBar.AttachMessage(msg,-1232); + } + // MAP25 + else if ( csum ~== "196BC735473C593F924A59B238574C35" ) + { + let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya"); + msg.seqname = "SAYASLA"; + msg.seqcnt = 1; + msg.delay = 120; + StatusBar.AttachMessage(msg,-1232); + } // Deathkings // Blight else if ( csum ~== "E3EFB0156A20ADF2DF00915A0EA85DF5" ) diff --git a/zscript/handler/swwm_handler_vanillaboss.zsc b/zscript/handler/swwm_handler_vanillaboss.zsc index 6022fb747..0699421b9 100644 --- a/zscript/handler/swwm_handler_vanillaboss.zsc +++ b/zscript/handler/swwm_handler_vanillaboss.zsc @@ -42,6 +42,20 @@ Class DSparilMessage : Inventory } } +Class ROM3R0Message : Inventory +{ + override void DoEffect() + { + if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) ) + { + //Console.PrintfEx(PRINT_CHAT,"\crROM3R-0\c-: "); // have no idea what he says, will set this later + let hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); + if ( hnd ) hnd.doromerobotmsg = true; + DepleteOrDestroy(); + return; + } + } +} extend Class SWWMHandler { String bosstag; @@ -399,6 +413,16 @@ extend Class SWWMHandler doextramsg = true; } } + if ( ccloaded && (e.Thing.GetClassName() == "CCards_Boss_Romero") ) + { + bossactors.Push(e.Thing); + e.Thing.StartHealth = e.Thing.Health *= 10; + if ( trk ) trk.bBOSS = true; + bosstag = "ROM3R-0.666"; + e.Thing.GiveInventory('BossMarker',1); + e.Thing.GiveInventory('EndgameBossMarker',1); + e.Thing.GiveInventory('ROM3R0Message',1); + } } private void VanillaBossTick() { diff --git a/zscript/handler/swwm_handler_worldthings.zsc b/zscript/handler/swwm_handler_worldthings.zsc index ab73b97ae..b3e0a365e 100644 --- a/zscript/handler/swwm_handler_worldthings.zsc +++ b/zscript/handler/swwm_handler_worldthings.zsc @@ -397,6 +397,8 @@ extend Class SWWMHandler e.Thing.DeathSound = "grunt/death"; e.Thing.ActiveSound = "grunt/active"; } + else if ( ccloaded && (e.Thing.GetClassName() == "CCards_Token_Glitched") ) + dolilithmsg = true; if ( SWWMUtility.IdentifyingDog(e.Thing) || SWWMUtility.IdentifyingCaco(e.Thing) || SWWMUtility.IdentifyingDrug(e.Thing) || SWWMUtility.IdentifyingDoubleBoi(e.Thing) ) { diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 4fee7946e..8c59d467d 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -26,6 +26,12 @@ Class SWWMHandler : EventHandler int iskdizd; Array bludtypes; + // mod inter-compat stuff + bool ccloaded; + + // session globals + SWWMGlobals gdat; + // profiling data bool profiling; int bprofiletics, profiletics; // how many tics to aggregate data for @@ -73,6 +79,12 @@ Class SWWMHandler : EventHandler hasdrlamonsters = true; break; } + for ( int i=0; i