added an assassinate target modifier
This commit is contained in:
59
scripts/assassinate_vip.gd
Normal file
59
scripts/assassinate_vip.gd
Normal file
@@ -0,0 +1,59 @@
|
||||
extends Node
|
||||
class_name Modifier
|
||||
|
||||
@export var time_to_kill : float = 30.0
|
||||
|
||||
@onready var level: Node3D = $"../../Level"
|
||||
@onready var marker = preload("res://enemyTargetMarker.tscn")
|
||||
@onready var level_control = get_tree().current_scene
|
||||
|
||||
var target_enemy
|
||||
var timer
|
||||
|
||||
func _ready() -> void:
|
||||
await get_tree().create_timer(5).timeout
|
||||
select_random_enemy()
|
||||
SignalBus.connect("enemy_killed",check_killed_target)
|
||||
timer = time_to_kill
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if target_enemy != null:
|
||||
if timer > 0:
|
||||
timer -= delta
|
||||
update_timer("kill target")
|
||||
else:
|
||||
level_control.die()
|
||||
|
||||
|
||||
func update_timer(label):
|
||||
var rounded_timer = round(timer)
|
||||
SignalBus.emit_signal("ui_timer_update",label,timer)
|
||||
|
||||
func check_killed_target(enemy):
|
||||
print("ENEMY KILLED : ",enemy)
|
||||
print("TARGET ENEMY : ",target_enemy)
|
||||
if enemy == target_enemy:
|
||||
timer = time_to_kill
|
||||
target_enemy = null
|
||||
select_random_enemy()
|
||||
|
||||
func add_marker_to_enemy():
|
||||
if target_enemy != null:
|
||||
var instance_marker = marker.instantiate()
|
||||
target_enemy.add_child(instance_marker)
|
||||
instance_marker.global_position = target_enemy.global_position
|
||||
|
||||
func select_random_enemy():
|
||||
var level_stuff = level.get_children()
|
||||
var enemies = []
|
||||
for node in level_stuff:
|
||||
print(node)
|
||||
if node is Enemy:
|
||||
enemies.append(node)
|
||||
|
||||
if enemies.size() > 0:
|
||||
target_enemy = enemies.pick_random()
|
||||
add_marker_to_enemy()
|
||||
print("TARGET ENEMY : ",target_enemy.name)
|
||||
else:
|
||||
print("KILLED EM ALL")
|
||||
Reference in New Issue
Block a user