amethyst / amethyst/rustrogueliketutorial

[Chapter 66] Tooltip bug on casting a targeted spell

Aperta
#231 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
970
Fork
166
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

https://github.com/amethyst/rustrogueliketutorial/blob/33872fe582f226178436847e1f74eafcbf9c0d1a/chapter-66-spells/src/inventory_system/mod.rs#L41
https://github.com/amethyst/rustrogueliketutorial/blob/33872fe582f226178436847e1f74eafcbf9c0d1a/chapter-66-spells/src/gui.rs#L51

When casting a targeted spell (like Zap), a tooltip will be displayed with the `Nameless item (bug)` string.

This is because the tooltip logic will loop on every entity with a `Position` component and try to display it.
However, when spawning a `Particle`, it is expected for it to have a `Position` but no `Name`.
When casting the spell, a `Particle` is spawned on the exact tile the player is hovering, so the `draw_tooltips` logic catches it and tries to display it. But since it has no `Name` (which is expected), it displays this string.

We need to either:
1. Filter entities we pass to `get_item_display_name` differently so particles are omitted
2. Return `None` for an entity with no `Name` component

Additionally, the code for `get_item_display_name` and `obfuscate_name` should be refactored to avoid bugs.
(`get_item_display_name` could simply get the proper stores and call `obfuscate_name`.)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.