class_name BossPhase extends Resource ## One stage of a boss fight: a looping timeline of emitters, entered when the ## boss drops below [member enter_at_hp_fraction]. @export var name: String = "Phase" ## The phase becomes active once hp/max_hp is at or below this. Phases are ## evaluated in array order, so list them from 1.0 downwards. @export_range(0.0, 1.0, 0.01) var enter_at_hp_fraction: float = 1.0 ## The phase timeline wraps at this many ticks. Emitter [member start_tick] and ## [member end_tick] are relative to the start of each loop. @export var loop_ticks: int = 600 ## Ticks of no fire after entering the phase, so the transition is readable. @export var telegraph_ticks: int = 45 ## Damage taken while in this phase is scaled by this. Use < 1.0 for armoured ## phases rather than adding hit points, so the fight length stays predictable. @export var damage_taken_mult: float = 1.0 @export var emitters: Array[BulletEmitter] = []