From e1c265cf9d6083b48c8a1768ab8b7431e1fa5416 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: Wed, 10 Sep 2025 22:12:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=B8=B8=E6=88=8F=E5=B9=B3=E8=A1=A1):?= =?UTF-8?q?=20=E7=AE=80=E5=8C=96=E9=9A=BE=E5=BA=A6=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=B9=B6=E8=B0=83=E6=95=B4=E6=AD=A6=E5=99=A8=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=B6=88=E8=80=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除难度枚举改用浮点数,简化实体属性增长公式中的sqrt计算 降低武器升级的棒球和能量消耗倍数 --- scripts/Statemachine/EntityBase.gd | 4 ++-- scripts/Tools/GameRule.gd | 14 +++----------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index faa8007..dfcb8ce 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -161,8 +161,8 @@ func _physics_process(_delta: float) -> void: # 通用方法 func applyLevel(): - fields[FieldStore.Entity.MAX_HEALTH] *= (1 + GameRule.entityHealthIncreasePerWave * sqrt(GameRule.difficulty + 1)) ** level - fields[FieldStore.Entity.DAMAGE_MULTIPILER] *= (1 + GameRule.entityDamageIncreasePerWave * sqrt(GameRule.difficulty + 1)) ** level + fields[FieldStore.Entity.MAX_HEALTH] *= (1 + GameRule.entityHealthIncreasePerWave * (GameRule.difficulty + 1)) ** level + fields[FieldStore.Entity.DAMAGE_MULTIPILER] *= (1 + GameRule.entityDamageIncreasePerWave * (GameRule.difficulty + 1)) ** level func displace(direction: Vector2, isSprinting: bool = false): return (direction if isSprinting else direction.normalized()) * fields.get(FieldStore.Entity.MOVEMENT_SPEED) * 400 * abs(animatree.get("parameters/blend_position")) func move(direction: Vector2, isSprinting: bool = false): diff --git a/scripts/Tools/GameRule.gd b/scripts/Tools/GameRule.gd index 1a6925c..53c83a6 100644 --- a/scripts/Tools/GameRule.gd +++ b/scripts/Tools/GameRule.gd @@ -1,15 +1,7 @@ class_name GameRule -enum Difficulty { - EASY, - NORMAL, - HARD, - INSANE, - EXPERT, - MASTER, -} static var deadReasons: Array = JsonTool.parseJson("res://resources/constants/deadReasons.json") -static var difficulty: Difficulty = Difficulty.MASTER # 难度倍数,可以写小数 +static var difficulty: float = 1 # 难度倍数,可以写小数 static var allowFriendlyFire: bool = false # 是否允许友军伤害 static var bulletSpeedMultiplier: float = 1 # 子弹速度倍率 static var damageOffset: float = MathTool.percent(20) # 伤害随机浮动比例 @@ -28,5 +20,5 @@ static var appleDropRateInfluenceByLuckValue: float = MathTool.percent(2) # 幸 static var critRateInfluenceByLuckValue: float = MathTool.percent(2.5) # 幸运值对暴击率的影响 static var penerateRateInfluenceByLuckValue: float = MathTool.percent(3) # 幸运值对穿透率的影响 static var detainTime: float = 1000 # 血量如果在这个时间内没有改变才会开始播放降低动画 -static var weaponUpdateCost: float = 1.5 # 武器升级后消耗的棒球数量倍数 -static var weaponUpdateEnergy: float = 1.25 # 武器升级后消耗的能量倍数 +static var weaponUpdateCost: float = 1.25 # 武器升级后消耗的棒球数量倍数 +static var weaponUpdateEnergy: float = 1.1 # 武器升级后消耗的能量倍数