forked from team-sg/hero-mark-2
boss behavior stuff
This commit is contained in:
parent
38e60fad93
commit
e04c1f3bf5
5 changed files with 60 additions and 16 deletions
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue