Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

War Pigs

Chaotic diner card battles where pigs gamble to avoid becoming bacon. · By WeShipEventually

Changelog V0.0.3

A topic by Aluminati Studios created 86 days ago Views: 35
Viewing posts 1 to 1

Changelog V0.0.3

Powerup System

Added

  • Manual powerup system with one stored powerup available at a time
  • Recon — reveals the enemy's next card before the round begins
  • Reinforcements — moves the player's current top card to the bottom of their deck
  • Sabotage — moves the enemy's current top card to the bottom of its deck
  • Shield — prevents the enemy from receiving the pot after the player's next loss
  • Powerup activation via the E key
  • HUD display showing the currently stored powerup
  • Protection preventing a new powerup from replacing one already held
  • Battle Hardened — awards a random powerup every 10 completed rounds, with delayed rewards if a powerup slot is already occupied
  • Last Stand — guarantees a Shield when the player reaches 10 or fewer cards, with delayed activation if a powerup slot is already occupied
  • Hot Streak — activates Double Down after three consecutive player victories
  • Double Down — pulls additional real cards from the enemy deck into the player's next winning pot
  • Tracking for completed rounds, consecutive wins, Battle Hardened milestones, Last Stand activation, Shield status, and Double Down status
  • Debug logs and on-screen messages for powerup rewards, activation, waiting conditions, Hot Streak, Double Down, Battle Hardened, Last Stand, and Shield usage
  • Dedicated HUD notifications showing the name and effect of newly acquired powerups
  • Separate Powerup Hint widget introducing controls at match start, with auto-fade
  • Outlined powerup notification text for readability against the game environment
  • Separate HUD text blocks for powerup titles and descriptions for independent styling

Changed

  • Last Stand now always awards Shield instead of a random powerup
  • Shield persists through victories and is only consumed after preventing a loss
  • Double Down remains active through losses until the player wins a round
  • Double Down removes actual card actors from the enemy deck instead of just adjusting displayed totals
  • Recon-revealed enemy cards are no longer re-revealed during the normal round sequence
  • Entire War sequences now count as a single completed round
  • HUD updates immediately when a powerup is received or consumed
  • Battle Hardened milestones advance in increments of 10 only after a successful reward
  • Shield-protected pots are destroyed and removed from the match rather than awarded to either deck
  • Powerup HUD redesigned from a single status label into a two-line title + description notification
  • Powerup descriptions rewritten as concise instructional text
  • Powerup HUD resets to "Powerup: None" immediately after activation/consumption
  • Initial gameplay hint layout separates the powerup tutorial from main gameplay instructions
  • HUD layout adjusted to reduce overlap between gameplay info and powerup notifications

Fixed

  • Shield being consumed on a player victory without protecting anything
  • Double Down card totals now draw bonus cards directly from the enemy deck
  • Double Down no longer remains active after successful use
  • Consecutive-win tracking now resets correctly on losses
  • Hot Streak counter resets after Double Down activates
  • Last Stand no longer repeatedly checks its threshold after the reward was already granted
  • Last Stand now correctly grants Shield instead of Recon, Reinforcements, or Sabotage
  • Battle Hardened rewards no longer lost when the powerup inventory was occupied
  • Stored powerups no longer overwritten by newly awarded powerups
  • Recon cards no longer produce repeat reveal behavior in the following round
  • Long powerup descriptions no longer overflow the HUD (separate title/description blocks with word wrapping)
  • Powerup notification readability improved via text outlines and sizing adjustments
  • Deck counts remain correct after normal rounds, Wars, Sabotage, Reinforcements, and Double Down
  • Shield correctly reduces cards remaining in circulation when its protected pot is discarded

Removed

  • Temporary powerup award used during BeginPlay() testing
  • Code that cleared Shield after any completed round
  • Random powerup call from Last Stand
  • Temporary Last Stand testing threshold (restored from 25 cards back to 10 cards)

Multiplayer Controls

Added

  • Multiplayer controls section in the Control Menu

Settings Menu — Unsaved Changes Handling

Added

  • Check for unsaved settings changes (currently supports VSync toggle only; other graphics settings not yet covered)
  • Apply and Discard logic for unsaved settings changes

Changed

  • Multiplayer HUD updated to match new inputs
  • Debug messages updated to match new inputs
  • Settings slider now plays audio after release
  • Pause menu background track changed
  • Win/loss audio implemented for both full-game and round-level outcomes in multiplayer mode

War Card Freeze & Visual Fixes

Added/Fixed

CardActor.cpp

  • RevealCard(): added a modulo-based fallback index so a card always updates its sprite even when CardID exceeds the CardSprites array bounds, preventing silent no-op reveals
  • Added clearer error/warning logs distinguishing an empty CardSprites array from an out-of-range index versus a null sprite entry

DeckActor.h

  • Changed DrawTopCardActor() signature to accept an optional USceneComponent* SpawnPoint = nullptr parameter

DeckActor.cpp

  • DrawTopCardActor(): now calls RestackAllCardVisuals(SpawnPoint) after removing the top card (when a spawn point is passed in), so the next card in the stack is repositioned to the correct visible height instead of staying buried at its original spawn offset

WarPigsDefaultGameMode.h

  • Added bool bWarOccurred to track whether the current round escalated into a War, used to control result messaging
  • Added void MoveCardToPot(ACardActor* Card, int32 PotStackIndex, bool bIsPlayerCard); declaration for repositioning drawn cards away from the deck stack

