forked from team-sg/hero-mark-2
STG-2600 death animation.
This commit is contained in:
parent
f61dbb3d32
commit
46578f033f
6 changed files with 703 additions and 18 deletions
|
@ -3,10 +3,14 @@ extends "res://objects/enemy/enemy.gd"
|
|||
signal entered_phase(phase)
|
||||
|
||||
const Bullet = preload("res://objects/enemy/2600_bullet.tscn")
|
||||
const SmallExplosion = preload("res://objects/enemy/boss/2600_small_explosion.tscn")
|
||||
const IntelliHead = preload("res://objects/enemy/boss/intelli_head.tscn")
|
||||
|
||||
export var shot_speed: float = 50
|
||||
export var fire_rate: float = 1
|
||||
export var can_shoot: bool = false
|
||||
export var explosion_rect: Rect2
|
||||
export var make_explosions: bool = true
|
||||
|
||||
var hp: int = 3
|
||||
|
||||
|
@ -42,9 +46,23 @@ func _play_charge_sound(play: bool):
|
|||
Audio.ac_boss.playing = false
|
||||
|
||||
|
||||
func _spawn_explosions() -> void:
|
||||
var head = IntelliHead.instance()
|
||||
head.global_position = $"%IntelliHeadPos".global_position
|
||||
get_parent().add_child(head)
|
||||
while make_explosions:
|
||||
yield(get_tree().create_timer(randf() * 0.5, false), "timeout")
|
||||
var explosion = SmallExplosion.instance()
|
||||
explosion.position = Vector2(
|
||||
rand_range(explosion_rect.position.x, explosion_rect.end.x),
|
||||
rand_range(explosion_rect.position.y, explosion_rect.end.y)
|
||||
)
|
||||
add_child(explosion)
|
||||
|
||||
func die():
|
||||
hp -= 1
|
||||
anims.play("Beam")
|
||||
if hp > 0:
|
||||
anims.play("Beam")
|
||||
match hp:
|
||||
2:
|
||||
Game.instance_node(preload("res://objects/enemy/boss/collapse_blocks.tscn"),0,0,get_parent())
|
||||
|
@ -53,9 +71,16 @@ func die():
|
|||
1:
|
||||
shot_speed = 70
|
||||
fire_rate = 0.8
|
||||
$"%GlassShape".queue_free()
|
||||
emit_signal("entered_phase", 3)
|
||||
head_sprite.texture = preload("res://graphics/enemy/boss/stg_2600/head_broken.png")
|
||||
0:
|
||||
queue_free()
|
||||
Game.instance_node(load("res://objects/enemy/boss/2600_die.tscn"),position.x,position.y,get_parent())
|
||||
anims.play("die")
|
||||
Audio.play_sound(Audio.a_die, Audio.ac_die)
|
||||
yield(anims, "animation_finished")
|
||||
emit_signal("entered_phase", 4)
|
||||
|
||||
|
||||
func _on_animation_finished(anim_name: String) -> void:
|
||||
if anim_name == "Beam":
|
||||
anims.play("stomping")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue