1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat(子弹系统): 重构伤害计算并添加音效

将子弹的伤害属性从`damage`重命名为`baseDamage`,并引入`damageMultipliers`数组支持多段伤害
为火山武器添加三段攻击音效并调整伤害倍率
更新相关武器和子弹脚本以适配新的伤害系统
This commit is contained in:
2025-11-22 08:42:51 +08:00
parent b263122a52
commit 46ea2fc775
28 changed files with 145 additions and 31 deletions
+6 -6
View File
@@ -3,7 +3,9 @@ class_name BulletBase
@export var displayName: String = "未知子弹"
@export var speed: float = 10.0
@export var damage: float = 10.0
@export var baseDamage: float = 10.0
@export var damageMultipliers: Array[float] = [1.0]
@export var usingDamageMultiplier: int = 0
@export var penerate: float = 0.0
@export var penerateDamageReduction: float = 0.0
@export var lifeDistance: float = -1 # -1表示无限距离
@@ -31,12 +33,10 @@ var isChildSplit: bool = false
var isChildRefract: bool = false
var initialSpeed: float = 0
var originalDamage: float = 0
var damageMultiplier: Array[float] = [1.0]
var usingDamageMultiplier: int = 0
func _ready():
initialSpeed = speed
originalDamage = damage
originalDamage = baseDamage
if launcher.isSummon():
launcherSummoned = launcher
launcher = launcher.myMaster
@@ -87,7 +87,7 @@ func _physics_process(_delta: float) -> void:
tryDestroy()
func getDamage():
return originalDamage * damageMultiplier[usingDamageMultiplier]
return originalDamage * damageMultipliers[usingDamageMultiplier]
func hit(target: Node):
var entity: EntityBase = EntityTool.fromHurtbox(target)
if !entity || !launcher: return
@@ -96,7 +96,7 @@ func hit(target: Node):
succeedToHit(resultDamage, entity)
if MathTool.rate(fullPenerate()):
penerate -= entity.fields[FieldStore.Entity.PENARATION_RESISTANCE]
damage *= 1.0 - penerateDamageReduction
baseDamage *= 1.0 - penerateDamageReduction
else:
tryDestroy()
func forward(direction: Vector2):