
Painslayer is a weapon mod that aims to "demake" weapons from Painkiller and Painkiller: Battle Out of Hell into lovingly hand-painted sprites, while recreating the mechanics as closely as possible.
Winner of a 2021 Cacoward in the Gameplay category!
Painslayer requires GZDoom 4.10..
LINKS:
* Download a stable release
* Download a freshest repository build (How does this work?)
* Painslayer on The Doom Wiki
* Join my Discord Server
1.1.0 release trailer
1.3.0 Heretic gameplay trailer:
LATEST CHANGELOG
Spoiler:WEAPONS AND FEATURES
Painslayer 1.3.0
ADDEDFIXED
- Full Heretic support out of the box. Note, while playing Heretic, those power-ups that get replaced with Painslayer versions (such as the Tome of Power being replaced with Weapon Modifier) are placed into the inventory bar and can be used at a button press, just like Heretic powerups. (While playing Doom all power-ups are used on pickup, just like in Doom.)
- Implemented Painkiller-styled skill and episode menus to match the main menu.
- Flavor on-screen indicators for active power-ups: bits of helmet for the Antirad Suit, red glow at the bottom for the Weapon Modifier.
CHANGED / IMPROVED
- Weapon Modifier sound and Golden Cards looped active sounds no longer change pitch if you're using the *Dexterity* card.
- Fixed incorrect logic for the function that checks all players' inventories in multiplayer (it used to return `true` even when only one player had the item that was being checked for). This should make with dynamic weapon/ammo spawning more consistent in multiplayer.
- Multiple fixes to Russian localization. Some of the terms now have new RU translations.
- Corpses carried by stakes/bolts will no longer remain stuck in the air if the stake/bolt hit a sky and disappeared.
- Fixed hitscan attack spread to use Doom-like formula instead of a rectangular pattern.
- Grenades and Heater Bombs will now bounce off TERRAIN-defined liquid surfaces instead of disappearing on them.
- Visual rings around power-up pickups should now properly reappear if the power-up is respawned (e.g. in multiplayer).
- All strings are now properly implemented/localized via the LANGUAGE lump.
- Treasure sparkles will now properly disappear as soon as the treasure is picked up.
- Painslayer armor icons are now properly implemented via Gameinfo rather than using a `HandlePickup()` hack.
- Improved positioning of bullet tracers relative to guns (mainly the Minigun and the Rifle).
- Unequipping the *666 Ammo* card will now reset ammo to its default maxamount if it was above it. Previously the ammo would be reset to the exact amount it was before the card was equipped, thus potentially taking away the ammo that was picked up earlier that was still under the default maximum amount.
- Unequipping the *Blessing* card will now reset health to its default maxamount if it was above it. Previously health would be reset to the exact amount it was before the card was equipped, thus potentially taking away the health that was picked up earlier that was still under the default maximum amount.
- The *Blessing* card now uses `bonushealth` rather than modifying the player's `maxhealth`, so it's not properly considered a health upgrade by GZDoom's systems.
- Added proper dummy sprite definitions for actors that use models.
- Fixed data type errors, int/uint comparisons, etc. for proper GZDoom 4.9+ compatibility.
Painslayer 1.2.0
- Soul sprites now always face the player regardless of pitch, so that they don't appear flat when viewed from above or below.
- Refactored and streamlined weapon replacement handling.
- Refactored a lot of code, expanded comments, backported better util functions from my other projects.
FIXEDADDED
- Fixed Mega Soul not providing any armor on pickup.
- Fixed Golden Cards not refreshing on map change.
- Fixed shattered corpses of flying monsters floating into the air .
- Fixed and issue where, when the player has Weapon Modifier, the Electro beam would jump from the original monster to the surrounding monsters only when the player was close enough to that monster. The distance check was incorrectly based off the player's position.
CHANGED/IMPROVED
- Implemented a feature that allows refreshing the number of Golden Cards activations by paying gold. If you've used the cards in the map, you'll be able to click a button at the center of the Tarot board to refresh the activations. The maximum number of activations is 1 by default or 2 with the "Forgiveness" Silver Card equipped. The refresh cost is always equial to the purchase cost of the currently equipped golden cards combined.
- Added Painkiller crosshairs and a visual crosshair selection menu under Mod Settings.
- Added an indicator for currently equipped cards to the HUD (can be disabled).
- Added an indicator of the remaining Golden Cards activations to the HUD.
- Electro will no longer be able to trigger the enemy's painchance if they were damaged by it not very long ago. This nerf especially affects Electro Disk, so that it can't be used to stunlock bosses into oblivion by stacking multiple disks on them.
- Added a safeguard for Electro and Flamethrower so that they won't cause VM aborts if the monster's Death state sequence is 0 tics long.
Spoiler:CREDITS
WEAPONSBlack Tarot Cards
- PAIN / KILLER
Primary: Pain. Blades that spin fast and deal decent damage without pushing enemies back.
Secondary: Killer. The blades block is fired and will bounce back off the nearest enemy or will stick into a wall or obstacle. If you aim at the Killer projectile, your weapon will emit a beam that will pierce and damage all enemies on the way. The Killer projectile can't be lost and will return to you through any obstacle if you press Secondary again or switch weapons.
You can use Killer to juggle enemy corpses before they disappear. If you juggle a corpse several times, it'll drop some gold.
Combo: Hold Primary, then tap Secondary. The rotating blades will be launched forward, dealing a lot of damage to anything they hit, then they'll return to you.- SHOTGUN / FREEZER
Primary: Shotgun blast. A fast-firing shotgun with decent range.
Secondary: Freezer. Will freeze most enemies (except bosses) in place. Frozen enemies take increased damage, especially from the Shotgun.
Combo: press Secondary, then immediately press Primary. Your secondary attack animation will be quickly cancelled into a shotgun blast.- STAKEGUN / GRENADE LAUNCHER
Primary: Stake. Fires a wooden stake that deals significant damage and can pin enemies to walls. Flies in an arc. Stakes will catch fire after a few seconds of flight, which will increase their damage.
Secondary: Grenade. Fires a grenade that can bounce off surfaces and deals decent damage.
Combo: fire a grenade, then fire a stake at the grenade. Your stake will pierce the grenade and turn into a make-shift "rocket" that deals tons of damage with large AoE (more than regular rockets or grenades).- ROCKET LAUNCHER / MINIGUN
Primary: Rockets. Fires a regular rocket.
Secondary: Minigun. A rapid-fire minigun. Its spread increases as you keep firing.- ELECTRO / DRIVER
Primary: Shurikens. Quickly fire shurikens that can stick into enemies. Shurikens will also explode after a couple of seconds of flight, dealing damage to anything nearby.
Secondary: Electro. Emit a short-range lightning bolt that will arc slightly towards enemies. Good for stunlocking.
Combo: hold Secondary, then tap Primary. Fire the whole disc magazine, charged with electric energy, which will emit lightning bolts at all enemies around itself. Devastating for crowd-control or focusing bosses.- RIFLE / FLAMETHROWER
Primary: Rifle. Fires in bursts of up to 8 shots. Deals more damage and has smaller spread than the Minigun, but the firerate is noticeably smaller.
Secondary: Flamethrower. Fire slow-moving flames that will pierce enemies and set them on fire, making them burn for a few seconds.
Combo: hold Secondary, then tap Primary. Fire a whole fuel tank that will explode after a short delay, dealing a lot of damage and emitting flames around itself. The tank can be shot with bullets at any moment to blow it up at will.- BOLTGUN / HEATER
Primary: Bolts. Fire a volley of 5 steel bolts that can pin enemies to walls. The bolts fly in a straight line.
Secondary: Heater bombs. Fire a volley of 10 bombs that bounce off surfaces and deal devastating damage.
Combo: fire heater bombs, then fire bolts at them. While tricky and not always useful, you can create make-shift rockets by impaling bombs with bolts.
Zoom: use 'Zoom' key to use the weapon's scope.
The Black Tarot Board will open automatically at every map start (configurable). Use gold to purchase cards and equip them into slots. Silver cards are effective throughout the level, Golden cards can be activated once per level.
You can equip cards once per level, after which they become locked in their slots. To unlock them, reach next level or pay in gold to unlock them.
Gold can be obtained from secrets, by killing enemies with excessive damage and by juggling enemy corpses. Gold coins also replace Health Bonus and Armor Bonus spawns.
Souls and Demon Mode
There are no medikits or stimpacks in Painslayer.
All enemies drop a soul when killed. This soul will heal you and also increase your soul counter.
When the soul counter reaches 66, you'll turn into a Demon. In Demon Mode you're invincible and you deal devastating damage by pressing Primary Attack. The world is also slightly slowed down.
On Trauma difficulty mode enemies don't leave souls.
Difficulty Levels
Slumber: double ammo from pickups, 25% of damage received, monsters have 50% health
Daydream: x1.2 ammo from pickups, 50% of damage received.
Insomnia (default): standard stats for everything.
Nightmare: 80% of ammo from pickups, monster aggression increased.
Trauma: 60% of ammo from pickups, no cheats, monster aggression increased a lot, monster reaction increased, monsters don't spawn souls when killed.
Spoiler:COPYRIGHTS, PERMISSIONS AND LICENSES
Agent_Ash aka Jekyll Grim Payne: Idea, code, weapon and item sprites
kodi: Beam library
Cherno: Demon Morph shaders
Lewisk3: StatusBarScreen (https://github.com/Lewisk3/StatusBarScreen)
phantombeta, Gutawer: ZForms (https://gitlab.com/Gutawer/gzdoom-zforms)
Nero: Tooltips (https://github.com/Saican/Tooltips/tree/master)
Marisa Kirisame: MK_Matrix
Short summary of the permissions (not equivalent to the full text):
- Most of the graphics in Painslayer (specifically, weapon and pickup sprites) may NOT be used for any purpose. Sorry.
- The code used in Painslayer was produced by several authors and can be freely used by anyone for any purpose, provided the authors are credited, the required licenses are applied to the derivative works, and the relevant license and copyright information is kept intact (i.e. all files containing license information shall be copied to derivate works). Most of the code is licensed under GPLv3.