extends ActiveAbility func unavailable_reason(ship: CharacterBody2D) -> String: if GameState.captain.is_skill_active("power_redirect"): return "Tarcze wyłączone przez Przekierowanie zasilania" if float(ship.get("max_shields")) <= 0.0: return "Wymagana dodatnia maksymalna pojemność tarcz" if float(ship.get("auxiliary_shields")) > 0.0: return "Dodatkowa tarcza już działa" if float(ship.get("max_energy")) <= 0.0 or float(ship.get("energy")) < float(ship.get("max_energy"))*0.7: return "Wymagane 70% maksymalnej energii" return "" func activate(ship: CharacterBody2D) -> void: if not unavailable_reason(ship).is_empty(): return ship.call("create_auxiliary_shield")