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):