generated from nhcarrigan/template
feat: integrate art assets across all game panels (#43)
## 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>
This commit was merged in pull request #43.
This commit is contained in:
@@ -7,6 +7,41 @@
|
||||
2. `pnpm build` — all packages build cleanly
|
||||
3. `pnpm test` — all tests pass with 100% coverage on `apps/api` and `packages/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
|
||||
1. Generate images with `curl` to `https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=<API_KEY>`, requesting soft-shaded anime style
|
||||
2. Save responses to `/home/naomi/code/naomi/elysium/img/<category>/<id>.jpg`
|
||||
3. 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`
|
||||
4. 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.
|
||||
|
||||
Reference in New Issue
Block a user