mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-31 16:31:54 +08:00
feat(子弹系统): 重构伤害计算并添加音效
将子弹的伤害属性从`damage`重命名为`baseDamage`,并引入`damageMultipliers`数组支持多段伤害 为火山武器添加三段攻击音效并调整伤害倍率 更新相关武器和子弹脚本以适配新的伤害系统
This commit is contained in:
@@ -18,7 +18,7 @@ func ai():
|
||||
trail.emitting = true
|
||||
hitbox.disabled = false
|
||||
speed = (1 - lifeDistancePercent()) * initialSpeed
|
||||
damage = speed * atk
|
||||
baseDamage = speed * atk
|
||||
PresetBulletAI.forward(self, rotation)
|
||||
if speed < 1:
|
||||
tryDestroy()
|
||||
|
||||
@@ -9,7 +9,7 @@ func register():
|
||||
func spawn():
|
||||
CameraManager.shake(5000, 100) # 激光会运行5秒(5000毫秒),期间震屏超高强度
|
||||
CameraManager.playAnimation("bigLaser")
|
||||
damage *= launcher.fields[FieldStore.Entity.ATTACK_SPEED]
|
||||
baseDamage *= launcher.fields[FieldStore.Entity.ATTACK_SPEED]
|
||||
func ai():
|
||||
rotation = lerp_angle(rotation, ((get_global_mouse_position() - position).angle()), 0.1)
|
||||
position = launcher.texture.global_position
|
||||
|
||||
@@ -13,7 +13,7 @@ var forwarded: bool = false
|
||||
|
||||
func register():
|
||||
speed = 1
|
||||
damage = 1
|
||||
baseDamage = 1
|
||||
func spawn():
|
||||
myColor = allColor.gradient.sample(randf())
|
||||
superlight.material = superlight.material.duplicate()
|
||||
|
||||
@@ -5,7 +5,7 @@ extends BulletBase
|
||||
var myColor: Color
|
||||
|
||||
func register():
|
||||
damage = 1
|
||||
baseDamage = 1
|
||||
penerate = 1
|
||||
func spawn():
|
||||
myColor = allColor.gradient.sample(randf())
|
||||
|
||||
@@ -10,7 +10,7 @@ extends BulletBase
|
||||
var myColor: Color
|
||||
func register():
|
||||
speed = 1
|
||||
damage = 1
|
||||
baseDamage = 1
|
||||
penerate = 1
|
||||
func spawn():
|
||||
myColor = allColor.gradient.sample(randf())
|
||||
|
||||
@@ -11,7 +11,7 @@ var myColor: Color
|
||||
|
||||
func register():
|
||||
speed = 0
|
||||
damage = 1
|
||||
baseDamage = 1
|
||||
penerate = 1
|
||||
func spawn():
|
||||
myColor = allColor.gradient.sample(randf())
|
||||
|
||||
@@ -15,5 +15,5 @@ func ai():
|
||||
track.visible = false
|
||||
hitbox.disabled = false
|
||||
PresetBulletAI.forward(self, rotation)
|
||||
damage = speed / 5
|
||||
baseDamage = speed / 5
|
||||
speed *= 1.15
|
||||
|
||||
@@ -8,7 +8,7 @@ var splits: float = 10.0
|
||||
func spawn():
|
||||
for j in count:
|
||||
for i in BulletBase.generate(ComponentManager.getBullet("PurpleCrystalSmall"), launcher, anchor.global_position, rotation):
|
||||
i.damage = damage
|
||||
i.damage = baseDamage
|
||||
var dir = Vector2.from_angle(i.rotation).rotated(deg_to_rad(-90))
|
||||
i.global_position += dir * (count - j * 2) * splits / 2
|
||||
func ai():
|
||||
|
||||
@@ -7,7 +7,7 @@ func register():
|
||||
speed = 0
|
||||
penerate = 1
|
||||
func ai():
|
||||
damage = launcher.velocity.length() / 500 * atk
|
||||
baseDamage = launcher.velocity.length() / 500 * atk
|
||||
PresetBulletAI.lockLauncher(self, launcher, true)
|
||||
if !launcher.sprinting:
|
||||
tryDestroy()
|
||||
|
||||
@@ -4,7 +4,7 @@ class_name Diamond
|
||||
const traceTime = 1500
|
||||
|
||||
func register():
|
||||
damage = 2
|
||||
baseDamage = 2
|
||||
func ai():
|
||||
PresetBulletAI.forward(self, rotation)
|
||||
if timeLived() < traceTime:
|
||||
|
||||
@@ -2,7 +2,7 @@ extends BulletBase
|
||||
class_name Pencil
|
||||
|
||||
func register():
|
||||
damage = 20
|
||||
baseDamage = 20
|
||||
func spawn():
|
||||
await TickTool.millseconds(1000)
|
||||
hitbox.disabled = false
|
||||
|
||||
@@ -20,7 +20,7 @@ func register():
|
||||
func(area):
|
||||
var bullet = BulletTool.fromArea(area)
|
||||
if bullet and BulletTool.canDamage(bullet, launcher):
|
||||
launcher.storeEnergy(damage * 2)
|
||||
launcher.storeEnergy(baseDamage * 2)
|
||||
)
|
||||
func spawn():
|
||||
modulate = Color(colors[index % colors.size()])
|
||||
|
||||
@@ -2,6 +2,6 @@ extends BulletBase
|
||||
class_name Star
|
||||
|
||||
func register():
|
||||
damage = 1
|
||||
baseDamage = 1
|
||||
func ai():
|
||||
PresetBulletAI.forward(self, rotation)
|
||||
|
||||
@@ -25,4 +25,4 @@ func generateShadow():
|
||||
false, false, true, true
|
||||
):
|
||||
if i is VolcanoShadow:
|
||||
i.damage = damage
|
||||
i.baseDamage = baseDamage
|
||||
|
||||
Reference in New Issue
Block a user