1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-06 19:57:12 +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
+1 -1
View File
@@ -11,5 +11,5 @@ func attack(entity: EntityBase):
for bullet in BulletBase.generate(ComponentManager.getBullet("BigLaser"), entity, weaponPos, (get_global_mouse_position() - weaponPos).angle()):
var bigLaser: BigLaser = bullet
bigLaser.dotTime = readStore("time") * 1000
bigLaser.damage = readStore("atk")
bigLaser.baseDamage = readStore("atk")
return true
+1 -1
View File
@@ -10,7 +10,7 @@ func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
for j in BulletBase.generate(ComponentManager.getBullet("MushroomPickaxe"), entity, entity.texture.global_position, weaponPos.angle_to_point(get_global_mouse_position())):
var bullet: MushroomPickaxe = j
bullet.damage = readStore("atk")
bullet.baseDamage = readStore("atk")
bullet.rate = readStore("rate")
bullet.count = readStore("count")
return true
+1 -1
View File
@@ -9,6 +9,6 @@ func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
for j in BulletBase.generate(ComponentManager.getBullet("NuclearBomb"), entity, weaponPos, weaponPos.angle_to_point(get_global_mouse_position())):
var bullet: NuclearBomb = j
bullet.damage = readStore("atk")
bullet.baseDamage = readStore("atk")
bullet.radius = readStore("radius")
return true
+1 -1
View File
@@ -13,7 +13,7 @@ func attack(entity: EntityBase):
for i in range(int(randi_range(readStore("mincount"), readStore("maxcount")))):
for j in BulletBase.generate(ComponentManager.getBullet("VectorStar"), entity, weaponPos, deg_to_rad(randf_range(0, 360))):
var bullet: VectorStar = j
bullet.damage = readStore("atk")
bullet.baseDamage = readStore("atk")
bullet.tracer = EntityTool.findClosetEntity(get_global_mouse_position(), get_tree(), !entity.isPlayer(), entity.isPlayer())
bullet.forwardTime = readStore("forwardtime") * 1000
return true
+7 -2
View File
@@ -2,7 +2,11 @@
extends Weapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["rotate"] += 0.015 * to * soulLevel
origin["rotate"] += 0.005 * to * soulLevel
origin["dmg1"] += 0.03 * to * soulLevel
origin["dmg2"] += 0.03 * to * soulLevel
origin["dmg3"] += 0.03 * to * soulLevel
origin["atk"] += 1 * to * soulLevel
return origin
func attack(entity: EntityBase):
for j in BulletBase.generate(
@@ -12,5 +16,6 @@ func attack(entity: EntityBase):
entity.position.angle_to_point(entity.get_global_mouse_position()), false, false, true, true
):
var bullet: Volcano = j
bullet.damage = readStore("atk")
bullet.baseDamage = readStore("atk")
bullet.rotates = readStore("rotate")
bullet.damageMultipliers = [readStore("dmg1"), readStore("dmg2"), readStore("dmg3")]