diff --git a/credits.txt b/credits.txt index 8b58e7fbd..14112ab22 100644 --- a/credits.txt +++ b/credits.txt @@ -13,6 +13,9 @@ Most of the work here is original, but there are some notable exceptions: * System Shock 2 * Painkiller * Killing Floor + * Dark Souls + * Dark Souls 2 + * Dark Souls 3 - This mod uses libeye, by KeksDose. Big thanks. - Title theme, "Traumatic State", by Teque (which a lot of people just know as "the AS-Golgotha music"). - Intermission theme, "Dragony", also by Teque (very comfy music considering the rest of his repertoire). diff --git a/language.def b/language.def index 95ec3595e..b315012cd 100644 --- a/language.def +++ b/language.def @@ -1941,14 +1941,16 @@ TXT_HEXEN_WIN2MSG = "With a deep, guttural voice, he begins to speak\n" "to you..."; TXT_HEXEN_WIN3MSG = -"\"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.\""; +"\"Well played, mortal, you've conquered\n" +"this board, but your mission is far from\n" +"over. One more Rider remains... and he\n" +"will not rest until he's avenged his\n" +"fallen comrades.\"\n" +"\n" +"You laugh. \"If he's anything like the\n" +"others, I'll make him beg for mercy before\n" +"dinner time. Now if you'll excuse me, I've\n" +"got a fine lady waiting for me back home.\""; // Re-tagged monsters FN_ZOMBIE = "Zomb"; FN_SHOTGUN = "Baldy"; @@ -1968,6 +1970,23 @@ FN_ARCH = "Pls No"; FN_SPIDER = "Mama Spooder"; FN_CYBER = "Dat Ass"; FN_WOLFSS = "Mein Lieben"; +CC_ZOMBIE = "Zomb"; +CC_SHOTGUN = "Baldy"; +CC_HEAVY = "Annoyance"; +CC_IMP = "Simp"; +CC_DEMON = "Pinky"; +CC_LOST = "Skully"; +CC_CACO = "Caco"; +CC_HELL = "Brownie"; +CC_BARON = "Mr. Gruh"; +CC_ARACH = "Babby"; +CC_PAIN = "Ass Pain"; +CC_REVEN = "AAAAAAAAA"; +CC_MANCU = "He Thicc"; +CC_ARCH = "Pls No"; +CC_SPIDER = "Mama Spooder"; +CC_CYBER = "Dat Ass"; +CC_HERO = "You!"; FN_DOG = "Goodest Boy"; FN_CHICKEN = "Clucker"; FN_BEAST = "Друг"; diff --git a/language.es b/language.es index 494700d68..12f037512 100644 --- a/language.es +++ b/language.es @@ -1356,16 +1356,16 @@ T_GREENKEY = "\cdLlave Verde\c-"; T_BLUEKEY = "\chLlave Azul\c-"; T_REDKEY = "\cgLlave Roja\c-"; T_KEYSTEEL = "\cuLlave de Acero\c-"; -T_KEYCAVE = "\ceLlave de Cueva\c-"; +T_KEYCAVE = "\ceLlave de la Caverna\c-"; T_KEYAXE = "\ccLlave de Hacha\c-"; T_KEYFIRE = "\cgLlave de Fuego\c-"; -T_KEYEMERALD = "\cdLlave de Esmeralda\c-"; -T_KEYDUNGEON = "\ccLlave de Mazmorra\c-"; +T_KEYEMERALD = "\cdLlave Esmeralda\c-"; +T_KEYDUNGEON = "\ccLlave del Calabozo\c-"; T_KEYSILVER = "\cjLlave de Plata\c-"; -T_KEYRUSTED = "\cbLlave de Óxido\c-"; +T_KEYRUSTED = "\cbLlave Oxidada\c-"; T_KEYHORN = "\coLlave de Cuerno\c-"; -T_KEYSWAMP = "\cpLlave de Ciénaga\c-"; -T_KEYCASTLE = "\cxLlave de Castillo\c-"; +T_KEYSWAMP = "\cpLlave del Pantano\c-"; +T_KEYCASTLE = "\cxLlave del Castillo\c-"; // shortened doom key pickup messages GOTBLUECARD = "Tarjeta Llave Azul"; GOTYELWCARD = "Tarjeta Llave Amarilla"; @@ -1406,7 +1406,7 @@ E1TEXT = "Sigues sin tener ni idea de como has\n" "ido a parar a la vieja base de Fobos\n" "de la UAC, pero no hay tiempo para\n" -"pensare en eso. Debes encontrar la\n" +"pensar en eso. Debes encontrar la\n" "forma de regresar a la Tierra, para\n" "cumplir to misión de detener la\n" "invasión del Infierno.\n" @@ -1460,7 +1460,7 @@ E3TEXT = "epicentro de la zona de invasión. Muerte y\n" "destrucción llenan las calles, y algún\n" "sádico bastardo parece haber mutilado\n" -"un pobre conejíto, ugh...\n" +"un pobre conejito, ugh...\n" "\n" "Sí, esos demonios van a estar MUY muertos...\n" "\n" @@ -1509,7 +1509,7 @@ C2TEXT = "transmisión.\n" "\n" "\"Oye, perdón por interrumpir pero, acabamos\n" -"de encontrar por donde salen los hijos de\n" +"de descubrir de donde salen los hijos de\n" "perra esos. Si no es mucho pedir, ¿podrías\n" "mover ese brillante culito metálico p'allá\n" "y mandar a esos capullos de vuelta al\n" @@ -1548,7 +1548,7 @@ C4TEXT = "tenemos mucho trabajo que hacer, sabes,\n" "reconstruyendo la Tierra y tal...\""; C5TEXT = -"¿Que es este sitio? Parece ser parte el Infierno,\n" +"¿Que es este sitio? Parece ser parte del Infierno,\n" "pero estas estructuras son todas hechas por la\n" "mano del hombre...\n" "\n" @@ -1570,7 +1570,7 @@ HE1TEXT = "humo cuando vea lo que haces con sus preciadas\n" "legiones de no muertos..."; HE2TEXT = -"Esas criaturas to cachas no fueron rival para\n" +"Esas criaturas tó cachas no fueron rival para\n" "ti, y al caer la última al suelo, ves como\n" "los portales que guardaban se abren. ¿A donde\n" "pueden llevar?\n" @@ -1612,7 +1612,7 @@ HE4TEXT = "a casa, aunque tengas que matar a mil más\n" "de estos estúpidos monstruos."; HE5TEXT = -"Con la muerte del último Minotauro, una\n" +"Con la muerte del último Maulotauro, una\n" "vez más ves como los portales se abren\n" "a otro mundo. No puedes ver realmente\n" "a donde te van a llevar, pero eso ya no\n" @@ -1630,7 +1630,7 @@ TXT_HEXEN_CLUS1MSG = "siete portales, finalmente estás en otro de\n" "los submundos de Cronos. Crueles desiertos,\n" "áridos yermos y apestosas ciénagas te esperan\n" -"más alante, y seguramente más de esos molestos\n" +"más adelante, y seguramente más de esos molestos\n" "acertijos.\n" "\n" "Te encuentras con algo familiar, es ese asqueroso\n" @@ -1676,7 +1676,7 @@ TXT_HEXEN_CLUS4MSG = "Este sitio apesta a muerte. Es... ¿un cementerio?"; TXT_HEXEN_WIN1MSG = "Cruzando el último portal, sientes como una\n" -"enorme fuerza te atapulta a través de varias\n" +"enorme fuerza te catapulta a través de varias\n" "dimensiones.\n" "\n" "Tras casi pasar tu velocímetro por el indicador\n" @@ -1704,13 +1704,15 @@ TXT_HEXEN_WIN2MSG = "hablar contigo..."; TXT_HEXEN_WIN3MSG = "\"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.\""; +"tablero, pero tu misión lejos queda de\n" +"haber terminado. Hay aun otro Jinete...\n" +"quien no descansará hasta haber vengado a\n" +"sus camaradas.\"\n" +"\n" +"Te ries. \"Si es como los otros, le haré\n" +"suplicar clemencia antes de que llegue la\n" +"hora de cenar. Ahora si me disculpas, hay\n" +"una bella dama que me espera en casa.\""; // Re-tagged monsters FN_ZOMBIE = "Zombi"; FN_SHOTGUN = "Calvito"; @@ -1726,6 +1728,19 @@ FN_PAIN = "Dolor de Culo"; FN_SPIDER = "Mami Araña"; FN_CYBER = "Madre Mía Que Culazo"; FN_WOLFSS = "Votante de VOX"; +CC_ZOMBIE = "Zombi"; +CC_SHOTGUN = "Calvito"; +CC_HEAVY = "Tocacojones"; +CC_DEMON = "Rosita"; +CC_LOST = "Calaverita"; +CC_CACO = "Tomatín"; +CC_HELL = "Marroncito"; +CC_BARON = "Señor Gruñón"; +CC_ARACH = "Ñiño"; +CC_PAIN = "Dolor de Culo"; +CC_SPIDER = "Mami Araña"; +CC_CYBER = "Madre Mía Que Culazo"; +CC_HERO = "¡Tú!"; FN_DOG = "Perrete"; FN_CHICKEN = "Gallina"; FN_CLINK = "Rasguñitos"; @@ -1870,7 +1885,7 @@ SWWM_INTERTIP28 = "Las llamas de los cartuchos de Napalm del Trabuco se extender SWWM_INTERTIP29 = "La munición incendiaria es inefectiva bajo el agua, por razones obvias."; SWWM_INTERTIP30 = "Mis novias son muy cuquis. Lo siento, es que tenía que decirlo."; // intermission fanart -SWWM_INTERART = "Arte: "; +SWWM_FANART = "Arte: "; // intermission 4komas (TBD) /* SUBTITLES */ diff --git a/menudef.txt b/menudef.txt index 9b1c86606..420c17368 100644 --- a/menudef.txt +++ b/menudef.txt @@ -93,6 +93,11 @@ OptionMenu "SWWMCreditsMenu" StaticText "Tripwire Interactive", "Gold" StaticText "Killing Floor", "White" StaticText " " + StaticText "From Software", "Gold" + StaticText "Dark Souls", "White" + StaticText "Dark Souls II", "White" + StaticText "Dark Souls III", "White" + StaticText " " StaticText "$SWWM_CMUSIC", "Red" StaticText " " StaticText "Teque", "Gold" diff --git a/patches/castdemo_0001.png b/patches/castdemo_0001.png new file mode 100644 index 000000000..958c03b9b Binary files /dev/null and b/patches/castdemo_0001.png differ diff --git a/patches/castdemo_0002.png b/patches/castdemo_0002.png new file mode 100644 index 000000000..b8a168701 Binary files /dev/null and b/patches/castdemo_0002.png differ diff --git a/patches/castdemo_0003.png b/patches/castdemo_0003.png new file mode 100644 index 000000000..a962a2007 Binary files /dev/null and b/patches/castdemo_0003.png differ diff --git a/patches/castdemo_0004.png b/patches/castdemo_0004.png new file mode 100644 index 000000000..656f34d89 Binary files /dev/null and b/patches/castdemo_0004.png differ diff --git a/patches/castdemo_0005.png b/patches/castdemo_0005.png new file mode 100644 index 000000000..42a3859a5 Binary files /dev/null and b/patches/castdemo_0005.png differ diff --git a/patches/castdemo_0006.png b/patches/castdemo_0006.png new file mode 100644 index 000000000..55b53c1c8 Binary files /dev/null and b/patches/castdemo_0006.png differ diff --git a/patches/castdemo_0007.png b/patches/castdemo_0007.png new file mode 100644 index 000000000..adab85088 Binary files /dev/null and b/patches/castdemo_0007.png differ diff --git a/patches/castdemo_0008.png b/patches/castdemo_0008.png new file mode 100644 index 000000000..c27cf14b0 Binary files /dev/null and b/patches/castdemo_0008.png differ diff --git a/patches/castdemo_0009.png b/patches/castdemo_0009.png new file mode 100644 index 000000000..ce9661f3d Binary files /dev/null and b/patches/castdemo_0009.png differ diff --git a/patches/castdemo_0010.png b/patches/castdemo_0010.png new file mode 100644 index 000000000..8b7da9fb9 Binary files /dev/null and b/patches/castdemo_0010.png differ diff --git a/patches/castdemo_0011.png b/patches/castdemo_0011.png new file mode 100644 index 000000000..4346649ab Binary files /dev/null and b/patches/castdemo_0011.png differ diff --git a/patches/castdemo_0012.png b/patches/castdemo_0012.png new file mode 100644 index 000000000..5440a958d Binary files /dev/null and b/patches/castdemo_0012.png differ diff --git a/patches/castdemo_0013.png b/patches/castdemo_0013.png new file mode 100644 index 000000000..cd49cb3b0 Binary files /dev/null and b/patches/castdemo_0013.png differ diff --git a/patches/castdemo_0014.png b/patches/castdemo_0014.png new file mode 100644 index 000000000..dbf0206de Binary files /dev/null and b/patches/castdemo_0014.png differ diff --git a/patches/castdemo_0015.png b/patches/castdemo_0015.png new file mode 100644 index 000000000..8da329e87 Binary files /dev/null and b/patches/castdemo_0015.png differ diff --git a/patches/castdemo_0016.png b/patches/castdemo_0016.png new file mode 100644 index 000000000..86d2bf84d Binary files /dev/null and b/patches/castdemo_0016.png differ diff --git a/patches/castdemo_0048.png b/patches/castdemo_0048.png new file mode 100644 index 000000000..d22f90cb4 Binary files /dev/null and b/patches/castdemo_0048.png differ diff --git a/patches/castdemo_0049.png b/patches/castdemo_0049.png new file mode 100644 index 000000000..63c118931 Binary files /dev/null and b/patches/castdemo_0049.png differ diff --git a/patches/castdemo_0050.png b/patches/castdemo_0050.png new file mode 100644 index 000000000..cb081afa6 Binary files /dev/null and b/patches/castdemo_0050.png differ diff --git a/patches/castdemo_0051.png b/patches/castdemo_0051.png new file mode 100644 index 000000000..c59a3401d Binary files /dev/null and b/patches/castdemo_0051.png differ diff --git a/patches/castdemo_0052.png b/patches/castdemo_0052.png new file mode 100644 index 000000000..c9c88758a Binary files /dev/null and b/patches/castdemo_0052.png differ diff --git a/patches/castdemo_0053.png b/patches/castdemo_0053.png new file mode 100644 index 000000000..8104ed025 Binary files /dev/null and b/patches/castdemo_0053.png differ diff --git a/patches/castdemo_0054.png b/patches/castdemo_0054.png new file mode 100644 index 000000000..48776a5c4 Binary files /dev/null and b/patches/castdemo_0054.png differ diff --git a/patches/castdemo_0055.png b/patches/castdemo_0055.png new file mode 100644 index 000000000..afd276d92 Binary files /dev/null and b/patches/castdemo_0055.png differ diff --git a/patches/castdemo_0056.png b/patches/castdemo_0056.png new file mode 100644 index 000000000..924940a8e Binary files /dev/null and b/patches/castdemo_0056.png differ diff --git a/patches/castdemo_0057.png b/patches/castdemo_0057.png new file mode 100644 index 000000000..54d77007f Binary files /dev/null and b/patches/castdemo_0057.png differ diff --git a/patches/castdemo_0058.png b/patches/castdemo_0058.png new file mode 100644 index 000000000..7eb477a85 Binary files /dev/null and b/patches/castdemo_0058.png differ diff --git a/patches/castdemo_0059.png b/patches/castdemo_0059.png new file mode 100644 index 000000000..40f116b21 Binary files /dev/null and b/patches/castdemo_0059.png differ diff --git a/patches/castdemo_0060.png b/patches/castdemo_0060.png new file mode 100644 index 000000000..9a14432fe Binary files /dev/null and b/patches/castdemo_0060.png differ diff --git a/patches/castdemo_0061.png b/patches/castdemo_0061.png new file mode 100644 index 000000000..5afeade0b Binary files /dev/null and b/patches/castdemo_0061.png differ diff --git a/patches/castdemo_0062.png b/patches/castdemo_0062.png new file mode 100644 index 000000000..1e230fc28 Binary files /dev/null and b/patches/castdemo_0062.png differ diff --git a/patches/castdemo_0063.png b/patches/castdemo_0063.png new file mode 100644 index 000000000..62726cfa5 Binary files /dev/null and b/patches/castdemo_0063.png differ diff --git a/patches/castdemo_0064.png b/patches/castdemo_0064.png new file mode 100644 index 000000000..5fd343574 Binary files /dev/null and b/patches/castdemo_0064.png differ diff --git a/patches/castdemo_0166.png b/patches/castdemo_0166.png new file mode 100644 index 000000000..58b2b12c3 Binary files /dev/null and b/patches/castdemo_0166.png differ diff --git a/patches/castdemo_0167.png b/patches/castdemo_0167.png new file mode 100644 index 000000000..a9ee67bfa Binary files /dev/null and b/patches/castdemo_0167.png differ diff --git a/patches/castdemo_0168.png b/patches/castdemo_0168.png new file mode 100644 index 000000000..1c882628a Binary files /dev/null and b/patches/castdemo_0168.png differ diff --git a/patches/castdemo_0169.png b/patches/castdemo_0169.png new file mode 100644 index 000000000..cd2f8f46a Binary files /dev/null and b/patches/castdemo_0169.png differ diff --git a/patches/castdemo_0170.png b/patches/castdemo_0170.png new file mode 100644 index 000000000..298619e81 Binary files /dev/null and b/patches/castdemo_0170.png differ diff --git a/patches/castdemo_0171.png b/patches/castdemo_0171.png new file mode 100644 index 000000000..6640948d4 Binary files /dev/null and b/patches/castdemo_0171.png differ diff --git a/sndinfo.txt b/sndinfo.txt index c18b824ca..0fdc767d5 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -603,7 +603,6 @@ misc/teleport sounds/general/teleport.ogg misc/chat sounds/menu/chatsnd.ogg misc/chat2 sounds/menu/chatsnd.ogg misc/sundowner sounds/SUNDOWNER.ogg -misc/clonk sounds/CLONK.ogg misc/emone sounds/EMONE.ogg misc/underwater sounds/general/uWater1a.ogg @@ -621,6 +620,24 @@ misc/ricochet2 sounds/general/ric2.ogg misc/ricochet3 sounds/general/ric3.ogg $random misc/ricochet { misc/ricochet1 misc/ricochet2 misc/ricochet3 } +misc/parry_ds1 sounds/general/parry_ds1.ogg +misc/parry_ds2 sounds/general/parry_ds2.ogg +misc/parry_ds3 sounds/general/parry_ds3.ogg +$random misc/soulsparry { misc/parry_ds1 misc/parry_ds2 misc/parry_ds3 } + +misc/clonk1 sounds/clonk/clonk1.ogg +misc/clonk2 sounds/clonk/clonk2.ogg +misc/clonk3 sounds/clonk/clonk3.ogg +misc/clonk4 sounds/clonk/clonk4.ogg +misc/clonk5 sounds/clonk/clonk5.ogg +misc/clonk6 sounds/clonk/clonk6.ogg +misc/clonk7 sounds/clonk/clonk7.ogg +misc/clonk8 sounds/clonk/clonk8.ogg +misc/clonk9 sounds/clonk/clonk9.ogg +misc/clonk10 sounds/clonk/clonk10.ogg +misc/clonk11 sounds/clonk/clonk11.ogg +$random misc/clonk { misc/clonk1 misc/clonk2 misc/clonk3 misc/clonk4 misc/clonk5 misc/clonk6 misc/clonk7 misc/clonk8 misc/clonk9 misc/clonk10 misc/clonk11 } + armor/blastsuit sounds/items/blastsuit.ogg armor/wararmor sounds/items/wararmor.ogg armor/hit1 sounds/items/hullhit.ogg diff --git a/sounds/CLONK.ogg b/sounds/CLONK.ogg deleted file mode 100644 index bcfda9e66..000000000 Binary files a/sounds/CLONK.ogg and /dev/null differ diff --git a/sounds/clonk/clonk1.ogg b/sounds/clonk/clonk1.ogg new file mode 100644 index 000000000..d828245eb Binary files /dev/null and b/sounds/clonk/clonk1.ogg differ diff --git a/sounds/clonk/clonk10.ogg b/sounds/clonk/clonk10.ogg new file mode 100644 index 000000000..4cd87de93 Binary files /dev/null and b/sounds/clonk/clonk10.ogg differ diff --git a/sounds/clonk/clonk11.ogg b/sounds/clonk/clonk11.ogg new file mode 100644 index 000000000..4f5ee0d8d Binary files /dev/null and b/sounds/clonk/clonk11.ogg differ diff --git a/sounds/clonk/clonk2.ogg b/sounds/clonk/clonk2.ogg new file mode 100644 index 000000000..fb9c6cda6 Binary files /dev/null and b/sounds/clonk/clonk2.ogg differ diff --git a/sounds/clonk/clonk3.ogg b/sounds/clonk/clonk3.ogg new file mode 100644 index 000000000..9cb1947b2 Binary files /dev/null and b/sounds/clonk/clonk3.ogg differ diff --git a/sounds/clonk/clonk4.ogg b/sounds/clonk/clonk4.ogg new file mode 100644 index 000000000..984b459a9 Binary files /dev/null and b/sounds/clonk/clonk4.ogg differ diff --git a/sounds/clonk/clonk5.ogg b/sounds/clonk/clonk5.ogg new file mode 100644 index 000000000..f58fa1c0e Binary files /dev/null and b/sounds/clonk/clonk5.ogg differ diff --git a/sounds/clonk/clonk6.ogg b/sounds/clonk/clonk6.ogg new file mode 100644 index 000000000..00e1ec5b5 Binary files /dev/null and b/sounds/clonk/clonk6.ogg differ diff --git a/sounds/clonk/clonk7.ogg b/sounds/clonk/clonk7.ogg new file mode 100644 index 000000000..053f42933 Binary files /dev/null and b/sounds/clonk/clonk7.ogg differ diff --git a/sounds/clonk/clonk8.ogg b/sounds/clonk/clonk8.ogg new file mode 100644 index 000000000..1878f097f Binary files /dev/null and b/sounds/clonk/clonk8.ogg differ diff --git a/sounds/clonk/clonk9.ogg b/sounds/clonk/clonk9.ogg new file mode 100644 index 000000000..9e7346293 Binary files /dev/null and b/sounds/clonk/clonk9.ogg differ diff --git a/sounds/general/parry_ds1.ogg b/sounds/general/parry_ds1.ogg new file mode 100644 index 000000000..2d77ef665 Binary files /dev/null and b/sounds/general/parry_ds1.ogg differ diff --git a/sounds/general/parry_ds2.ogg b/sounds/general/parry_ds2.ogg new file mode 100644 index 000000000..84484ac5e Binary files /dev/null and b/sounds/general/parry_ds2.ogg differ diff --git a/sounds/general/parry_ds3.ogg b/sounds/general/parry_ds3.ogg new file mode 100644 index 000000000..313615e50 Binary files /dev/null and b/sounds/general/parry_ds3.ogg differ diff --git a/textures.castdemo b/textures.castdemo new file mode 100644 index 000000000..cc4f7e62f --- /dev/null +++ b/textures.castdemo @@ -0,0 +1,273 @@ +Sprite "CCD1A0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0001.png", 0, 0 +} +Sprite "CCD1B0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0002.png", 0, 0 +} +Sprite "CCD1C0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0003.png", 0, 0 +} +Sprite "CCD1D0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0004.png", 0, 0 +} +Sprite "CCD1E0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0005.png", 0, 0 +} +Sprite "CCD1F0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0006.png", 0, 0 +} +Sprite "CCD1G0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0007.png", 0, 0 +} +Sprite "CCD1H0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0008.png", 0, 0 +} +Sprite "CCD1I0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0009.png", 0, 0 +} +Sprite "CCD1J0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0010.png", 0, 0 +} +Sprite "CCD1K0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0011.png", 0, 0 +} +Sprite "CCD1L0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0012.png", 0, 0 +} +Sprite "CCD1M0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0013.png", 0, 0 +} +Sprite "CCD1N0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0014.png", 0, 0 +} +Sprite "CCD1O0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0015.png", 0, 0 +} +Sprite "CCD1P0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0016.png", 0, 0 +} +Sprite "CCD2A0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0166.png", 0, 0 +} +Sprite "CCD2B0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0167.png", 0, 0 +} +Sprite "CCD2C0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0168.png", 0, 0 +} +Sprite "CCD2D0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0169.png", 0, 0 +} +Sprite "CCD2E0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0170.png", 0, 0 +} +Sprite "CCD2F0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0171.png", 0, 0 +} +Sprite "CCD3A0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0048.png", 0, 0 +} +Sprite "CCD3B0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0049.png", 0, 0 +} +Sprite "CCD3C0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0050.png", 0, 0 +} +Sprite "CCD3D0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0051.png", 0, 0 +} +Sprite "CCD3E0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0052.png", 0, 0 +} +Sprite "CCD3F0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0053.png", 0, 0 +} +Sprite "CCD3G0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0054.png", 0, 0 +} +Sprite "CCD3H0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0055.png", 0, 0 +} +Sprite "CCD3I0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0056.png", 0, 0 +} +Sprite "CCD3J0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0057.png", 0, 0 +} +Sprite "CCD3K0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0058.png", 0, 0 +} +Sprite "CCD3L0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0059.png", 0, 0 +} +Sprite "CCD3M0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0060.png", 0, 0 +} +Sprite "CCD3N0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0061.png", 0, 0 +} +Sprite "CCD3O0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0062.png", 0, 0 +} +Sprite "CCD3P0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0063.png", 0, 0 +} +Sprite "CCD3Q0", 160, 224 +{ + XScale 3.2 + YScale 3.0 + Offset 80, 192 + Patch "patches/castdemo_0064.png", 0, 0 +} diff --git a/zmapinfo.txt b/zmapinfo.txt index 1d8a26610..890ad3735 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -14,3 +14,171 @@ Map TITLEMAP "SWWM GZ - Title Map" Music = "" EventHandlers = "SWWMTitleStuff" } + +// edited Doom 2 cast to show the Demolitionist at the end +Intermission Doom2Cast +{ + Cast + { + CastClass = "Zombieman" + CastName = "$CC_ZOMBIE" + AttackSound = "Missile", 1, "grunt/attack" + } + Cast + { + CastClass = "ShotgunGuy" + CastName = "$CC_SHOTGUN" + AttackSound = "Missile", 1, "shotguy/attack" + } + Cast + { + CastClass = "ChaingunGuy" + CastName = "$CC_HEAVY" + AttackSound = "Missile", 1, "chainguy/attack" + AttackSound = "Missile", 2, "chainguy/attack" + AttackSound = "Missile", 3, "chainguy/attack" + } + Cast + { + CastClass = "DoomImp" + CastName = "$CC_IMP" + AttackSound = "Missile", 2, "imp/attack" + } + Cast + { + CastClass = "Demon" + CastName = "$CC_DEMON" + AttackSound = "Melee", 1, "demon/melee" + } + Cast + { + CastClass = "LostSoul" + CastName = "$CC_LOST" + AttackSound = "Missile", 1, "skull/melee" + } + Cast + { + CastClass = "Cacodemon" + CastName = "$CC_CACO" + AttackSound = "Missile", 1, "caco/attack" + } + Cast + { + CastClass = "HellKnight" + CastName = "$CC_HELL" + AttackSound = "Missile", 1, "baron/attack" + } + Cast + { + CastClass = "BaronOfHell" + CastName = "$CC_BARON" + AttackSound = "Missile", 1, "baron/attack" + } + Cast + { + CastClass = "Arachnotron" + CastName = "$CC_ARACH" + AttackSound = "Missile", 1, "baby/attack" + } + Cast + { + CastClass = "PainElemental" + CastName = "$CC_PAIN" + AttackSound = "Missile", 2, "skull/melee" + } + Cast + { + CastClass = "Revenant" + CastName = "$CC_REVEN" + AttackSound = "Missile", 1, "skeleton/attack" + AttackSound = "Melee", 1, "skeleton/swing" + AttackSound = "Melee", 3, "skeleton/melee" + } + Cast + { + CastClass = "Fatso" + CastName = "$CC_MANCU" + AttackSound = "Missile", 1, "fatso/attack" + AttackSound = "Missile", 4, "fatso/attack" + AttackSound = "Missile", 7, "fatso/attack" + } + Cast + { + CastClass = "Archvile" + CastName = "$CC_ARCH" + AttackSound = "Missile", 1, "vile/start" + } + Cast + { + CastClass = "SpiderMastermind" + CastName = "$CC_SPIDER" + AttackSound = "Missile", 1, "spider/attack" + AttackSound = "Missile", 2, "spider/attack" + } + Cast + { + CastClass = "Cyberdemon" + CastName = "$CC_CYBER" + AttackSound = "Missile", 1, "weapons/rocklf" + AttackSound = "Missile", 3, "weapons/rocklf" + AttackSound = "Missile", 5, "weapons/rocklf" + } + Cast + { + CastClass = "CastDemolitionist" + CastName = "$CC_HERO" + AttackSound = "Missile", 0, "explodium/fire" + } + Link = Doom2Cast // restart cast call +} + +// edited Hexen ending +// draws the three player classes unconditionally +// shifts the final text screen so it doesn't get cut off +Intermission Inter_Chess +{ + Fader + { + Music = "Hall" + Background = "FINALE1" + Time = 2 + FadeType = FadeIn + } + TextScreen + { + Background = "FINALE1" + TextSpeed = 3 + Text = "$TXT_HEXEN_WIN1MSG" + Time = -250 + } + TextScreen + { + Music = "Orb" + Background = "FINALE2" + TextSpeed = 3 + Text = "$TXT_HEXEN_WIN2MSG" + Time = -250 + } + Fader + { + Background = "FINALE2" + Time = 2 + FadeType = FadeOut + } + Fader + { + Music = "Chess" + Background = "FINALE3" + Draw = "CHESSALL", 20, 0 + Time = 2 + FadeType = FadeIn + } + TextScreen + { + Background = "FINALE3" + Draw = "CHESSALL", 20, 0 + TextSpeed = 3 + Text = "$TXT_HEXEN_WIN3MSG" + Position = 0, 112 + } +} diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index 9620157eb..74b0bb6c8 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -57,6 +57,8 @@ Class SWWMArmor : Armor abstract override void ModifyDamage( int damage, Name damageType, out int newdamage, bool passive, Actor inflictor, Actor source, int flags ) { if ( !passive ) return; + if ( (damagetype == 'Drowning') || (damagetype == 'Falling') || (damagetype == 'Poison') || (damagetype == 'PoisonCloud') ) + return; // these go through armor and get ignored by the player int saved; if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) && (damage > 0) ) { @@ -490,6 +492,8 @@ Class ParriedRage : Inventory Class ParryField : Actor { + int lasteggtic; + Default { +NOGRAVITY; @@ -563,6 +567,11 @@ Class ParryField : Actor i.bAMBUSH = true; A_QuakeEx(3,3,3,10,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.2); A_StartSound("demolitionist/parry",CHAN_WEAPON); + if ( (level.maptime > lasteggtic) && !Random[Parry](0,9) ) + { + A_StartSound("misc/soulsparry",CHAN_ITEM,CHANF_OVERLAP,1.,.5); + lasteggtic = level.maptime+5; + } } if ( --special1 <= 0 ) Destroy(); } @@ -587,6 +596,11 @@ Class ParryField : Actor A_StartSound("misc/ricochet",CHAN_VOICE,CHANF_OVERLAP,.7); A_QuakeEx(3,3,3,10,0,64,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.2); A_StartSound("demolitionist/parry",CHAN_WEAPON); + if ( (level.maptime > lasteggtic) && !Random[Parry](0,9) ) + { + A_StartSound("misc/soulsparry",CHAN_ITEM,CHANF_OVERLAP,1.,.5); + lasteggtic = level.maptime+5; + } // three options: switch ( Random[Parry](0,7) ) { @@ -750,12 +764,14 @@ Class SWWMWeapon : Weapon abstract invoker.bNOEXTREMEDEATH = true; } d.HitActor.DaggerAlert(self); - dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Melee',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x)); + int flg = DMG_USEANGLE|DMG_THRUSTLESS; + if ( raging ) flg |= DMG_FOILINVUL; + dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Melee',flg,atan2(d.HitDir.y,d.HitDir.x)); invoker.bEXTREMEDEATH = invoker.default.bEXTREMEDEATH; invoker.bNOEXTREMEDEATH = invoker.default.bEXTREMEDEATH; int quakin = raging?8:2; if ( d.HitActor.player ) d.HitActor.A_QuakeEx(quakin,quakin,quakin,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.125*quakin); - if ( !d.HitActor.bNOBLOOD && !d.HitActor.bINVULNERABLE ) + if ( !d.HitActor.bNOBLOOD && (raging || !d.HitActor.bINVULNERABLE) ) { d.HitActor.TraceBleed(dmg,invoker); d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg); diff --git a/zscript/swwm_menu.zsc b/zscript/swwm_menu.zsc index 6cb075857..7df901334 100644 --- a/zscript/swwm_menu.zsc +++ b/zscript/swwm_menu.zsc @@ -1800,4 +1800,4 @@ Class SWWMOptionMenu : OptionMenu ypos += fnt.GetHeight()*CleanYFac_1; } } -} \ No newline at end of file +} diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 74d6273d9..bce35f00a 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -571,7 +571,9 @@ Class Demolitionist : PlayerPawn a.vel += pushdir*(15+(spd*150/max(50,a.mass))); a.vel.z += 5+(spd*(50/max(50,a.mass))); } - a.DamageMobj(self,self,int(15+spd*2.5),'Dash',DMG_THRUSTLESS); + int flg = DMG_THRUSTLESS; + if ( FindInventory("RagekitPower") ) flg |= DMG_FOILINVUL; + a.DamageMobj(self,self,int(15+spd*2.5),'Dash',flg); } } else if ( InStateSequence(CurState,FindState("Jump")) ) @@ -1735,3 +1737,28 @@ Class DemolitionistSelfLight : Actor target.A_AttachLight('DemoSelfLight2',DynamicLight.PointLight,Color(32,48,24),80,0,DynamicLight.LF_DONTLIGHTSELF|DynamicLight.LF_ATTENUATE,(0,0,target.height/2)); } } + +// for the doom 2 cast +Class CastDemolitionist : Actor +{ + Default + { + DeathSound "demolitionist/death"; + } + States + { + Spawn: + See: + CCD1 ABCDEFGHIJKLMNOP 2; + Loop; + Missile: + CCD1 A 2; + CCD2 ABCDEF 2; + Goto See; + Death: + CCD1 A 2; + CCD3 ABCDEFGHIJKLMNOP 2; + CCD3 Q -1; + Stop; + } +} diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc index 1cd8df89e..1f1af0789 100644 --- a/zscript/swwm_shot.zsc +++ b/zscript/swwm_shot.zsc @@ -559,6 +559,7 @@ Class SaltImpact : Actor +FORCERADIUSDMG; +FORCEXYBILLBOARD; +NOTELEPORT; + +FOILINVUL; } override void PostBeginPlay() { @@ -632,6 +633,7 @@ Class SaltBeam : Actor +ROLLCENTER; +NODAMAGETHRUST; +FORCERADIUSDMG; + +FOILINVUL; } void SpreadOut() @@ -885,7 +887,11 @@ Class OnFire : Actor { cnt = min(10,30-int(29*(min(1.,amount/500.)**3.))); if ( victim.bSHOOTABLE && (victim.Health > 0) && (amount > 0) ) - victim.DamageMobj(self,instigator,clamp(int(amount*.1),1,30),'Fire',DMG_THRUSTLESS); // need to use this actor to have a proper obituary + { + int flg = DMG_THRUSTLESS; + if ( victim is 'Centaur' ) flg |= DMG_FOILINVUL; // you're on fire, that shield is worthless + victim.DamageMobj(self,instigator,clamp(int(amount*.1),1,30),'Fire',flg); // need to use this actor as inflictor to have a proper obituary + } if ( !victim ) { A_StopSound(CHAN_5); @@ -1324,12 +1330,15 @@ Class TheBall : Actor int dmg = int(vel.length()*4.2+heat*80); bool is_schutt = victim.bSHOOTABLE; // critical hit! + bool crit = false; if ( is_schutt && !Random[Spreadgun](0,9) ) { Spawn("SWWMItemFog",pos); - A_StartSound("misc/clonk",CHAN_FOOTSTEP,CHANF_OVERLAP,1.,.2); + int whichclonk = Random[Spreadgun](1,11); + String snd = String.Format("misc/clonk%d",whichclonk); + A_StartSound(snd,CHAN_FOOTSTEP,CHANF_OVERLAP,1.,.2); victim.A_QuakeEx(8,8,8,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:1.); - victim.A_StartSound("misc/clonk",CHAN_FOOTSTEP,CHANF_OVERLAP,1.,.2); + victim.A_StartSound(snd,CHAN_FOOTSTEP,CHANF_OVERLAP,1.,.2); slamforce *= 4; dmg *= 4; vel *= 1.1; @@ -1342,10 +1351,11 @@ Class TheBall : Actor s.alpha *= .2; s.vel = pvel; } + crit = true; } SWWMHandler.DoKnockback(victim,vel.unit(),slamforce); bool bleeds = (victim && !victim.bINVULNERABLE && !victim.bNOBLOOD && is_schutt); - dmg = victim.DamageMobj(self,target,dmg,'Concussion',DMG_THRUSTLESS); + dmg = victim.DamageMobj(self,target,dmg,'Concussion',crit?(DMG_THRUSTLESS|DMG_FOILINVUL):DMG_THRUSTLESS); // crits ignore invulnerability Vector3 dir = -vel.unit(); // slam jam if ( bleeds )