Files
brotato/scenes/unit/enemy/charge_behavior.gd
T
luke358 5cdcf705f4 feat: 1. 添加charge冲锋敌人动画和攻击脚本
2. 添加shoot射击敌人攻击脚本
2026-05-20 15:18:25 +08:00

46 lines
1.0 KiB
GDScript

extends Node2D
class_name ChargeBehabior
@export var enemy: Enemy
@export var anim_effects: AnimationPlayer
@export var prep_time := 1.0
@export var cooldown := 3.0
var current_cooldown := 0.0
var charge_attack_position := Vector2.ZERO
var is_charging := false
func _ready() -> void:
current_cooldown = cooldown
func _process(delta: float) -> void:
if enemy == null:
return
if is_charging:
enemy.global_position = enemy.global_position.move_toward(charge_attack_position, (enemy.stats.speed * 5) * delta)
if enemy.global_position.distance_to(charge_attack_position) < 50:
end_charge()
else:
if current_cooldown > 0:
current_cooldown -= delta
else:
if is_instance_valid(Global.player):
charge_attack_position = Global.player.global_position
start_charge()
func start_charge() -> void:
enemy.can_move = false
anim_effects.play("charge")
await anim_effects.animation_finished
is_charging = true
func end_charge() -> void:
is_charging = false
current_cooldown = cooldown
enemy.can_move = true