Files
slopvivors/scenes/enemies/effects/enemy_effect_bleed.gd

34 lines
787 B
GDScript

class_name EnemyEffectBleed
extends EnemyEffectBase
var damage: float
var duration: float
var tick_rate: float = 1.0
var _timer: Timer
var _remaining_ticks: int = 5
var _enemy: EnemyBase
const PUDDLE = preload("res://scenes/puddle.tscn")
func _init(enemy: EnemyBase, bleed_damage: float, duration: float):
damage = bleed_damage
_timer = Timer.new()
func apply(enemy: EnemyBase) -> void:
enemy.effects.append(self)
while _remaining_ticks > 0:
enemy.take_damage(damage, false)
_remaining_ticks -= 1
await enemy.get_tree().create_timer(1.0, false, true, false).timeout
var p = PUDDLE.instantiate()
enemy.get_parent().add_child(p)
p.global_position = enemy.global_position
enemy.effects.erase(self)
static func _is_bleeding(enemy: EnemyBase) -> bool:
return false