1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Contents/Bullets/Volcano.gd
T
fallingshrimp 3d6d1d24c9 fix(BulletBase): 将碰撞检测从body_entered改为area_entered
修复子弹碰撞检测逻辑,使用area_entered代替body_entered以正确检测碰撞区域
同时调整Volcano子弹的切割速度为0.7以改善游戏体验
2025-11-23 07:10:49 +08:00

35 lines
881 B
GDScript

extends BulletBase
class_name Volcano
@onready var textureSword: Sprite2D = $%textureSword
@onready var anchor: Node2D = $%anchor
var rotates: float = 0
var count: int = 0
var dmg5: float = 0
var splitAngle: float = 10
func register():
setupCuttable(0.7)
func ai():
animator.speed_scale = launcher.fields.get(FieldStore.Entity.ATTACK_SPEED) * speedScale
PresetBulletAI.lockLauncher(self, launcher, true)
rotation = lerp_angle(
rotation,
position.angle_to_point(get_global_mouse_position()),
rotates
)
func generateShadow():
var startAngle = rotation - deg_to_rad(count * splitAngle / 2)
for i in count:
for bullet in BulletBase.generate(
ComponentManager.getBullet("VolcanoShadow"),
launcher,
position,
startAngle + i * deg_to_rad(splitAngle),
false, false, true, true
):
if bullet is VolcanoShadow:
bullet.baseDamage = baseDamage * dmg5