1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-10 21:57:12 +08:00

feat(EntityBase): 添加冲刺位移计算相关方法

添加 getSprintInitialDisplace 和 getSprintProgress 方法用于计算冲刺初始位移和进度
简化完美闪避判定逻辑,使用 getSprintProgress 方法替代原有计算
This commit is contained in:
2025-09-08 22:19:25 +08:00
parent 49ff189fe5
commit 45eb1dcb00
+5 -1
View File
@@ -160,6 +160,10 @@ func _physics_process(_delta: float) -> void:
trailParticle.emitting = trailing
# 通用方法
func getSprintInitialDisplace():
return displace(velocity) * sprintMultiplier
func getSprintProgress():
return velocity.length() / getSprintInitialDisplace().length()
func applyLevel():
fields[FieldStore.Entity.MAX_HEALTH] *= (1 + GameRule.entityHealthIncreasePerWave * (GameRule.difficulty + 1)) ** level
fields[FieldStore.Entity.DAMAGE_MULTIPILER] *= (1 + GameRule.entityDamageIncreasePerWave * (GameRule.difficulty + 1)) ** level
@@ -177,7 +181,7 @@ func takeDamage(bullet: BulletBase, crit: bool):
var perfectMiss = false
if sprinting:
playSound("miss")
if velocity.length() > (displace(velocity) * sprintMultiplier * (1 - fields.get(FieldStore.Entity.PERFECT_MISS_WINDOW))).length():
if getSprintProgress() > 1 - fields.get(FieldStore.Entity.PERFECT_MISS_WINDOW):
perfectMiss = true
if perfectMiss:
storeEnergy(damage * 2)