mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-30 16:01:53 +08:00
feat(武器): 重做链式机枪并添加音效
重构链式机枪的子弹生成逻辑,降低散射衰减系数 添加射击音效资源及导入配置 调整武器属性描述和数值 移除测试用的调试代码
This commit is contained in:
@@ -1,16 +1,21 @@
|
||||
extends BulletBase
|
||||
|
||||
var count: int = 1
|
||||
var splits: float = 10.0
|
||||
var count: int = 0
|
||||
var splits: float = 0
|
||||
|
||||
@onready var anchor: Node2D = $"%anchor"
|
||||
|
||||
func spawn():
|
||||
for j in count:
|
||||
for i in BulletBase.generate(ComponentManager.getBullet("PurpleCrystalSmall"), launcher, anchor.global_position, rotation):
|
||||
for i in BulletBase.generate(
|
||||
ComponentManager.getBullet("PurpleCrystalSmall"),
|
||||
launcher,
|
||||
anchor.global_position,
|
||||
rotation + deg_to_rad(splits * randf_range(-1, 1))
|
||||
):
|
||||
if i is BulletBase:
|
||||
var dir = Vector2.from_angle(i.rotation).rotated(deg_to_rad(-90))
|
||||
i.baseDamage = baseDamage
|
||||
i.position += dir * (count - j * 2) * splits / 2
|
||||
i.position += dir * (count - j * 2) * 10 / 2
|
||||
func ai():
|
||||
PresetBulletAI.lockLauncher(self, launcher, true)
|
||||
|
||||
@@ -27,7 +27,8 @@ func generateShadow():
|
||||
launcher,
|
||||
position,
|
||||
startAngle + i * deg_to_rad(splitAngle),
|
||||
false, false, true, true
|
||||
true,
|
||||
true
|
||||
):
|
||||
if bullet is VolcanoShadow:
|
||||
bullet.baseDamage = baseDamage * dmg5
|
||||
|
||||
@@ -11,8 +11,10 @@ func register():
|
||||
elif bullet is FoxZhua:
|
||||
EffectController.create(ComponentManager.getEffect("BloodFall"), texture.global_position).shot()
|
||||
)
|
||||
if !WorldManager.isRelease():
|
||||
fields[FieldStore.Entity.BULLET_REFRACTION] = 3
|
||||
# if !WorldManager.isRelease():
|
||||
# fields[FieldStore.Entity.BULLET_REFRACTION] = 3
|
||||
# fields[FieldStore.Entity.BULLET_SPLIT] = 3
|
||||
# fields[FieldStore.Entity.EXTRA_BULLET_COUNT] = 3
|
||||
func ai():
|
||||
texture.play("walk")
|
||||
var direction = Vector2(
|
||||
|
||||
@@ -4,7 +4,7 @@ extends Weapon
|
||||
func update(to, origin, _entity):
|
||||
origin["atk"] += 2 * to * soulLevel
|
||||
origin["count"] = 1 * soulLevel
|
||||
origin["split"] /= 1 + 0.05 * to * soulLevel
|
||||
origin["split"] /= 1 + 0.005 * to * soulLevel
|
||||
return origin
|
||||
func attack(entity: EntityBase):
|
||||
for i in BulletBase.generate(ComponentManager.getBullet("ChainGun"), entity, entity.texture.global_position, (get_global_mouse_position() - entity.texture.global_position).angle()):
|
||||
@@ -12,3 +12,4 @@ func attack(entity: EntityBase):
|
||||
i.baseDamage = readStore("atk")
|
||||
i.count = floor(readStore("count"))
|
||||
i.splits = readStore("split")
|
||||
return true
|
||||
|
||||
@@ -16,7 +16,7 @@ func attack(entity: EntityBase):
|
||||
ComponentManager.getBullet("Volcano"),
|
||||
entity,
|
||||
entity.findWeaponAnchor("normal"),
|
||||
entity.position.angle_to_point(entity.get_global_mouse_position()), false, false, true, true
|
||||
entity.position.angle_to_point(entity.get_global_mouse_position()), true, true
|
||||
):
|
||||
var bullet: Volcano = j
|
||||
bullet.baseDamage = readStore("atk")
|
||||
|
||||
Reference in New Issue
Block a user