Phase 2: character portraits → token icons (local + realtime)
- character.portrait + mapToken.image (data URLs, Dexie v10, additive). - src/lib/img/resize.ts: center-crop + downscale helper (160px tokens / 256px portraits) keeping IndexedDB + wire payloads small. - Portrait uploader on the character sheet; token icon uploader in the map token modal (falls back to the linked character's portrait). Palette PC entries show the portrait thumbnail. - Tokens render the image clipped to the circle (HP ring + condition badge on top). - Realtime: generalized the image channel to many images (map bg + token/portrait icons), deduped by content and resent on reconnect. Player tokens/party carry an imageId resolved from the session image cache; party panel shows portraits. - Also: fix the encounter-picker dropdown text being clipped (drop fixed height). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -100,6 +100,10 @@ export class TtrpgDatabase extends Dexie {
|
||||
// v9 — Phase 20: tokens gain optional combatantId (live HP from an encounter
|
||||
// combatant). Optional field — no backfill needed; existing rows parse fine.
|
||||
this.version(9).stores({});
|
||||
|
||||
// v10 — Phase 2: characters gain `portrait`, map tokens gain `image`
|
||||
// (both optional data URLs). No backfill needed.
|
||||
this.version(10).stores({});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user