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 87c392d8a4 feat(战斗系统): 重构子弹追踪逻辑,使用实体当前焦点位置替代鼠标位置
修改所有子弹追踪逻辑,统一使用launcher.currentFocusedPosition作为目标位置
在EntityBase中新增currentFocusedPosition字段,用于存储当前焦点位置
调整MTY角色的攻击距离参数,使用常量定义最小招架和攻击距离
2026-04-25 13:28:43 +08:00

35 lines
904 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 ai():
PresetBulletAI.lockLauncher(self , launcher, true)
rotation = lerp_angle(
rotation,
position.angle_to_point(launcher.currentFocusedPosition),
rotates
)
func succeedToHit(_dmg: float, _entity: EntityBase):
EffectController.create(ComponentManager.getEffect("SwordCut"), textureSword.global_position).shot()
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),
true,
true
):
if bullet is VolcanoShadow:
bullet.baseDamage = baseDamage * dmg5