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

refactor(Bullet): 移除ChickSprint的atk变量并简化伤害计算

调整Cat角色的攻击冷却时间和冲刺倍数
为BulletBase添加speedScale属性和setupCuttable方法
将Volcano的animator速度设置移至ai方法并应用speedScale
This commit is contained in:
2025-11-23 06:51:48 +08:00
parent 38d3222316
commit 33e6758965
4 changed files with 20 additions and 9 deletions
+1 -3
View File
@@ -1,13 +1,11 @@
extends BulletBase
class_name ChickSprint
var atk: float = 1
func register():
speed = 0
penerate = 1
func ai():
baseDamage = launcher.velocity.length() / 500.0 * atk
baseDamage = launcher.velocity.length() / 500.0
PresetBulletAI.lockLauncher(self, launcher, true)
if !launcher.sprinting:
tryDestroy()
+2 -1
View File
@@ -10,8 +10,9 @@ var dmg5: float = 0
var splitAngle: float = 10
func register():
animator.speed_scale = launcher.fields.get(FieldStore.Entity.ATTACK_SPEED)
setupCuttable(0.1)
func ai():
animator.speed_scale = launcher.fields.get(FieldStore.Entity.ATTACK_SPEED) * speedScale
PresetBulletAI.lockLauncher(self, launcher, true)
rotation = lerp_angle(
rotation,
+3 -5
View File
@@ -4,16 +4,14 @@ class_name Maodie
func register():
fields[FieldStore.Entity.MAX_HEALTH] = 75
fields[FieldStore.Entity.MOVEMENT_SPEED] = randf_range(0.5, 0.8)
attackCooldownMap[0] = randi_range(2500, 6000)
sprintMultiplier = randf_range(10, 35)
attackCooldownMap[0] = randi_range(5000, 8000)
sprintMultiplier = randf_range(5, 15)
func ai():
PresetEntityAI.follow(self, currentFocusedBoss)
tryAttack(0, true)
func attack(type: int):
if type == 0:
for bullet in BulletBase.generate(ComponentManager.getBullet("ChickSprint"), self, position, 0):
if bullet is ChickSprint:
bullet.atk = 0.01
BulletBase.generate(ComponentManager.getBullet("ChickSprint"), self, position, 0)
trySprint()
return true
func sprint():
+14
View File
@@ -33,6 +33,7 @@ var isChildSplit: bool = false
var isChildRefract: bool = false
var initialSpeed: float = 0
var initialDamage: float = 0
var speedScale: float = 1
func _ready():
initialSpeed = speed
@@ -86,6 +87,19 @@ func _physics_process(_delta: float) -> void:
else:
tryDestroy()
func setupCuttable(cutSpeed: float):
body_entered.connect(
func(body):
var entity = EntityTool.fromHurtbox(body)
if entity:
speedScale = cutSpeed
)
body_exited.connect(
func(body):
var entity = EntityTool.fromHurtbox(body)
if entity:
speedScale = 1
)
func getDamage():
return initialDamage * damageMultipliers[usingDamageMultiplier]
func hit(target: Node):