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

fix: 修复子弹伤害计算并添加命中成功回调

- 在EntityBase.gd中添加takeDamage方法的返回值
- 修改BigLaser.gd中的applyDot延迟时间计算方式并添加succeedToHit方法
- 在BulletBase.gd中完善伤害处理流程,添加命中回调机制
This commit is contained in:
2025-08-28 15:53:39 +08:00
parent 766a894879
commit ee86fca442
3 changed files with 9 additions and 3 deletions
+4 -2
View File
@@ -10,9 +10,9 @@ func ai():
position = launcher.texture.global_position
func applyDot():
hitbox.disabled = true
await TickTool.millseconds(50)
await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED])
hitbox.disabled = false
await TickTool.millseconds(50)
await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED])
BulletBase.generate(
preload("res://components/Bullets/LaserPluse.tscn"),
launcher,
@@ -20,3 +20,5 @@ func applyDot():
rotation
)
return true
func succeedToHit(_dmg: float):
fields[FieldStore.Bullet.DAMAGE] *= 1.1
+4 -1
View File
@@ -54,7 +54,8 @@ func hit(target: Node):
if !canDamageSelf && entity == launcher: return
if !indisDamage && !GameRule.allowFriendlyFire:
if entity.isPlayer() == launcher.isPlayer(): return
entity.takeDamage(self, MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE]))
var damage = entity.takeDamage(self, MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE]))
succeedToHit(damage)
if MathTool.rate(fullPenerate()):
fields[FieldStore.Bullet.PENERATE] -= entity.fields[FieldStore.Entity.PENARATION_RESISTANCE]
else:
@@ -77,6 +78,8 @@ func spawn():
pass
func applyDot():
pass
func succeedToHit(_dmg: float):
pass
static func generate(
bullet: PackedScene,
+1
View File
@@ -151,6 +151,7 @@ func takeDamage(bullet: BulletBase, crit: bool):
bullet.launcher.storeEnergy(energy * 0.35)
bullet.launcher.setBoss(null)
tryDie(bullet)
return damage
func collectItem(itemType: ItemStore.ItemType, amount: int):
inventory[itemType] += amount
playSound("collect")