KillTrackerComponent

 avatar
unknown
python
2 months ago
912 B
3
Indexable
extends Node
class_name KillTrackerComponent

@export var mastery_component: Node

func _ready():
	print("KillTracker ready in controller")

# Call this from the controller when spawning an ability
func register_hitbox(hitbox: HitboxComponent):
	print("KillTracker registering new hitbox")
	hitbox.hit_enemy.connect(_on_hitbox_hit_enemy)

func _on_hitbox_hit_enemy(enemy: Node2D):
	print("KillTracker detected hit on: ", enemy.name)
	if !enemy.has_node("HealthComponent"):
		return
		
	var health = enemy.get_node("HealthComponent")
	if health.is_connected("died", _on_enemy_died):
		return
		
	print("KillTracker connecting to enemy death signal")
	health.died.connect(_on_enemy_died.bind(), CONNECT_ONE_SHOT)

func _on_enemy_died():
	print("KillTracker: Enemy died, registering kill")
	if mastery_component:
		mastery_component.register_kill()
	else:
		push_error("KillTracker: No mastery component assigned")
Leave a Comment