feat: echte Trank-Icons statt Platzhalter-Emoji im Charakter-Modal #15

Merged
DasAoD merged 1 commit from feature/potion-icons into main 2026-08-03 17:01:01 +02:00
Owner

Zusammenfassung

Ersetzt das 🧪-Platzhalter-Emoji bei aktiven Tränken im Charakter-Modal durch echte Trank-Icons.

Die Icons liegen im schon vorhandenen miscitems_sd-Bundle (Typ-ID 12), waren aber bisher nicht mit ins Repo kopiert. Die model_id entspricht der rohen Trank-ID (1–16) aus dem Spielprotokoll, die Trank-Größe und Attribut-Typ gemeinsam kodiert — zurückgerechnet aus PotionType::parse/PotionSize::parse der sf-api (github.com/the-marenga/sf-api):

  • id % 5 → Attribut (0=Glück, 1=Stärke, 2=Geschick, 3=Intelligenz, 4=Ausdauer)
  • 1–5 / 6–10 / 11–16 → Klein / Mittel / Groß
  • 16 ist als Sonderfall immer "Trank des ewigen Lebens" (überschreibt die reguläre Zuordnung für diese eine ID)

Stichprobenartig gegen alle 16 Kombinationen geprüft (alle vorhanden), id=16 zeigt passend eine goldene geflügelte Flasche.

Änderungen

  • includes/item_icons.php: neue resolvePotionIconPath(), rechnet typ+size auf die passende model_id zurück und löst sie wie bei Items per Glob auf
  • api/player_character.php: hängt pro aktivem Trank ein icon-Feld an
  • guild.js: rendert das Trank-Icon als <img>, fällt bei fehlendem/kaputtem Bild auf das bisherige 🧪-Emoji zurück
  • 117 Icons aus miscitems_sd ergänzt (Tränke + ein paar weitere Diverse-Items, die grafisch noch nicht angebunden sind)
## Zusammenfassung Ersetzt das 🧪-Platzhalter-Emoji bei aktiven Tränken im Charakter-Modal durch echte Trank-Icons. Die Icons liegen im schon vorhandenen `miscitems_sd`-Bundle (Typ-ID 12), waren aber bisher nicht mit ins Repo kopiert. Die `model_id` entspricht der rohen Trank-ID (1–16) aus dem Spielprotokoll, die Trank-Größe **und** Attribut-Typ gemeinsam kodiert — zurückgerechnet aus `PotionType::parse`/`PotionSize::parse` der `sf-api` (github.com/the-marenga/sf-api): - `id % 5` → Attribut (0=Glück, 1=Stärke, 2=Geschick, 3=Intelligenz, 4=Ausdauer) - `1–5` / `6–10` / `11–16` → Klein / Mittel / Groß - `16` ist als Sonderfall immer "Trank des ewigen Lebens" (überschreibt die reguläre Zuordnung für diese eine ID) Stichprobenartig gegen alle 16 Kombinationen geprüft (alle vorhanden), `id=16` zeigt passend eine goldene geflügelte Flasche. ## Änderungen - `includes/item_icons.php`: neue `resolvePotionIconPath()`, rechnet `typ`+`size` auf die passende `model_id` zurück und löst sie wie bei Items per Glob auf - `api/player_character.php`: hängt pro aktivem Trank ein `icon`-Feld an - `guild.js`: rendert das Trank-Icon als `<img>`, fällt bei fehlendem/kaputtem Bild auf das bisherige 🧪-Emoji zurück - 117 Icons aus `miscitems_sd` ergänzt (Tränke + ein paar weitere Diverse-Items, die grafisch noch nicht angebunden sind)
Trank-Icons liegen im schon vorhandenen miscitems_sd-Bundle unter Typ-ID 12.
Die model_id entspricht der rohen Trank-ID (1-16) aus dem Spielprotokoll,
die Größe und Attribut-Typ gemeinsam kodiert (id%5 -> Typ, 1-5/6-10/11-16
-> Small/Medium/Large, 16 fest = EternalLife) — rekonstruiert aus sf-api
PotionType::parse/PotionSize::parse (github.com/the-marenga/sf-api).

- includes/item_icons.php: resolvePotionIconPath() rechnet typ+size auf
  die passende model_id zurück und löst sie wie bei Items per Glob auf
- api/player_character.php: hängt pro aktivem Trank ein icon-Feld an
- guild.js: rendert das Trank-Icon als <img>, fällt bei fehlendem/kaputtem
  Bild auf das bisherige 🧪-Emoji zurück
- 117 Icons aus miscitems_sd (Tränke + einige weitere Diverse-Items) ergänzt
DasAoD merged commit 2f4cfefba9 into main 2026-08-03 17:01:01 +02:00
Sign in to join this conversation.
No description provided.