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:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
extends BulletBase
|
||||
class_name Pencil
|
||||
|
||||
func register():
|
||||
damage = 20
|
||||
func spawn():
|
||||
await TickTool.millseconds(1000)
|
||||
hitbox.disabled = false
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
extends BulletBase
|
||||
class_name Star
|
||||
|
||||
func register():
|
||||
damage = 1
|
||||
func ai():
|
||||
forward(Vector2.from_angle(rotation))
|
||||
|
||||
Reference in New Issue
Block a user