Randoloot/scripts/abilities/tactical_extension_ability.gd
2026-10-16 23:36:49 +02:00

33 lines
1.2 KiB
GDScript

extends ActiveAbility
@export_enum("Teleport", "Cloak", "Mine", "Flares", "Solar shields", "Combat drones") var kind := 0
func unavailable_reason(ship: CharacterBody2D) -> String:
match kind:
5:
if float(ship.get_node("ExtensionSystems").get("drones_remaining")) > 0.0:
return "Drony już walczą"
if int(ship.get_node("ShipInventory").get("ammunition")) < 50:
return "Wymagane 50 szt. zwykłej amunicji"
if float(ship.get_node("ShipInventory").call("get_total_dps")) <= 0.0:
return "Wymagana zamontowana broń"
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)