boss behavior stuff

This commit is contained in:
Haze Weathers 2023-02-16 18:44:17 -05:00
parent 38e60fad93
commit e04c1f3bf5
5 changed files with 60 additions and 16 deletions

View file

@ -1,5 +1,7 @@
extends "res://objects/enemy/enemy_move_sidesideupdown.gd"
signal entered_phase(phase)
var hp = 3
var arrow_speed = 80
export var phase2_speed = 100
@ -13,16 +15,6 @@ 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(
@ -38,3 +30,17 @@ func shoot():
func _on_ShootTimer_timeout():
shoot_timer.start(rand_range(shoot_time.x,shoot_time.y))
shoot()
func die():
hp -= 1
match hp:
2:
emit_signal("entered_phase", 2)
speed = phase2_speed
shoot_time = Vector2(0.4,0.5)
1:
emit_signal("entered_phase", 3)
speed = phase3_speed
shoot_time = Vector2(0.3,0.5)
0:
.die()

View file

@ -8,6 +8,8 @@ extends Node2D
const DeathParticles = preload("res://objects/enemy/death_particles.tscn")
signal died()
### these variables have been replaced with groups to put on the hitbox
### - "blocks_arrow"
### - "blocks_sword"
@ -36,4 +38,5 @@ func die():
Game.play_sound(death_sound, Game.ac_die)
Game.score += score_for_killing
emit_signal("died")
queue_free()

View file

@ -45,10 +45,7 @@ func _on_Hitbox_area_entered(area):
_make_sparks()
else:
# kill targeted node
if !area.is_in_group("boss_weakspot"):
target.die()
else:
target.hp -=1
target.die()
#decrease arrows if enemy killed
if target_group == "enemy_hitbox":
Game.arrows = max(0, Game.arrows - 1) # clamp arrows above 0