40 lines
1.1 KiB
GDScript
40 lines
1.1 KiB
GDScript
extends "res://objects/enemy/enemy_move_sidesideupdown.gd"
|
|
|
|
var hp = 3
|
|
var arrow_speed = 80
|
|
export var phase2_speed = 100
|
|
export var phase3_speed = 150
|
|
const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn")
|
|
const arrow_pickup = preload("res://objects/collectibles/arrow.tscn")
|
|
onready var shoot_timer = $ShootTimer
|
|
var shoot_time = Vector2(0.4,0.7)
|
|
export var arrow_spawns = [Vector2(0,0),Vector2(0,0),Vector2(0,0)]
|
|
|
|
func _ready():
|
|
seed(hash("HEROMARK2"))
|
|
|
|
func _physics_process(delta):
|
|
match hp:
|
|
2:
|
|
speed = phase2_speed
|
|
shoot_time = Vector2(0.4,0.5)
|
|
1:
|
|
speed = phase3_speed
|
|
shoot_time = Vector2(0.3,0.5)
|
|
0: die()
|
|
|
|
func shoot():
|
|
var arrow = ArrowProjectile.instance()
|
|
arrow.global_position = Vector2(
|
|
global_position.x + $Position2D.position.x,
|
|
stepify(global_position.y + $Position2D.position.y,8)
|
|
)
|
|
arrow.direction = -1
|
|
arrow.breaks_on_wall = false
|
|
arrow.target_group = "player"
|
|
arrow.speed = arrow_speed
|
|
get_owner().add_child(arrow)
|
|
|
|
func _on_ShootTimer_timeout():
|
|
shoot_timer.start(rand_range(shoot_time.x,shoot_time.y))
|
|
shoot()
|