1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-04 02:37:12 +08:00

feat(工具类): 添加百分比转换工具并重构游戏规则数值

在MathTool中添加percent方法用于百分比转换
重构GameRule中所有百分比相关数值,使用MathTool.percent方法
将itemShowStayTime重命名为itemShowLifetime以更准确表达用途
This commit is contained in:
2025-08-28 15:03:12 +08:00
parent aa1b13752a
commit ec3251ec9d
3 changed files with 15 additions and 13 deletions
+1 -1
View File
@@ -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()
+12 -12
View File
@@ -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) # 幸运值对穿透率的影响
+2
View File
@@ -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