ITADN

[Chapter 66] Tooltip bug on casting a targeted spell

#231OpenPierreGuyot 创建于 2025-01-14
P
PierreGuyotcommented
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 条评论