37 lines
1.1 KiB
GDScript
37 lines
1.1 KiB
GDScript
tool
|
|
extends "res://objects/enemy/enemy_move_sidesideupdown.gd"
|
|
|
|
export var spike_delay: float = 2.0
|
|
export var spike_time: float = 0.25
|
|
|
|
var spike_tween: SceneTreeTween
|
|
|
|
onready var sprite: Sprite = $"%Sprite"
|
|
onready var spike_shape: CollisionShape2D = $"%SpikeShape"
|
|
|
|
func _ready() -> void:
|
|
if Engine.editor_hint:
|
|
return
|
|
spike_tween = create_tween().set_loops()
|
|
spike_tween.set_process_mode(Tween.TWEEN_PROCESS_PHYSICS)
|
|
|
|
spike_tween.tween_property(spike_shape, "disabled", true, 0.0)
|
|
spike_tween.tween_property(sprite, "frame_coords:y", 0.0, 0.0)
|
|
spike_tween.tween_interval(spike_delay)
|
|
|
|
spike_tween.tween_property(sprite, "frame_coords:y", 1.0, 0.0)
|
|
spike_tween.tween_interval(spike_time * 2.0)
|
|
|
|
spike_tween.tween_property(spike_shape, "disabled", false, 0.0)
|
|
spike_tween.tween_property(sprite, "frame_coords:y", 2.0, 0.0)
|
|
spike_tween.tween_interval(spike_time)
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
$HeadHitbox.scale.x = $ToFlip.scale.x
|
|
|
|
func die() -> void:
|
|
spike_tween.kill()
|
|
spike_shape.set_deferred("disabled", true)
|
|
sprite.frame_coords.y = 3
|
|
Audio.play_sound(death_sound, Audio.ac_die)
|
|
$"%DeathSplatter".emitting = true
|