extends "res://objects/enemy/enemy.gd" const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn") const BoneParticle = preload("res://objects/enemy/bone_particle.tscn") const arrowpos = Vector2(4,4) export var shoot_time = 1.0 export var arrow_speed = 120.0 # bone death particles export var bones_amount = 12 export var bones_speed = 50.0 onready var timer = $Timer onready var anims = $AnimationPlayer onready var sprite = $Sprite func _ready(): death_sound = Game.a_die_skeleton timer.start(shoot_time) func _on_Timer_timeout(): anims.play("shoot") func spawn_arrow(): var arrow = ArrowProjectile.instance() arrow.global_position = Vector2( global_position.x + arrowpos.x * sprite.scale.x, global_position.y + arrowpos.y ) arrow.direction = sprite.scale.x arrow.target_group = "player" arrow.speed = arrow_speed Game.get_map().add_child(arrow) timer.start(shoot_time) func die(): for n in bones_amount: var bone = BoneParticle.instance() bone.rotation = rand_range(0.0, 2.0*PI) # random rotation bone.global_position = global_position bone.linear_velocity = Vector2(bones_speed * rand_range(0.5, 1.5), 0.0).rotated(rand_range(-PI, 0.0)) bone.angular_velocity = rand_range(-PI*2.0, PI*2.0) var timer = get_tree().create_timer(3.0 + rand_range(0.0, 1.0), false) timer.connect("timeout", bone, "queue_free") get_parent().call_deferred("add_child", bone) .die() # call rest of enemy.gd die() funciton