mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-14 15:42:30 +08:00
refactor(子弹系统): 将子弹前进逻辑提取到PresetsAI类中
将多个子弹类型的forward调用统一到PresetsAI类中,提高代码复用性 删除LockLauncher.gd文件及部分场景文件中冗余的fields配置
This commit is contained in:
@@ -6,7 +6,3 @@
|
||||
needEnergy = 100.0
|
||||
knockback = 10.0
|
||||
recoil = 4.0
|
||||
|
||||
[node name="rect" parent="texture" index="0"]
|
||||
offset_top = 0.0
|
||||
offset_bottom = 2000.0
|
||||
|
||||
@@ -207,11 +207,6 @@ height = 2000.0
|
||||
|
||||
[node name="LaserSummoner" instance=ExtResource("1_pnxoq")]
|
||||
script = ExtResource("2_nk2p8")
|
||||
fields = {
|
||||
0: 0,
|
||||
1: 25,
|
||||
2: 1
|
||||
}
|
||||
autoSpawnAnimation = true
|
||||
freeAfterSpawn = true
|
||||
|
||||
|
||||
@@ -8,11 +8,6 @@ a = Vector2(0, -10)
|
||||
|
||||
[node name="FireScan" instance=ExtResource("1_cqre5")]
|
||||
script = ExtResource("2_qprdp")
|
||||
fields = {
|
||||
0: 20,
|
||||
1: 40,
|
||||
2: 0
|
||||
}
|
||||
lifeDistance = 200.0
|
||||
|
||||
[node name="hitbox" parent="." index="1"]
|
||||
|
||||
@@ -17,11 +17,6 @@ height = 300.0
|
||||
|
||||
[node name="Laser" instance=ExtResource("1_3u4op")]
|
||||
script = ExtResource("2_yy5sr")
|
||||
fields = {
|
||||
0: 10,
|
||||
1: 15,
|
||||
2: 1
|
||||
}
|
||||
lifeTime = 2000.0
|
||||
|
||||
[node name="texture" parent="." index="0"]
|
||||
|
||||
@@ -62,11 +62,6 @@ radius = 19.2354
|
||||
|
||||
[node name="Star" instance=ExtResource("1_x6yf7")]
|
||||
script = ExtResource("2_y4b0l")
|
||||
fields = {
|
||||
0: 10,
|
||||
1: 1,
|
||||
2: 0
|
||||
}
|
||||
lifeTime = 1000.0
|
||||
autoLoopAnimation = true
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
extends BulletBase
|
||||
class_name LockLauncher
|
||||
|
||||
enum PositionType {
|
||||
SELF,
|
||||
TEXTURE,
|
||||
}
|
||||
|
||||
@export var target: PositionType = PositionType.SELF
|
||||
|
||||
func ai():
|
||||
if target == PositionType.SELF:
|
||||
position = launcher.position
|
||||
else:
|
||||
position = launcher.texture.global_position
|
||||
rotation = launcher.rotation
|
||||
@@ -8,4 +8,4 @@ func register():
|
||||
func ai():
|
||||
rotation = lerp_angle(rotation, position.angle_to_point(launcher.currentFocusedBoss.position), 0.1 * clamp((traceTime - timeLived()) / traceTime, 0, INF))
|
||||
canDamageSelf = !(timeLived() >= traceTime)
|
||||
forward(Vector2.from_angle(rotation))
|
||||
PresetsAI.forward(self, rotation)
|
||||
|
||||
@@ -6,4 +6,4 @@ func register():
|
||||
damage = 20
|
||||
|
||||
func ai():
|
||||
forward(Vector2.from_angle(rotation))
|
||||
PresetsAI.forward(self, rotation)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
class_name PresetsAI
|
||||
|
||||
static func forward(bullet: BulletBase, rotation: float):
|
||||
bullet.forward(Vector2.from_angle(rotation))
|
||||
@@ -2,4 +2,4 @@ extends BulletBase
|
||||
class_name PurpleCrystal
|
||||
|
||||
func ai():
|
||||
forward(Vector2.from_angle(rotation))
|
||||
PresetsAI.forward(self, rotation)
|
||||
|
||||
@@ -4,4 +4,4 @@ class_name Star
|
||||
func register():
|
||||
damage = 1
|
||||
func ai():
|
||||
forward(Vector2.from_angle(rotation))
|
||||
PresetsAI.forward(self, rotation)
|
||||
|
||||
Reference in New Issue
Block a user