An isometric autochess-style shop game built with Python and Pygame. Browse a finite pool of procedurally-drawn artifacts, mine ore for gold, and manage your collection.
Legendary · Epic · Rare · Uncommon · Common
Items are drawn from a shared pool. Rarity determines copies available. Buying depletes the pool; refreshing returns unsold items and reshuffles. Strategy emerges from scarcity.
A rock pile provides supplemental income: 1-3 gold per mine with a cooldown. 15 charges that visually deplete. 3 charges restock on each shop refresh.
A useable item that converts any inventory item into 75% of its gold value. Click the hammer, then click a target. Both are consumed. Enables gold recovery from bad purchases.
Items carry optional effect dicts with trigger types: on_buy (consumed at purchase) and use_on_target (activated from inventory). New effects need only a template and a handler.
All sprites are procedurally generated at 32×32 using pygame.draw primitives. Shown here at 4× scale. Rarity tints the accent colour.
Event handling, game state, effect dispatch, and targeting mode. Contains Game, Notification, and Particle classes.
45 item templates with the extensible effect system. 17 procedural sprite draw functions with lazy caching by (kind, rarity).
All drawing: isometric floor, pedestals, items, ore pile, UI panels, tooltips, particles, targeting visuals.
Finite pool management. Creates items from templates, handles display slots, draw, buy, and refresh.
All constants: screen dimensions, colours, rarity definitions, pool sizes, layout positions, ore settings.