From ec3251ec9dcd3989541301269d7f08ac98e463e5 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: Thu, 28 Aug 2025 15:03:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=B7=A5=E5=85=B7=E7=B1=BB):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=99=BE=E5=88=86=E6=AF=94=E8=BD=AC=E6=8D=A2=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=B9=B6=E9=87=8D=E6=9E=84=E6=B8=B8=E6=88=8F=E8=A7=84?= =?UTF-8?q?=E5=88=99=E6=95=B0=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在MathTool中添加percent方法用于百分比转换 重构GameRule中所有百分比相关数值,使用MathTool.percent方法 将itemShowStayTime重命名为itemShowLifetime以更准确表达用途 --- scripts/Statemachine/ItemShow.gd | 2 +- scripts/Tools/GameRule.gd | 24 ++++++++++++------------ scripts/Tools/MathTool.gd | 2 ++ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/scripts/Statemachine/ItemShow.gd b/scripts/Statemachine/ItemShow.gd index fb36137..20c2b55 100644 --- a/scripts/Statemachine/ItemShow.gd +++ b/scripts/Statemachine/ItemShow.gd @@ -14,7 +14,7 @@ func _ready(): if autoFree: animator.play("show") await animator.animation_finished - await TickTool.millseconds(GameRule.itemShowStayTime) # 等待几秒后自动隐藏 + await TickTool.millseconds(GameRule.itemShowLifetime) # 等待几秒后自动隐藏 animator.play("hide") await animator.animation_finished queue_free() diff --git a/scripts/Tools/GameRule.gd b/scripts/Tools/GameRule.gd index db599f6..d78eff2 100644 --- a/scripts/Tools/GameRule.gd +++ b/scripts/Tools/GameRule.gd @@ -11,17 +11,17 @@ enum Difficulty { static var difficulty: Difficulty = Difficulty.NORMAL # 难度倍数,可以写小数 static var allowFriendlyFire: bool = false # 是否允许友军伤害 static var bulletSpeedMultiplier: float = 1 # 子弹速度倍率 -static var damageOffset: float = 0.2 # 伤害随机浮动比例,如20%即10的基础伤害会应用为8~12 +static var damageOffset: float = MathTool.percent(20) # 伤害随机浮动比例,如20%即10的基础伤害会应用为8~12 static var damageLabelSpawnOffset: float = 10 # 伤害标签生成位置的随机偏移 static var itemDroppedSpawnOffset: float = 30 # 掉落物生成位置的随机偏移 -static var appleDropRate: float = 0.1 # 苹果掉落概率 -static var refreshCountIncreasePercent: Vector2 = Vector2(0.2, 0.75) # 刷新所需的棒球数量的增加的百分比 -static var entityCountBoostPerWave: float = 0.1 # 每波敌人数量增加的百分比,倍数级 -static var itemShowStayTime: int = 1500 # 物品展示组件如果设置了自动隐藏,那么隐藏前可以存活的时间 -static var tipSpawnRateWhenGetDroppedItem: float = 0.25 # 当玩家获取到掉落物时,提示的概率 -static var entityHealthIncreasePerWave: float = 0.05 # 每波敌人生命值增加的百分比,指数级 -static var entityDamageIncreasePerWave: float = 0.02 # 每波敌人伤害增加的百分比,指数级 -static var entityLevelOffsetByWave: float = 0.3 # 每波敌人等级根据当前波数随机浮动的比例 -static var appleDropRateInfluenceByLuckValue: float = 0.02 # 幸运值对苹果掉率的影响 -static var critRateInfluenceByLuckValue: float = 0.025 # 幸运值对暴击率的影响 -static var penerateRateInfluenceByLuckValue: float = 0.03 # 幸运值对穿透率的影响 +static var appleDropRate: float = MathTool.percent(10) # 苹果掉落概率 +static var refreshCountIncreasePercent: Vector2 = Vector2(MathTool.percent(20), MathTool.percent(75)) # 刷新所需的棒球数量的增加的百分比 +static var entityCountBoostPerWave: float = MathTool.percent(10) # 每波敌人数量增加的百分比,倍数级 +static var itemShowLifetime: int = 1500 # 物品展示组件如果设置了自动隐藏,那么隐藏前可以存活的时间 +static var tipSpawnRateWhenGetDroppedItem: float = MathTool.percent(25) # 当玩家获取到掉落物时,提示的概率 +static var entityHealthIncreasePerWave: float = MathTool.percent(5) # 每波敌人生命值增加的百分比,指数级 +static var entityDamageIncreasePerWave: float = MathTool.percent(2) # 每波敌人伤害增加的百分比,指数级 +static var entityLevelOffsetByWave: float = MathTool.percent(30) # 每波敌人等级根据当前波数随机浮动的比例 +static var appleDropRateInfluenceByLuckValue: float = MathTool.percent(2) # 幸运值对苹果掉率的影响 +static var critRateInfluenceByLuckValue: float = MathTool.percent(2.5) # 幸运值对暴击率的影响 +static var penerateRateInfluenceByLuckValue: float = MathTool.percent(3) # 幸运值对穿透率的影响 diff --git a/scripts/Tools/MathTool.gd b/scripts/Tools/MathTool.gd index faa0e53..7607e17 100644 --- a/scripts/Tools/MathTool.gd +++ b/scripts/Tools/MathTool.gd @@ -11,3 +11,5 @@ static func randc_from(array: Array): return array[randi() % array.size()] static func signBeforeStr(value: float): return ("+" if value > 0 else "-" if value < 0 else "") + str(abs(value)) +static func percent(value: float): + return value / 100