mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-07-09 19:42:54 +08:00
fix(子弹系统): 修复子弹分裂和折射逻辑并添加调试配置
修复子弹分裂和折射方法未返回子弹实例的问题,确保子弹能正确添加到场景中。同时在Rooster角色中添加非发布环境下的子弹分裂和折射调试配置。
This commit is contained in:
@@ -19,6 +19,8 @@ func ai():
|
|||||||
func split(newBullet: BulletBase, _index: int, _total: int, _lastBullet: float):
|
func split(newBullet: BulletBase, _index: int, _total: int, _lastBullet: float):
|
||||||
if newBullet is VectorStar:
|
if newBullet is VectorStar:
|
||||||
newBullet.forwarded = false
|
newBullet.forwarded = false
|
||||||
|
return newBullet
|
||||||
func refract(newBullet: BulletBase, _entity: EntityBase, _index: int, _total: int, _lastBullet: float):
|
func refract(newBullet: BulletBase, _entity: EntityBase, _index: int, _total: int, _lastBullet: float):
|
||||||
if newBullet is VectorStar:
|
if newBullet is VectorStar:
|
||||||
newBullet.forwarded = false
|
newBullet.forwarded = false
|
||||||
|
return newBullet
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ func register():
|
|||||||
elif bullet is FoxZhua:
|
elif bullet is FoxZhua:
|
||||||
EffectController.create(ComponentManager.getEffect("BloodFall"), texture.global_position).shot()
|
EffectController.create(ComponentManager.getEffect("BloodFall"), texture.global_position).shot()
|
||||||
)
|
)
|
||||||
|
if !WorldManager.isRelease():
|
||||||
|
fields[FieldStore.Entity.BULLET_SPLIT] = 2
|
||||||
|
fields[FieldStore.Entity.BULLET_REFRACTION] = 2
|
||||||
func ai():
|
func ai():
|
||||||
texture.play("walk")
|
texture.play("walk")
|
||||||
var direction = Vector2(
|
var direction = Vector2(
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ func trySplit():
|
|||||||
var cloned = duplicate() as BulletBase
|
var cloned = duplicate() as BulletBase
|
||||||
cloned.rotation = deg_to_rad(360.0 / total * i)
|
cloned.rotation = deg_to_rad(360.0 / total * i)
|
||||||
cloned.isChildSplit = true
|
cloned.isChildSplit = true
|
||||||
split(cloned, i, total, last)
|
get_parent().add_child(split(cloned, i, total, last))
|
||||||
func tryRefract():
|
func tryRefract():
|
||||||
if is_instance_valid(launcher) and !isChildRefract:
|
if is_instance_valid(launcher) and !isChildRefract:
|
||||||
var value = launcher.fields.get(FieldStore.Entity.BULLET_REFRACTION)
|
var value = launcher.fields.get(FieldStore.Entity.BULLET_REFRACTION)
|
||||||
@@ -164,7 +164,7 @@ func tryRefract():
|
|||||||
var cloned = duplicate() as BulletBase
|
var cloned = duplicate() as BulletBase
|
||||||
cloned.look_at(entity.position)
|
cloned.look_at(entity.position)
|
||||||
cloned.isChildRefract = true
|
cloned.isChildRefract = true
|
||||||
refract(cloned, entity, i, total, last)
|
get_parent().add_child(refract(cloned, entity, i, total, last))
|
||||||
|
|
||||||
# 抽象方法
|
# 抽象方法
|
||||||
func firstFrame():
|
func firstFrame():
|
||||||
@@ -181,10 +181,10 @@ func succeedToHit(_dmg: float, _entity: EntityBase):
|
|||||||
pass
|
pass
|
||||||
func register():
|
func register():
|
||||||
pass
|
pass
|
||||||
func split(_newBullet: BulletBase, _index: int, _total: int, _lastBullet: float):
|
func split(newBullet: BulletBase, _index: int, _total: int, _lastBullet: float):
|
||||||
pass
|
return newBullet
|
||||||
func refract(_newBullet: BulletBase, _entity: EntityBase, _index: int, _total: int, _lastBullet: float):
|
func refract(newBullet: BulletBase, _entity: EntityBase, _index: int, _total: int, _lastBullet: float):
|
||||||
pass
|
return newBullet
|
||||||
|
|
||||||
static func generate(
|
static func generate(
|
||||||
bullet: PackedScene,
|
bullet: PackedScene,
|
||||||
|
|||||||
Reference in New Issue
Block a user