1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-06 11:47:13 +08:00

feat(武器): 添加酸蚀风暴武器及五种酸液子弹

实现酸蚀风暴武器系统,包含五种不同类型的酸液子弹:
1. 硫酸:命中时溅射1~3滴酸液
2. 硝酸:造成额外伤害
3. 盐酸:降低敌人移动和攻击速度
4. 碳酸:可无限穿透并逐渐扩大
5. 磷酸:增加敌人散射角

同时调整武器数值平衡,更新VSCode配置中的Godot引擎路径
This commit is contained in:
2026-01-23 23:44:21 +08:00
parent bedf76398e
commit 3eb1f84a21
27 changed files with 236 additions and 78 deletions
@@ -0,0 +1,17 @@
extends BulletBase
class_name AcidBulletBase
enum AcidType {
STRONG,
WEAK,
}
@export var acidType: AcidType = AcidType.STRONG
var arg1: float = 0
var arg2: float = 0
var arg3: float = 0
func register():
scale.y *= MathTool.randomChoiceFrom([-1, 1])
func ai():
PresetBulletAI.forward(self, rotation)
@@ -0,0 +1 @@
uid://wt1fn2vjtlen
+7
View File
@@ -0,0 +1,7 @@
extends AcidBulletBase
class_name AcidC
func ai():
super.ai()
scale *= 1.01
modulate.a = 1 - timeLived() / lifeTime
+1
View File
@@ -0,0 +1 @@
uid://8h8e35gwre27
+6
View File
@@ -0,0 +1,6 @@
extends AcidBulletBase
class_name AcidCl
func succeedToHit(_dmg: float, entity: EntityBase):
entity.fields[FieldStore.Entity.MOVEMENT_SPEED] = clamp(entity.fields[FieldStore.Entity.MOVEMENT_SPEED] - arg1, 0.15, INF)
entity.fields[FieldStore.Entity.ATTACK_SPEED] = clamp(entity.fields[FieldStore.Entity.ATTACK_SPEED] - arg2, 0.15, INF)
+1
View File
@@ -0,0 +1 @@
uid://dp8e5samuurdn
+5
View File
@@ -0,0 +1,5 @@
extends AcidBulletBase
class_name AcidN
func succeedToHit(_dmg: float, entity: EntityBase):
entity.takeDamage(arg1)
+1
View File
@@ -0,0 +1 @@
uid://ccjdi34ney8kl
+5
View File
@@ -0,0 +1,5 @@
extends AcidBulletBase
class_name AcidP
func succeedToHit(_dmg: float, entity: EntityBase):
entity.fields[FieldStore.Entity.OFFSET_SHOOT] = clamp(entity.fields[FieldStore.Entity.OFFSET_SHOOT] + arg1, 0, INF)
+1
View File
@@ -0,0 +1 @@
uid://bef6n4hwn1niu
+8
View File
@@ -0,0 +1,8 @@
extends AcidBulletBase
class_name AcidS
func succeedToHit(_dmg: float, _entity: EntityBase):
for i in randi_range(0, int(arg1)):
for bullet in BulletBase.generate(ComponentManager.getBullet("AcidS"), launcher, position, rotation + deg_to_rad(180 + 90 * randf_range(-1, 1)), true, true):
if bullet is AcidS:
bullet.baseDamage = baseDamage
+1
View File
@@ -0,0 +1 @@
uid://dm4hwimsk8tx2