tweaks to assassinate vip mode
This commit is contained in:
@@ -2,20 +2,28 @@ extends Node
|
||||
class_name Modifier
|
||||
|
||||
@export var time_to_kill : float = 30.0
|
||||
@export var percent_of_targets : float = 1.0
|
||||
|
||||
@onready var level: Node3D = $"../../Level"
|
||||
@onready var level_node: Node3D = $"../../Level"
|
||||
@onready var scene_parent: Node3D = $"../.."
|
||||
@onready var marker = preload("res://enemyTargetMarker.tscn")
|
||||
@onready var level_control = get_tree().current_scene
|
||||
|
||||
var target_enemy
|
||||
var total_targets
|
||||
var active = false
|
||||
var timer
|
||||
|
||||
func _ready() -> void:
|
||||
await get_tree().create_timer(5).timeout
|
||||
select_random_enemy()
|
||||
await level_node.all_enemies_spawned
|
||||
SignalBus.connect("enemy_killed",check_killed_target)
|
||||
SignalBus.connect("player_left_tube",begin_activity)
|
||||
timer = time_to_kill
|
||||
scene_parent.tube_top.switch.active = false
|
||||
scene_parent.tube_top.switch.label.text = str("Kill all vip \n targets to exit")
|
||||
|
||||
func begin_activity():
|
||||
select_random_enemy()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if active:
|
||||
@@ -24,6 +32,7 @@ func _process(delta: float) -> void:
|
||||
timer -= delta
|
||||
update_timer("kill target")
|
||||
else:
|
||||
level_control.last_hit = target_enemy
|
||||
level_control.die()
|
||||
active = false
|
||||
else:
|
||||
@@ -48,7 +57,7 @@ func add_marker_to_enemy():
|
||||
instance_marker.global_position = target_enemy.global_position
|
||||
|
||||
func select_random_enemy():
|
||||
var level_stuff = level.get_children()
|
||||
var level_stuff = level_node.get_children()
|
||||
var enemies = []
|
||||
for node in level_stuff:
|
||||
print(node)
|
||||
@@ -61,4 +70,8 @@ func select_random_enemy():
|
||||
active = true
|
||||
print("TARGET ENEMY : ",target_enemy.name)
|
||||
else:
|
||||
print("KILLED EM ALL")
|
||||
activity_completed()
|
||||
SignalBus.emit_signal("ui_timer_visibility",false)
|
||||
|
||||
func activity_completed():
|
||||
scene_parent.tube_top.switch.active = true
|
||||
|
||||
@@ -48,6 +48,7 @@ func _ready() -> void:
|
||||
|
||||
SignalBus.player_hit.connect(player_hit)
|
||||
SignalBus.ui_timer_update.connect(update_timer)
|
||||
SignalBus.ui_timer_visibility.connect(toggle_timer_visibility)
|
||||
|
||||
money_count = GameGlobals.money
|
||||
|
||||
@@ -125,6 +126,9 @@ func _process(delta: float) -> void:
|
||||
spawn_notifs()
|
||||
wobble_items.position = hud_wobble(delta/Engine.time_scale)
|
||||
|
||||
func toggle_timer_visibility(timer_visible):
|
||||
timer_counter.visible = timer_visible
|
||||
|
||||
func update_timer(label,timer):
|
||||
if timer_counter.visible == false:
|
||||
timer_counter.visible = true
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
extends Node
|
||||
|
||||
signal all_enemies_spawned
|
||||
|
||||
@export_group("Main")
|
||||
@export var room_lockdown : bool = false
|
||||
@export var start_enemies : int = 20
|
||||
@@ -79,3 +81,4 @@ func spawn_enemies():
|
||||
add_child(enemy)
|
||||
enemy.global_position = set_pos
|
||||
|
||||
emit_signal("all_enemies_spawned")
|
||||
|
||||
@@ -18,6 +18,7 @@ signal king_killed()
|
||||
signal weapon_list_changed()
|
||||
|
||||
## LEVEL
|
||||
signal player_left_tube()
|
||||
|
||||
##ENEMY
|
||||
signal suspicious_sound(position,loudness,max_distance)
|
||||
@@ -25,3 +26,4 @@ signal engaging_target(enemy,target_position)
|
||||
|
||||
##UI
|
||||
signal ui_timer_update(label,timer)
|
||||
signal ui_timer_visibility(visible)
|
||||
|
||||
@@ -12,6 +12,7 @@ signal switch_changed
|
||||
@export var anim_player : AnimationPlayer
|
||||
|
||||
var switched_on : bool
|
||||
var active = true
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
@@ -22,14 +23,24 @@ func _ready() -> void:
|
||||
|
||||
|
||||
func switch():
|
||||
if toggle_enabled:
|
||||
if switched_on == true:
|
||||
switched_on = false
|
||||
switch_changed.emit()
|
||||
|
||||
if anim_player != null:
|
||||
anim_player.play("off")
|
||||
|
||||
if active:
|
||||
if toggle_enabled:
|
||||
if switched_on == true:
|
||||
switched_on = false
|
||||
switch_changed.emit()
|
||||
|
||||
if anim_player != null:
|
||||
anim_player.play("off")
|
||||
|
||||
else:
|
||||
switched_on = true
|
||||
switch_changed.emit()
|
||||
|
||||
if anim_player != null:
|
||||
anim_player.play("on")
|
||||
|
||||
if timer_enabled:
|
||||
start_timer()
|
||||
else:
|
||||
switched_on = true
|
||||
switch_changed.emit()
|
||||
@@ -39,15 +50,6 @@ func switch():
|
||||
|
||||
if timer_enabled:
|
||||
start_timer()
|
||||
else:
|
||||
switched_on = true
|
||||
switch_changed.emit()
|
||||
|
||||
if anim_player != null:
|
||||
anim_player.play("on")
|
||||
|
||||
if timer_enabled:
|
||||
start_timer()
|
||||
|
||||
func start_timer():
|
||||
await get_tree().create_timer(timer_duration).timeout
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
extends SwitchBasic
|
||||
|
||||
@export var label : Label3D
|
||||
|
||||
func interact():
|
||||
switch()
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ extends Node3D
|
||||
class_name SpawnTube
|
||||
|
||||
@export var level_bounds : LevelBounds
|
||||
@export var switch : SwitchBasic
|
||||
|
||||
var open = true
|
||||
var active = true
|
||||
@@ -24,6 +25,12 @@ func _on_player_detect_body_entered(body: Node3D) -> void:
|
||||
body.global_position = old_pos
|
||||
|
||||
|
||||
|
||||
func _on_player_detect_body_exited(body: Node3D) -> void:
|
||||
if body is Player:
|
||||
SignalBus.emit_signal("player_left_tube")
|
||||
|
||||
|
||||
func _on_switch_1_switch_changed() -> void:
|
||||
if open:
|
||||
anim_player.play("close")
|
||||
|
||||
Reference in New Issue
Block a user