fertig-classic-games/assets/images
Brian Fertig 4fcae92e59 feat(civ): AI-initiated diplomacy with frustration escalation
Introduce active diplomacy where rival leaders approach the player with
requests, demands, trades, and gifts rather than passively waiting.

New CivilizationDiplomacy.js module handles:
- 9 request kinds (joinWar, breakTreaty, borderUltimatum, demandGold,
  demandTech, techTrade, ceasefire, peace, alliance) with initiative
  tiers so urgent calls to arms aren't drowned out by filler offers
- Cooldowns per (leader, target, kind) plus a per-leader gap so a
  leader can't spam different requests to bypass rate limits
- Frustration grudge (0-100) raised by refusals, decaying each turn
  and dragging attitude toward hostility through the ordinary war path
- Escalation: frustrated leaders demand compensation, then renounce
  treaties at breaking point, with ordinary hostility finishing the job
- Border ultimatum promises checked when pledges expire (double penalty
  for broken word)
- Unprompted gold/tech gifts from leaders with high attitude
- Staleness validation so requests the world invalidated are dropped
- AI-to-AI requests resolve immediately through the same pipeline

UI changes:
- AI requests queued on state.pendingRequests, presented via audience
  popup at the start of the human turn (one per turn, configurable)
- Diplomacy screen shows ACCEPT/REFUSE with consequence hints until
  answered; unanswered requests lapse with half-weight penalties
- New event types: treatyRenounced, pledgeBroken/pledgeKept, aiGift
- Leader dialogue for demands, refusals, gifts, and renouncements
- Tetris Attack menu gets a title art backdrop

Data/infra:
- diplomacyRequests tuning in civilization-rules.json (thresholds,
  cooldowns, attitude weights, per-request config)
- Frustration, requestCooldown, lastRequestTurn, pledges fields on
  civ state — all backward-compatible with old saves
- Full verification suite covering eligibility, resolution, cooldowns,
  frustration arc, serialization, and fuzz testing
2026-07-23 16:26:15 -06:00
..
advancewars feat(tetrisattack): add Panel de Pon-style tile clear animation and update assets 2026-07-22 18:40:26 -06:00
civilization feat(civilization): add japanese city theme and improve world generation 2026-07-22 23:48:41 -06:00
mahjong
originals
peggle
shift
slots
starcontrol
superkart feat: update superkart icons and add tetrisattack background frames 2026-07-21 20:54:31 -06:00
tetrisattack feat(civ): AI-initiated diplomacy with frustration escalation 2026-07-23 16:26:15 -06:00
tutorial-images
azul-tiles.png
azul-tiles.psd
background-casino.png
background-jewelquest.png
background-jewelquest.psd
background-menu.png
background-room.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