diff --git a/FuturePlans.md b/FuturePlans.md index 5f8dc4573..ebcd4c9da 100644 --- a/FuturePlans.md +++ b/FuturePlans.md @@ -20,6 +20,7 @@ This is just a bit of *"future planning"* for stuff that I ***might*** add after - **[Heretic]** Doomguy Action Figure *("Oh, he gets one too?")* - **[Hexen]** Obelisk of the Golden Vale *("I puked out my guts when I touched that fucking thing")* * ***(Maybe)* Fake livestream chat overlay, with dynamic reactions to all sorts of stuff** +* **Visible legs in first person** * **DLC Gameset:** - Tetris - Pong diff --git a/cvarinfo.txt b/cvarinfo.txt index 154a6f8bb..6c8d17a7d 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -1,4 +1,4 @@ -// player +// main mod cvars user string swwm_voicetype = "default"; // voice for your demolitionist //user color swwm_tagcolor = "40 FF 00"; // color of your model tags, not available due to engine dickery user float swwm_flashstrength = 1.0; // strength of screen flashes @@ -89,7 +89,8 @@ user bool swwm_camhud = false; // keep full hud visible when operating cameras user bool swwm_rageshader = false; // alternate ragekit shader for people with photosensitivity server bool swwm_uncapalert = false; // all noise alerts have infinite range user int swwm_damagetarget = 0; // conditional healthbar hiding (1 - hide until damage is first taken, 2 - hide if at full health) -server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; //self-explanatory + +server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; // self-explanatory // cross-session achievement cvars (0: locked, 1: unlocked, 2: notified) nosave int swwm_achievement_gcsandwich = 0; diff --git a/gldefs.misc b/gldefs.misc index 7e0d3a0e1..0fe04ecc0 100644 --- a/gldefs.misc +++ b/gldefs.misc @@ -28,7 +28,7 @@ HardwareShader Texture "graphics/M_SWWM.png" Shader "shaders/glsl/LogoAnimated.fp" Texture "LogoTex" "graphics/M_SWWM_Layers.png" } -HardwareShader Sprite "BBRNB0" +HardwareShader Sprite "MBRNB0" { Shader "shaders/glsl/Whew.fp" } diff --git a/language.def_base b/language.def_base index 50e9eae32..afce58119 100644 --- a/language.def_base +++ b/language.def_base @@ -685,6 +685,19 @@ FN_BOSSBRAIN_FUN = "YOU WERE EXPECTING JOHN ROMERO BUT IT WAS ME, MARISA!"; FN_KEEN = "Commander Keen"; FN_KEEN_FUN = "Ruined by Bethesda"; FN_VOODOO = "Voodoo doll of %s"; +FN_PIG = "Pig"; +FN_PIG_FUN = "Porker"; +// eviternity tags +FN_ANGEL = "Archangelus"; +FN_ANGEL_FUN = "Motherfucking Angel"; +FN_ASTRAL = "Astral Cacodemon"; +FN_ASTRAL_FUN = "Gray Boy"; +FN_FCAPTAIN = "Former Captain"; +FN_FCAPTAIN_FUN = "Annoying Green Schmuck"; +FN_ANNIHIL = "Annihilator"; +FN_ANNIHIL_FUN = "Gray Goat"; +FN_NDEMON = "Nightmare Demon"; +FN_NDEMON_FUN = "Greenie"; // obituaries O_PUSHER = "%k opened some air holes into %o."; O_DEEPIMPACT = "%o was impacted deeply by %k."; @@ -714,6 +727,7 @@ O_PUNTZERBETA = "%k drilled a hole through %o."; O_PUNTZERGAMMA = "%k drilled several holes through %o."; O_SHEENHMG = "%k drowned %o in bullets."; O_QUADRAVOL = "%k made delicious barbecue out of %o."; +O_QUADRAVOL2 = "%o was gravely roasted by %k."; O_BLACKFIRE = "%k turned %o into a popsicle."; O_BLACKFIRE2 = "%o was very coldly impaled by %k."; O_EMPCARBINE = "%o was quite shocked by %k's lightning powers."; @@ -817,6 +831,14 @@ OB_FBOSS = "%o was green'd by the fighty boi's Lame Sword."; OB_MBOSS = "%o was assploded by the magic boi's Explodey Staff."; OB_CBOSS = "%o was ghosted by the holy boi's Ghostpenis."; OB_HERESIARCH = "%o saw that coming."; +DEFOB_PIG = "%o angered the hams."; // gzdoom will look this up since it has no obituary assigned +// eviternity obituaries +OB_FCAPTAIN = "%o was zapped by an angry green lad."; +OB_ANNIHIL = "%o ate cybergoat rocket."; +OB_NDEMON = "%o got scronched."; +OB_ANGEL1 = "%o pissed off that angel."; +OB_ANGEL2 = "%o really pissed off that angel."; +OB_ASTRAL = "%o got scorched by a gray ball friend."; // misc D_BLASTSUIT = "The Blast Suit broke down."; D_GHOSTARTI = "The Ghost Artifact ran out of energy."; @@ -884,6 +906,9 @@ BT_MAGE_FUN = "Menelkir the Magic Boi"; BT_DRAGON_FUN = "A Motherfucking Dragon"; BT_HERESIARCH_FUN = "Very Pissed Off Red Dude"; BT_KORAX_FUN = "Korax the Big Stinky Ugly Bastard"; +// eviternity +BT_ARCHANGELUS = "Archangelus, Celestial Agent"; +BT_ARCHANGELUS_FUN = "Big Fucking Angel Dude"; // targetter SWWM_OVERKILL = "Overkill"; SWWM_MULTIKILL = "Multi Kill"; @@ -894,7 +919,7 @@ SWWM_NEXIT = "Exit"; SWWM_SEXIT = "Secret Exit"; SWWM_LEG = "Legendary "; SWWM_LEGPREFIX = "L"; -SWWM_LTFORM = "\cfLegendary %s\cf has transformed!"; +SWWM_LTFORM = "\cfLegendary %s\cf has transformed!\c-"; SWWM_SHAMEFUL = "Humiliation"; SWWM_BUTTSLAM = "Buttslam"; SWWM_LOVED = "L\cg♥\c-VE"; @@ -990,7 +1015,7 @@ SWWM_INTERTIP77 = "AAA gaming is rotten to the core. Support small developers wh SWWM_INTERTIP78 = "Xenia > Tux\n\nBring back the cool Linux fox girl. Penguins suck."; SWWM_INTERTIP79 = "The only good nazi is a dead nazi."; SWWM_INTERTIP80 = "Ceci n'est pas un conseil."; -SWWM_INTERTIP81 = "Age only affects appearance, and has no bearing on ability. Gender has no bearing on ability. Everyone has imperfections, prejudice births malcontents, become a dark spirit.\n\nTime for crab."; +SWWM_INTERTIP81 = "Age only affects appearance, and has no bearing on ability. Gender has no bearing on ability. Everyone has imperfections, prejudice births malcontents, become a dark spirit.\nTime for crab."; SWWM_INTERTIP82 = "\"IF THE ZOO BANS ME FOR HOLLERING AT THE ANIMALS I WILL FACE GOD AND WALK BACKWARDS INTO HELL\" — dril"; SWWM_INTERTIP83 = "SWWM GZ is truly Some Weird Weapons Mod for GZDoom."; SWWM_INTERTIP84 = "\"In its vastness, the universe is no more than a mere grain of sand when compared to the limitless bounds of one's imagination.\" — Zanaveth Nekuraku III"; diff --git a/language.def_menu b/language.def_menu index fe08b829b..abf81771a 100644 --- a/language.def_menu +++ b/language.def_menu @@ -398,6 +398,20 @@ SWWM_MISSION_DOOM = "You are our last hope, so fight, \cfDemo-chan\c-, fight for those you want to protect, for all of us... Make those bastards pay.\n" "\n" "Saya out."; +SWWM_MISSION_EVITERNITY = +"Welcome to this side mission, \cfDemolitionist\c-. So shit has hit the fan once again, after we thought all got fixed up, and guess WHO is behind it: The motherfucking \cfUAC\c-!\n" +"\n" +"So I go into twitter this morning, yeah, and the whole timeline is fucking blasting at hyperspeed with people talking to \cfCytho-sama\c-, I go check what he's written and color me surprised, the fucking demons are so asshurt they've gone and formed an alliance with the \"angels\"! Yeah, those people, the \cfXevetha\c-, you know, from the times of the \cfSUSAN\c- AI, and their involvements with \cfImanaki Corp\c-, and the UAC stealing their tech and dismantling the bigass thing after it went boom... Yeah, I know it's a long story, but that's what the \cfLibrary\c- is for, if you want to get informed.\n" +"\n" +"Anyway, on with the objectives. You're getting your shiny metal butt sent to \cfKereshnovka\c-, or at least, somewhere around it. Those idiots have a sort of base set up there already with fancy castles and whatnot, and you're gonna break in and tear it apart. Somewhere in there you should find a portal to an UAC base on \cfUrkai\c-, yes, THEIR world. Those fucks had this well-hidden, oh sure. And they got their asses betrayed for it, as expected. Can't trust those fake-ass angels, huh...\n" +"\n" +"From there on, just keep tracing back until you get to the mastermind behind it all, and kick their ass. Like with that big demon, the others will follow if you take them out, for sure. This is going to be a very interesting mission, gonna be glued to the screen watching you explode some knees in there.\n" +"\n" +"As per usual, nerdboy will yeet supplies all over the place for you to find. You can't even begin to understand how much he annoys me with all that videogamey crap, seriously. I would very much prefer to send you in there guns blazing with your whole arsenal, but that's \"not standard protocol\" he says. Fucking hell...\n" +"\n" +"Whatever, go forth and kick ass, \cfDemo-chan\c-!\n" +"\n" +"Saya out."; SWWM_MISSION_HERETIC = "Welcome to your second mission, \cfDemolitionist\c-. While things have calmed down over here, we've been able to resume our work on the \cfAkari Project\c-. You know, the important one I've wanted to work on all my life. So far it's been a success, and you'll be the first to take part in the exploration of other worlds. We've scoured the multiverse for all sorts of interesting places, and this one in particular caught our eye. It is called \cfParthoris\c-, it's a realm of magic and elves and stuff, I dig it. Anyway, I hope the ride wasn't too bumpy, we haven't fine-tuned that yet.\n" "\n" @@ -452,6 +466,14 @@ SWWM_HELP_STORYDOOM = "That's where you come in, \cfDemolitionist\c-. You are the crowning achievement of \cfAkari Labs\c-, the culmination of weeks of hasty planning and thorough training, but you're still good. You can do this, you can kick demon ass like there's no tomorrow, and send those bastards back to \cfHell\c- where they belong.\n" "\n" "So go, \cfDemolitionist\c-, show them all what you're capable of.\n"; +SWWM_HELP_STORYEVITERNITY = +"The year is uncertain. Sometime after the success of the \cfDemolitionist\c- in defeating the invading demonic forces on \cfEarth\c-, a new danger has arisen. Dreadful news come from mankind's only reliable contact in \cfHell\c-, \cfArchduke Cytho Valathor\c-:\n" +"\n" +"\cf\"Through stolen UAC technology, the Demons have come into contact with the Xevetha race, and plan on forming an alliance, a union of hellish and celestial strength, to take the fight back to Earth once more.\"\c-\n" +"\n" +"The \cfXevetha\c-, self-proclaimed divine beings, a mockery of angels and gods that they are, they've been here before, their plans of conquest and destruction foiled before in 2097. It was clear that no good would come from the \cfUAC\c- tampering with their technology, and now once again someone has to clean up the mess they've made. That someone, as expected, is the \cfUAC\c-'s own prized errand boy.\n" +"\n" +"\cfSaya\c- as usual is not too happy with this. It's time for you to win this race once again, and you will face angels, gods, or whatever to get the job done."; SWWM_HELP_STORYHERETIC = "It is the year 2171. It's been decades since the \cfHell\c- invasion had happened, and things have calmed down. However, something's brewing at \cfAkari Labs\c-.\n" "\n" diff --git a/language.def_strife b/language.def_strife index 37430e7d5..bd742cc89 100644 --- a/language.def_strife +++ b/language.def_strife @@ -1,4 +1,14 @@ [default] // Strife mission texts +TXT_FINDHELP = +"Well, \cfDemo-chan\c-, this is a problem. You clearly drew too much attention, a random robot just popping up out of nowhere, armed and ready for combat. No wonder the cops jumped on your shiny metal ass right away.\n" +"\n" +"Y'know, I don't think these guys really pulled you in here for questioning, so... maybe it's time to \"act in self-defense\", don't you think?\n" +"\n" +"Anyway, after you beat 'em up, head back out and look for some way to contact the resistance forces in here, this \cf\"Front\"\c-. Just try not to draw any more unwanted attention.\n" +"\n" +"By the way, this place is full of civilians, so you better watch your fire, alright? We don't want any unnecessary deaths in here, no sir.\n" +"\n" +"Saya out."; // Strife dialogue texts // Strife actor tags diff --git a/language.es_base b/language.es_base index 25a13def2..89de17d65 100644 --- a/language.es_base +++ b/language.es_base @@ -634,6 +634,18 @@ FN_HERESIARCH_FUN = "Hostia Puta"; FN_BOSSBRAIN_FUN = "¡ESPERABAS A JOHN ROMERO PERO ERA YO, MARISA!"; FN_KEEN_FUN = "Arruinado por Bethesda"; FN_VOODOO = "Muñeco Vudú de %s"; +FN_PIG = "Cerdo"; +FN_PIG_FUN = "Cochinillo"; +// eviternity tags +FN_ANGEL_FUN = "Un Puto Ángel"; +FN_ASTRAL = "Cacodemonio Astral"; +FN_ASTRAL_FUN = "Bolita Gris"; +FN_FCAPTAIN = "Capitan Zombi"; +FN_FCAPTAIN_FUN = "Capullo Verde Tocanarices"; +FN_ANNIHIL = "Aniquilador"; +FN_ANNIHIL_FUN = "Cabra Gris"; +FN_NDEMON = "Demonio de Pesadilla"; +FN_NDEMON_FUN = "Verdín"; // obituaries O_PUSHER = "%k le abrió unos agujeros de ventilación a %o."; O_DEEPIMPACT = "%o fue impactad@[ao_esp] profundamente por %k."; @@ -663,6 +675,7 @@ O_PUNTZERBETA = "%k taladró un agujero a través de%o."; O_PUNTZERGAMMA = "%k taladró varios agujeros a través de %o."; O_SHEENHMG = "%k ahogó a %o en balas."; O_QUADRAVOL = "%k hizo deliciosa barbacoa de %o."; +O_QUADRAVOL2 = "%o fue ensartad@[ao_esp] por %k."; O_BLACKFIRE = "%k convirtió a %o en un helado."; O_BLACKFIRE2 = "%o fue empalado muy fríamente por %k."; O_EMPCARBINE = "%o quedó en shock tras presenciar los poderes de rayo de %k."; @@ -766,6 +779,14 @@ OB_FBOSS = "%o fue verdeado por la espada esa del tío ciclao."; OB_MBOSS = "%o fue reventado por la varita explosiva esa del tío mágico."; OB_CBOSS = "%o fue fantasmado por la verga fantasma del tío santurrón."; OB_HERESIARCH = "%o lo vio venir."; +DEFOB_PIG = "%o enfureció a los jamones."; // gzdoom will look this up since it has no obituary assigned +// eviternity obituaries +OB_FCAPTAIN = "%o fue chispad@[ao_esp] por un tío verde cabreado."; +OB_ANNIHIL = "%o comió cohete de cibercabra."; +OB_NDEMON = "%o fue estronchad@[ao_esp]."; +OB_ANGEL1 = "%o cabreó a ese ángel."; +OB_ANGEL2 = "%o cabreó mucho a ese ángel."; +OB_ASTRAL = "%o fue escaldad@[ao_esp] por una amigable bola gris."; // misc D_BLASTSUIT = "El Chaleco Antiexplosivos se ha roto."; D_GHOSTARTI = "El Artefacto Fantasma se ha agotado."; @@ -824,6 +845,9 @@ BT_MAGE_FUN = "Menelkir el Mágico"; BT_DRAGON_FUN = "Un Puñetero Dragón"; BT_HERESIARCH_FUN = "Tío Rojo Muy Cabreado"; BT_KORAX_FUN = "Korax el Bastardo Feo Asqueroso"; +// eviternity +BT_ARCHANGELUS = "Archangelus, Agente Celestial"; +BT_ARCHANGELUS_FUN = "Un Putísimo Ángel Enorme"; // targetter SWWM_MULTIKILL = "Racha"; SWWM_SPREEKILL = "Intocable"; @@ -833,7 +857,7 @@ SWWM_NEXIT = "Salida"; SWWM_SEXIT = "Salida Secreta"; SWWM_LEG = " Legendario"; SWWM_LEGPREFIX = "R"; -SWWM_LTFORM = "\cf¡%s\cf Legendario se ha transformado!"; +SWWM_LTFORM = "\cf¡%s\cf Legendario se ha transformado!\c-"; SWWM_SHAMEFUL = "Humillación"; SWWM_BUTTSLAM = "Culazo"; // score messages @@ -923,7 +947,7 @@ SWWM_INTERTIP76 = "Te he enseñado mi consejo de intermisión contesta pls."; SWWM_INTERTIP77 = "El gaming AAA está podrido hasta la médula. Apoya a los pequeños desarrolladores siempre que puedas."; SWWM_INTERTIP78 = "Xenia > Tux\n\nDevolvednos a la chica zorro molona de Linux. Los pingüinos apestan."; SWWM_INTERTIP79 = "El único nazi bueno es un nazi muerto."; -SWWM_INTERTIP81 = "La edad solo afecta a la apariencia, y no tiene relación a la habilidad. El género no tiene relación a la habilidad. Todo el mundo tiene imperfecciones, los prejuicios traen consigo malcontentos, conviertete en un espíritu oscuro.\n\nHora de cangrejo."; +SWWM_INTERTIP81 = "La edad solo afecta a la apariencia, y no tiene relación a la habilidad. El género no tiene relación a la habilidad. Todo el mundo tiene imperfecciones, los prejuicios traen consigo malcontentos, conviertete en un espíritu oscuro.\nHora de cangrejo."; SWWM_INTERTIP82 = "\"SI EL ZOO ME PROHIBE LA ENTRADA POR GRITAR A LOS ANIMALES HARÉ FRENTE A DIOS Y CAMINARÉ DE ESPALDAS AL INFIERNO\" — dril"; SWWM_INTERTIP83 = "SWWM GZ es realmente Un Extraño Mod de Armas (Some Weird Weapons Mod) para GZDoom."; SWWM_INTERTIP84 = "\"En su inmensidad, el universo no es más que un mero grano de arena cuando se compara a los límites ilimitados de nuestra imaginación.\" — Zanaveth Nekuraku III"; diff --git a/language.es_menu b/language.es_menu index 5911a898e..e67837cee 100644 --- a/language.es_menu +++ b/language.es_menu @@ -397,6 +397,20 @@ SWWM_MISSION_DOOM = "Eres nuestra última esperanza, así que lucha, \cfDemo-chan\c-, lucha por aquellos que quieres proteger, por todos nosotros... Haz que esos bastardos lo paguen.\n" "\n" " — Saya"; +SWWM_MISSION_EVITERNITY = +"Bienvenida a esta misión extra, \cfDemolicionista\c-. Pues resulta que se ha liado parda otra vez, después de que pensáramos que estaba todo arreglado, y adivina QUIÉN está detrás: ¡la puta \cfUAC\c-!\n" +"\n" +"Pues resulta que me meto en twitter esta mañana, y está el mensajeo pasando a toda hostia con gente hablándole a \cfCytho-sama\c-, voy a mirar que ha escrito y mira tu por donde, ¡los putos demonios están tan cabreados que van y forman una alianza con los \"ángeles\"! Sí, esa gente, los \cfXevetha\c-, ya sabes, de aquellos tiempos de la IA \cfSUSAN\c-, y todo el embrollo con \cfImanaki Corp\c-, y la UAC robando su tecnología y desmantelando el cacharro enorme ese después de que se reventara... Pues sí, sé que es una historia larga, pero para eso está la \cfBiblioteca\c-, si quieres informarte.\n" +"\n" +"En fin, vamos con los objetivos. Van a mandar tu brillante trasero metálico a \cfKereshnovka\c-, o al menos, por ahí cerca. Esos idiotas tienen una especie de base ahí montada ya con sus castillitos y tal, y vas a meterte dentro y cargártelo todo. Por ahí deberías encontrar un portal a una base de la UAC en \cfUrkai\c-, sí, el mundo de ELLOS. Esos hijos de perra lo tenían todo bien escondido, vaya que sí. Y los jodieron pero bien por eso, como era de esperar. No se puede fiar uno de esos ángeles de pega, anda que...\n" +"\n" +"Desde ahí, tú sigue el rastro hasta que encuentres a quien esté a cargo de todo este tinglado, y patéale el culo. Igual que con el demonio grandote ese, los otros caerán también en cuanto te lo cargues, seguro. Esta va a ser una misión muy interesante, voy a estar pegada a la pantalla viendo como explotas rodillas por ahí.\n" +"\n" +"Y como siempre, el friki ese ha ciscado todos los suministros por ahí para que los encuentres. Es que no sabes lo que me incordia con toda esa mierda de hacerlo todo como en un videojuego. Preferiría mucho mandarte ahí a tope con todo tu arsenal, pero eso \"no es el protocolo estándar\" me suelta. Lo que hay que oír...\n" +"\n" +"Pues nada, ¡ve y patea traseros, \cfDemo-chan\c-!\n" +"\n" +" — Saya"; SWWM_MISSION_HERETIC = "Bienvenida a tu segunda misión, \cfDemolicionista\c-. Mientras se calma un poco la cosa por aquí, hemos podido retomar nuestro trabajo en el \cfProyecto Akari\c-. Ya sabes, ese tan importante en el que quise trabajar toda la vida. Por ahora todo bien, todo correcto, y vas a ser la primera en tomar parte en la exploración de otros mundos. Hemos rebuscado por el multiverso para encontrar algunos sitios interesantes, y este en particular nos llamó la atención. Se llama \cfParthoris\c-, es un reino de magia y elfos y tal, me mola. Pues eso, espero que el viaje no haya sido muy movido, aún no hemos afinado esa parte.\n" "\n" @@ -451,6 +465,14 @@ SWWM_HELP_STORYDOOM = "Y ahí es donde haces tu entrada, \cfDemolicionista\c-. Eres el mayor logro de \cfAkari Labs\c-, la culminación de semanas de planificación apurada y duro entrenamiento, pero eres lo mejor que hay. Puedes hacerlo, puedes patearles el trasero a esos demonios como si no hubiera un mañana, y mandar a esos bastardos de vuelta al \cfInfierno\c- donde tienen que estar.\n" "\n" "Así que ve, \cfDemolicionista\c-, enséñales a todos lo que eres capaz de hacer."; +SWWM_HELP_STORYEVITERNITY = +"El año es incierto. Algún tiempo después del éxito de la \cfDemolicionista\c- al derrotar las fuerzas demoníacas invasoras en la \cfTierra\c-, un nuevo peligro ha surgido. Vienen noticias terribles del único contacto fiable que la humanidad tiene en el \cfInfierno\c-, el \cfArchiduque Cytho Valathor\c-:\n" +"\n" +"\cf\"Usando tecnología robada de la UAC, los Demonios han tomado contacto con la raza de los Xevetha, y planean formar una alianza, una unión de fuerza infernal y celestial, para traer de nuevo su batalla a la Tierra.\"\c-\n" +"\n" +"Los \cfXevetha\c-, autoproclamados entes divinos, una parodia de ángeles y dioses que son, han estado aquí antes, con sus planes de conquista y destrucción habiendo sido frustrados en 2097. Estaba claro que nada bueno vendría de que la \cfUAC\c- metiese las manos en su tecnología, y ahora una vez más alguien tiene que limpiar este desastre que han hecho. Ese alguien, como es de esperar, es el preciado recadero de la \cfUAC\c-.\n" +"\n" +"A \cfSaya\c- como siempre no le gusta nada eso. Es hora de que vuelvas a ganar esta carrera, y te enfrentarás a ángeles, dioses, o lo que sea para terminar el trabajo."; SWWM_HELP_STORYHERETIC = "Estamos en el año 2171. Han pasado décadas desde que ocurrió la invasión del \cfInfierno\c-, y las cosas se han calmado. Sin embargo, algo se cuece dentro de \cfAkari Labs\c-.\n" "\n" diff --git a/language.es_strife b/language.es_strife new file mode 100644 index 000000000..f2bb64012 --- /dev/null +++ b/language.es_strife @@ -0,0 +1,14 @@ +[es] +// Strife mission texts +TXT_FINDHELP = +"Bueno, \cfDemo-chan\c-, esto es un problema. Parece que acabas de llamar bastante la atención, un robot así de repente apareciendo de la nada, armado y listo para el combate. No me extraña que la pasma se haya echado encima de tu brillante trasero metálico así de repente.\n" +"\n" +"Sabes, no creo que estos tipos te hayan traído aquí para interrogarte, así que... a lo mejor es hora de \"actuar en defensa propia\", ¿no crees?\n" +"\n" +"En fin, en cuanto te los cargues, vuelve fuera y busca alguna forma de contactar con la resistencia de por aquí, ese tal \cf\"Frente\"\c-. Solo intenta no llamar más la atención.\n" +"\n" +"Por cierto, este sítio está lleno de civiles, así que cuidado al disparar, ¿vale? No queremos muertes innecesarias por aquí, desde luego.\n" +"\n" +" — Saya"; +// Strife dialogue texts +// Strife actor tags diff --git a/language.version b/language.version index e1013fd29..9b9c6d43b 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r645 \cu(Fri 27 Nov 17:18:05 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r646 \cu(Sat 28 Nov 22:03:01 CET 2020)"; diff --git a/sprites/bossbrain/BBRNA0.png b/sprites/bossbrain/MBRNA0.png similarity index 100% rename from sprites/bossbrain/BBRNA0.png rename to sprites/bossbrain/MBRNA0.png diff --git a/sprites/bossbrain/BBRNB0.png b/sprites/bossbrain/MBRNB0.png similarity index 100% rename from sprites/bossbrain/BBRNB0.png rename to sprites/bossbrain/MBRNB0.png diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index ad8f7a7b6..dba0ecb31 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -144,6 +144,197 @@ Class SWWMDroppedKeen : Actor } } +Class SWWMBossBrainExpl : Actor +{ + void A_Ignite() + { + A_QuakeEx(3,3,3,20,0,400,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollintensity:2.); + A_StartSound("explodium/hit",CHAN_VOICE,CHANF_DEFAULT,.4,.5); + Scale *= FRandom[ExploS](0.8,1.1); + Scale.x *= RandomPick[ExploS](-1,1); + Scale.y *= RandomPick[ExploS](-1,1); + int numpt = Random[ExploS](8,16); + for ( int i=0; i statlist; @@ -144,6 +146,17 @@ Class SWWMKnowledgeBaseMenu : GenericMenu tmsgtic = gametic+70; lasttuid = Random[TUID](); hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); + // mission text + // TODO per-cluster messages + if ( gameinfo.gametype&GAME_Doom ) + { + if ( SWWMUtility.IsEviternity() ) missionstr = "$SWWM_MISSION_EVITERNITY"; + else missionstr = "$SWWM_MISSION_DOOM"; + } + else if ( gameinfo.gametype&GAME_Heretic ) missionstr = "$SWWM_MISSION_HERETIC"; + else if ( gameinfo.gametype&GAME_Hexen ) missionstr = "$SWWM_MISSION_HEXEN"; + else if ( gameinfo.gametype&GAME_Strife ) missionstr = players[consoleplayer].logtext; // just show the quest log + else missionstr = "$SWWM_MISSION_NONE"; if ( gameinfo.gametype&GAME_Heretic ) { // March 10th 2171, 17:34 JST @@ -366,11 +379,7 @@ Class SWWMKnowledgeBaseMenu : GenericMenu } else if ( curtab == TAB_MISSION ) { - String str = StringTable.Localize("$SWWM_MISSION_NONE"); - if ( gameinfo.gametype&GAME_Doom ) str = StringTable.Localize("$SWWM_MISSION_DOOM"); - else if ( gameinfo.gametype&GAME_Heretic ) str = StringTable.Localize("$SWWM_MISSION_HERETIC"); - else if ( gameinfo.gametype&GAME_Hexen ) str = StringTable.Localize("$SWWM_MISSION_HEXEN"); - else if ( gameinfo.gametype&GAME_Strife ) str = StringTable.Localize(players[consoleplayer].logtext); + String str = StringTable.Localize(missionstr); BrokenLines l = fnt.BreakLines(str,629); if ( l.Count() > 28 ) l = fnt.BreakLines(str,620); if ( (l.Count() > 28) && (sel0 < l.Count()-28) ) @@ -796,11 +805,7 @@ Class SWWMKnowledgeBaseMenu : GenericMenu { // are we clicking where the scrollbar should be? if ( mpos.x < 632 ) return res; - String str = StringTable.Localize("$SWWM_MISSION_NONE"); - if ( gameinfo.gametype&GAME_Doom ) str = StringTable.Localize("$SWWM_MISSION_DOOM"); - else if ( gameinfo.gametype&GAME_Heretic ) str = StringTable.Localize("$SWWM_MISSION_HERETIC"); - else if ( gameinfo.gametype&GAME_Hexen ) str = StringTable.Localize("$SWWM_MISSION_HEXEN"); - else if ( gameinfo.gametype&GAME_Strife ) str = StringTable.Localize(players[consoleplayer].logtext); + String str = StringTable.Localize(missionstr); BrokenLines l = fnt.BreakLines(str,629); if ( l.Count() > 28 ) l = fnt.BreakLines(str,620); else return res; // no scrollbar @@ -1330,11 +1335,7 @@ Class SWWMKnowledgeBaseMenu : GenericMenu { if ( curtab == TAB_MISSION ) { - String str = StringTable.Localize("$SWWM_MISSION_NONE"); - if ( gameinfo.gametype&GAME_Doom ) str = StringTable.Localize("$SWWM_MISSION_DOOM"); - else if ( gameinfo.gametype&GAME_Heretic ) str = StringTable.Localize("$SWWM_MISSION_HERETIC"); - else if ( gameinfo.gametype&GAME_Hexen ) str = StringTable.Localize("$SWWM_MISSION_HEXEN"); - else if ( gameinfo.gametype&GAME_Strife ) str = StringTable.Localize(players[consoleplayer].logtext); + String str = StringTable.Localize(missionstr); BrokenLines l = fnt.BreakLines(str,629); if ( l.Count() > 28 ) l = fnt.BreakLines(str,620); else return res; // no scrollbar @@ -2488,11 +2489,7 @@ Class SWWMKnowledgeBaseMenu : GenericMenu // draw contents if ( curtab == TAB_MISSION ) { - if ( gameinfo.gametype&GAME_Doom ) str = StringTable.Localize("$SWWM_MISSION_DOOM"); - else if ( gameinfo.gametype&GAME_Heretic ) str = StringTable.Localize("$SWWM_MISSION_HERETIC"); - else if ( gameinfo.gametype&GAME_Hexen ) str = StringTable.Localize("$SWWM_MISSION_HEXEN"); - else if ( gameinfo.gametype&GAME_Strife ) str = StringTable.Localize(players[consoleplayer].logtext); - else str = StringTable.Localize("$SWWM_MISSION_NONE"); + String str = StringTable.Localize(missionstr); BrokenLines l = fnt.BreakLines(str,629); if ( l.Count() > 28 ) l = fnt.BreakLines(str,620); xx = 6; diff --git a/zscript/swwm_utility.zsc b/zscript/swwm_utility.zsc index 1866b430e..e5883b830 100644 --- a/zscript/swwm_utility.zsc +++ b/zscript/swwm_utility.zsc @@ -613,13 +613,12 @@ Class SWWMUtility case 'Cyberdemon': basetag = "CYBER"; break; - case 'BossBrain': + case 'SWWMBossBrain': basetag = "BOSSBRAIN"; break; case 'WolfensteinSS': basetag = "WOLFSS"; break; - case 'CommanderKeen': case 'SWWMHangingKeen': basetag = "KEEN"; break; @@ -722,6 +721,26 @@ Class SWWMUtility case 'Heresiarch': basetag = "HERESIARCH"; break; + case 'Pig': + basetag = "PIG"; + break; + // eviternity + case 'ArchangelusA': + case 'ArchangelusB': + basetag = "ANGEL"; + break; + case 'AstralCaco': + basetag = "ASTRAL"; + break; + case 'Annihilator': + basetag = "ANNIHIL"; + break; + case 'FormerCaptain': + basetag = "FCAPTAIN"; + break; + case 'NightmareDemon': + basetag = "NDEMON"; + break; } if ( basetag == "" ) return a.GetTag(defstr); String funtag = "FN_"..basetag.."_FUN"; @@ -878,6 +897,7 @@ Class SWWMUtility if ( a is 'Cacodemon' ) return true; if ( a.Species == 'RLCacodemon' ) return true; // DRLA if ( a.Species == 'Caco' ) return true; // CH + if ( a.GetClassName() == 'AstralCaco' ) return true; // Eviternity return false; } @@ -913,6 +933,18 @@ Class SWWMUtility return true; return false; } + + // detect eviternity (naive method) + static bool IsEviternity() + { + for ( int i=0; i