Ball crits, Saltshot and Ragekit melee foil invulnerability.
Vanilla Centaurs still take damage from being set on fire while shielded. Expanded CLONK library (11 different stock sounds, not just coconut). Added Dark Souls parry sound easter egg. Add Demolitionist to Doom 2 cast call screen (awkward, but works). Adjust Hexen end screen, fit text better.
|
|
@ -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).
|
||||
|
|
|
|||
35
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 = "Друг";
|
||||
|
|
|
|||
59
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 */
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
BIN
patches/castdemo_0001.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0002.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0003.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0004.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0005.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0006.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0007.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0008.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0009.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0010.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0011.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0012.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0013.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
patches/castdemo_0014.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0015.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0016.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0048.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
patches/castdemo_0049.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
patches/castdemo_0050.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
patches/castdemo_0051.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
patches/castdemo_0052.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
patches/castdemo_0053.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
patches/castdemo_0054.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0055.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0056.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
patches/castdemo_0057.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
patches/castdemo_0058.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
patches/castdemo_0059.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
patches/castdemo_0060.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
patches/castdemo_0061.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
patches/castdemo_0062.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
patches/castdemo_0063.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
patches/castdemo_0064.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
patches/castdemo_0166.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0167.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0168.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0169.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0170.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
patches/castdemo_0171.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
19
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
|
||||
|
|
|
|||
BIN
sounds/CLONK.ogg
BIN
sounds/clonk/clonk1.ogg
Normal file
BIN
sounds/clonk/clonk10.ogg
Normal file
BIN
sounds/clonk/clonk11.ogg
Normal file
BIN
sounds/clonk/clonk2.ogg
Normal file
BIN
sounds/clonk/clonk3.ogg
Normal file
BIN
sounds/clonk/clonk4.ogg
Normal file
BIN
sounds/clonk/clonk5.ogg
Normal file
BIN
sounds/clonk/clonk6.ogg
Normal file
BIN
sounds/clonk/clonk7.ogg
Normal file
BIN
sounds/clonk/clonk8.ogg
Normal file
BIN
sounds/clonk/clonk9.ogg
Normal file
BIN
sounds/general/parry_ds1.ogg
Normal file
BIN
sounds/general/parry_ds2.ogg
Normal file
BIN
sounds/general/parry_ds3.ogg
Normal file
273
textures.castdemo
Normal file
|
|
@ -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
|
||||
}
|
||||
168
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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
|
|
|
|||