From 205d6d8a1219a0dc9839680205f1714dca8d8433 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, 7 Mar 2026 09:08:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=AD=A6=E5=99=A8):=20=E4=B8=BA=E6=89=80?= =?UTF-8?q?=E6=9C=89=E6=AD=A6=E5=99=A8=E6=94=BB=E5=87=BB=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 统一所有武器的attack方法,确保返回true以表示攻击成功执行 --- scripts/Contents/Weapons/Bow.gd | 1 + scripts/Contents/Weapons/GrassWall.gd | 19 ++++++++------- scripts/Contents/Weapons/HXD.gd | 27 +++++++++++---------- scripts/Contents/Weapons/Oxygener.gd | 35 ++++++++++++++------------- scripts/Contents/Weapons/SevenSoul.gd | 11 +++++---- scripts/Contents/Weapons/Volcano.gd | 1 + 6 files changed, 50 insertions(+), 44 deletions(-) diff --git a/scripts/Contents/Weapons/Bow.gd b/scripts/Contents/Weapons/Bow.gd index 766c479..02ac6d9 100644 --- a/scripts/Contents/Weapons/Bow.gd +++ b/scripts/Contents/Weapons/Bow.gd @@ -18,3 +18,4 @@ func attack(entity: EntityBase): var bullet: Bow = i bullet.count = readStore("count") bullet.atk = readStore("atk") + return true diff --git a/scripts/Contents/Weapons/GrassWall.gd b/scripts/Contents/Weapons/GrassWall.gd index 542ef3e..b62d676 100644 --- a/scripts/Contents/Weapons/GrassWall.gd +++ b/scripts/Contents/Weapons/GrassWall.gd @@ -2,13 +2,14 @@ extends Weapon func update(to: int, origin: Dictionary, _entity: EntityBase): - origin["atk"] += 1 * to * soulLevel - return origin + origin["atk"] += 1 * to * soulLevel + return origin func attack(entity: EntityBase): - var wall = ObstacleBase.generate( - ComponentManager.getObstacle("GrassWall"), - get_global_mouse_position(), - entity.findWeaponAnchor("normal").angle_to_point(get_global_mouse_position()), - entity - ) - wall.initHealth(readStore("atk")) + var wall = ObstacleBase.generate( + ComponentManager.getObstacle("GrassWall"), + get_global_mouse_position(), + entity.findWeaponAnchor("normal").angle_to_point(get_global_mouse_position()), + entity + ) + wall.initHealth(readStore("atk")) + return true diff --git a/scripts/Contents/Weapons/HXD.gd b/scripts/Contents/Weapons/HXD.gd index cf9b495..49011f7 100644 --- a/scripts/Contents/Weapons/HXD.gd +++ b/scripts/Contents/Weapons/HXD.gd @@ -2,17 +2,18 @@ extends Weapon func update(to: int, origin: Dictionary, _entity: EntityBase): - origin["atk"] += 2 * to * soulLevel - origin["count"] += 2 * (soulLevel - 1) - return origin + origin["atk"] += 2 * to * soulLevel + origin["count"] += 2 * (soulLevel - 1) + return origin func attack(entity: EntityBase): - for i in readStore("count"): - for bullet in BulletBase.generate( - ComponentManager.getBullet("HXD"), - entity, - entity.findWeaponAnchor("normal"), - entity.findWeaponAnchor("normal").angle_to_point(get_global_mouse_position()) + deg_to_rad(randf_range(-1, 1) * 4) - ): - if bullet is HXDBullet: - bullet.maxBouncedTime = readStore("atk") - bullet.baseDamage = readStore("atk") + for i in readStore("count"): + for bullet in BulletBase.generate( + ComponentManager.getBullet("HXD"), + entity, + entity.findWeaponAnchor("normal"), + entity.findWeaponAnchor("normal").angle_to_point(get_global_mouse_position()) + deg_to_rad(randf_range(-1, 1) * 4) + ): + if bullet is HXDBullet: + bullet.maxBouncedTime = readStore("atk") + bullet.baseDamage = readStore("atk") + return true diff --git a/scripts/Contents/Weapons/Oxygener.gd b/scripts/Contents/Weapons/Oxygener.gd index a624b97..2e88e25 100644 --- a/scripts/Contents/Weapons/Oxygener.gd +++ b/scripts/Contents/Weapons/Oxygener.gd @@ -2,21 +2,22 @@ extends Weapon func update(to: int, origin: Dictionary, _entity: EntityBase): - origin["atk"] += 1 * to * soulLevel - origin["fireatk"] += 0.5 * to * soulLevel - origin["max-n"] += 2 * soulLevel - return origin + origin["atk"] += 1 * to * soulLevel + origin["fireatk"] += 0.5 * to * soulLevel + origin["max-n"] += 2 * soulLevel + return origin func attack(entity: EntityBase): - var bulletName = MathTool.randomChoiceFromWeights(["OxygenFire", "AcidN"], [10, 1]) - for i in randi_range(readStore("min-n"), readStore("max-n")) if bulletName == "AcidN" else 1: - for bullet in BulletBase.generate( - ComponentManager.getBullet(bulletName), - entity, - entity.findWeaponAnchor("normal"), - entity.position.angle_to_point(get_global_mouse_position()), - ): - if bullet is OxygenFire: - bullet.baseDamage = readStore("fireatk") - elif bullet is AcidN: - bullet.baseDamage = readStore("atk") - bullet.lifeTime *= 0.5 + var bulletName = MathTool.randomChoiceFromWeights(["OxygenFire", "AcidN"], [10, 1]) + for i in randi_range(readStore("min-n"), readStore("max-n")) if bulletName == "AcidN" else 1: + for bullet in BulletBase.generate( + ComponentManager.getBullet(bulletName), + entity, + entity.findWeaponAnchor("normal"), + entity.position.angle_to_point(get_global_mouse_position()), + ): + if bullet is OxygenFire: + bullet.baseDamage = readStore("fireatk") + elif bullet is AcidN: + bullet.baseDamage = readStore("atk") + bullet.lifeTime *= 0.5 + return true diff --git a/scripts/Contents/Weapons/SevenSoul.gd b/scripts/Contents/Weapons/SevenSoul.gd index dbb54fe..ea93a66 100644 --- a/scripts/Contents/Weapons/SevenSoul.gd +++ b/scripts/Contents/Weapons/SevenSoul.gd @@ -1,6 +1,11 @@ @tool extends Weapon +func update(to, origin, _entity): + origin["atk"] += 1 * to * soulLevel + origin["dmg"] += 0.02 * to * soulLevel + origin["heal"] += 0.1 * to * soulLevel + return origin func attack(entity: EntityBase): playSound("attack") for i in 6: @@ -11,8 +16,4 @@ func attack(entity: EntityBase): bullet.energyCollect = readStore("dmg") bullet.healAmount = readStore("heal") await TickTool.millseconds(15000 / 6.0) -func update(to, origin, _entity): - origin["atk"] += 1 * to * soulLevel - origin["dmg"] += 0.02 * to * soulLevel - origin["heal"] += 0.1 * to * soulLevel - return origin + return true diff --git a/scripts/Contents/Weapons/Volcano.gd b/scripts/Contents/Weapons/Volcano.gd index 388ee1c..2559195 100644 --- a/scripts/Contents/Weapons/Volcano.gd +++ b/scripts/Contents/Weapons/Volcano.gd @@ -24,3 +24,4 @@ func attack(entity: EntityBase): bullet.damageMultipliers = [readStore("dmg1"), readStore("dmg2"), readStore("dmg3"), readStore("dmg4")] bullet.count = readStore("count") bullet.dmg5 = readStore("dmg5") + return true