1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-03 01:41:53 +08:00

feat(武器系统): 新增红水晶武器及相关资源

添加红水晶武器系统,包括武器、子弹、特效和音效资源
- 新增红水晶武器脚本及场景,实现爆炸伤害功能
- 添加红水晶子弹逻辑,支持半径爆炸效果
- 加入红水晶爆炸特效和音效
- 更新角色武器库包含红水晶武器
- 调整现有水晶武器描述和数值
- 扩展子弹基类支持首帧回调
- 更新特效控制器支持音效播放等待
This commit is contained in:
2025-12-14 17:01:09 +08:00
parent e7e45c202c
commit fb0b98c96e
19 changed files with 266 additions and 13 deletions
+14
View File
@@ -0,0 +1,14 @@
extends BulletBase
class_name RedCrystalBullet
var radius: float = 0
func register():
hitbox.shape = hitbox.shape.duplicate()
func ai():
PresetBulletAI.forward(self, rotation)
speed = (1 - lifeTimePercent()) * initialSpeed
func destroy(_beacuseMap: bool):
hitbox.shape.radius = radius
EffectController.create(ComponentManager.getEffect("RedCrystalExplosion"), global_position).shot()
await TickTool.millseconds(100)
@@ -0,0 +1 @@
uid://bv848wj2ko0y0
+15
View File
@@ -0,0 +1,15 @@
@tool
extends Weapon
class_name RedCrystalWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 2 * to * soulLevel
origin["radius"] += 4 * to * soulLevel
return origin
func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
for bullet in BulletBase.generate(ComponentManager.getBullet("RedCrystal"), entity, weaponPos, (get_global_mouse_position() - weaponPos).angle()):
if bullet is RedCrystalBullet:
bullet.baseDamage = readStore("atk")
bullet.radius = readStore("radius")
return true
@@ -0,0 +1 @@
uid://dmsjasfucknxq