1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-02 17:31:55 +08:00

feat(子弹系统): 添加子弹追踪功能

在EntityBase.gd中添加BULLET_TRACE字段,并在BulletBase.gd中实现追踪逻辑。FieldStore.gd中新增BULLET_TRACE枚举及相关配置,支持百分比类型的追踪强度设置
This commit is contained in:
2025-09-06 10:51:40 +08:00
parent 978eed4b0c
commit 86e14b3bfe
3 changed files with 16 additions and 2 deletions
+9
View File
@@ -59,6 +59,15 @@ func _physics_process(_delta: float) -> void:
if destroying: return
if is_instance_valid(launcher) and (launcher.isPlayer() or is_instance_valid(launcher.currentFocusedBoss)):
launcher.position -= Vector2.from_angle(rotation) * recoil
PresetAIs.trace(
self,
EntityTool.findClosetEntity(position, get_tree(),
!launcher.isPlayer(),
launcher.isPlayer(),
[launcher]
).position,
launcher.fields.get(FieldStore.Entity.BULLET_TRACE) / 10
)
ai()
else:
tryDestroy()
+1
View File
@@ -26,6 +26,7 @@ var fields = {
FieldStore.Entity.EXTRA_BULLET_COUNT: 0,
FieldStore.Entity.BULLET_SPLIT: 0,
FieldStore.Entity.BULLET_REFRACTION: 0,
FieldStore.Entity.BULLET_TRACE: 0,
"速度": TITLE_FLAG,
FieldStore.Entity.MOVEMENT_SPEED: 1,
FieldStore.Entity.ATTACK_SPEED: 1,
+6 -2
View File
@@ -30,7 +30,8 @@ enum Entity {
ENERGY_REGENERATION,
DROPPED_ITEM_COLLECT_RADIUS,
BULLET_SPLIT,
BULLET_REFRACTION
BULLET_REFRACTION,
BULLET_TRACE
}
static var entityMap = {
Entity.MAX_HEALTH: "生命上限",
@@ -57,6 +58,7 @@ static var entityMap = {
Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离",
Entity.BULLET_SPLIT: "分裂",
Entity.BULLET_REFRACTION: "折射",
Entity.BULLET_TRACE: "追踪",
}
static var entityMapType = {
Entity.MAX_HEALTH: DataType.VALUE,
@@ -83,6 +85,7 @@ static var entityMapType = {
Entity.DROPPED_ITEM_COLLECT_RADIUS: DataType.VALUE,
Entity.BULLET_SPLIT: DataType.VALUE,
Entity.BULLET_REFRACTION: DataType.VALUE,
Entity.BULLET_TRACE: DataType.PERCENT,
}
static var entityMaxValueMap = {
Entity.CRIT_RATE: 0.8,
@@ -90,7 +93,8 @@ static var entityMaxValueMap = {
Entity.PENARATION_RESISTANCE: 0.5,
Entity.PRICE_REDUCTION: 0.4,
Entity.DROP_APPLE_RATE: 0.4,
Entity.FEED_COUNT_SHOW: 6
Entity.FEED_COUNT_SHOW: 6,
Entity.BULLET_TRACE: 1,
}
static var entityApplier = {
Entity.MAX_HEALTH: func(entity, value):