extends ActiveAbility const SCAN_DURATION := 8.0 const OVERLAY := preload("res://scripts/ui/scanner_overlay.gd") func unavailable_reason(ship: CharacterBody2D) -> String: if ship.has_node("ScannerOverlay"): return "Skaner jest aktywny" return "Wymagane 50% energii" if float(ship.get("energy")) < float(ship.get("max_energy")) * 0.5 else "" func activate(ship: CharacterBody2D) -> void: if not unavailable_reason(ship).is_empty(): return ship.set("energy", float(ship.get("energy")) - float(ship.get("max_energy")) * 0.5) var layer := CanvasLayer.new() layer.name = "ScannerOverlay" layer.layer = 8 ship.add_child(layer) var overlay := Control.new() overlay.set_script(OVERLAY) overlay.set("player", ship) overlay.set("remaining", SCAN_DURATION) layer.add_child(overlay) overlay.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)