26 lines
887 B
GDScript
26 lines
887 B
GDScript
extends ActiveAbility
|
|
|
|
@export_enum("Teleport", "Cloak", "Mine", "Flares", "Solar shields") var kind := 0
|
|
|
|
func unavailable_reason(ship: CharacterBody2D) -> String:
|
|
match kind:
|
|
0:
|
|
if float(ship.get("energy")) <= 0.0:
|
|
return "Brak energii"
|
|
if not ship.get_node("ExtensionSystems").call("has_teleport_destination"):
|
|
return "Brak bezpiecznego miejsca na teleport"
|
|
1:
|
|
if ship.call("is_cloaked"):
|
|
return "Kamuflaż już działa"
|
|
4:
|
|
if GameState.captain.is_skill_active("power_redirect"):
|
|
return "Tarcze wyłączone przez Przekierowanie zasilania"
|
|
if float(ship.call("get_solar_regeneration")) <= 0.0:
|
|
return "Wymagany zasięg gwiazdy"
|
|
if float(ship.get("shields")) >= float(ship.get("max_shields")):
|
|
return "Tarcze są pełne"
|
|
return ""
|
|
|
|
func activate(ship: CharacterBody2D) -> void:
|
|
ship.get_node("ExtensionSystems").call("activate", kind)
|