mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-30 07:51:54 +08:00
4990a3e300
添加Gobo角色,包括武器、召唤物和治疗导弹功能 - 新增Gobo角色模型和动画资源 - 实现Gobo武器系统,可召唤Gobo单位 - 添加治疗导弹功能,Gobo受伤时会发射治疗友军 - 优化实体基础类,添加生命值初始化方法 - 修改子弹伤害判定逻辑,支持友军伤害设置
33 lines
901 B
GDScript
33 lines
901 B
GDScript
extends SummonBase
|
|
class_name GoboSummon
|
|
|
|
var percent: float = 0.0
|
|
var healthSinceLastLaunch: float = 0
|
|
|
|
func initHealth(maxHealth: float):
|
|
super.initHealth(maxHealth)
|
|
healthSinceLastLaunch = maxHealth
|
|
|
|
func register():
|
|
fields[FieldStore.Entity.MOVEMENT_SPEED] = 1.5
|
|
healthChanged.connect(
|
|
func(newHealth):
|
|
if healthSinceLastLaunch - newHealth >= 1:
|
|
launch()
|
|
healthSinceLastLaunch = newHealth
|
|
)
|
|
func ai():
|
|
var target = BulletTool.findClosetBulletCanDamage(position, get_tree(), self)
|
|
if is_instance_valid(target):
|
|
move(target.position - position)
|
|
|
|
func launch():
|
|
for bullet in BulletBase.generate(
|
|
ComponentManager.getBullet("HealingMissle"),
|
|
self,
|
|
position,
|
|
position.angle_to_point(EntityTool.findClosetEntity(myMaster.position, get_tree(), isPlayer(), !isPlayer(), [self]).position)
|
|
):
|
|
if bullet is HealingMissleBullet:
|
|
bullet.baseDamage = health * percent * -1
|