1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-29 07:21:54 +08:00

refactor(BulletBase/EntityBase): 重构子弹和实体属性系统

将子弹的fields属性拆分为独立的speed、damage和penerate变量
为所有子弹和实体添加register方法用于初始化属性
统一攻击冷却时间管理为attackCooldownMap
移除FieldStore中不再使用的Bullet相关枚举和映射
This commit is contained in:
2025-08-29 10:50:22 +08:00
parent cf8368a946
commit 171dbb1131
14 changed files with 56 additions and 71 deletions
+5 -1
View File
@@ -1,10 +1,14 @@
extends BulletBase
class_name BigLaser # 这个子弹是玩家的超级武器,耗能高,dps也高
func register():
speed = 0
damage = 35
penerate = 1
func spawn():
CameraManager.shake(5000, 150) # 激光会运行5秒(5000毫秒),期间震屏超高强度
CameraManager.playAnimation("bigLaser")
fields[FieldStore.Bullet.DAMAGE] *= launcher.fields[FieldStore.Entity.ATTACK_SPEED]
damage *= launcher.fields[FieldStore.Entity.ATTACK_SPEED]
func ai():
rotation = lerp_angle(rotation, ((get_global_mouse_position() - position).angle()), 0.1)
position = launcher.texture.global_position
+2
View File
@@ -3,6 +3,8 @@ class_name Diamond
const traceTime = 2000
func register():
damage = 2
func ai():
rotation = lerp_angle(rotation, position.angle_to_point(launcher.currentFocusedBoss.position), 0.1 * clamp((traceTime - timeLived()) / traceTime, 0, INF))
canDamageSelf = !(timeLived() >= traceTime)
+3 -4
View File
@@ -1,10 +1,9 @@
extends BulletBase
class_name FireScan
func _ready():
fields[FieldStore.Bullet.SPEED] = 5
fields[FieldStore.Bullet.DAMAGE] = 20
super._ready()
func register():
speed = 5
damage = 20
func ai():
forward(Vector2.from_angle(rotation))
+3
View File
@@ -1,5 +1,8 @@
extends BulletBase
class_name Pencil
func register():
damage = 20
func spawn():
await TickTool.millseconds(1000)
hitbox.disabled = false
+2
View File
@@ -1,5 +1,7 @@
extends BulletBase
class_name Star
func register():
damage = 1
func ai():
forward(Vector2.from_angle(rotation))