31 lines
1.4 KiB
GDScript
31 lines
1.4 KiB
GDScript
extends Control
|
|
|
|
var _label: Label
|
|
|
|
func _ready() -> void:
|
|
mouse_filter = Control.MOUSE_FILTER_IGNORE
|
|
_label = Label.new()
|
|
_label.name = "EnemyDetails"
|
|
_label.add_theme_constant_override("line_spacing", -2)
|
|
_label.add_theme_font_override("font", ThemeDB.fallback_font)
|
|
_label.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
|
_label.add_theme_font_size_override("font_size", 8)
|
|
_label.add_theme_color_override("font_color", Color("c9acb5"))
|
|
_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
|
_label.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
|
|
add_child(_label)
|
|
|
|
func _process(_delta: float) -> void:
|
|
var enemy: Node = null
|
|
for candidate in get_tree().get_nodes_in_group("enemies"):
|
|
if not candidate.is_queued_for_deletion() and (enemy == null or int(candidate.loot_tier) < int(enemy.loot_tier)):
|
|
enemy = candidate
|
|
var profile := DamageTypes.enemy_profile(GameState.system_level, GameState.system_seed)
|
|
var kind := int(profile["kind"])
|
|
var names := ["Działko plazmowe", "Działko maszynowe", "Laser", "Rakiety", "Działko gamma"]
|
|
_label.text = "%s\n%s" % [names[kind], "K %.1f%% · E %.1f%% · R %.1f%%" % [profile["absorption"].x, profile["absorption"].y, profile["absorption"].z]]
|
|
if enemy != null:
|
|
_label.text += "\nDPS: %.1f (%s)\nTarcze: %.0f / %.0f" % [enemy.get_weapon_dps(), ["zwykły", "elita", "boss"][enemy.loot_tier], enemy.shields, enemy.max_shields]
|
|
else:
|
|
_label.text += "\nUkład oczyszczony"
|