fertig-classic-games/assets/images
Brian Fertig a6f6b647da Wolfenstein: Add semi-auto fire modes, ammo types, enemy stun, and editor facing picker
This refactors weapon/enemy combat systems to support per-weapon cooldowns,
fire modes (auto/semi), and data-driven damage rolls via ammo types. Guards
now use the pistol's stats for ranged attacks and can be stunned by non-lethal
hits. The level editor now includes a directional facing picker for newly placed
enemies and displays enemy orientation as arrows instead of dots.

Key changes:
- Logic: Replaced single weaponCooldownMs with per-weapon cooldowns map; added
  prevFireHeld for semi-auto trigger-edge detection; guards now reference real
  weapon definitions via rangedWeapon; projectiles carry ammoType and resolve
  damage at hit time using rollDamage(); non-lethal ranged hits apply stunMs to
  enemies, freezing their AI until it expires.
- Rules: Added ammoTypes array with damageMin/damageMax; weapons now specify
  fireMode and ammoType (projectiles) or damage (melee); enemy definitions
  include stunMs and reference weapon IDs instead of hardcoded projectile stats.
- Editor: Added FACING_DIRS constants and drawFacingPicker() overlay that lets
  users click N/S/E/W neighbor cells to set a just-placed enemy's facing;
  enemies now render as directional arrows showing their spawn orientation;
  pendingFacingEnemy state tracks the in-progress pick across tool switches,
  undo/redo, and level resets.
- View: Added GUARD_FRAME.stunned (frame 9) which takes visual priority over
  all other states when e.stunMs > 0, ensuring the flinch pose displays even if
  the enemy's internal state still reads 'attack' or 'chase'.
- Data: Expanded level-e1m1 to 19x21 grid with repositioned doors/enemies/exit;
  bumped SAVE_VERSION to 2 since player.cooldowns and prevFireHeld are new
  required fields absent from v1 saves.
- Tests: Added coverage for semi-auto trigger-edge behavior, stun application
  and duration, melee non-stun behavior, damage roll range bounds, and guard
  projectile ammo type/cooldown spacing; updated existing tests to use new
  cooldowns/ammoType fields and toggle fireHeld for repeated shots.
2026-08-22 09:39:09 -06:00
..
advancewars
bloxorz
civilization
gootower
mahjong
originals
peggle
shift
slots
starcontrol
superkart
ta
tetrisattack
tutorial-images
vega
wolfenstein Wolfenstein: Add semi-auto fire modes, ammo types, enemy stun, and editor facing picker 2026-08-22 09:39:09 -06:00
zuma
azul-tiles.png
azul-tiles.psd
background-bejeweledblitz.png
background-casino.png
background-jello.png
background-jewelquest-menu.png
background-jewelquest.png
background-jewelquest.psd
background-mahjongmatch.png
background-menu.png
background-mm-01.png
background-mm-02.png
background-mm-03.png
background-peggle.png
background-room.png
background-rushhour.png
background-shift.png
balatro-artwork.png
balatro-artwork.psd
balatro-bossicons.png
balatro-bossicons.psd
balatro-deckbacks.png
balatro-deckbacks.psd
balatro-packs.png
balatro-packs.psd
balatro-planets.png
balatro-planets.psd
balatro-spectrals.png
balatro-spectrals.psd
balatro-tarots.png
balatro-tarots.psd
balatro-vouchers.png
balatro-vouchers.psd
cardbacks.png
cardbacks.psd
catan-pirate.png
catan-robber.png
catan-special-cards.png
catan-special-cards.psd
catancards.png
catancards.psd
catantiles.png
catantiles.psd
dominion-cards.psd
dominion-prosperity.png
dominion-prosperity.psd
dominion-tokens.png
dominion-tokens.psd
dominioncards.png
dungeonboss-bosses.png
dungeonboss-bosses.psd
dungeonboss-deckbacks.png
dungeonboss-deckbacks.psd
dungeonboss-heroes.png
dungeonboss-heroes.psd
dungeonboss-icons.png
dungeonboss-icons.psd
dungeonboss-rooms.png
dungeonboss-rooms.psd
dungeonboss-spells.png
dungeonboss-spells.psd
forbiddenisland-cards.png
forbiddenisland-cards.psd
forbiddenisland-tiles.png
forbiddenisland-tiles.psd
game-icons.png
game-icons.psd
gofish-cards.png
gofish-cards.psd
jello-items.png
jello-items.psd
labyrinth-cards.png
labyrinth-cards.psd
labyrinth-tiles.png
labyrinth-tiles.psd
labyrinth-treasures.png
labyrinth-treasures.psd
main-title.png
monopoly-cards.png
monopoly-cards.psd
monopoly-pawns.png
oldmaid-cards.png
oldmaid-cards.psd
opponents.png
opponents.psd
peggle-sprites.png
peggle-sprites.psd
playfield-combat.png
playfield-fantasy.png
playfield-felt-blue.png
playfield-felt-green.png
playfield-felt-red.png
playfield-starscape.png
playfield-wood-cherry.png
playfield-wood-dark.png
playfield-wood-english.png
playfield-wood-light.png
risk-board.png
spireclimb-act1.png
spireclimb-act2.png
spireclimb-act3.png
spireclimb-cards.png
spireclimb-cards.psd
spireclimb-creatures.png
spireclimb-creatures.psd
spireclimb-rogue.png
spireclimb-rogue.psd
spireclimb-warrior.png
spireclimb-warrior.psd
splendor-cards.png
splendor-cards.psd
splendor-gems.png
splendor-gems.psd
stratego-pieces.png
stratego-pieces.psd
superkart-background.png
swdbg-bases-art.png
swdbg-bases-art.psd
swdbg-cards-art.png
swdbg-cards-art.psd
tab-icons.png
tab-icons.psd
tickettoride-cards.png
tickettoride-cards.psd