Updated mirror wave; tweaked CRT movement
This commit is contained in:
parent
7e75a96795
commit
78472ee95c
28 changed files with 938 additions and 32 deletions
74
scenes/sink.gd
Normal file
74
scenes/sink.gd
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
extends Area2D
|
||||
|
||||
var enemy_type: String = "mirror"
|
||||
var tween_speed: float = 1.4
|
||||
var start_pos = Vector2.ZERO
|
||||
|
||||
var exploding = false
|
||||
var health: int = 3
|
||||
var pause: bool = false
|
||||
|
||||
@onready var screensize = get_viewport_rect().size
|
||||
@onready var sink_player = $AnimationPlayer
|
||||
@onready var impact_sound = $ImpactSound
|
||||
|
||||
func _ready() -> void:
|
||||
sink_player.seek(randf_range(5, sink_player.current_animation_length))
|
||||
EventBus.flash_screen.emit(0.15)
|
||||
|
||||
|
||||
func start(pos):
|
||||
position = Vector2(pos.x, -pos.y)
|
||||
start_pos = pos
|
||||
var tween = create_tween().set_trans(Tween.TRANS_BACK)
|
||||
tween.tween_property(self, "position:y", start_pos.y, tween_speed)
|
||||
|
||||
#func _process(delta):
|
||||
#if pause == true: return
|
||||
|
||||
|
||||
|
||||
func hit_detection():
|
||||
if exploding: return
|
||||
|
||||
if health != 0:
|
||||
health -= 1
|
||||
EventBus.enemy_hit.emit(5)
|
||||
var current_frame = get_node("Sprite").frame
|
||||
impact_sound.play()
|
||||
$Sprite.frame = current_frame + 1
|
||||
#$AnimationPlayer.play("explode")
|
||||
#set_deferred("monitoring", false)
|
||||
#await $AnimationPlayer.animation_finished
|
||||
var tween = create_tween().set_parallel(false)
|
||||
tween.tween_property($Sprite, "position:y", -2, 0.1)
|
||||
tween.tween_property($Sprite, "position:y", 0, 0.05)
|
||||
await tween.finished
|
||||
sink_player.pause()
|
||||
await get_tree().create_timer(0.25).timeout
|
||||
sink_player.play()
|
||||
|
||||
if health == 0:
|
||||
exploding = true
|
||||
impact_sound.play()
|
||||
#await impact_sound.finished
|
||||
#find all nodes in group "shards" and then queue_free.
|
||||
var nodes = get_tree().get_nodes_in_group("shards")
|
||||
for node in nodes:
|
||||
node.queue_free()
|
||||
EventBus.enemy_died.emit()
|
||||
queue_free()
|
||||
|
||||
|
||||
|
||||
func explode():
|
||||
if exploding: return
|
||||
#exploding = true
|
||||
EventBus.enemy_hit.emit(5)
|
||||
hit_detection()
|
||||
#$ImpactCRT.play()
|
||||
#$AnimationPlayer.play("explode")
|
||||
#set_deferred("monitoring", false)
|
||||
#await $AnimationPlayer.animation_finished
|
||||
#queue_free()
|
||||
#EventBus.enemy_died.emit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue