platformer-game-test/src/Hazards/SpikeTrap.gd

28 lines
808 B
GDScript3
Raw Normal View History

2020-11-05 02:13:24 +00:00
tool
2020-11-03 21:18:02 +00:00
extends Node2D
var triggerd = false
2020-11-05 02:13:24 +00:00
export(int, -360, 360) var direction = 1 setget set_direction
2020-11-26 02:32:02 +00:00
export(float, 0, 120) var cooldown_timeout = 2
2020-11-05 02:13:24 +00:00
2020-11-03 21:18:02 +00:00
func _on_DamageArea_body_entered(body: Node) -> void:
if body.name == "Player":
body.die()
2020-11-10 13:51:34 +00:00
body.boost(Vector2(150, 0))
2020-11-03 21:18:02 +00:00
func _on_TriggerArea_body_entered(body: Node) -> void:
if body.name == "Player" and not triggerd:
AudioManager.play_sfx(AudioManager.Sfx.SPIKE_TRAP)
2020-11-03 21:18:02 +00:00
triggerd = true
$AnimationPlayer.play("emit")
yield($AnimationPlayer, "animation_finished")
yield(get_tree().create_timer(.3), "timeout")
$AnimationPlayer.play_backwards("emit")
2020-11-26 02:32:02 +00:00
$CoolDownTimer.start(cooldown_timeout)
2020-11-05 02:13:24 +00:00
func set_direction(new_direction):
self.rotation_degrees = new_direction
2020-11-26 02:32:02 +00:00
func _on_CoolDownTimer_timeout():
triggerd = false