I'm afraid the plans for strife support have been cancelled.

This commit is contained in:
Mari the Deer 2021-03-21 16:22:26 +01:00
commit 8c47601d90
38 changed files with 66 additions and 388 deletions

View file

@ -26,6 +26,16 @@ This is just a bit of *"future planning"* for stuff that I ***might*** add after
* **Expand third person animations**
- 4-directional movement variants
- Height-dependent headpats (current animation was designed for dogs on same floor)
* **Additional gestures + gesture menu**
- Dab (loud and bassy, alerts monsters)
- Airhorn (unlimited range A_AlertMonsters, to unbreak vanilla teleport closets)
- Clap
- The Finger
- A Magic Trick (yes, it's THAT one)
- Thumbs Down
- Horns
- Picture Perfect (takes a screenshot with hud disabled and a cute frame around it)
- Giggle
* **DLC Gameset:**
- Tetris
- Pong
@ -43,7 +53,6 @@ This is just a bit of *"future planning"* for stuff that I ***might*** add after
- Saya
- Kirin
* **Japanese localization???**
* **Strife support, with rewritten dialogue**
* **Monster/decoration replacements add-on**
* **Hardcore Mode side mod**
- Featuring Demolitionist on Maidbot frame

View file

@ -32,13 +32,6 @@
- Monster/decoration replacement packs. All of it modeled and tweaked to fit the style and theme of the mod. Expect enhanced enemy behavior, not gonna keep it "vanilla".
- Porting weapons to Hideous Destructor as a meme.
**Fight for the Front and freedom. Move out!:**
- Oh boy, Strife support time.
- Let's get that VN dialogue system going.
- Voice acting? Maybe not, I'd need people to re-voice all Strife NPCs.
- Oh god I have to do dialogue sprites for all characters. Maybe I can get someone else for the job?
**At this point I'm just making shit up:**
- Official comic.

View file

@ -17,9 +17,5 @@
**Very extra things for the future:**
- Strife support
- Rewrite all the game's dialogue
- Rewrite all the shop systems and other things
- Rewrite the cutscenes
- Saya and Ibuki companion add-ons (potentially a Kirin companion too)
- Modelled Monster/Decoration replacers for all IWADs done in the style of the mod (will be very time consuming)
- Modeled Monster/Decoration replacers for all IWADs done in the style of the mod (will be very time consuming)

View file

@ -588,7 +588,6 @@ D_FROGGY2 = "\cj... for \cdFroggy Chair\cj.\c-";
D_BARRIER = "The Elemental Coating wore off.";
D_MASHIRO = "\cjShe knows where you are...\c-";
SWWM_YNYKRONREADY = "Ynykron Artifact ready for firing.";
SWWM_YNYKRONLOCKED = "Ynykron Artifact not authorized for use.";
SWWM_SWAPWEAPON = "\cjPress \cfUse\cj to swap \cf%s\cj for \cf%s\cj.\c-";
SWWM_TITLEPRESENTS = "presents";
SWWM_TITLEMODBY = "a mod by \cxMarisa Kirisame";

File diff suppressed because one or more lines are too long

View file

@ -608,16 +608,6 @@ SWWM_HELP_STORYHEXEN =
"But that does not matter, you will definitely kick his ass no problem, provided you can get past the many obnoxious puzzles and contraptions that await along the way.\n"
"\n"
"These people sure do love their god damn puzzles, don't you think?";
SWWM_HELP_STORYSTRIFE =
"It is the year 2173. After a long period of rest from their last adventure, the \cfDemolitionist\c- is once again ready to go out there and save another world.\n"
"\n"
"This time, you find yourself in an oddly anachronistic setting, medieval architecture intermixed with modern technology. However, not all seems to be well in here, a powerful group, known as \cfThe Order\c-, dominates the land and controls all of this cool tech. They are very clearly evil, so you know what to do.\n"
"\n"
"Your mission is to contact the main resistance force, \cfThe Front\c-. Once you've done so, you must join them in defeating the enemy, and bring peace to this land.\n"
"\n"
"Now, the problem is, your arrival seems to draw a lot of attention, and you're quickly seized by a bunch of \cfOrder\c- acolytes, who take you to a shady corner out of view for some \"questioning\".\n"
"\n"
"Yeah, now you're stuck in this room with two guys who clearly want to kill you. Boy, that sure is a situation you totally can't solve with your eyes closed, huh?";
SWWM_HELP_DEMO = "Who Is The Demolitionist";
SWWM_HELP_DEMOTXT =
"The \cfAkari Labs First Generation Autonomous Combat Unit\c-, codenamed \cfDemolitionist\c-, is the latest and greatest in AI-driven combat robots. Designed to be swift on the field, being equipped with all sorts of mobility enhancements, and also trained extensively for the efficient usage of all sorts of weaponry.\n"

View file

@ -1,14 +0,0 @@
[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

View file

@ -516,7 +516,6 @@ D_FROGGY2 = "\cj... por una \cdSilla Rana\cj.\c-";
D_BARRIER = "El Revestimiento Elemental se ha desvanecido.";
D_MASHIRO = "\cjSabe donde estás...\c-";
SWWM_YNYKRONREADY = "Artefacto Ynykron listo para disparar.";
SWWM_YNYKRONLOCKED = "Artefacto Ynykron no autorizado para el uso.";
SWWM_SWAPWEAPON = "\cjPulsa \cfUsar\cj para cambiar \cf%s\cj por \cf%s\cj.\c-";
SWWM_TITLEPRESENTS = "presenta";
SWWM_TITLEMODBY = "un mod de \cxMarisa Kirisame";

File diff suppressed because one or more lines are too long

View file

@ -605,16 +605,6 @@ SWWM_HELP_STORYHEXEN =
"Pero eso no importa, definitivamente no tendrás problema alguno pateándole el culo, siempre y cuando puedas superar los muchos puzzles y artilugios detestables que esperan por el camino.\n"
"\n"
"Esta gente en serio que adora sus puñeteros puzzles, ¿no crees?";
SWWM_HELP_STORYSTRIFE =
"Estamos en el año 2173. Tras un largo periodo de descanso de su última aventura, la \cfDemolicionista\c- una vez más está preparada para salir ahí afuera y salvar otro mundo.\n"
"\n"
"Esta vez, te encuentras en un lugar curiosamente anacronístico, con arquitectura medieval entremezclada con tecnología moderna. No obstante, no todo parece ir bien por aquí, ya que un poderoso grupo, conocido como \cfLa Orden\c-, domina la tierra y controla toda esta bonita tecnología. Está bastante claro que son mala gente, así que ya sabes qué hacer.\n"
"\n"
"Tu misión es contactar con la principal fuerza de resistencia, \cfEl Frente\c-. Una vez lo hayas hecho, debes unirte a ellos para derrotar al enemigo, y traer la paz a esta tierra.\n"
"\n"
"Ahora sí, el problema es, tu llegada parece llamar mucho la atención, y eres rápidamente capturada por un puñado de acólitos de la \cfOrden\c-, quienes te llevan a un rincón sombrío fuera de vista para un \"interrogatorio\".\n"
"\n"
"Sí, ahora estás atrapada en este cuartucho con dos tíos que obviamente quieren matarte. Pues vaya, no parece para nada el tipo de situación que podrías resolver con los ojos cerrados, ¿no?";
SWWM_HELP_DEMO = "Quien Es La Demolicionista";
SWWM_HELP_DEMOTXT =
"La \cfUnidad de Combate Autónoma de Primera Generación de Akari Labs\c-, nombre en clave \cfDemolicionista\c-, es lo último y mejor en cuanto a robots de combate operados por IA. Diseñada para ser veloz en el campo de batalla, estando equipada con toda clase de mejoras de movilidad, y entrenada a conciencia para el uso eficiente de toda clase de armamento.\n"

View file

@ -1,14 +0,0 @@
[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

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r392 \cu(Sun 21 Mar 12:01:11 CET 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r392 \cu(2021-03-21 12:01:11)\c-";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r394 \cu(Sun 21 Mar 16:22:55 CET 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r394 \cu(2021-03-21 16:22:55)\c-";

View file

@ -48,49 +48,3 @@ Kirin himself can be described as a rather "down to earth" leader. Being quite c
\cfhehe, yeah, I did go straight for his feet again. His weak spot, huhuhu~\c-
\cfBTW don't tell him but... that "important work" he's busy with? It's actually just another game I got him to play. Seriously, it's been only a couple weeks and he's almost finished my whole library. Forget what he said about not watching you though, I'm definitely going to force him to if necessary. I really want to see how he reacts to your wacky antics.\c-
TXT
\cxFull Name:\c-
\cf Kirin Xanai\c-
\cxTitle:\c-
\cf Child Emperor of the Sykhai Empire of Akkou\c-
\cxNationality:\c-
\cf Akkouxhei\c-
\cxDate of Birth:\c-
\cf 2080-04-13\c-
\cxTwitter:\c-
\cf @kiririn_xanai\c-
Born in 2080 to **Syrakha Yanikov** and **Azya Xanai**, **Kirin** became the emperor of **Akkou** at the young age of 12, having shown great interest in following the steps of his mother.
Despite having the title of "Emperor", he actually holds no real power over the people of Akkou, and instead acts more like a political and economical advisor. As a matter of fact, the **Sykhai Empire** couldn't be described as an empire either. Most would describe it as something closer to a collection of anarchist communes than anything else, unlike the actual, tyrannical **Empire of Novoskhana** that they had seceded from.
For almost 80 whole years as the leader of Akkou, Kirin had remained single, as no one dared to approach him with the intention of marrying, for he was revered as an icon of "untarnished purity", in part due to his own name, Kirin, meaning "innocence" in the **Anarukon** language. It wasn't until a chance meeting with **Saya Miyamoto** in 2171 that this eventually changed. The two got married (\cg♥\c-) in May 8th of 2171, with their union marking the beginning of a great alliance between mankind and the Anarukon, additionally helping heal the old wounds of the **Hellbound Incident**, as this alliance extended to the **Kurenai Kingdom** too, through the shared friendship with **Queen Andreki Anderken**. The next year, Kirin additionally married **Alakir of Kanaiarkar**, one of the lead representatives of the neighbouring **Deadlight Republic**.
Kirin himself can be described as a rather "down to earth" leader. Being quite close to the people of Akkou, and fond of making friends. He is also absolutely adorable. When not attending his duties as advisor of the people, Kirin engages in many of his hobbies, such as painting (being quite skilled at drawing portraits, for example), or the practice of magic alongside his mother. He is also quite fond of videogames, anime, and many other forms of modern entertainment, and is often seen talking extensively on social media about the subject, happily introducing the people of Earth to popular games and shows from his homeworld.
\cxSaya's Notes:\c-
\cg♥\c- \caKIRIN-KUN!!!!!! YOU'RE SO CUTE!!!!!! I LOVE YOU!!!!\c- \cg♥\c-
\cfAhhhhh, Demo-chan, isn't he the best boyfriend ever? He just makes me so happy, and he's just so good and... yeah~\c- \cg♥\c-
\cfSeriously, I never.. NEVER EVER thought that this could happen. That I... that we all... could get our own wonderful immortal cutie. It really is a dream come true, you know...\c-
\cfI just can't stop thinking about him when he's not here... or hell, even when he IS here (guess what). Kirin-kun is just... nggghh... I'm going to go hug him right now.\c-
\cfOh he says hi by the way. I told him this isn't a live chat but whatever, hi from our cute husband. Wait, actually... gonna let him write stuff here, why the hell not.\c-
\cgKirin's Notes:\c-
\caHello, Demo-chan. I hope you are doing well in your adventures. I wish I could attend the live stream that Sayacchi makes of this, but I am currently a bit busy withghfghfdgsddfh\c-
\caMy apologies, Saya tickled me. I wish she wouldn't do that when I'm in the middle of writing. As I was attempting to say before that interruption, I'm busy with some important work, but I really would have wished to watch you instead, I am really curious about what you do out there, fighting for justice and helping those in need. Sayacchi makes it all sound so exciting...\c-
\caI hope that you return to us soon once your mission is completed. I'd be very happy to spend more time with you and Sayacchi, together. Please stay safe, Demo, my beloved.\c-
\cxSaya's Notes:\c-
\cfAAAAAAAAAAAAAAAAAAAAAAAA Oh my god that's so adorable!!!!\c-
\cfhehe, yeah, I did go straight for his feet again. His weak spot, huhuhu~\c-
\cfBTW don't tell him but... that "important work" he's busy with? It's actually just another game I got him to play. Seriously, it's been only a couple weeks and he's almost finished my whole library. Forget what he said about not watching you though, I'm definitely going to force him to if necessary. I really want to see how he reacts to your wacky antics.\c-
\cfUpdate: Oh boy, when those two got hooked up. I still remember how that came to happen, back on the second day of our wedding. Both of them were such dummies to not see what was happening, that they needed a big push from me. Stupid gay cuties that they are, crushing so hard on each other without realizing it's MUTUAL. God damn that's such a cliche that I HAD to fix it. And hey, now they're both happy, so all is good. Kind of a shame though that he only has eyes for Kirin-kun, but whatever, we're pretty tight and he lets us hug and pet him all we want.\c-

View file

@ -44,23 +44,3 @@ It is unclear if these demons have an actual connection to the **Hell** of our o
\cxSaya's Notes:\c-
\cfLittle red riding hood back there was such an easy kill, I doubt someone "considerably stronger" would make much of a difference, don't you think? Besides, you're smart enough to not fall for anyone's tricks and traps, aren't ya. He doesn't stand a chance, huhu...\c-
TXT
\cxName:\c-
\cf Serpent Riders\c-
\cxClassification:\c-
\cf Demonic Conquerors\c-
\cxOrigin:\c-
\cf Undetermined\c-
The **Serpent Riders** were a trio of demons originating from "the chaos beyond", as told in historical documents of the worlds they had dominated. It's said that they are only a few of an endless many outside these worlds, and their only desire is to bring chaos to it all. The three Riders are:
\cfD'Sparil:\c- The youngest of the three, a powerful sorcerer who claimed the land of **Parthoris**, and commands vast armies of undead and beastly creatures.
\cfKorax:\c- The middle "brother" of the three. A hideous black beast, considerably stronger than D'Sparil, and known to employ a great deal of trickery in his evil deeds.
\cfEidolon:\c- The oldest and most powerful. Defeated long after the other two, by an unidentified hero.
Despite the ultimate defeat of the three, it is unknown if more will appear one day, from the same hellish realm they came out of. But if these three were indeed the most powerful, it may just be that all that's left is mere fodder.
\cxSaya's Notes:\c-
\cfI'm kinda left wondering who nailed the last guy. That could have been us, seriously. Missed opportunity there to finish the job we started, and someone went and stole our kill. Well, whatever, we're pretty much done with the worlds those bastards ruined.\c-

View file

@ -42,49 +42,3 @@ Kirin en persona puede ser descrito como un líder bastante "pragmático". Siend
\cfjeje, sí, fui justo a por los pies otra vez. Su punto débil, jujuju~\c-
\cfPor cierto, no le digas nada pero... ¿ese "trabajo importante" con el que está tan ocupado? Resulta que es otro juego que le puse. En serio, han pasado solo un par de semanas y ya casi se ha ventilado toda mi colección. Ah, y olvida lo que dijo de no verte, si es que, aunque tenga que ser a la fuerza, voy a hacer que te vea. En serio quiero ver como reacciona a tus payasadas.\c-
TXT
\cxNombre Completo:\c-
\cf Kirin Xanai\c-
\cxTítulo:\c-
\cf Emperador Infantil del Imperio Sykhai de Akkou\c-
\cxNacionalidad:\c-
\cf Akkouxhei\c-
\cxFecha de Nacimiento:\c-
\cf 2080-04-13\c-
\cxTwitter:\c-
\cf @kiririn_xanai\c-
Nacido en 2080, hijo de **Syrakha Yanikov** y **Azya Xanai**, **Kirin** se convirtió en emperador de **Akkou** a la temprana edad de 12 años, habiendo demostrado un gran interés en seguir los pasos de su madre.
A pesar de tener el título de "Emperador", realmente no tiene ningún poder sobre la gente de Akkou, y en su lugar actúa más como un consejero político y económico. De hecho, el **Imperio Sykhai** en sí tampoco puede ser descrito como un imperio. Muchos lo describirían más bien como algo parecido a una colección de comunas anarquistas que otra cosa, a diferencia del verdadero, tiránico **Imperio de Novoskhana** del que se separaron.
Durante casi 80 años como líder de Akkou, Kirin ha permanecido soltero, ya que nadie se atrevía a acercarse a él con el propósito de casarse, debido a que se le veneraba como un icono de "pureza inmaculada", en pare debido a que su nombre, Kirin, significa "inocencia" en el idioma **Anarukon**. No fue hasta un encuentro inesperado con **Saya Miyamoto** en 2171 que esto finalmente cambió. Los dos se casaron (\cg♥\c-) el 8 de Mayo de 2171, con su unión marcando el inicio de una gran alianza entre la humanidad y los Anarukon, adicionalmente ayudando a curar las viejas heridas del **Incidente Hellbound**, ya que esta alianza se extendió también al **Reino Kurenai**, a través de la amistad compartida con la **Reina Andreki Anderken**. El año siguiente, Kirin adicionalmente contrajo matrimonio con **Alakir de Kanaiarkar**, uno de los principales representantes de la vecina **República de la Luz Moribunda**.
Kirin en persona puede ser descrito como un líder bastante "pragmático". Siendo muy cercano a la gente de Akkou, y aficionado a entablar amistades. Es también absolutamente adorable. Cuando no está ocupado con sus deberes como consejero de la gente, Kirin se dedica a muchos de sus hobbies, tales como la pintura (teniendo una gran habilidad como retratista, por ejemplo), o la práctica de la magia junto a su madre. También tiene cierta aflicción a los videojuegos, anime, y otras formas de entretenimiento moderno, y suele ser visto hablando de forma extensa en redes sociales sobre el tema, felizmente introduciendo a la gente de la Tierra a los juegos y series populares de su mundo natal.
\cxNotas de Saya:\c-
\cg♥\c- \ca¡¡¡¡¡¡KIRIN-KUN!!!!!! ¡¡¡¡¡¡ERES UNA MONADA!!!!!! ¡¡¡¡TE QUIERO!!!!\c- \cg♥\c-
\cfAhhhhh, Demo-chan, ¿no es el mejor novio del mundo? Es que me hace tan feliz, y es tan bueno que... sí~\c- \cg♥\c-
\cfEn serio, que nunca... NUNCA NUNCA pensé que esto podría pasar. Que yo... que todas nosotras... nos pilláramos a nuestro propia monada inmortal. Es como un sueño hecho realidad, sabes...\c-
\cfNo puedo dejar de pensar en él cuando no está aquí... o joder, incluso cuando SÍ está aquí (adivina). Kirin-kun es que es tan... nggghh... Voy a darle un abrazo ahora mismo.\c-
\cfOh por cierto, dice hola. Le dije que esto no es un chat pero bueno en fin, hola de parte de nuestro monísimo marido. Espera, a ver... voy a dejar que escriba un poco por aquí, por qué no.\c-
\cgNotas de Kirin:\c-
\caSaludos, Demo-chan. Espero que te encuentres bien en estas aventuras. Desearía poder estar presente en la transmisión en directo que Sayacchi hace de esto, pero actualmente me encuentro un poco ocupado conghfghfdgsddfh\c-
\caMis disculpas, Saya me ha cosquilleado. Desearía que no lo hiciera cuando estoy ocupado escribiendo. Como intentaba decir antes de esta interrupción, me encuentro ocupado con trabajo importante, pero realmente hubiera deseado verte en su lugar, tengo una gran curiosidad por lo que haces ahí afuera, luchando por la justicia y ayudando a aquellos que lo necesitan. Sayacchi hace que suene todo tan emocionante...\c-
\caEspero que regreses pronto con nosotros una vez tu misión haya finalizado. Me alegraría mucho pasar más tiempo contigo y con Sayacchi, juntos. Por favor, sé prudente, Demo, mi amada.\c-
\cxNotas de Saya:\c-
\cfAAAAAAAAAAAAAAAAAAAAAAAA ¡¡¡¡Oh dios mio eso es tan adorable!!!!\c-
\cfjeje, sí, fui justo a por los pies otra vez. Su punto débil, jujuju~\c-
\cfPor cierto, no le digas nada pero... ¿ese "trabajo importante" con el que está tan ocupado? Resulta que es otro juego que le puse. En serio, han pasado solo un par de semanas y ya casi se ha ventilado toda mi colección. Ah, y olvida lo que dijo de no verte, si es que, aunque tenga que ser a la fuerza, voy a hacer que te vea. En serio quiero ver como reacciona a tus payasadas.\c-
\cfActualización: Ay madre, cuando se liaron esos dos. Aun recuerdo como acabó pasando, justo en el segundo día de nuestra boda. Los dos eran tan tontainas por no ver lo que pasaba, que necesitaron que les diese un buen empujón. Estúpidos y adorables gays que son, tan coladitos el uno del otro sin saber que se CORRESPONDEN. Joder es que es tan cliché que TENÍA que arreglaro. Y mira, ahora los dos felices, así que todo bien. Aunque es una pena que solo tenga ojos para Kirin-kun, pero es igual, hay buen colegueo y nos deja darle todos los abrazos y caricias que queramos.\c-

View file

@ -40,23 +40,3 @@ No está claro si estos demonios tienen alguna conexión con el **Infierno** de
\cxNotas de Saya:\c-
\cfCaperucita roja fue visto y no visto la otra vez, así que dudo que alguien "considerablemente más fuerte" haga mucha diferencia, ¿no crees? Además, eres lo suficientemente lista para no caer en los trucos y trampas de nadie, vaya que sí. No va a poder contigo, juju...\c-
TXT
\cxNombre:\c-
\cf Jinetes de Serpiente\c-
\cxClasificación:\c-
\cf Conquistadores Demoníacos\c-
\cxOrígen:\c-
\cf Indeterminado\c-
Los **Jinetes de Serpiente** eran un trío de demonios venidos del "caos más allá", tal y como se cuenta en documentos históricos de los mundos que habían dominado. Se dice que son solo una fracción de los interminables demonios fuera de estos mundos, y que su único deseo es traer el caos a todo. Los tres Jinetes son:
\cfD'Sparil:\c- El más joven de los tres, un poderoso hechicero quien tomó la tierra de **Parthoris**, y lidera grandes ejércitos de no muertos y bestias.
\cfKorax:\c- El "hermano" mediano de los tres. Una bestia negra abominable, considerablemente más fuerte que D'Sparil, y conocida por emplear toda clase de manipulación en sus malvados planes.
\cfEidolon:\c- El mayor y más poderoso. Derrotado mucho después de los otros dos, por un héroe desconocido.
A pesar de la derrota final de los tres, se desconoce si más aparecerán algún día, del mismo mundo infernal del que salieron. Pero si estos tres fueron ciertamente los más poderosos, puede entonces que todo lo que quede sea mera carnaza.
\cxNotas de Saya:\c-
\cfPues me quedo con la duda de quien sea que se haya cargado al último tío. Podríamos haber sido nosotras, en serio. Una oportunidad perdída ahí para terminar el trabajo que empezamos, y alguien va y nos lo roba. Bueno, es igual, ya no pintamos nada en los mundos que arruinaron los bastardos esos.\c-

View file

@ -888,7 +888,6 @@ ynykron/vortexflash2 sounds/ynykron/mc_vortexflash2.ogg
$random ynykron/vortexflash { ynykron/vortexflash1 ynykron/vortexflash2 }
ynykron/vortexend sounds/ynykron/mc_vortexend.ogg
ynykron/wind sounds/ynykron/mc_vortexwind.ogg
ynykron/locked sounds/ynykron/mc_locked.ogg
misc/secret sounds/menu/findsecret.ogg
misc/keytry sounds/menu/failuse.ogg

Binary file not shown.

View file

@ -14,7 +14,6 @@ GameInfo
"$QUITMSG12", "$QUITMSG13", "$QUITMSG14", "$QUITMSG15",
"$QUITMSG16", "$QUITMSG17", "$QUITMSG18", "$QUITMSG19"
ChatSound = "misc/chat"
DefaultConversationMenuClass = "SWWMConversationMenu"
NoMergePickupMsg = true
CursorPic = "graphics/swwmcurs.png"
DimColor = "Black"

View file

@ -132,6 +132,3 @@ version "4.5"
#include "zscript/dlc2/swwm_demoland.zsc"
#include "zscript/dlc2/swwm_demoshmup.zsc"
#include "zscript/dlc2/swwm_demoquest.zsc"
// DLC3 - Strife Support
#include "zscript/dlc3/swwm_crimesdlg.zsc"
#include "zscript/dlc3/swwm_strife.zsc"

View file

@ -1,2 +0,0 @@
// TODO crimes_m dialogue system
// To be implemented once Strife support is a thing

View file

@ -1,20 +0,0 @@
// Strife compatibility code
// TODO hijack vanilla dialogues and hook in crimes_m dialogue menu for them
Class SWWMConversationMenu : ConversationMenu
{
override int Init( StrifeDialogueNode CurNode, PlayerInfo player, int activereply )
{
return Super.Init(CurNode,player,activereply);
}
}
// TODO Sigil key item, replaces the drops from bosses
Class SWWMCompatSigil : Inventory
{
}
// TODO base class for all vanilla Strife item replacements that just get swapped out for cash
Class SWWMLootable : Inventory
{
}

View file

@ -111,7 +111,7 @@ extend Class SWWMHandler
{
if ( !lastcombat || (gametic > lastcombat+40) )
{
if ( (e.Thing.IsFriend(e.DamageSource) || SWWMUtility.IsCivilian(e.DamageSource)) )
if ( e.Thing.IsFriend(e.DamageSource) )
lastcombat = AddOneliner("friendhit",1,10);
else if ( (!lastcombat || (gametic > lastcombat+100)) && !Random[DemoLines](0,e.DamageSource.bBOSS?2:4) && !SWWMHDoomHandler.IsCuteGirl(e.DamageSource) ) // [HDoom] don't shout at the girls
lastcombat = AddOneliner("gethit",1,15);
@ -122,7 +122,7 @@ extend Class SWWMHandler
if ( (e.DamageSource == players[consoleplayer].mo) && (e.Thing.bISMONSTER || e.Thing.player || (e.Thing is 'ScriptedMarine')) && (e.Thing.Health > 0) )
{
// make sure it's not a moth, because otherwise they won't shut up about accidentally hurting them (it happens a lot)
if ( (e.Thing.IsFriend(e.DamageSource) || SWWMUtility.IsCivilian(e.Thing)) && !(e.Thing is 'LampMoth') )
if ( e.Thing.IsFriend(e.DamageSource) && !(e.Thing is 'LampMoth') )
{
if ( !lastcombat || (gametic > lastcombat+40) )
lastcombat = AddOneliner("hitfriend",1,10);
@ -150,7 +150,7 @@ extend Class SWWMHandler
highesttic = gametic;
if ( !lastcombat || (gametic > lastcombat+40) )
{
if ( e.Thing.IsFriend(src) || SWWMUtility.IsCivilian(e.Thing) )
if ( e.Thing.IsFriend(src) )
lastcombat = AddOneliner("friendkill",1,5);
else if ( (!lastcombat || (gametic > lastcombat+100)) && !Random[DemoLines](0,e.Thing.bBOSS?2:5) && !SWWMHDoomHandler.IsCuteGirl(e.Thing) ) // [HDoom] don't shout at the girls
lastcombat = AddOneliner("scorekill",1,15);

View file

@ -72,19 +72,14 @@ extend Class SWWMHandler
l.DirectAdd("Gods");
l.DirectAdd("SUSAN");
}
if ( gameinfo.gametype&(GAME_Raven|GAME_Strife) )
if ( gameinfo.gametype&GAME_Raven )
{
l.DirectAdd("Parthoris");
l.DirectAdd("SerpentRiders");
l.DirectAdd("Sidhe");
}
if ( gameinfo.gametype&(GAME_Hexen|GAME_Strife) )
if ( gameinfo.gametype&GAME_Hexen )
l.DirectAdd("Cronos");
if ( gameinfo.gametype&GAME_Strife )
{
l.DirectAdd("TheOrder");
l.DirectAdd("TheFront");
}
// starting weapons (if owned)
if ( p.mo.FindInventory('DeepImpact') )
l.DirectAdd("DeepImpact");

View file

@ -15,8 +15,6 @@ extend Class SWWMHandler
let ti = ThinkerIterator.Create("SWWMStats",Thinker.STAT_STATIC);
SWWMStats s;
while ( s = SWWMStats(ti.Next()) )
{
if ( !(gameinfo.gametype&GAME_STRIFE) )
{
int clust = 0;
bool secret = false;
@ -53,7 +51,6 @@ extend Class SWWMHandler
s.clustervisit.Push(clust);
s.secretdone.Push(secret|s.secretdone[csiz-1]);
}
}
s.AddLevelStats();
s.lastcluster = level.cluster;
}

View file

@ -95,12 +95,6 @@ extend Class SWWMHandler
if ( (a.Health <= 0) || a.bKILLED || a.bCORPSE ) continue;
// ignore friends
if ( a.IsFriend(players[consoleplayer].mo) ) continue;
// [Strife] ignore if not in combat
if ( (gameinfo.gametype&GAME_Strife) && !a.bINCOMBAT && !a.bJUSTATTACKED ) continue;
// [Strife] ignore certain classes
if ( (a is 'RatBuddy') || (a is 'Peasant') || (a is 'Beggar') ) continue;
// [Strife] ignore Oracle's spectre while it's inactive
if ( (a is 'AlienSpectre3') && a.InStateSequence(a.CurState,a.FindState("Spawn")) ) continue;
// ignore if not targetted or player can't see it
if ( (a.target != players[consoleplayer].mo)
|| !SWWMUtility.InPlayerFOV(players[consoleplayer],a) ) continue;

View file

@ -14,8 +14,7 @@ Class SWWMCollectible : Inventory abstract
// minimum gametype requirements
enum EAvailability
{
AVAIL_Strife = GAME_Strife,
AVAIL_Hexen = AVAIL_Strife|GAME_Hexen,
AVAIL_Hexen = GAME_Hexen,
AVAIL_Heretic = AVAIL_Hexen|GAME_Heretic,
AVAIL_All = AVAIL_Heretic|GAME_DoomChex
};

View file

@ -724,7 +724,7 @@ Class Chancebox : Actor
// no candidates? just burst into treats
if ( Random[Chancebox](0,1) )
{
let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":(Random[Chancebox](0,1)||(gameinfo.gametype&GAME_Strife))?"GrilledCheeseSandwich":"YnykronAmmo",pos);
let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":Random[Chancebox](0,1)?"GrilledCheeseSandwich":"YnykronAmmo",pos);
a.bDROPPED = false;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,4);

View file

@ -2123,7 +2123,7 @@ Class MykradvoTendril : Actor
}
for ( int i=0; i<t.hitlist.Size(); i++ )
{
if ( t.hitlist[i].hitactor.IsFriend(target) || SWWMUtility.IsCivilian(t.hitlist[i].hitactor) ) continue;
if ( t.hitlist[i].hitactor.IsFriend(target) ) continue;
if ( (t.hitlist[i].hitactor == tracer) && bMISSILEMORE ) bMISSILEEVENMORE = true; // we split
int dmg = t.hitlist[i].hitactor.bBOSS?(GetMissileDamage(0,0)*4):max(t.hitlist[i].hitactor.Health,GetMissileDamage(0,0));
SWWMUtility.DoKnockback(t.hitlist[i].hitactor,-t.hitlist[i].x+(0,0,.5),((t.hitlist[i].hitactor.Health-dmg)<=0)?60000:8000);
@ -2589,7 +2589,7 @@ Class Mykradvo : Inventory
// must be an active, shootable live monster
if ( !a.bISMONSTER || !a.bSHOOTABLE || a.bDORMANT || (a.Health <= 0) ) continue;
// skip non-hostiles
if ( !a.IsHostile(t) || SWWMUtility.IsCivilian(a) ) continue;
if ( a.IsFriend(t) ) continue;
// is targetting us and is within 10m
// or
// is visible and is within 100m

View file

@ -246,13 +246,6 @@ Class DemolitionistMenu : GenericMenu
missionbacklog.Push(xstr);
}
}
else if ( gameinfo.gametype&GAME_Strife )
{
missionstr = players[consoleplayer].logtext; // just show the quest log
int csiz = stats.questbacklog.Size();
for ( int i=csiz-1; i>=0; i-- )
missionbacklog.Push(stats.questbacklog[i]);
}
else missionstr = "$SWWM_MISSION_NONE";
if ( gameinfo.gametype&GAME_Heretic )
{
@ -283,17 +276,6 @@ Class DemolitionistMenu : GenericMenu
c_minute = 28;
}
}
else if ( gameinfo.gametype&GAME_Strife )
{
// September 13th 2173, 11:26 JST
// Epoch: 6425490360
c_year = 2173;
c_month = 7;
c_day = 12;
c_hour = 11;
c_minute = 26;
c_tz = "JST";
}
else if ( SWWMUtility.IsEviternity() )
{
// June 10th 2150, 20:09 +09
@ -2270,8 +2252,6 @@ Class DemolitionistMenu : GenericMenu
if ( !type ) continue;
// no collectibles
if ( type is 'SWWMCollectible' ) continue;
// no Ynykron in strife (unless selling)
if ( (gameinfo.gametype&GAME_Strife) && (type is 'Ynykron') && !sub ) continue;
// can't sell candygun spares
if ( sub && (type is 'CandyGunSpares') ) continue;
let cur = players[consoleplayer].mo.FindInventory(type);
@ -3473,7 +3453,7 @@ Class DemolitionistMenu : GenericMenu
}
else if ( tabs[curtab] == TAB_SECRET )
{
if ( gameinfo.gametype&(GAME_Strife|GAME_Hexen) )
if ( gameinfo.gametype&GAME_Hexen )
{
Screen.DrawTexture(Drawing[2],false,origin.x+20,origin.y+40,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
str = StringTable.Localize("$SWWM_KIRINPOEM");

View file

@ -139,7 +139,6 @@ Class SWWMHelpMenu : GenericMenu
hdr = StringTable.Localize("$SWWM_HELP_STORY");
if ( gameinfo.gametype&GAME_Heretic ) txt = StringTable.Localize("$SWWM_HELP_STORYHERETIC");
else if ( gameinfo.gametype&GAME_Hexen ) txt = StringTable.Localize("$SWWM_HELP_STORYHEXEN");
else if ( gameinfo.gametype&GAME_Strife ) txt = StringTable.Localize("$SWWM_HELP_STORYSTRIFE");
else if ( SWWMUtility.IsEviternity() ) txt = StringTable.Localize("$SWWM_HELP_STORYEVITERNITY");
else txt = StringTable.Localize("$SWWM_HELP_STORYDOOM");
break;

View file

@ -45,7 +45,7 @@ Class SWWMHandler : EventHandler
{
LangRefresh();
QueueMaintenance();
if ( !(gameinfo.gametype&GAME_STRIFE) && !mnotify && (level.maptime >= 5) )
if ( !mnotify && (level.maptime >= 5) )
{
mnotify = true;
let ti = ThinkerIterator.Create("SWWMStats",Thinker.STAT_STATIC);

View file

@ -308,8 +308,6 @@ Class Demolitionist : PlayerPawn
{
let type = (class<Weapon>)(AllActorClasses[i]);
if ( !type || (type == "Weapon") ) continue;
// no Ynykron in Strife
if ( (gameinfo.gametype&GAME_Strife) && (type is 'Ynykron') ) continue;
// Don't give already owned weapons
let owned = FindInventory(type);
if ( owned && (owned.Amount >= owned.MaxAmount) ) continue;
@ -333,7 +331,7 @@ Class Demolitionist : PlayerPawn
{
let type = (class<Inventory>)(AllActorClasses[i]);
if ( !type ) continue;
if ( !(gameinfo.gametype&(GAME_Hexen|GAME_Strife)) && (type is 'AmmoFabricator') ) continue; // no fabricators before hexen
if ( !(gameinfo.gametype&GAME_Hexen) && (type is 'AmmoFabricator') ) continue; // no fabricators before hexen
// Don't give maxed items
let owned = FindInventory(type);
if ( owned && (owned.Amount >= owned.MaxAmount) ) continue;
@ -813,14 +811,6 @@ Class Demolitionist : PlayerPawn
if ( swwm_singlefirst != oldsinglefirst )
WeaponSlots.SetupWeaponSlots(self);
oldsinglefirst = swwm_singlefirst;
// strife thing
if ( mystats.oldlogtext == "" )
mystats.oldlogtext = player.logtext;
else if ( player.logtext != mystats.oldlogtext )
{
mystats.questbacklog.Push(mystats.oldlogtext);
mystats.oldlogtext = player.logtext;
}
// overheal fading
if ( !isFrozen() && !(player.cheats&CF_TOTALLYFROZEN) )
{

View file

@ -449,15 +449,12 @@ Class SWWMCombatTracker : Thinker
}
if ( (mytarget.bISMONSTER || mytarget.player) && !mytarget.bINVISIBLE && !mytarget.bCORPSE )
{
bool straifu = false;
if ( (gameinfo.gametype&GAME_Strife) && (!mytarget.bINCOMBAT && !mytarget.bJUSTATTACKED) || (mytarget is 'Beggar') || (mytarget is 'Peasant') )
straifu = true;
// players (but not voodoo dolls), always visible
if ( mytarget.player && (mytarget.player.mo == mytarget) ) updated = level.maptime+35;
// friendlies within a set distance
else if ( mytarget.bFRIENDLY && ((mxdist <= 0) || (mytarget.Vec3To(players[consoleplayer].Camera).length() < mxdist)) && players[consoleplayer].Camera.CheckSight(mytarget,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) updated = level.maptime+35;
// enemies within a set distance that have us as target
else if ( !straifu && mytarget.target && (mytarget.target.Health > 0) && (mytarget.target.player == players[consoleplayer]) && ((mxdist <= 0) || (mytarget.Vec3To(players[consoleplayer].Camera).length() < mxdist)) && players[consoleplayer].Camera.CheckSight(mytarget,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) updated = level.maptime+70;
else if ( mytarget.target && (mytarget.target.Health > 0) && (mytarget.target.player == players[consoleplayer]) && ((mxdist <= 0) || (mytarget.Vec3To(players[consoleplayer].Camera).length() < mxdist)) && players[consoleplayer].Camera.CheckSight(mytarget,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) updated = level.maptime+70;
// any visible enemies within one quarter of the set distance
else if ( ((mxdist <= 0) || (mytarget.Vec3To(players[consoleplayer].Camera).length() < (mxdist/4))) && players[consoleplayer].Camera.CheckSight(mytarget,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) updated = level.maptime;
}

View file

@ -41,9 +41,6 @@ Class SWWMStats : Thinker
// these two are used for mission updates
Array<int> clustervisit;
Array<bool> secretdone;
// [Strife] preserve previous mission logs
String oldlogtext;
Array<String> questbacklog;
// hackaround for stuff getting lost
Array<Class<SWWMCollectible> > ownedcollectibles;
// for pistol start info (to avoid it within hubs)
@ -360,24 +357,19 @@ Class SWWMLoreLibrary : Thinker
static bool PreVerify( String ref )
{
// restrictions
if ( !(gameinfo.gametype&(GAME_Raven|GAME_Strife)) )
if ( !(gameinfo.gametype&GAME_Raven) )
{
if ( ref ~== "Parthoris" ) return true;
if ( ref ~== "Sidhe" ) return true;
if ( ref ~== "SerpentRiders" ) return true;
}
if ( !(gameinfo.gametype&(GAME_Hexen|GAME_Strife)) )
if ( !(gameinfo.gametype&GAME_Hexen) )
{
if ( ref ~== "Cronos" ) return true;
if ( ref ~== "Kirin" ) return true; // not met
if ( ref ~== "Fabricator" ) return true; // not yet introduced
if ( ref ~== "Administrators" ) return true; // not met
}
if ( !(gameinfo.gametype&GAME_Strife) )
{
if ( ref ~== "TheOrder" ) return true;
if ( ref ~== "TheFront" ) return true;
}
// check if entry is for a collectible
for ( int i=0; i<AllActorClasses.Size(); i++ )
{
@ -421,14 +413,7 @@ Class SWWMLoreLibrary : Thinker
String text = String.Format("SWWM_LORETXT_%s",ref);
String assoc = String.Format("SWWM_LOREREL_%s",ref);
// redirects
if ( gameinfo.gametype&GAME_Strife )
{
if ( text ~== "SWWM_LORETXT_KIRIN" )
text = "SWWM_LORETXT_KIRIN2"; // married alakir
else if ( text ~== "SWWM_LORETXT_SERPENTRIDERS" )
text = "SWWM_LORETXT_SERPENTRIDERS3"; // all riders gone
}
if ( gameinfo.gametype&(GAME_Hexen|GAME_Strife) )
if ( gameinfo.gametype&GAME_Hexen )
{
if ( text ~== "SWWM_LORETXT_SAYA" )
text = "SWWM_LORETXT_SAYA3"; // married kirin
@ -457,7 +442,7 @@ Class SWWMLoreLibrary : Thinker
else if ( text ~== "SWWM_LORETXT_GODS" )
text = "SWWM_LORETXT_GODS2"; // beyond gods
}
if ( gameinfo.gametype&(GAME_Raven|GAME_Strife) )
if ( gameinfo.gametype&GAME_Raven )
{
if ( text ~== "SWWM_LORETXT_SAYA" )
text = "SWWM_LORETXT_SAYA2"; // dating demo

View file

@ -360,39 +360,6 @@ Class SWWMUtility
return SWWMCachedLockInfo.GetLockColor(l);
}
// wheeeeeeee, let's play a game of "who is who"
static clearscope bool IsCivilian( Actor a )
{
if ( a is 'Beggar' )
{
if ( (a.level.mapname ~== "MAP32") && (a is 'Beggar1') )
return false; // Prisoner (sorry but we have to)
return true;
}
if ( a is 'Peasant' )
{
// exclude certain key NPCs
if ( (a.level.mapname ~== "MAP01") && (a is 'Peasant9') )
return false; // Beldin (sorry but we have to)
if ( (a.level.mapname ~== "MAP02") && (a is 'Peasant22') )
return false; // Mourel (fuck that guy)
if ( (a.level.mapname ~== "MAP02") && (a is 'Peasant4') )
return false; // Harris (also fuck that guy)
if ( (a.level.mapname ~== "MAP04") && (a is 'Peasant5') )
return false; // Derwin (fat bastard)
if ( (a.level.mapname ~== "MAP04") && (a is 'Peasant7') )
return false; // Ketrick (THIS IS GARBAGE)
if ( (a.level.mapname ~== "MAP05") && (a is 'Peasant7') )
return false; // Montag (gimme the damn key)
if ( (a.level.mapname ~== "MAP05") && (a is 'Peasant8') )
return false; // Wolenick (gimme a hand)
if ( (a.level.mapname ~== "MAP33") && (a is 'Peasant5') )
return false; // Harris (also fuck that guy)
return true;
}
return false;
}
// Thanks to ZZYZX and Nash
static play void SetToSlopeSpecific( Actor a, double dang, SecPlane plane, bool flipnorm )
{
@ -1782,8 +1749,7 @@ Class SWWMUtility
}
static Class<Inventory> PickSWWMSlot0()
{
/*if ( gameinfo.GameType&GAME_Strife ) return 'GrandLance';
return PickPair('Ynykron','GrandLance');*/
//return PickPair('Ynykron','GrandLance');
return 'Ynykron';
}
static Class<Inventory> PickDoomSlot6()

View file

@ -354,7 +354,7 @@ Class BusterWall : Thinker
if ( !rubble.IsValid() ) rubble = TexMan.CheckForTexture("ASHWALL",TexMan.Type_Any);
if ( !rubble.IsValid() ) rubble = TexMan.CheckForTexture("LOOSERCK",TexMan.Type_Any);
if ( !rubble.IsValid() ) rubble = TexMan.CheckForTexture("WASTE03",TexMan.Type_Any);
if ( !rubble.IsValid() ) rubble = TexMan.CheckForTexture("SCHWAL01",TexMan.Type_Any); // Strife has a dedicated "destroyed wall" texture, nice
if ( !rubble.IsValid() ) rubble = TexMan.CheckForTexture("-noflat-",TexMan.Type_Any); // an unfortunate fallback should none of those exist
// activate all shoot/use specials (not locked) associated with this sector's two-sided lines
for ( int i=0; i<hs.Lines.Size(); i++ )
{

View file

@ -432,20 +432,11 @@ Class Ynykron : SWWMWeapon
XZW3 D 2 A_StartSound("ynykron/latch",CHAN_WEAPON,CHANF_OVERLAP);
XZW3 EFGHI 2;
XZW2 A 0
{
if ( gameinfo.gametype&GAME_Strife )
{
A_StartSound("ynykron/locked",CHAN_WEAPON,CHANF_OVERLAP);
if ( player == players[consoleplayer] )
Console.Printf(StringTable.Localize("$SWWM_YNYKRONLOCKED"));
}
else
{
invoker.chargestate = CS_CHARGING;
invoker.ventcooldown = Random[Ynykron](6,15);
A_StartSound("ynykron/ready",CHAN_WEAPONEXTRA2,CHANF_LOOP,.01,2.);
}
}
Goto Ready;
Reload:
XZW2 A 2