Hackaround for various Hexen non-projectiles being parried.

Fix Fabricators not autoactivating if spares are held.
Typo fixes. Other corrections.
This commit is contained in:
Mari the Deer 2020-03-21 04:13:41 +01:00
commit d2a9cce5be
5 changed files with 53 additions and 45 deletions

View file

@ -454,7 +454,7 @@ in my games here (though I'm avoiding spoilers for Doom Eternal, at least)
world of Novoskhana.
- 45306 BC: The Eternal Undying Empire of Novoskhana is founded.
- 13903 BC: The Kurenai Kingdom is founded.
- 13675 BC: After a long absence, Father Nostros returns to the Kurenai Kingdom
- 10675 BC: After a long absence, Father Nostros returns to the Kurenai Kingdom
followed by an army of demonic creatures, he takes over and forces everyone
else out. The old Kurenai Kingdom becomes what is now known as Hell.
- 4673 BC: Prince Admun is born.

View file

@ -479,14 +479,14 @@ SWWM_LORETXT_DEEPIMPACT =
"Addendum: It is unclear how exactly this even counts as a toy for children.";
SWWM_LORETAG_DEMOLITIONIST = "Demolitionist";
SWWM_LORETAB_DEMOLITIONIST = "People";
SWWM_LOREREL_DEMOLITIONIST = "AkariLabs;Ibuki;Saya;Zanaveth2;Hell;UAC;Nekuratek;Belt;Collar;Keychain;Propulsor;Hammerspace";
SWWM_LOREREL_DEMOLITIONIST = "AkariLabs;Ibuki;Saya;Zanaveth2;Hell;UAC;Nekuratek;Belt;Collar;Keychain;Propulsor;Hammerspace;Display";
SWWM_LORETXT_DEMOLITIONIST =
"Full Name: Akari Labs First Generation Autonomous Combat Unit\n"
"Codename: Demolitionist\n"
"Nationality: Japanese\n"
"Date Of Birth: 2148-01-20\n"
"\n"
"Summary: The Demolitionist is a refinement of the former Red Oni supersoldier program, an AI-controlled combat unit capable of efficiently utilizing any weaponry at its disposition. It is equipped with a portable JetBurst Impulsor unit, allowing it to perform rapid mid-air boosts and dashes, it also comes equipped with two Hammerspace containers, for easy access to carried weapons and ammunition, the two, along with a keychain, being attached to a Magnetic Utility Belt. Its AI core is built on the same technology as Akari Labs' maidbots, the Nekuronbot AI framework, provided as a gift of friendship between Saya and Zanaveth II, the current head of Nekuratek. Thanks to this technology, the Demolitionist is barely indistinguishable from a real person in its behaviour and emotional response, which makes interaction with civilians more comforting. The first unit was deployed in June of 2148 on Union States territory in order to combat the demonic invasion brought upon by the UAC's interventions on Hell.\n"
"Summary: The Demolitionist is a refinement of the former Red Oni supersoldier program, an AI-controlled combat unit capable of efficiently utilizing any weaponry at its disposition. It is equipped with a portable JetBurst Impulsor unit, allowing it to perform rapid mid-air boosts and dashes, it also comes equipped with two Hammerspace containers, for easy access to carried weapons and ammunition, the two, along with a keychain, being attached to a Magnetic Utility Belt. Its AI core is built on the same technology as Akari Labs' maidbots, the Nekuronbot AI framework, provided as a gift of friendship between Saya and Zanaveth II, the current head of Nekuratek. Thanks to this technology, and combined with a CuteEmotion Display, the Demolitionist is barely indistinguishable from a real person in its behaviour and emotional response, which makes interaction with civilians more comforting. The first unit was deployed in June of 2148 on Union States territory in order to combat the demonic invasion brought upon by the UAC's interventions on Hell.\n"
"\n"
"Addendum: Many more details are known about the first Demolitionist thanks to a Q&A session livestreamed by Saya Miyamoto. The unit's full name is \"Demo Miyamoto\", as given by Saya herself. They identify as non-binary, and remark that along with they/them, she/her pronouns are also acceptable. Personality-wise, they can be described as \"quite chatty\", fond of joking around and trying to put a smile on people's faces, but also very serious and determined in their desire to protect those in need. Demo also wears a \"Lucky Collar\" as a token of friendship from Saya, though most people remark that it looks like some sort of BDSM accessory.\n"
"\n"
@ -1100,7 +1100,7 @@ SWWM_LORETXT_ONOKE =
"Classification: Unsolved murder mystery\n"
"Location: Kereshnovka\n"
"\n"
"Summary: In October of 1997, a fire broke out in the Onoke Mansion, on the outskirts of Kereshnovka, during a meeting between the Imanaki and Onoke families. When the firefighters arrived, they found everyone dead, all having been murdered in increasingly gruesome ways. The culprit was never found.\n"
"Summary: In October of 2003, a fire broke out in the Onoke Mansion, on the outskirts of Kereshnovka, during a meeting between the Imanaki and Onoke families. When the firefighters arrived, they found everyone dead, all having been murdered in increasingly gruesome ways. The culprit was never found.\n"
"\n"
"Addendum: Initially, because the family's head servant was never found, some suspected he may have been responsible, but much later his body (or what was left of it) was found in the woods nearby, with his face shredded into an unrecognizable mess.\n"
"\n"
@ -1923,7 +1923,8 @@ TXT_HEXEN_WIN1MSG =
"nearby wall.\n"
"\n"
"You find yourself in some strange room, with\n"
"a very bright light at the center.";
"a very bright light at the center. It is\n"
"emanating from some sort of altar.";
TXT_HEXEN_WIN2MSG =
"Getting closer, you can see it. This thing is\n"
"supposed to be the source of Korax's power?\n"
@ -1935,22 +1936,19 @@ TXT_HEXEN_WIN2MSG =
"After shoving it into your Hammerspace\n"
"container, you notice someone sitting at a\n"
"table nearby, playing some odd variation of\n"
"chess... or at least that's what it looks like.";
"chess... or at least that's what it looks like.\n"
"\n"
"With a deep, guttural voice, he begins to speak\n"
"to you...";
TXT_HEXEN_WIN3MSG =
"\"Well played, my metalic friend, but it is\n"
"not over yet.\" As he says this, he lifts up\n"
"one of his pieces, and swipes another off the\n"
"board, a piece that looks exactly like Korax.\n"
"\n"
"\"You may have conquered this board, but your\n"
"mission is far from over. One more Serpent Rider\n"
"remains... and he will not rest until his\n"
"comrades are avenged.\"\n"
"\n"
"You laugh. \"If he's anything like the other\n"
"two, I'll make him beg for mercy before dinner\n"
"time. Now if you'll excuse me, I've got a fine\n"
"lady waiting for me back home.\"";
"\"Well played, mortal, you've conquered this board,\n"
"but your mission is far from over. One more Rider\n"
"remains... and he will not rest until he's avenged\n"
"his fallen comrades.\"\n"
"You laugh. \"If he's anything like the others, I'll\n"
"make him beg for mercy before dinner time. Now if\n"
"you'll excuse me, I've got a fine lady waiting for\n"
"me back at home.\"";
// Re-tagged monsters
FN_ZOMBIE = "Zomb";
FN_SHOTGUN = "Baldy";

View file

@ -444,7 +444,7 @@ SWWM_LORETXT_DEMOLITIONIST =
"Nacionalidad: Japonesa\n"
"Fecha de Nacimiento: 20 de Enero de 2148\n"
"\n"
"Resumen: El Demolicionista es un refinamiento del antiguo programa de supersoldado Oni Rojo, una unidad de combate controlada por IA capaz de utilizar eficientemente cualquier arma a su disposición. Está equipado con un unidad de Impulsor JetBurst portátil, permitiéndole realizar rápidos impulsos y esprints en el aire, también viene equipado con dos contenedores Hammerspace, para un acceso fácil a todas sus armas y municiones, los dos, junto con un llavero, unidos a un Cinturón Útil Magnético. Su núcleo de IA está construido sobre la misma tecnología que los maidbots de Akari Labs, el framework de IA Nekuronbot, provisto como regalo de amistad entre Saya y Zanaveth II, la actual directora de Nekuratek. Gracias a esta tecnología, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, lo cual hace más comoda la interacción con civiles. La primera unidad fue desplegada en Junio de 2148 en territorio de la Unión de Estados para combatir la invasión demoníaca atraida por las intervenciones de la UAC en el Infierno.\n"
"Resumen: El Demolicionista es un refinamiento del antiguo programa de supersoldado Oni Rojo, una unidad de combate controlada por IA capaz de utilizar eficientemente cualquier arma a su disposición. Está equipado con un unidad de Impulsor JetBurst portátil, permitiéndole realizar rápidos impulsos y sprints en el aire, también viene equipado con dos contenedores Hammerspace, para un acceso fácil a todas sus armas y municiones, los dos, junto con un llavero, unidos a un Cinturón Útil Magnético. Su núcleo de IA está construido sobre la misma tecnología que las maidbots de Akari Labs, el framework de IA Nekuronbot, provisto como regalo de amistad entre Saya y Zanaveth II, la actual directora de Nekuratek. Gracias a esta tecnología, y combinada con una Pantalla CuteEmotion, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, lo cual hace más comoda la interacción con civiles. La primera unidad fue desplegada en Junio de 2148 en territorio de la Unión de Estados para combatir la invasión demoníaca atraida por las intervenciones de la UAC en el Infierno.\n"
"\n"
"Apéndice: Muchos más detalles se dieron a conocer sobre el primer Demolicionista gracias a una sesión en directo de preguntas y respuestas realizada por Saya Miyamoto. El nombre completo de la unidad es \"Demo Miyamoto\", dado por Saya Miyamoto. Se identifica como no binaria, y menciona que aparte del pronombre \"elle\", tambien acepta ser referida como \"ella\". En cuanto a personalidad, se le puede describir como \"parlanchina\", le encantan los chistes y siempre intenta hacer sonreír a la gente, pero tambien puede ser muy seria y resuelta en su deseo de proteger a quien lo necesite. Demo también lleva un \"Collar de la Suerte\" como muestra de amistad con Saya, aunque la mayoría de la gente comenta que parece algún tipo de accesorio de BDSM.\n"
"\n"
@ -554,7 +554,7 @@ SWWM_LORETXT_FABRICATOR =
"Designación: Fabricador de Munición Universal\n"
"Fabricante: Cyrus Enterprises\n"
"\n"
"Resumen: Nanofabricadores portátiles que pueden construir cualquier tipo de munición de la nada. Disponibles en varios tiers. La diferencie principal siendo el material base total disponible y la complejidad de la munición que se puede fabricar.\n"
"Resumen: Nanofabricadores portátiles que pueden construir cualquier tipo de munición de la nada. Disponibles en varios tiers. La diferencia principal siendo el material base total disponible y la complejidad de la munición que se puede fabricar.\n"
"\n"
"Apéndice: El tier más alto es difícil de encontrar, pero tiene suficiente material para un abastecimiento completo de todos los tipos de munición.\n"
"\n"
@ -751,7 +751,7 @@ SWWM_LORETXT_KIRIN =
"Nacionalidad: Akkouxhei\n"
"Fecha De Nacimiento: 13 de Abril de 2080\n"
"\n"
"Resumen: Kirin Xanai es el actual lider del Imperio Rust de Akkou, uno de las varias ramas desprendidas del Imperio de Novoskhana en protesta de las agresivas políticas de la Emperatriz Eterna. Es un líder muy sensato y se ve \"como cualquier otro tío\". La anteriormente afligida tierra de Akkou ha encontrado gran prosperidad tras la formación del Imperio Rust, con la familia Xanai siendo vista como una bendición de los dioses. Kirin adora entablar amistad con la gente, y es absolutamente adorable.\n"
"Resumen: Kirin Xanai es el actual líder del Imperio Rust de Akkou, una de las varias ramas desprendidas del Imperio de Novoskhana en protesta de las agresivas políticas de la Emperatriz Eterna. Es un líder muy sensato y se ve \"como cualquier otro tipo\". La anteriormente afligida tierra de Akkou ha encontrado gran prosperidad tras la formación del Imperio Rust, con la familia Xanai siendo vista como una bendición de los dioses. Kirin adora entablar amistad con la gente, y es absolutamente adorable.\n"
"\n"
"Apéndice: Al ser de una de las ramas mayores de realeza Anarukon, su casamiento con Saya Miyamoto (♥) abrió varias oportunidades para la alianza con humanos, y sirvió para curar las heridas anteriormente causadas por la intrusión de Imanaki Corp.\n"
"\n"
@ -937,7 +937,7 @@ SWWM_LORETXT_ONOKE =
"Clasificación: Asesinato misterioso no resuelto\n"
"Localización: Kereshnovka\n"
"\n"
"Resumen: En Octubre de 1997, ocurrió un incendio en la Mansion Onoke, a las afueras de Kereshnovka, durante una reunión entre las familias Imanaki y Onoke. Cuando llegaron los bomberos, se encontraron a todos muertos, habiendo sido masacrados cada uno de una forma más cruenta que el anterior. El culpable nunca fue encontrado.\n"
"Resumen: En Octubre de 2003, ocurrió un incendio en la Mansion Onoke, a las afueras de Kereshnovka, durante una reunión entre las familias Imanaki y Onoke. Cuando llegaron los bomberos, se encontraron a todos muertos, habiendo sido masacrados cada uno de una forma más cruenta que el anterior. El culpable nunca fue encontrado.\n"
"\n"
"Apéndice: Inicialmente, ya que el mayordomo jefe de la familia no fue encontrado, algunos sospecharon que había sido responsable, pero mucho mas tarde su cuerpo (o lo que quedaba de él) fue encontrado entre unos árboles cercanos, con su cara machacada e irreconocible.\n"
"\n"
@ -1100,7 +1100,7 @@ SWWM_LORETXT_SPREADGUN =
"\n"
"Recarga: Descarga el cartucho actual y carga uno nuevo. Si el cartucho cargado no ha sido usado se añadirá de nuevo a su reserva de munición, o si no se dejará caer en el suelo.\n"
"\n"
"Apéndice: Aunque simple en su operación, la constante recarga manual tiende a volverse agotadora rápidamente par algunos usuarios. Una variante semiautomática del Trabuco se está probando actualmente y puede que esté lista para el público en unos cuantos años, aun hay algunos problemas que resolver como los atascos frecuentes.\n"
"Apéndice: Aunque simple en su operación, la constante recarga manual tiende a volverse agotadora rápidamente para algunos usuarios. Una variante semiautomática del Trabuco se está probando actualmente y puede que esté lista para el público en unos cuantos años, aun hay algunos problemas que resolver como los atascos frecuentes.\n"
"\n"
"Nota de Saya: La mierda esta es jodidamente poco práctica, especialmente la forma de recargarla. Como coño es que nadie se ha reventado un hoyo por la palma de la mano recolocando el cañón es algo que me supera.";
SWWM_LORETXT_SUNKAEZE =
@ -1685,7 +1685,8 @@ TXT_HEXEN_WIN1MSG =
"pared cercana.\n"
"\n"
"Estás en una extraña sala, con una brillante\n"
"luz en el centro.\n";
"luz en el centro. Parece venir de una especie\n"
"de altar.";
TXT_HEXEN_WIN2MSG =
"Al acercarte, puedes verla. ¿Se supone que esta\n"
"cosa es la fuente del poder de Korax? Te\n"
@ -1696,25 +1697,20 @@ TXT_HEXEN_WIN2MSG =
"Despues de meterla en el contenedor de\n"
"Hammerspace, te das cuenta de que hay alguien\n"
"sentado en una mesa cercana, jugando a una\n"
"extraña forma de ajedred... o al menos eso es\n"
"lo que parece.";
"extraña forma de ajedrez... o al menos eso es\n"
"lo que parece.\n"
"\n"
"Con una voz profunda y gutural, comienza a\n"
"hablar contigo...";
TXT_HEXEN_WIN3MSG =
"\"Bien jugado, amigo metálico, pero esto aun\n"
"no ha terminado.\" Diciendo esto, levanta\n"
"una de sus piezas, y empuja otra fuera del\n"
"tablero, una pieza que es exactamente igual\n"
"que Korax.\n"
"\n"
"\"Puede que hayas conquistado este tablero,\n"
"pero tu misión está lejos de haber terminado.\n"
"Todavía queda otro Jinete de Serpiente... y\n"
"no descansará hasta haber vengado a sus\n"
"camaradas.\"\n"
"\n"
"Te ries. \"Si es como los otros dos, estará\n"
"suplicando clemencia antes de que llegue la\n"
"hora de cenar. Ahora si me disculpas, hay una\n"
"bella dama que me espera en casa.\"";
"\"Bien jugado, mortal, has conquistado este\n"
"tablero, pero tu misión lejos quede de haber\n"
"terminado. Hay aun otro Jinete... quien no\n"
"descansará hasta haber vengado a sus camaradas.\"\n"
"Te ries. \"Si es como los otros, lo haré\n"
"suplicar clemencia antes de que llegue la hora\n"
"de cenar. Ahora si me disculpas, hay una bella\n"
"dama que me espera en casa.\"";
// Re-tagged monsters
FN_ZOMBIE = "Zombi";
FN_SHOTGUN = "Calvito";

View file

@ -868,6 +868,8 @@ Class AmmoFabricator : Inventory abstract
Class FabricatorTier1 : AmmoFabricator
{
Mixin SWWMAutoUseFix;
Default
{
Tag "$T_FABRICATOR1";
@ -882,6 +884,8 @@ Class FabricatorTier1 : AmmoFabricator
}
Class FabricatorTier2 : AmmoFabricator
{
Mixin SWWMAutoUseFix;
Default
{
Tag "$T_FABRICATOR2";
@ -896,6 +900,8 @@ Class FabricatorTier2 : AmmoFabricator
}
Class FabricatorTier3 : AmmoFabricator
{
Mixin SWWMAutoUseFix;
Default
{
Tag "$T_FABRICATOR3";

View file

@ -506,6 +506,14 @@ Class ParryField : Actor
Height 40;
}
static bool ValidMissile( Actor a )
{
// fuuuuuuuuuuuuck why can't you just subclass them all from one base class, also wtf hexen, what's with all these things having +MISSILE
if ( (a is 'Rock1') || (a is 'Rock2') || (a is 'Rock3') || (a is 'Dirt1') || (a is 'Dirt2') || (a is 'Dirt3') || (a is 'Dirt4') || (a is 'Dirt5') || (a is 'Dirt6') || (a is 'GlassShard') || (a is 'PotteryBit') || (a is 'CorpseBloodDrip') || (a is 'Leaf1') || (a is 'HWaterDrip') || (a is 'IceGuyWisp1') || (a is 'WraithFX3') || (a is 'WraithFX4') || (a is 'Bat') || (a is 'SorcBall') )
return false;
return true;
}
override void Tick()
{
Super.Tick();
@ -523,7 +531,7 @@ Class ParryField : Actor
Actor a;
while ( a = Actor(ti.Next()) )
{
if ( !((a.bMISSILE && (a.target != master)) || a.bSKULLFLY) || a.bTHRUACTORS || (level.Vec3Diff(a.pos,Vec3Offset(0,0,20)).length() > 80) ) continue;
if ( !((a.bMISSILE && (a.target != master) && ValidMissile(a)) || a.bSKULLFLY) || a.bTHRUACTORS || (level.Vec3Diff(a.pos,Vec3Offset(0,0,20)).length() > 80) ) continue;
Vector3 vdir = a.vel;
Vector3 dir = level.Vec3Diff(master.Vec2OffsetZ(0,0,pos.z),a.pos).unit();
if ( dir dot vdir > 0 ) continue; // already moving away