From e7476d2c47cf2653591d36afdf6de153400a0042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sun, 7 Sep 2025 14:29:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=88=98=E6=96=97=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=8C=E7=BE=8E=E9=97=AA=E9=81=BF=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E5=B9=B6=E6=9C=AC=E5=9C=B0=E5=8C=96=E4=BC=A4=E5=AE=B3?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加完美闪避窗口参数,用于调整触发完美闪避的速度阈值 将伤害标签中的"MISS"和"PERFECT MISS"本地化为中文"闪避"和"完美闪避" --- scripts/Statemachine/DamageLabel.gd | 4 ++-- scripts/Statemachine/EntityBase.gd | 3 ++- scripts/Tools/FieldStore.gd | 6 +++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/Statemachine/DamageLabel.gd b/scripts/Statemachine/DamageLabel.gd index f64d177..0b7c355 100644 --- a/scripts/Statemachine/DamageLabel.gd +++ b/scripts/Statemachine/DamageLabel.gd @@ -24,10 +24,10 @@ func _ready(): else: if crit: label.label_settings.font_color = color4 - label.text = "PERFECT MISS" + label.text = "完美闪避" else: label.label_settings.font_color = color3 - label.text = "MISS" + label.text = "闪避" animator.play("show") await animator.animation_finished queue_free() diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index 2f0af26..0a1ab1d 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -20,6 +20,7 @@ var fields = { FieldStore.Entity.SAVE_ENERGY: 1, FieldStore.Entity.ENERGY_MULTIPILER: 1, FieldStore.Entity.ENERGY_REGENERATION: 1, + FieldStore.Entity.PERFECT_MISS_WINDOW: 0.15, "子弹": TITLE_FLAG, FieldStore.Entity.OFFSET_SHOOT: 3, FieldStore.Entity.PENERATE: 0, @@ -176,7 +177,7 @@ func takeDamage(bullet: BulletBase, crit: bool): var perfectMiss = false if sprinting: playSound("miss") - if velocity.length() > (displace(velocity, true) * sprintMultiplier * 0.9).length(): + if velocity.length() > (displace(velocity, true) * sprintMultiplier * (1 - fields.get(FieldStore.Entity.PERFECT_MISS_WINDOW))).length(): perfectMiss = true if perfectMiss: storeEnergy(damage * 2) diff --git a/scripts/Tools/FieldStore.gd b/scripts/Tools/FieldStore.gd index 501751b..9279a20 100644 --- a/scripts/Tools/FieldStore.gd +++ b/scripts/Tools/FieldStore.gd @@ -33,7 +33,8 @@ enum Entity { BULLET_SPLIT, BULLET_REFRACTION, BULLET_TRACE, - GRAVITY + GRAVITY, + PERFECT_MISS_WINDOW } static var entityMap = { Entity.MAX_HEALTH: "生命上限", @@ -62,6 +63,7 @@ static var entityMap = { Entity.BULLET_REFRACTION: "折射", Entity.BULLET_TRACE: "追踪", Entity.GRAVITY: "引力", + Entity.PERFECT_MISS_WINDOW: "闪避窗口", } static var entityMapType = { Entity.MAX_HEALTH: DataType.VALUE, @@ -90,6 +92,7 @@ static var entityMapType = { Entity.BULLET_REFRACTION: DataType.VALUE, Entity.BULLET_TRACE: DataType.PERCENT, Entity.GRAVITY: DataType.VALUE, + Entity.PERFECT_MISS_WINDOW: DataType.PERCENT, } static var entityMaxValueMap = { Entity.CRIT_RATE: 0.8, @@ -99,6 +102,7 @@ static var entityMaxValueMap = { Entity.DROP_APPLE_RATE: 0.4, Entity.FEED_COUNT_SHOW: 6, Entity.BULLET_TRACE: 1, + Entity.PERFECT_MISS_WINDOW: 0.8 } static var entityApplier = { Entity.MAX_HEALTH: func(entity, value):