Add hover intent action badges

This commit is contained in:
2026-06-18 21:03:37 +09:00
parent 1ee3859636
commit 1e75b50bcd
2 changed files with 66 additions and 1 deletions

View File

@@ -1847,7 +1847,10 @@ func _target_preview_badge() -> Dictionary:
return _skill_target_preview_badge(selected, target)
if not selected_item_id.is_empty():
return _item_target_preview_badge(selected, target)
return _attack_target_preview_badge(selected, target)
var attack_badge := _attack_target_preview_badge(selected, target)
if not attack_badge.is_empty():
return attack_badge
return _hover_intent_preview_badge(selected, target)
func _attack_target_preview_badge(selected: Dictionary, target: Dictionary) -> Dictionary:
@@ -1936,6 +1939,22 @@ func _item_target_preview_badge(selected: Dictionary, target: Dictionary) -> Dic
return _make_target_preview_badge("+%d MP" % mp_heal, "mp")
func _hover_intent_preview_badge(selected: Dictionary, target: Dictionary) -> Dictionary:
if selected.is_empty():
return {}
if not state.can_player_act():
return {}
if not bool(selected.get("controllable", true)) or bool(selected.get("acted", false)):
return {}
if not target.is_empty():
if target.get("team", "") == selected.get("team", "") and _can_select(target):
return _make_target_preview_badge("SELECT", "select")
return {}
if move_cells.has(hover_cell):
return _make_target_preview_badge("MOVE", "move")
return {}
func _make_target_preview_badge(text: String, kind: String) -> Dictionary:
if text.is_empty():
return {}
@@ -1968,6 +1987,10 @@ func _compact_support_preview_text(effect_text: String) -> String:
func _target_preview_badge_color(kind: String) -> Color:
if kind == "damage":
return Color(1.0, 0.38, 0.26)
if kind == "move":
return Color(0.38, 0.70, 1.0)
if kind == "select":
return Color(1.0, 0.86, 0.34)
if kind == "heal":
return Color(0.44, 1.0, 0.52)
if kind == "mp":