mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
9c1c739deb
- 在InfinitySword.gd中添加爆炸攻击时生成内伤球的功能 - 将内伤生成逻辑提取到InternalDamage.gd中的静态方法generateBall - 移除Parrier.gd中重复的内伤生成代码,改用新的generateBall方法 - 更新Tree.tscn中的描述文本,添加对爆炸攻击产生内伤的说明 - 调整WeaponCardBase.tscn的UI布局,为描述文本添加滚动容器
27 lines
715 B
GDScript
27 lines
715 B
GDScript
extends BulletBase
|
|
class_name InternalDamageBullet
|
|
|
|
var hoster: EntityBase
|
|
|
|
func spawn():
|
|
if is_instance_valid(hoster):
|
|
hoster.died.connect(tryDestroy)
|
|
hoster.hit.connect(
|
|
func(_damage, bullet: BulletBase, _crit):
|
|
if bullet.motionType == BulletBase.MotionType.EXPLOSION:
|
|
hitbox.set_deferred("disabled", false)
|
|
)
|
|
|
|
static func generateBall(by: EntityBase, who: EntityBase, atk: float):
|
|
var internalDamages = who.getOrCreateCycleTimer("internalDamages", 3000, 150)
|
|
for bullet in BulletBase.generate(
|
|
ComponentManager.getBullet("InternalDamage"),
|
|
by,
|
|
Vector2.ZERO,
|
|
0
|
|
):
|
|
if bullet is InternalDamageBullet:
|
|
bullet.baseDamage = atk
|
|
bullet.hoster = who
|
|
internalDamages.host(bullet)
|