Tune and optimize boss encounter
This commit is contained in:
parent
40f284dcdd
commit
68985316e5
16 changed files with 316 additions and 88 deletions
|
|
@ -2,6 +2,7 @@ class_name BossEye
|
|||
extends Area2D
|
||||
|
||||
signal destroyed
|
||||
signal health_changed(current: int, maximum: int)
|
||||
|
||||
const COMBAT_TARGET = preload("res://core/CombatTarget.gd")
|
||||
|
||||
|
|
@ -10,6 +11,9 @@ const COMBAT_TARGET = preload("res://core/CombatTarget.gd")
|
|||
var hp: int = 3
|
||||
var opened: bool = false
|
||||
var phase: float = 0.0
|
||||
var redraw_left: float = 0.0
|
||||
|
||||
const REDRAW_INTERVAL: float = 1.0 / 12.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
|
|
@ -32,6 +36,7 @@ func take_damage(amount: int) -> bool:
|
|||
if not opened or hp <= 0:
|
||||
return false
|
||||
hp -= maxi(amount, 1)
|
||||
health_changed.emit(maxi(hp, 0), max_hp)
|
||||
if hp > 0:
|
||||
queue_redraw()
|
||||
return false
|
||||
|
|
@ -45,7 +50,9 @@ func take_damage(amount: int) -> bool:
|
|||
|
||||
func _process(delta: float) -> void:
|
||||
phase += delta
|
||||
if opened:
|
||||
redraw_left -= delta
|
||||
if opened and redraw_left <= 0.0:
|
||||
redraw_left = REDRAW_INTERVAL
|
||||
queue_redraw()
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue