feat: 1. 添加武器击退功能,player 使用weapon_behavior/melee_behavior(hitbox 会调用 setup 初始化) 的 hitbox 击中 enemy_slow,enemy_slow拿到hitbox的knockback_power,以及hitbox指向enemy的方向,然后朝着该方向,使用power击退:调用enemy.gd 的 apply_knockback,然后_process中会对position修改,同时开启定时器,定时器结束的时候,使用 reset_knockback 重置
This commit is contained in:
@@ -5,6 +5,7 @@ class_name Weapon
|
||||
@onready var sprite_2d: Sprite2D = $Sprite2D
|
||||
@onready var collision: CollisionShape2D = %CollisionShape2D
|
||||
@onready var cooldown_timer: Timer = $CooldownTimer
|
||||
@onready var weapon_behavior: WeaponBehavior = $WeaponBehavior
|
||||
|
||||
var data: ItemWeapon
|
||||
var is_attacking := false
|
||||
@@ -25,6 +26,9 @@ func _process(delta: float) -> void:
|
||||
|
||||
rotate_to_target()
|
||||
|
||||
if can_use_weapon():
|
||||
use_weapon()
|
||||
|
||||
|
||||
func setup_weapon(_data: ItemWeapon) -> void:
|
||||
self.data = _data
|
||||
@@ -32,6 +36,10 @@ func setup_weapon(_data: ItemWeapon) -> void:
|
||||
|
||||
func use_weapon() -> void:
|
||||
calculate_spread()
|
||||
weapon_behavior.execute_attack()
|
||||
cooldown_timer.wait_time = data.stats.cooldown
|
||||
cooldown_timer.start()
|
||||
|
||||
|
||||
func rotate_to_target() -> void:
|
||||
if is_attacking:
|
||||
|
||||
Reference in New Issue
Block a user