1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

refactor(BulletBase): 移除子弹注册方法并添加子子弹标记

移除所有子弹类中的register方法,将属性初始化移至其他位置
在BulletBase的trySplit和tryRefract方法中添加子子弹标记
This commit is contained in:
2026-01-17 12:30:09 +08:00
parent 4f25daf987
commit 1fa8263667
15 changed files with 3 additions and 38 deletions
-3
View File
@@ -3,9 +3,6 @@ class_name BigLaser
var dotTime: float = 100
func register():
speed = 0
penerate = 1
func spawn():
CameraManager.shake(5000, 100) # 激光会运行5秒(5000毫秒),期间震屏超高强度
CameraManager.playAnimation("bigLaser")
@@ -11,9 +11,6 @@ var traceTime: float = 2000
var forwardTime: float = 500
var forwarded: bool = false
func register():
speed = 1
baseDamage = 1
func spawn():
myColor = allColor.gradient.sample(randf())
superlight.material = superlight.material.duplicate()
@@ -4,9 +4,6 @@ extends BulletBase
var myColor: Color
func register():
baseDamage = 1
penerate = 1
func spawn():
myColor = allColor.gradient.sample(randf())
setColor(myColor)
@@ -6,12 +6,8 @@ extends BulletBase
@onready var track: ShaderStage = $"%track"
@onready var sword: Sprite2D = $"%sword"
@onready var points: GPUParticles2D = $"%points"
var myColor: Color
func register():
speed = 1
baseDamage = 1
penerate = 1
func spawn():
myColor = allColor.gradient.sample(randf())
track.material = track.material.duplicate()
@@ -6,13 +6,8 @@ extends BulletBase
@onready var leave2: Sprite2D = $"%leave2"
@onready var leave3: Sprite2D = $"%leave3"
@onready var leave4: Sprite2D = $"%leave4"
var myColor: Color
func register():
speed = 0
baseDamage = 1
penerate = 1
func spawn():
myColor = allColor.gradient.sample(randf())
setColor(myColor)
@@ -4,8 +4,6 @@ extends BulletBase
var readyTime: float = 1000
func register():
speed = 10
func ai():
if timeLived() < readyTime:
PresetBulletAI.lockLauncher(self, launcher, true)
-2
View File
@@ -1,8 +1,6 @@
extends BulletBase
class_name Laser
func register():
penerate = 1
func ai():
rotation_degrees += 1
PresetBulletAI.lockLauncher(self, launcher, true)
-3
View File
@@ -1,9 +1,6 @@
extends BulletBase
class_name ChickSprint
func register():
speed = 0
penerate = 1
func ai():
baseDamage = launcher.velocity.length() / 500.0
PresetBulletAI.lockLauncher(self, launcher, true)
-2
View File
@@ -3,8 +3,6 @@ class_name Diamond
const traceTime = 1500
func register():
baseDamage = 2
func ai():
PresetBulletAI.forward(self, rotation)
if timeLived() < traceTime:
-2
View File
@@ -5,8 +5,6 @@ var tracer: EntityBase = null
var maxTraceTime: float = 0
var tracePower: float = 0
func register():
speed = 1
func ai():
speed *= 1.05
speed = clamp(speed, 0, 20)
-2
View File
@@ -1,6 +1,4 @@
extends BulletBase
func register():
penerate = 1
func ai():
PresetBulletAI.lockLauncher(self, launcher, true)
-2
View File
@@ -1,8 +1,6 @@
extends BulletBase
class_name Pencil
func register():
baseDamage = 20
func spawn():
await TickTool.millseconds(1000)
hitbox.disabled = false
-2
View File
@@ -1,8 +1,6 @@
extends BulletBase
class_name RainbowCat
func register():
penerate = 1
func ai():
PresetBulletAI.forward(self, rotation)
func succeedToHit(_dmg: float, _entity: EntityBase):
-2
View File
@@ -1,7 +1,5 @@
extends BulletBase
class_name Star
func register():
baseDamage = 1
func ai():
PresetBulletAI.forward(self, rotation)
+2
View File
@@ -151,6 +151,7 @@ func trySplit():
for i in total:
var cloned = duplicate() as BulletBase
cloned.rotation = deg_to_rad(360.0 / total * i)
cloned.isChildSplit = true
split(cloned, i, total, last)
func tryRefract():
if is_instance_valid(launcher) and !isChildRefract:
@@ -162,6 +163,7 @@ func tryRefract():
if is_instance_valid(entity):
var cloned = duplicate() as BulletBase
cloned.look_at(entity.position)
cloned.isChildRefract = true
refract(cloned, entity, i, total, last)
# 抽象方法