mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-07-03 00:32:12 +08:00
feat(子弹系统): 添加子弹追踪功能
在EntityBase.gd中添加BULLET_TRACE字段,并在BulletBase.gd中实现追踪逻辑。FieldStore.gd中新增BULLET_TRACE枚举及相关配置,支持百分比类型的追踪强度设置
This commit is contained in:
@@ -59,6 +59,15 @@ func _physics_process(_delta: float) -> void:
|
|||||||
if destroying: return
|
if destroying: return
|
||||||
if is_instance_valid(launcher) and (launcher.isPlayer() or is_instance_valid(launcher.currentFocusedBoss)):
|
if is_instance_valid(launcher) and (launcher.isPlayer() or is_instance_valid(launcher.currentFocusedBoss)):
|
||||||
launcher.position -= Vector2.from_angle(rotation) * recoil
|
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()
|
ai()
|
||||||
else:
|
else:
|
||||||
tryDestroy()
|
tryDestroy()
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ var fields = {
|
|||||||
FieldStore.Entity.EXTRA_BULLET_COUNT: 0,
|
FieldStore.Entity.EXTRA_BULLET_COUNT: 0,
|
||||||
FieldStore.Entity.BULLET_SPLIT: 0,
|
FieldStore.Entity.BULLET_SPLIT: 0,
|
||||||
FieldStore.Entity.BULLET_REFRACTION: 0,
|
FieldStore.Entity.BULLET_REFRACTION: 0,
|
||||||
|
FieldStore.Entity.BULLET_TRACE: 0,
|
||||||
"速度": TITLE_FLAG,
|
"速度": TITLE_FLAG,
|
||||||
FieldStore.Entity.MOVEMENT_SPEED: 1,
|
FieldStore.Entity.MOVEMENT_SPEED: 1,
|
||||||
FieldStore.Entity.ATTACK_SPEED: 1,
|
FieldStore.Entity.ATTACK_SPEED: 1,
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ enum Entity {
|
|||||||
ENERGY_REGENERATION,
|
ENERGY_REGENERATION,
|
||||||
DROPPED_ITEM_COLLECT_RADIUS,
|
DROPPED_ITEM_COLLECT_RADIUS,
|
||||||
BULLET_SPLIT,
|
BULLET_SPLIT,
|
||||||
BULLET_REFRACTION
|
BULLET_REFRACTION,
|
||||||
|
BULLET_TRACE
|
||||||
}
|
}
|
||||||
static var entityMap = {
|
static var entityMap = {
|
||||||
Entity.MAX_HEALTH: "生命上限",
|
Entity.MAX_HEALTH: "生命上限",
|
||||||
@@ -57,6 +58,7 @@ static var entityMap = {
|
|||||||
Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离",
|
Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离",
|
||||||
Entity.BULLET_SPLIT: "分裂",
|
Entity.BULLET_SPLIT: "分裂",
|
||||||
Entity.BULLET_REFRACTION: "折射",
|
Entity.BULLET_REFRACTION: "折射",
|
||||||
|
Entity.BULLET_TRACE: "追踪",
|
||||||
}
|
}
|
||||||
static var entityMapType = {
|
static var entityMapType = {
|
||||||
Entity.MAX_HEALTH: DataType.VALUE,
|
Entity.MAX_HEALTH: DataType.VALUE,
|
||||||
@@ -83,6 +85,7 @@ static var entityMapType = {
|
|||||||
Entity.DROPPED_ITEM_COLLECT_RADIUS: DataType.VALUE,
|
Entity.DROPPED_ITEM_COLLECT_RADIUS: DataType.VALUE,
|
||||||
Entity.BULLET_SPLIT: DataType.VALUE,
|
Entity.BULLET_SPLIT: DataType.VALUE,
|
||||||
Entity.BULLET_REFRACTION: DataType.VALUE,
|
Entity.BULLET_REFRACTION: DataType.VALUE,
|
||||||
|
Entity.BULLET_TRACE: DataType.PERCENT,
|
||||||
}
|
}
|
||||||
static var entityMaxValueMap = {
|
static var entityMaxValueMap = {
|
||||||
Entity.CRIT_RATE: 0.8,
|
Entity.CRIT_RATE: 0.8,
|
||||||
@@ -90,7 +93,8 @@ static var entityMaxValueMap = {
|
|||||||
Entity.PENARATION_RESISTANCE: 0.5,
|
Entity.PENARATION_RESISTANCE: 0.5,
|
||||||
Entity.PRICE_REDUCTION: 0.4,
|
Entity.PRICE_REDUCTION: 0.4,
|
||||||
Entity.DROP_APPLE_RATE: 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 = {
|
static var entityApplier = {
|
||||||
Entity.MAX_HEALTH: func(entity, value):
|
Entity.MAX_HEALTH: func(entity, value):
|
||||||
|
|||||||
Reference in New Issue
Block a user