generated from nhcarrigan/template
11e97325cb
## Summary - Adds `apps/web/src/utils/cdn.ts` with a `cdnImage(folder, id)` helper that builds URLs from `https://cdn.nhcarrigan.com/elysium/` - Wires CDN art into all 13 game panels (bosses, quests, adventurers, companions, equipment, upgrades, prestige, transcendence, achievements, explorations, crafting, story, codex) - Zone selector tabs now display 16:9 zone art thumbnails in place of emoji icons - Adds a fixed background image at 15% opacity via `body::before` - Documents the art generation and CDN upload process in `CLAUDE.md` for future expansions Resolves #15 ✨ This PR was created with help from Hikari~ 🌸 Reviewed-on: #43 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
2.3 KiB
2.3 KiB
Elysium Project Notes
CI Requirements
Never commit without first confirming the full pipeline passes locally:
pnpm lint— zero errors, zero warningspnpm build— all packages build cleanlypnpm test— all tests pass with 100% coverage onapps/apiandpackages/types
Art Assets
Game art is generated via the Gemini API (gemini-3-pro-image-preview, ~$0.134/image at 1K resolution) and hosted on the CDN at https://cdn.nhcarrigan.com/elysium/.
Process
- Generate images with
curltohttps://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=<API_KEY>, requesting soft-shaded anime style - Save responses to
/home/naomi/code/naomi/elysium/img/<category>/<id>.jpg - Upload to R2 with:
AWS_ACCESS_KEY_ID=dd0a3d73969143ada84d50f8940cc5e2 AWS_SECRET_ACCESS_KEY=f73e9907da1b2297e93e17f786d6446d33d4ac60e185879578a0d5020899b18e aws s3 sync img/ s3://nhcarrigan-cdn/elysium/ --endpoint-url https://751c386661d378cc032093493cfb0869.r2.cloudflarestorage.com - Delete the local
img/directory before committing (images live on CDN only)
CDN URL Helper
apps/web/src/utils/cdn.ts exports cdnImage(folder, id) → https://cdn.nhcarrigan.com/elysium/<folder>/<id>.jpg
Directory → Category Mapping
| Game entity | CDN folder |
|---|---|
| Zones | zones |
| Bosses | bosses |
| Quests | quests |
| Adventurers | adventurers |
| Companions | companions |
| Equipment | equipment |
| Upgrades | upgrades |
| Prestige upgrades | prestige-upgrades |
| Transcendence upgrades | transcendence-upgrades |
| Achievements | achievements |
| Explorations | explorations |
| Materials | materials |
| Recipes | recipes |
| Story chapter banners | story-chapters |
API Rate Limits
- 250 images/day per API key — use a second key if quota is hit
- Free-tier keys cannot use
gemini-3-pro-image-preview; key must be on a billing-linked project
About Page
The About page (apps/web/src/components/game/aboutPanel.tsx) contains a How to Play guide that should be kept up to date as new features are added to the game. When implementing new game systems, zones, mechanics, or significant UI features, update the HOW_TO_PLAY array in aboutPanel.tsx to include a description of the new feature.