diff --git a/credits.txt b/credits.txt index ba044a773..db52ebce6 100644 --- a/credits.txt +++ b/credits.txt @@ -21,3 +21,4 @@ Most of the work here is original, but there are some notable exceptions: - Tewi font by lucy (https://github.com/lucy/tewi-font). Modified to add gradients and drop shadow. - MPlus font by M⁺ FONTS PROJECT (http://mplus-fonts.osdn.jp/mplus-bitmap-fonts). Modified to add gradients and drop shadow. - Miniwi font by Josuah Demangeon (http://josuah.net). Modified to add gradients and drop shadow. + - Terrain splashes for Doom by MagicWazard. diff --git a/filter/game-doomchex/CREDITS.txt b/filter/game-doomchex/CREDITS.txt new file mode 100644 index 000000000..fd6c3aa4a --- /dev/null +++ b/filter/game-doomchex/CREDITS.txt @@ -0,0 +1,7 @@ +Submitted: MagicWazard +Decorate: MagicWazard +GLDefs: MagicWazard +Sounds: Raven Software +Sprites: Raven Software +Sprite Edit: MagicWazard +Idea Base: Heretic/Hexen splashes \ No newline at end of file diff --git a/filter/game-doomchex/DECORATE.txt b/filter/game-doomchex/DECORATE.txt new file mode 100644 index 000000000..b3d5801f8 --- /dev/null +++ b/filter/game-doomchex/DECORATE.txt @@ -0,0 +1,38 @@ +//mud--a brown variant of the "sludge" that better fits Doom's brown sludgy textures +ACTOR MudChunk +{ + Radius 2 + Height 4 + +NOBLOCKMAP + +MISSILE + +DROPOFF + +NOTELEPORT + +LOWGRAVITY + +CANNOTPUSH + +DONTSPLASH + States + { + Spawn: + MUDS ABCD 8 + Stop + Death: + MUDS D 6 + Stop + } +} + +ACTOR MudSplash +{ + +NOBLOCKMAP + +NOCLIP + +NOGRAVITY + +DONTSPLASH + States + { + Spawn: + MUDS EFGH 6 + Stop + } +} + +//note that all other "chunk" actors utilized in "TERRAIN" are stock classes included with zDoom's .PK3 file \ No newline at end of file diff --git a/filter/game-doomchex/GLDEFS.txt b/filter/game-doomchex/GLDEFS.txt new file mode 100644 index 000000000..7148632ce --- /dev/null +++ b/filter/game-doomchex/GLDEFS.txt @@ -0,0 +1,49 @@ +//brightmaps for the slime (nukage) splash actors +//without these, they're hard to see against the nukage flat if used in gzDoom with brightmap support +BrightMap Sprite SLIMA0 +{ +Map BMSLIMA0 +DisableFullBright +} + +BrightMap Sprite SLIMB0 +{ +Map BMSLIMB0 +DisableFullBright +} + +BrightMap Sprite SLIMC0 +{ +Map BMSLIMC0 +DisableFullBright +} + +BrightMap Sprite SLIMD0 +{ +Map BMSLIMD0 +DisableFullBright +} + +BrightMap Sprite SLIME0 +{ +Map BMSLIME0 +DisableFullBright +} + +BrightMap Sprite SLIMF0 +{ +Map BMSLIMF0 +DisableFullBright +} + +BrightMap Sprite SLIMG0 +{ +Map BMSLIMG0 +DisableFullBright +} + +BrightMap Sprite SLIMH0 +{ +Map BMSLIMH0 +DisableFullBright +} \ No newline at end of file diff --git a/filter/game-doomchex/INFO.txt b/filter/game-doomchex/INFO.txt new file mode 100644 index 000000000..ab6f61a66 --- /dev/null +++ b/filter/game-doomchex/INFO.txt @@ -0,0 +1,14 @@ +Type: Terrain splash effects for Doom flats +Connections: Raven splash FX (included), zDoom default splash "chunk" actors +Spawn Offsets: N/A +Documentation: Yes (in TERRAIN lump) +Spawn Ceiling: No +Variants: 7 - Water, Sludge, Lava, Blood, Slime (Nukage), Mud, Sizzle +Summon: N/A +Brightmaps: Yes +ACS: No + + +Provides splash effects for Doom flats. Includes water, sludge, and lava from +Heretic/Hexen, as well as blood, slime (nukage), and mud, and a "sizzle" effect +for hot non-liquid floors. \ No newline at end of file diff --git a/filter/game-doomchex/SNDINFO.txt b/filter/game-doomchex/SNDINFO.txt new file mode 100644 index 000000000..8f622a3d7 --- /dev/null +++ b/filter/game-doomchex/SNDINFO.txt @@ -0,0 +1,11 @@ +//splashes (duped from Heretic and Hexen, since they don't load in Doom natively by default) +world/drip gloop +world/watersplash gloop +world/lavasizzle acid5 +world/sludgegloop muck5 +//you can override the limit values so multiple splashes can play simultaneously +//note that this sounds bad if multiple splashes play all at once (such as when firing a shotgun into liquid), so override these values at your own discretion +/*$Limit world/drip 4 +$Limit world/watersplash 4 +$Limit world/lavasizzle 4 +$Limit world/sludgegloop 4*/ \ No newline at end of file diff --git a/filter/game-doomchex/TERRAIN.txt b/filter/game-doomchex/TERRAIN.txt new file mode 100644 index 000000000..2716e98bb --- /dev/null +++ b/filter/game-doomchex/TERRAIN.txt @@ -0,0 +1,260 @@ +//This is where all the different Doom-compatible terrains are defined +//note that Water, Sludge, and Lava are available already in zDoom, but these versions have some modifications from the existing ones + +//the "base" and "chunk" actor classes used in each splash are the versions provided by zDoom, except for "Mud", which is a new definition + +//footclip value for each terrain is commented out, so actors will "stand on" the fluid like in stock Doom +//if you want the fluids to behave like in Raven, so actors will "sink" in them, re-enable the footclip value + +//also, I removed the smallclip value from each splash, since they tended to get culled by the floor when the matching terrain has no footclip value defined; +//if you put the footclip value back in, then set the smallclip value for each splash back to "12", so they look right + +//sludge, slime, and lava deal no damage; I assume that you'll want to handle damage through sector properties like stock Doom +//you can easily modify this if you want, though; placeholder values are present for each terrain type, but commented out + +//lastly, the default zDoom (and Hexen) versions of the splashes alert monsters; I removed this property from mine +//if you want splash noises to alert monsters, then remove "noalert" from each splash definition + + +//water splash +splash DoomWater +{ + smallclass WaterSplashBase + smallclip 0 + smallsound world/drip + + baseclass WaterSplashBase + chunkclass WaterSplash + chunkxvelshift 8 + chunkyvelshift 8 + chunkzvelshift 8 + chunkbasezvel 2 + sound world/watersplash + noalert +} + +terrain DoomWater +{ + splash DoomWater + //footclip 10 + liquid +} + + +//sludge splash +splash DoomSludge +{ + smallclass SludgeSplash + smallclip 0 + smallsound world/sludgegloop + + baseclass SludgeSplash + chunkclass SludgeChunk + chunkxvelshift 8 + chunkyvelshift 8 + chunkzvelshift 8 + chunkbasezvel 1 + sound world/sludgegloop + noalert +} + +terrain DoomSludge +{ + splash DoomSludge + //footclip 10 + liquid + + //damageamount 5 + //damagetype slime + //damagetimemask 34 + //allowprotection +} + + +//lava +splash DoomLava +{ + smallclass LavaSplash + smallclip 0 + smallsound world/lavasizzle + + baseclass LavaSplash + chunkclass LavaSmoke + chunkxvelshift -1 + chunkyvelshift -1 + chunkzvelshift 7 + chunkbasezvel 1 + sound world/lavasizzle + noalert +} + +terrain DoomLava +{ + splash DoomLava + //footclip 10 + liquid + + //damageamount 10 + //damagetype lava + //damagetimemask 34 + //allowprotection +} + + +//blood +splash DoomBlood +{ + smallclass BloodSplashBase + smallclip 0 + smallsound world/drip + + baseclass BloodSplashBase + chunkclass BloodSplash + chunkxvelshift 8 + chunkyvelshift 8 + chunkzvelshift 8 + chunkbasezvel 2 + sound world/watersplash + noalert +} + +terrain DoomBlood +{ + splash DoomBlood + //footclip 10 + liquid + } + + +//nukage slime +splash DoomSlime +{ + smallclass SlimeSplash + smallclip 0 + smallsound world/sludgegloop + + baseclass SlimeSplash + chunkclass SlimeChunk + chunkxvelshift 8 + chunkyvelshift 8 + chunkzvelshift 8 + chunkbasezvel 1 + sound world/sludgegloop + noalert +} + +terrain DoomSlime +{ + splash DoomSlime + //footclip 10 + liquid + + //damageamount 5 + //damagetype slime + //damagetimemask 34 + //allowprotection +} + + +//brown muddy slime; based off sludge +splash DoomMud +{ + smallclass MudSplash + smallclip 0 + smallsound world/sludgegloop + + baseclass MudSplash + chunkclass MudChunk + chunkxvelshift 8 + chunkyvelshift 8 + chunkzvelshift 8 + chunkbasezvel 1 + sound world/sludgegloop + noalert +} + +terrain DoomMud +{ + splash DoomMud + //footclip 10 + liquid +} + + +//sizzle effect for "hot" floors, like the glowing rock textures +splash DoomSizzle +{ + smallclass LavaSmoke + smallclip 0 + smallsound world/lavasizzle + + baseclass LavaSmoke + chunkclass none + chunkxvelshift -1 + chunkyvelshift -1 + chunkzvelshift 7 + chunkbasezvel 1 + sound world/lavasizzle + noalert +} + +terrain DoomSizzle +{ + splash DoomSizzle + + //damageamount 5 + //damagetype lava + //damagetimemask 34 + //allowprotection +} + + +//terrains are assigned to flats here +//follow this template to add terrain support to your custom flats + +//water +floor fwater1 Doomwater +floor fwater2 Doomwater +floor fwater3 Doomwater +floor fwater4 Doomwater + +//sludge +//(note that Heretic's sludge doesn't really fit any stock Doom flats, but it's included in case you want it for custom flats + +//lava +floor lava1 DoomLava +floor lava2 DoomLava +floor lava3 DoomLava +floor lava4 DoomLava + +//blood +floor blood1 DoomBlood +floor blood2 DoomBlood +floor blood3 DoomBlood + +//slime +floor nukage1 DoomSlime +floor nukage2 DoomSlime +floor nukage3 DoomSlime + +//muddy sludge +floor slime01 DoomMud +floor slime02 DoomMud +floor slime03 DoomMud +floor slime04 DoomMud +floor slime05 DoomMud +floor slime06 DoomMud +floor slime07 DoomMud +floor slime08 DoomMud + +//sizzling hot floors +floor rrock01 DoomSizzle +floor rrock02 DoomSizzle +floor rrock05 DoomSizzle +floor rrock06 DoomSizzle +floor rrock07 DoomSizzle +floor rrock08 DoomSizzle +floor slime09 DoomSizzle +floor slime10 DoomSizzle +floor slime11 DoomSizzle +floor slime12 DoomSizzle \ No newline at end of file diff --git a/filter/game-doomchex/graphics/BMSLIMA0.png b/filter/game-doomchex/graphics/BMSLIMA0.png new file mode 100644 index 000000000..6c06e8b8e Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMA0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIMB0.png b/filter/game-doomchex/graphics/BMSLIMB0.png new file mode 100644 index 000000000..3b4b28d75 Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMB0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIMC0.png b/filter/game-doomchex/graphics/BMSLIMC0.png new file mode 100644 index 000000000..20695ee80 Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMC0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIMD0.png b/filter/game-doomchex/graphics/BMSLIMD0.png new file mode 100644 index 000000000..c389adea7 Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMD0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIME0.png b/filter/game-doomchex/graphics/BMSLIME0.png new file mode 100644 index 000000000..8f850942d Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIME0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIMF0.png b/filter/game-doomchex/graphics/BMSLIMF0.png new file mode 100644 index 000000000..b72dd018f Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMF0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIMG0.png b/filter/game-doomchex/graphics/BMSLIMG0.png new file mode 100644 index 000000000..5f43c8ffd Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMG0.png differ diff --git a/filter/game-doomchex/graphics/BMSLIMH0.png b/filter/game-doomchex/graphics/BMSLIMH0.png new file mode 100644 index 000000000..b576e2844 Binary files /dev/null and b/filter/game-doomchex/graphics/BMSLIMH0.png differ diff --git a/filter/game-doomchex/sounds/ACID5.ogg b/filter/game-doomchex/sounds/ACID5.ogg new file mode 100644 index 000000000..18c10dd92 Binary files /dev/null and b/filter/game-doomchex/sounds/ACID5.ogg differ diff --git a/filter/game-doomchex/sounds/GLOOP.ogg b/filter/game-doomchex/sounds/GLOOP.ogg new file mode 100644 index 000000000..d367f46ac Binary files /dev/null and b/filter/game-doomchex/sounds/GLOOP.ogg differ diff --git a/filter/game-doomchex/sounds/MUCK5.ogg b/filter/game-doomchex/sounds/MUCK5.ogg new file mode 100644 index 000000000..eb11ed2b2 Binary files /dev/null and b/filter/game-doomchex/sounds/MUCK5.ogg differ diff --git a/filter/game-doomchex/sprites/BSPHA0.png b/filter/game-doomchex/sprites/BSPHA0.png new file mode 100644 index 000000000..5b9a0fb4b Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHA0.png differ diff --git a/filter/game-doomchex/sprites/BSPHB0.png b/filter/game-doomchex/sprites/BSPHB0.png new file mode 100644 index 000000000..f073d8b6a Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHB0.png differ diff --git a/filter/game-doomchex/sprites/BSPHC0.png b/filter/game-doomchex/sprites/BSPHC0.png new file mode 100644 index 000000000..ebba6a0b0 Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHC0.png differ diff --git a/filter/game-doomchex/sprites/BSPHD0.png b/filter/game-doomchex/sprites/BSPHD0.png new file mode 100644 index 000000000..a40b0f504 Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHD0.png differ diff --git a/filter/game-doomchex/sprites/BSPHE0.png b/filter/game-doomchex/sprites/BSPHE0.png new file mode 100644 index 000000000..f66b16f2c Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHE0.png differ diff --git a/filter/game-doomchex/sprites/BSPHF0.png b/filter/game-doomchex/sprites/BSPHF0.png new file mode 100644 index 000000000..49e9a9e3e Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHF0.png differ diff --git a/filter/game-doomchex/sprites/BSPHG0.png b/filter/game-doomchex/sprites/BSPHG0.png new file mode 100644 index 000000000..1c37b61c8 Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHG0.png differ diff --git a/filter/game-doomchex/sprites/BSPHH0.png b/filter/game-doomchex/sprites/BSPHH0.png new file mode 100644 index 000000000..1ccf83141 Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHH0.png differ diff --git a/filter/game-doomchex/sprites/BSPHI0.png b/filter/game-doomchex/sprites/BSPHI0.png new file mode 100644 index 000000000..2f10c6091 Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHI0.png differ diff --git a/filter/game-doomchex/sprites/BSPHJ0.png b/filter/game-doomchex/sprites/BSPHJ0.png new file mode 100644 index 000000000..25d05cbab Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHJ0.png differ diff --git a/filter/game-doomchex/sprites/BSPHK0.png b/filter/game-doomchex/sprites/BSPHK0.png new file mode 100644 index 000000000..966703c0e Binary files /dev/null and b/filter/game-doomchex/sprites/BSPHK0.png differ diff --git a/filter/game-doomchex/sprites/LVASA0.png b/filter/game-doomchex/sprites/LVASA0.png new file mode 100644 index 000000000..a3e3f2c72 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASA0.png differ diff --git a/filter/game-doomchex/sprites/LVASB0.png b/filter/game-doomchex/sprites/LVASB0.png new file mode 100644 index 000000000..d8ad961d2 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASB0.png differ diff --git a/filter/game-doomchex/sprites/LVASC0.png b/filter/game-doomchex/sprites/LVASC0.png new file mode 100644 index 000000000..50f2375a1 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASC0.png differ diff --git a/filter/game-doomchex/sprites/LVASD0.png b/filter/game-doomchex/sprites/LVASD0.png new file mode 100644 index 000000000..c03dd6c24 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASD0.png differ diff --git a/filter/game-doomchex/sprites/LVASE0.png b/filter/game-doomchex/sprites/LVASE0.png new file mode 100644 index 000000000..5ad062668 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASE0.png differ diff --git a/filter/game-doomchex/sprites/LVASF0.png b/filter/game-doomchex/sprites/LVASF0.png new file mode 100644 index 000000000..32cba669a Binary files /dev/null and b/filter/game-doomchex/sprites/LVASF0.png differ diff --git a/filter/game-doomchex/sprites/LVASG0.png b/filter/game-doomchex/sprites/LVASG0.png new file mode 100644 index 000000000..9ac9c9355 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASG0.png differ diff --git a/filter/game-doomchex/sprites/LVASH0.png b/filter/game-doomchex/sprites/LVASH0.png new file mode 100644 index 000000000..a2f38d2e5 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASH0.png differ diff --git a/filter/game-doomchex/sprites/LVASI0.png b/filter/game-doomchex/sprites/LVASI0.png new file mode 100644 index 000000000..ff840525b Binary files /dev/null and b/filter/game-doomchex/sprites/LVASI0.png differ diff --git a/filter/game-doomchex/sprites/LVASJ0.png b/filter/game-doomchex/sprites/LVASJ0.png new file mode 100644 index 000000000..ea90385e3 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASJ0.png differ diff --git a/filter/game-doomchex/sprites/LVASK0.png b/filter/game-doomchex/sprites/LVASK0.png new file mode 100644 index 000000000..a28f35b66 Binary files /dev/null and b/filter/game-doomchex/sprites/LVASK0.png differ diff --git a/filter/game-doomchex/sprites/MUDSA0.png b/filter/game-doomchex/sprites/MUDSA0.png new file mode 100644 index 000000000..f941633d6 Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSA0.png differ diff --git a/filter/game-doomchex/sprites/MUDSB0.png b/filter/game-doomchex/sprites/MUDSB0.png new file mode 100644 index 000000000..257e7fa82 Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSB0.png differ diff --git a/filter/game-doomchex/sprites/MUDSC0.png b/filter/game-doomchex/sprites/MUDSC0.png new file mode 100644 index 000000000..1b7250a0c Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSC0.png differ diff --git a/filter/game-doomchex/sprites/MUDSD0.png b/filter/game-doomchex/sprites/MUDSD0.png new file mode 100644 index 000000000..21d12f293 Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSD0.png differ diff --git a/filter/game-doomchex/sprites/MUDSE0.png b/filter/game-doomchex/sprites/MUDSE0.png new file mode 100644 index 000000000..4178648a6 Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSE0.png differ diff --git a/filter/game-doomchex/sprites/MUDSF0.png b/filter/game-doomchex/sprites/MUDSF0.png new file mode 100644 index 000000000..c64ae4ff5 Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSF0.png differ diff --git a/filter/game-doomchex/sprites/MUDSG0.png b/filter/game-doomchex/sprites/MUDSG0.png new file mode 100644 index 000000000..fb40d5852 Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSG0.png differ diff --git a/filter/game-doomchex/sprites/MUDSH0.png b/filter/game-doomchex/sprites/MUDSH0.png new file mode 100644 index 000000000..887e67c6a Binary files /dev/null and b/filter/game-doomchex/sprites/MUDSH0.png differ diff --git a/filter/game-doomchex/sprites/SLDGA0.png b/filter/game-doomchex/sprites/SLDGA0.png new file mode 100644 index 000000000..aaac89479 Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGA0.png differ diff --git a/filter/game-doomchex/sprites/SLDGB0.png b/filter/game-doomchex/sprites/SLDGB0.png new file mode 100644 index 000000000..569de9e08 Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGB0.png differ diff --git a/filter/game-doomchex/sprites/SLDGC0.png b/filter/game-doomchex/sprites/SLDGC0.png new file mode 100644 index 000000000..581017434 Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGC0.png differ diff --git a/filter/game-doomchex/sprites/SLDGD0.png b/filter/game-doomchex/sprites/SLDGD0.png new file mode 100644 index 000000000..d53214969 Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGD0.png differ diff --git a/filter/game-doomchex/sprites/SLDGE0.png b/filter/game-doomchex/sprites/SLDGE0.png new file mode 100644 index 000000000..9df6d7339 Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGE0.png differ diff --git a/filter/game-doomchex/sprites/SLDGF0.png b/filter/game-doomchex/sprites/SLDGF0.png new file mode 100644 index 000000000..b84b1f4f8 Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGF0.png differ diff --git a/filter/game-doomchex/sprites/SLDGG0.png b/filter/game-doomchex/sprites/SLDGG0.png new file mode 100644 index 000000000..a536f12aa Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGG0.png differ diff --git a/filter/game-doomchex/sprites/SLDGH0.png b/filter/game-doomchex/sprites/SLDGH0.png new file mode 100644 index 000000000..62352b57f Binary files /dev/null and b/filter/game-doomchex/sprites/SLDGH0.png differ diff --git a/filter/game-doomchex/sprites/SLIMA0.png b/filter/game-doomchex/sprites/SLIMA0.png new file mode 100644 index 000000000..51b3f8c14 Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMA0.png differ diff --git a/filter/game-doomchex/sprites/SLIMB0.png b/filter/game-doomchex/sprites/SLIMB0.png new file mode 100644 index 000000000..93a1ea1ae Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMB0.png differ diff --git a/filter/game-doomchex/sprites/SLIMC0.png b/filter/game-doomchex/sprites/SLIMC0.png new file mode 100644 index 000000000..10eecbf39 Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMC0.png differ diff --git a/filter/game-doomchex/sprites/SLIMD0.png b/filter/game-doomchex/sprites/SLIMD0.png new file mode 100644 index 000000000..0b13a526e Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMD0.png differ diff --git a/filter/game-doomchex/sprites/SLIME0.png b/filter/game-doomchex/sprites/SLIME0.png new file mode 100644 index 000000000..61db4a2d4 Binary files /dev/null and b/filter/game-doomchex/sprites/SLIME0.png differ diff --git a/filter/game-doomchex/sprites/SLIMF0.png b/filter/game-doomchex/sprites/SLIMF0.png new file mode 100644 index 000000000..9b477acb5 Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMF0.png differ diff --git a/filter/game-doomchex/sprites/SLIMG0.png b/filter/game-doomchex/sprites/SLIMG0.png new file mode 100644 index 000000000..29e708a6e Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMG0.png differ diff --git a/filter/game-doomchex/sprites/SLIMH0.png b/filter/game-doomchex/sprites/SLIMH0.png new file mode 100644 index 000000000..1547c2983 Binary files /dev/null and b/filter/game-doomchex/sprites/SLIMH0.png differ diff --git a/filter/game-doomchex/sprites/SPSHA0.png b/filter/game-doomchex/sprites/SPSHA0.png new file mode 100644 index 000000000..5f83a2ecd Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHA0.png differ diff --git a/filter/game-doomchex/sprites/SPSHB0.png b/filter/game-doomchex/sprites/SPSHB0.png new file mode 100644 index 000000000..9ba953840 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHB0.png differ diff --git a/filter/game-doomchex/sprites/SPSHC0.png b/filter/game-doomchex/sprites/SPSHC0.png new file mode 100644 index 000000000..32291b58d Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHC0.png differ diff --git a/filter/game-doomchex/sprites/SPSHD0.png b/filter/game-doomchex/sprites/SPSHD0.png new file mode 100644 index 000000000..b8b2eb6e3 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHD0.png differ diff --git a/filter/game-doomchex/sprites/SPSHE0.png b/filter/game-doomchex/sprites/SPSHE0.png new file mode 100644 index 000000000..e1ada2e18 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHE0.png differ diff --git a/filter/game-doomchex/sprites/SPSHF0.png b/filter/game-doomchex/sprites/SPSHF0.png new file mode 100644 index 000000000..2e8a2ac51 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHF0.png differ diff --git a/filter/game-doomchex/sprites/SPSHG0.png b/filter/game-doomchex/sprites/SPSHG0.png new file mode 100644 index 000000000..5cdbac813 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHG0.png differ diff --git a/filter/game-doomchex/sprites/SPSHH0.png b/filter/game-doomchex/sprites/SPSHH0.png new file mode 100644 index 000000000..0b764b660 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHH0.png differ diff --git a/filter/game-doomchex/sprites/SPSHI0.png b/filter/game-doomchex/sprites/SPSHI0.png new file mode 100644 index 000000000..cbe27c749 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHI0.png differ diff --git a/filter/game-doomchex/sprites/SPSHJ0.png b/filter/game-doomchex/sprites/SPSHJ0.png new file mode 100644 index 000000000..268375b48 Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHJ0.png differ diff --git a/filter/game-doomchex/sprites/SPSHK0.png b/filter/game-doomchex/sprites/SPSHK0.png new file mode 100644 index 000000000..86459b50e Binary files /dev/null and b/filter/game-doomchex/sprites/SPSHK0.png differ diff --git a/language.txt b/language.txt index c4dd2de9a..de9210261 100644 --- a/language.txt +++ b/language.txt @@ -249,7 +249,7 @@ SWWM_LORETXT_ARGENT = "Classification: Pure source of energy\n" "Location: Hell\n" "\n" -"Summary: An almost limitless source of pure energy found by the UAC in Mars, and further tracked down to Hell itself. The corporation has worked hard to turn raw Argent Plasma it into a clean and efficient alternative to other sources of energy that are no longer viable.\n" +"Summary: An almost limitless source of pure energy found by the UAC in Mars, and further tracked down to Hell itself. The corporation has worked hard to turn raw Argent Plasma into a clean and efficient alternative to other sources of energy that are no longer viable.\n" "\n" "Addendum: The true nature of this energy is not very well known, but due to its natural origin on Hell some have wildly theorized that it may be the souls of the dead.\n" "\n" @@ -955,7 +955,7 @@ SWWM_LORETXT_NEKURATEK = "\n" "Summary: Nekuratek was founded by Zanata Nekuraku I in 1744, as Nekuraku Rafana Sakosai (Nekuraku Arms Manufactory), it quickly became the main provider of weaponry for the Nukuri Empire. Following the death of Zanata I in 1870, the company's leadership was transferred to her granddaughter Zanata II, who decided to further expand into other fields, such as robotics and information technology, and gradually began to cut down on the fabrication of weaponry. Since the fall of the empire, the company is dedicated entirely to robotics and computing, with their old arms manufactory division being split off and led by Zanata II's son Zanaveth I. The last transfer of leadership was to Zanaveth II in 2128.\n" "\n" -"Addendum: Nekuratek is most famous for the creation of the Nekern Architecture, a human-compatible hardware platform that powers all Nukuri systems, and the Nekronbot AI, a lifelike, highly expandable artificial intelligence framework that's been used for various things, from personal assistant bots to self-driving vehicles.\n" +"Addendum: Nekuratek is most famous for the creation of the Nekern Architecture, a human-compatible hardware platform that powers all Nukuri systems, and the Nekuronbot AI, a lifelike, highly expandable artificial intelligence framework that's been used for various things, from personal assistant bots to self-driving vehicles.\n" "\n" "Saya's Note: Good people to work with, especially Zana-sama. She's a lot more outgoing than her predecessor, that's for sure, and much cuter, too, heheh..."; SWWM_LORETAG_NOKRONKINY = "Nokron & Kinylum"; @@ -1001,7 +1001,7 @@ SWWM_LORETXT_NUGGET = "Designation: Health/Armor Nuggets\n" "Manufacturer: Unknown\n" "\n" -"Summary: Small chunks of inteterminate composition found in large amounts within a cave system below the ancient ruins in Sedna. It appears that when held tightly in one's grasp, they \"melt\" into the body and either heal one's wounds or strengthen the natural resistances of their bodies, thus being divided between \"Health\" and \"Armor\" Nuggets.\n" +"Summary: Small chunks of indeterminate composition found in large amounts within a cave system below the ancient ruins in Sedna. It appears that when held tightly in one's grasp, they \"melt\" into the body and either heal one's wounds or strengthen the natural resistances of their bodies, thus being divided between \"Health\" and \"Armor\" Nuggets.\n" "\n" "Addendum: Excessive usage of these materials does not appear to carry any risk.\n" "\n" @@ -1308,7 +1308,7 @@ SWWM_LORETXT_UNISSIX = "Nationality: Devanikan\n" "Date Of Birth: 1992-02-29\n" "\n" -"Summary: Misa is the lead weapon and armor designer of the entire Unissix family. Starting at a very early age, her fascination with weponry has always been quite noticeable. Despite a strong fighting spirit, she lacks the physical prowess required to be a warrior, so she's dedicated herself entirely to her craft. Misa is highly skilled in the interpretation of ancient designs, and is thus often tasked with recreating lost technology. This has included the various Artifacts of Nedoshiaan.\n" +"Summary: Misa is the lead weapon and armor designer of the entire Unissix family. Starting at a very early age, her fascination with weaponry has always been quite noticeable. Despite a strong fighting spirit, she lacks the physical prowess required to be a warrior, so she's dedicated herself entirely to her craft. Misa is highly skilled in the interpretation of ancient designs, and is thus often tasked with recreating lost technology. This has included the various Artifacts of Nedoshiaan.\n" "\n" "Addendum: Rose to fame on Earth during a visit from Zanaveth II, her wife, who leads Nekuratek, a massive tech giant in the Nukuri homeworld. Misa is a big fan of videogames, finding it rather exciting to finally be able to go on adventures of her own, without having to put much physical effort into it.\n" "\n" diff --git a/sndinfo.txt b/sndinfo.txt index a03f0ceb2..98159f848 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -316,6 +316,7 @@ demolitionist/kick2 sounds/demolitionist/demokick2.ogg demolitionist/kick3 sounds/demolitionist/demokick3.ogg $random demolitionist/kick { demolitionist/kick1 demolitionist/kick2 demolitionist/kick3 } demolitionist/revive sounds/demolitionist/demorevive.ogg +demolitionist/youdied sounds/demolitionist/demoded.ogg $playersound demolitionist neutral *grunt DSEMPTY $playeralias demolitionist neutral *pain100 demolitionist/lopain @@ -628,6 +629,7 @@ menu/demosel sounds/menu/menuset.ogg menu/demoscroll sounds/menu/menuscroll.ogg menu/democlose sounds/menu/menuclose.ogg +menu/fail sounds/menu/failuse.ogg menu/noinvuse sounds/menu/failinv.ogg menu/buyinv sounds/menu/buysnd.ogg diff --git a/sounds/demolitionist/demoded.ogg b/sounds/demolitionist/demoded.ogg new file mode 100644 index 000000000..40a92df36 Binary files /dev/null and b/sounds/demolitionist/demoded.ogg differ diff --git a/zscript/swwm_ammo.zsc b/zscript/swwm_ammo.zsc index 0950c7dc2..59446e2d4 100644 --- a/zscript/swwm_ammo.zsc +++ b/zscript/swwm_ammo.zsc @@ -918,6 +918,7 @@ Class FabricatorTier4 : AmmoFabricator Inventory.MaxAmount 5; AmmoFabricator.Budget int.max; AmmoFabricator.PerType int.max; + AmmoFabricator.MaxUnitPrice int.max; -INVENTORY.AUTOACTIVATE; Stamina 1920000; } diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index df588ad3d..e32d0b59a 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -2381,11 +2381,11 @@ Class SWWMHandler : EventHandler Shader.SetUniform1f(p,"Grain","Timer",(gametic+e.FracTic)/Thinker.TICRATE); int lastdmg = (demo.Health>0)?demo.lastdamage:Random[Flicker](60,80); int lastdmgtic = (demo.Health>0)?demo.lastdamagetic:(gametic+Random[Flicker](30,20)); - double noiz = min(lastdmg*.3*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.7); + double noiz = min(lastdmg*.09*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.5); Shader.SetUniform1f(p,"Grain","ni",noiz); - noiz = min(lastdmg*.16*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.8); + noiz = min(lastdmg*.08*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.8); Shader.SetUniform1f(p,"Glitch","str1",noiz); - noiz = min(lastdmg*.12*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),3.5); + noiz = min(lastdmg*.03*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),3.5); Shader.SetUniform1f(p,"Glitch","str2",noiz); } else diff --git a/zscript/swwm_hud.zsc b/zscript/swwm_hud.zsc index 74dd43ca7..55a6ed76c 100644 --- a/zscript/swwm_hud.zsc +++ b/zscript/swwm_hud.zsc @@ -822,35 +822,36 @@ Class SWWMStatusBar : BaseStatusBar if ( demo.player.viewheight <= 6 ) { Screen.Dim("Black",min(demo.deadtimer/80.,1.),0,0,Screen.GetWidth(),Screen.GetHeight()); + if ( demo.revivefail > level.maptime ) + { + Screen.Dim("Red",clamp((demo.revivefail-level.maptime)/60.,0.,.2),0,0,Screen.GetWidth(),Screen.GetHeight()); + str = StringTable.Localize("$SWWM_REFAIL"); + len = mTewiFont.mFont.StringWidth(str); + xx = (ss.x-len)/2.; + yy = ss.y-48; + if ( (gametic%16) < 8 ) + Screen.DrawText(mTewiFont.mFont,Font.CR_RED,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + } alph = clamp((demo.deadtimer-60)/60.,0.,1.); str = String.Format(StringTable.Localize("$SWWM_URDED"),CPlayer.GetUserName()); len = mTewiFont.mFont.StringWidth(str); xx = (ss.x-len)/2.; yy = (ss.y-mTewiFont.mFont.GetHeight()*4)/2.; Screen.DrawText(mTewiFont.mFont,Font.CR_RED,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); - alph = clamp((demo.deadtimer-120)/60.,0.,1.); + alph = clamp((demo.deadtimer-140)/60.,0.,1.); str = String.Format(StringTable.Localize("$SWWM_URDED2"),CPlayer.GetUserName()); len = mTewiFont.mFont.StringWidth(str); xx = (ss.x-len)/2.; yy = ss.y/2.; - Screen.DrawText(mTewiFont.mFont,Font.CR_RED,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); + Screen.DrawText(mTewiFont.mFont,Font.CR_WHITE,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); if ( !swwm_revive ) return; - alph = clamp((demo.deadtimer-200)/60.,0.,1.); + alph = clamp((demo.deadtimer-160)/60.,0.,1.); str = String.Format(StringTable.Localize("$SWWM_URDED3"),CPlayer.GetUserName()); len = mTewiFont.mFont.StringWidth(str); xx = (ss.x-len)/2.; yy = (ss.y+mTewiFont.mFont.GetHeight()*2)/2.; - Screen.DrawText(mTewiFont.mFont,Font.CR_RED,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); - if ( demo.revivefail > level.maptime ) - { - str = StringTable.Localize("$SWWM_REFAIL"); - len = mTewiFont.mFont.StringWidth(str); - xx = (ss.x-len)/2.; - yy = ss.y-30; - if ( (gametic%12) < 6 ) - Screen.DrawText(mTewiFont.mFont,Font.CR_RED,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - } + Screen.DrawText(mTewiFont.mFont,Font.CR_WHITE,xx,yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); } } diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index 584f0af56..d14008804 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -106,7 +106,7 @@ Class SWWMSpareArmor : Inventory abstract else shouldautouse = CVar.GetCVar('swwm_autousearmor',Owner.player).GetBool(); if ( pickup && !shouldautouse ) return false; let cur = Owner.FindInventory(giveme); - if ( !cur || (cur.Amount <= 0) ) + if ( !cur || (!pickup && (cur.Amount < cur.MaxAmount)) || (Amount+cur.Amount <= cur.MaxAmount) ) { Owner.GiveInventory(giveme,GetDefaultByType(giveme).Amount); if ( UseSound ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA,CHANF_DEFAULT,.6); diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 4a9427495..9fa59843e 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -9,7 +9,8 @@ Class Demolitionist : PlayerPawn bool sendtoground; bool key_reentrant; - int lastdamage, lastdamagetic; + int lastdamage; + transient int lastdamagetic; bool lastground; int lastgroundtic; double lastvelz, prevvelz; @@ -33,7 +34,8 @@ Class Demolitionist : PlayerPawn }; int lastunder; - int deadtimer, revivefail; + int deadtimer; + transient int revivefail; Default { @@ -505,7 +507,7 @@ Class Demolitionist : PlayerPawn if ( Health < 25 ) damage /= 4; if ( source == self ) damage /= 2; lastdamage = Super.DamageMobj(inflictor,source,damage,mod,flags,angle); - lastdamagetic = max(lastdamagetic,gametic+clamp(lastdamage,10,80)); + lastdamagetic = max(lastdamagetic,gametic+clamp(lastdamage/2,10,40)); if ( (lastdamage > 0) && (PainChance == 0) && (level.maptime>lastmpain) ) { lastmpain = level.maptime; @@ -600,11 +602,11 @@ Class Demolitionist : PlayerPawn Vector3 x, y, z; [x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll); Vector3 accel = x*player.cmd.forwardmove+y*player.cmd.sidemove+z*player.cmd.upmove; - accel *= fs/128.; - vel = vel+accel/TICRATE; - if ( vel.length() > 50. ) - vel = vel.unit()*50.; - vel *= .99; + accel *= fs/320.; + double spd = vel.length(); + if ( spd > 40. ) vel = (vel+accel/TICRATE).unit()*spd; + else vel = vel+accel/TICRATE; + vel *= .97; player.vel = (1,1)*vel.length(); player.jumptics = -2; if ( !(player.cheats & CF_PREDICTING) && (player.cmd.forwardmove|player.cmd.sidemove) ) @@ -823,6 +825,8 @@ Class Demolitionist : PlayerPawn if ( player.viewheight <= 6 ) { deadtimer++; + if ( deadtimer == 60 ) + A_StartSound("demolitionist/youdied",CHAN_DEMOVOICE,CHANF_OVERLAP|CHANF_UI|CHANF_LOCAL); if ( multiplayer || level.AllowRespawn || sv_singleplayerrespawn || G_SkillPropertyInt(SKILLP_PlayerRespawn) ) { // standard behaviour, respawn normally @@ -833,14 +837,14 @@ Class Demolitionist : PlayerPawn if ( special1 > 2 ) special1 = 0; } } - else if ( (player.cmd.buttons&BT_USE) && (deadtimer > 150) ) + else if ( (player.cmd.buttons&BT_USE) && (deadtimer > 120) ) { // reload save player.cls = null; player.playerstate = PST_ENTER; if ( special1 > 2 ) special1 = 0; } - else if ( (player.cmd.buttons&BT_ATTACK) && (deadtimer > 150) && swwm_revive ) + else if ( (player.cmd.buttons&BT_ATTACK) && (deadtimer > 120) && swwm_revive ) { // reboot (if possible) if ( !FindInventory("ReviveCooldown") ) @@ -865,11 +869,10 @@ Class Demolitionist : PlayerPawn if ( swwm_revivecooldown > 0 ) GiveInventory("ReviveCooldown",1); } - else + else if ( level.maptime > revivefail ) { - A_StartSound("*usefail",CHAN_ITEM,CHANF_UI|CHANF_LOCAL); - SWWMHandler.DoFlash(self,Color(64,255,0,0),30); - revivefail = level.maptime+20; + A_StartSound("menu/fail",CHAN_ITEM,CHANF_UI|CHANF_LOCAL); + revivefail = level.maptime+70; } } } diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc index 90ee82750..0f4e47003 100644 --- a/zscript/swwm_shot.zsc +++ b/zscript/swwm_shot.zsc @@ -1277,13 +1277,15 @@ Class TheBall : Actor // slam jam if ( bleeds ) { - A_StartSound("spreadgun/ballf",CHAN_VOICE,CHANF_OVERLAP,(vel.length()/75.)**.5); + A_StartSound("spreadgun/ballf",CHAN_VOICE,CHANF_OVERLAP,(vel.length()/40.)**.5); + victim.A_StartSound("spreadgun/ballf",CHAN_FOOTSTEP,CHANF_OVERLAP,(vel.length()/40.)**.5); victim.TraceBleed(dmg,self); SpawnBlood(pos,atan2(dir.y,dir.x),dmg); } else { - A_StartSound("spreadgun/ball",CHAN_VOICE,CHANF_OVERLAP,(vel.length()/75.)**.5); + A_StartSound("spreadgun/ball",CHAN_VOICE,CHANF_OVERLAP,(vel.length()/40.)**.5); + victim.A_StartSound("spreadgun/ball",CHAN_FOOTSTEP,CHANF_OVERLAP,(vel.length()/40.)**.5); if ( vel.length() > 15 ) { let s = Spawn("BallImpact",pos);