From 662e4f9117ca79f56e75c634cc43357a23c07b88 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: Sat, 6 Sep 2025 16:14:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8E=89=E8=90=BD=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E4=B8=BA=E6=A3=92=E7=90=83=E6=8E=89=E8=90=BD=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=9A=8F=E6=9C=BA=E6=B5=AE=E5=8A=A8=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B8=B8=E6=88=8F=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在EntityBase.gd中为棒球掉落数量添加随机浮动范围,使用GameRule.beachballOffset控制浮动比例。同时调整GameRule.gd中的refreshCountIncreasePercent范围,从20-75%改为10-50%,并新增beachballOffset配置项用于控制棒球掉落数量的30%随机浮动。 --- scripts/Statemachine/EntityBase.gd | 6 +++++- scripts/Tools/GameRule.gd | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index ad97296..5eea79f 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -249,7 +249,11 @@ func tryDie(by: BulletBase): ) or isBoss: for i in randi_range(appleCount.x, appleCount.y): ItemDropped.generate(ItemStore.ItemType.APPLE, 1, position + MathTool.randv2_range(GameRule.itemDroppedSpawnOffset)) - ItemDropped.generate(ItemStore.ItemType.BEACHBALL, fields[FieldStore.Entity.MAX_HEALTH], position + MathTool.randv2_range(GameRule.itemDroppedSpawnOffset)) + ItemDropped.generate( + ItemStore.ItemType.BEACHBALL, + fields[FieldStore.Entity.MAX_HEALTH] * randf_range(1 - GameRule.beachballOffset, 1 + GameRule.beachballOffset), + position + MathTool.randv2_range(GameRule.itemDroppedSpawnOffset) + ) EffectController.create(preload("res://components/Effects/DeadBlood.tscn"), texture.global_position).shot() await die() if isPlayer() and UIState.player == self: diff --git a/scripts/Tools/GameRule.gd b/scripts/Tools/GameRule.gd index be0a4a4..80498cd 100644 --- a/scripts/Tools/GameRule.gd +++ b/scripts/Tools/GameRule.gd @@ -11,11 +11,12 @@ enum Difficulty { static var difficulty: Difficulty = Difficulty.NORMAL # 难度倍数,可以写小数 static var allowFriendlyFire: bool = false # 是否允许友军伤害 static var bulletSpeedMultiplier: float = 1 # 子弹速度倍率 -static var damageOffset: float = MathTool.percent(20) # 伤害随机浮动比例,如20%即10的基础伤害会应用为8~12 +static var damageOffset: float = MathTool.percent(20) # 伤害随机浮动比例 +static var beachballOffset: float = MathTool.percent(30) # 棒球掉落数随机浮动比例 static var damageLabelSpawnOffset: float = 10 # 伤害标签生成位置的随机偏移 static var itemDroppedSpawnOffset: float = 30 # 掉落物生成位置的随机偏移 static var appleDropRate: float = MathTool.percent(10) # 苹果掉落概率 -static var refreshCountIncreasePercent: Vector2 = Vector2(MathTool.percent(20), MathTool.percent(75)) # 刷新所需的棒球数量的增加的百分比 +static var refreshCountIncreasePercent: Vector2 = Vector2(MathTool.percent(10), MathTool.percent(50)) # 刷新所需的棒球数量的增加的百分比 static var entityCountBoostPerWave: float = MathTool.percent(10) # 每波敌人数量增加的百分比,倍数级 static var itemShowLifetime: int = 1500 # 物品展示组件如果设置了自动隐藏,那么隐藏前可以存活的时间 static var tipSpawnRateWhenGetDroppedItem: float = MathTool.percent(25) # 当玩家获取到掉落物时,提示的概率