26 lines
676 B
GDScript
26 lines
676 B
GDScript
|
extends ActorState
|
||
|
class_name ActorDie
|
||
|
|
||
|
var time = 2
|
||
|
var timer = 0.0
|
||
|
var current_scale: Vector2
|
||
|
|
||
|
func _init(_actor):
|
||
|
super(_actor)
|
||
|
self.current_scale = actor.sprite().scale
|
||
|
|
||
|
func _process(delta):
|
||
|
self.actor.sprite().scale = Vector2(0.2, 0.2) * (sin(self.timer*delta*8000) + 1.0)/2.0 \
|
||
|
+ self.current_scale
|
||
|
self.current_scale -= Vector2(1, 1) * delta * 0.3
|
||
|
self.current_scale.x = max(0, self.current_scale.x)
|
||
|
self.current_scale.y = max(0, self.current_scale.y)
|
||
|
if self.timer > self.time:
|
||
|
if self.actor.player:
|
||
|
get_tree().change_scene_to_file('res://GameOver/game_over.tscn')
|
||
|
return
|
||
|
self.actor.set_state(null)
|
||
|
self.actor.queue_free()
|
||
|
|
||
|
self.timer += delta
|