amethyst / amethyst/rustrogueliketutorial

[Chapter 66] Tooltip bug on casting a targeted spell

未關閉
#231 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Rust
星號
970
分支
166
PR 合併指標
30 天內沒有已合併 PR

描述

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`.)

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。