[Chapter 66] Tooltip bug on casting a targeted spell
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`.)
1 条评论