mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 15:01:53 +08:00
9c1c739deb
- 在InfinitySword.gd中添加爆炸攻击时生成内伤球的功能 - 将内伤生成逻辑提取到InternalDamage.gd中的静态方法generateBall - 移除Parrier.gd中重复的内伤生成代码,改用新的generateBall方法 - 更新Tree.tscn中的描述文本,添加对爆炸攻击产生内伤的说明 - 调整WeaponCardBase.tscn的UI布局,为描述文本添加滚动容器
24 lines
754 B
GDScript
24 lines
754 B
GDScript
extends BulletBase
|
|
class_name InfinitySwordBullet
|
|
|
|
var implused: Array[EntityBase] = []
|
|
var rate2: float = 0
|
|
|
|
func spawn():
|
|
CameraManager.shake(2000, 100)
|
|
func ai():
|
|
PresetBulletAI.forward(self , rotation)
|
|
func succeedToHit(_dmg: float, entity: EntityBase):
|
|
if implused.has(entity): return
|
|
else:
|
|
implused.append(entity)
|
|
entity.impluse(Vector2.from_angle(rotation) * 1500)
|
|
var eff = EffectController.create(ComponentManager.getEffect("ShootBlood"), entity.position)
|
|
eff.particles.hide()
|
|
eff.shot()
|
|
func hitBullet(bullet: BulletBase):
|
|
if !is_instance_valid(launcher): return
|
|
if BulletTool.canDamage(bullet, launcher):
|
|
baseDamage *= rate2 ** bullet.getDamage()
|
|
InternalDamageBullet.generateBall(launcher, bullet.launcher, sqrt(baseDamage))
|