WarPigsDefaultGameMode.cpp

  • PlayBattleRound(): split into iterative PlayRoundStep() / ResolveRoundStep() flow (using RevealDelayTimer) instead of resolving instantly, so reveals are visibly paced
  • ResolveRoundStep(): passes Table->PlayerDeckSpawnPoint / Table->EnemyDeckSpawnPoint into DrawTopCardActor() calls (including War burn loops) to trigger the deck restack fix
  • ResolveRoundStep(): calls new MoveCardToPot() on every drawn/burned card so it's visually offset to its correct side of the table midpoint instead of overlapping the opposing card or the deck stack
  • MoveCardToPot() (new): computes offset direction from actual PlayerDeckSpawnPoint/EnemyDeckSpawnPoint positions (not spawn point rotation) to reliably place player cards toward the player side and enemy cards toward the enemy side
  • FinishRoundAfterReveal(): added bWarOccurred = false; reset and a Table null-check guard to prevent stale War state and null dereference carrying into the next round

Added

  • Difficulty increase upon winning an AI game

Unsaved Changes Popup

Added

  • New class for Unsaved Changes Popup
  • ToggleButtons function added to Settings Menu

Auto Play & HUD Animation

Added

  • Auto Play controls and gameplay support
  • Auto Play HUD notifications using the existing HintText widget
  • Auto Play enabled and disabled feedback
  • Tick-based HUD fade and pulse animations
  • Round result color coding
  • Round result pop animation
  • War round state tracking
  • Special War pot-capture messaging
  • Card rank information in reveal debug logs

Changed

  • Updated the gameplay hint to show that A toggles Auto Play
  • Preserved separate multiplayer HUD instructions
  • Replaced timer-based hint animation with tick-based animation
  • Updated player round victories to display in green
  • Updated enemy round victories to display in red
  • Updated War results to display in gold
  • Improved War results to show which side claimed the pot
  • Updated War messaging to display the total number of captured cards
  • Improved card comparison and reveal logging
  • Disabled the VisualStudioTools plugin for successful project builds

Fixed

  • War results now display the correct total pot size
  • War rounds now visually differ from normal round victories
  • Fixed unclear feedback after tied card comparisons
  • Fixed Auto Play hint fading and pulsing behavior
  • Fixed War result formatting so Pot.Num() supplies the displayed card count

Unsaved Changes Screen Blueprint

Added

  • Unsaved Changes Screen Blueprint

Changed

  • Controls on Controls Menu

Fixed

  • Squished text on Results Screen

Auto Play System Implementation

Added

  • ToggleAutoPlay and IsAutoPlayEnabled functions to AWarPigsDefaultGameMode to allow rounds to be played automatically without manual card clicks
  • AutoPlayTick, a repeating timer callback that checks bRoundInProgress before simulating a click on the top player card via HandlePlayerCardClicked, ensuring auto play never fires mid-round
  • AutoPlayIntervalSeconds exposed as an EditAnywhere property so pacing between automatic clicks can be tuned without recompiling
  • Exec-marked AutoPlay function added to AWarPigsPlayerController, allowing auto play to be toggled directly through the in-game console
  • Bound a new AutoPlayToggle input action to AutoPlay inside SetupInputComponent, giving players a dedicated hotkey to enable or disable auto play during gameplay

Verified

  • Toggling behavior correctly starts and stops the repeating timer, and on-screen debug messages accurately reflect the current auto play state

Auto Play Auto-Disable on Game End

Fixed

  • Fixed a bug where AutoPlayTimer continued running after the match ended, causing the game mode to keep attempting to click cards behind the win/lose results screen
  • Updated CheckForGameEnd to detect when either deck is depleted and immediately clear AutoPlayTimer and set bAutoPlayEnabled to false before triggering HandleWin or HandleLose
  • Ensured the auto-disable happens directly rather than through ToggleAutoPlay, avoiding any risk of the flag being flipped back on if the end-game check runs more than once

Verified

  • Enabling auto play, playing through a full match, and reaching the win/lose screen now correctly halts all automatic card clicks with no further on-screen auto play messages appearing

Added

  • Audio for win/loss for both full game and per-hand outcomes implemented for play vs. CPU

Quality Options & VSync

Added

  • Quality Options and functionality
  • VSync check and functionality

HUD Layout Refactor & Texture Asset Consolidation

Fixed

  • Refactored HUD anchor and alignment logic to properly center core UI elements within the viewport across varying aspect ratios
  • Adjusted widget positioning offsets and pivot points on the HUD canvas to ensure consistent centering behavior at runtime rather than relying on static editor placement
  • Audited the texture asset directory to identify and resolve duplicate references, reducing redundant asset loads and cleaning up the content pipeline
  • Reorganized texture files into a consistent folder structure to improve asset lookup and reduce future duplication risk

Verified

  • HUD centering and texture references confirmed in-editor and in a live play session with no regressions to existing UI or material bindings

Screen Resolution Settings

Added

  • Screen resolution graphics settings, applied when save button is clicked

Windowed/Fullscreen Settings

Added

  • Windowed/Fullscreen options, with functionality for saving and applying settings

Diner Floor Material

Added

  • Floor material representing a diner floor

Cleaned Up

  • Duplicate textures removed