1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

refactor(Statemachine): 将FollowPosition重构为SyncTransform并增加缩放功能

feat(EnergyBlock): 添加新的攻击类型1并设置冷却时间
fix(Parrier): 修复子弹碰撞时的hitbox禁用问题
feat(Bullets): 添加新的SwingSword子弹资源
style(Wave): 调整调试配置使用测试小怪而非Boss
This commit is contained in:
2026-04-30 20:56:49 +08:00
parent 5f3002ad20
commit 0a9e5f328a
9 changed files with 397 additions and 4 deletions
+1 -2
View File
@@ -73,7 +73,7 @@ func hitBullet(bullet: BulletBase): # 当前子弹与其他子弹相撞
generateParryBall(targetBaseDamage)
elif bullet.motionType == BulletBase.MotionType.SWING:
parryEffect(bullet)
bullet.hitbox.disabled = true
bullet.hitbox.set_deferred("disabled", true)
generateParryBall(targetBaseDamage)
elif bullet.motionType == BulletBase.MotionType.SPRINT:
parryEffect(bullet)
@@ -82,7 +82,6 @@ func hitBullet(bullet: BulletBase): # 当前子弹与其他子弹相撞
generateParryBall(targetBaseDamage)
elif bullet.motionType == BulletBase.MotionType.BREATH:
penerateEffect(bullet.launcher)
bullet.hitbox.disable = true
bullet.launcher.impluse(Vector2.from_angle(bullet.rotation) * -500)
elif bullet.motionType == BulletBase.MotionType.SUMMON || bullet.motionType == BulletBase.MotionType.MAGIC:
penerateEffect(bullet.launcher)
@@ -8,11 +8,15 @@ func register():
bullet.launcher.storeEnergy(damage)
)
attackCooldownMap[0] = 0
attackCooldownMap[1] = 3000
func ai():
tryAttack(0)
tryAttack(1)
func attack(type: int):
if type == 0:
var track = getTrackingAnchor()
var bullet = BulletTool.findClosetBulletCanDamage(track, get_tree(), self , 200)
if is_instance_valid(bullet):
BulletBase.generate(ComponentManager.getBullet("Parrier"), self , track, track.angle_to_point(bullet.position))
elif type == 1:
BulletBase.generate(ComponentManager.getBullet("SwingSword"), self , getTrackingAnchor(), getTrackingAnchor().angle_to_point(currentFocusedPosition))
+1 -1
View File
@@ -57,7 +57,7 @@ static var WAVE_TESTMOB = [
]
static var WAVE_EMPTY = []
static var waveReleaseConfig = [WAVE_TESTBOSS, 1]
static var waveDebugConfig = [WAVE_TESTBOSS, 1]
static var waveDebugConfig = [WAVE_TESTMOB, 1]
static var current: int = startWith(waveReleaseConfig[1]) if WorldManager.isRelease() else startWith(waveDebugConfig[1])
static var data = waveReleaseConfig[0] if WorldManager.isRelease() else waveDebugConfig[0]
@@ -2,10 +2,14 @@
extends Node2D
@export var target: Node2D
@export var offsetPosition: Vector2 = Vector2.ZERO
@export var offsetRotation: float = 0.0
@export var multipilerScale: Vector2 = Vector2.ONE
@export var enablePosition: bool = false
@export var enableRotation: bool = false
@export var enableScale: bool = false
func _process(_delta):
if is_instance_valid(target):
@@ -13,3 +17,5 @@ func _process(_delta):
global_position = target.global_position + offsetPosition
if enableRotation:
global_rotation = target.global_rotation + deg_to_rad(offsetRotation)
if enableScale:
global_scale = target.global_scale * multipilerScale