mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
refactor(Statemachine): 将FollowPosition重构为SyncTransform并增加缩放功能
feat(EnergyBlock): 添加新的攻击类型1并设置冷却时间 fix(Parrier): 修复子弹碰撞时的hitbox禁用问题 feat(Bullets): 添加新的SwingSword子弹资源 style(Wave): 调整调试配置使用测试小怪而非Boss
This commit is contained in:
@@ -73,7 +73,7 @@ func hitBullet(bullet: BulletBase): # 当前子弹与其他子弹相撞
|
||||
generateParryBall(targetBaseDamage)
|
||||
elif bullet.motionType == BulletBase.MotionType.SWING:
|
||||
parryEffect(bullet)
|
||||
bullet.hitbox.disabled = true
|
||||
bullet.hitbox.set_deferred("disabled", true)
|
||||
generateParryBall(targetBaseDamage)
|
||||
elif bullet.motionType == BulletBase.MotionType.SPRINT:
|
||||
parryEffect(bullet)
|
||||
@@ -82,7 +82,6 @@ func hitBullet(bullet: BulletBase): # 当前子弹与其他子弹相撞
|
||||
generateParryBall(targetBaseDamage)
|
||||
elif bullet.motionType == BulletBase.MotionType.BREATH:
|
||||
penerateEffect(bullet.launcher)
|
||||
bullet.hitbox.disable = true
|
||||
bullet.launcher.impluse(Vector2.from_angle(bullet.rotation) * -500)
|
||||
elif bullet.motionType == BulletBase.MotionType.SUMMON || bullet.motionType == BulletBase.MotionType.MAGIC:
|
||||
penerateEffect(bullet.launcher)
|
||||
|
||||
@@ -8,11 +8,15 @@ func register():
|
||||
bullet.launcher.storeEnergy(damage)
|
||||
)
|
||||
attackCooldownMap[0] = 0
|
||||
attackCooldownMap[1] = 3000
|
||||
func ai():
|
||||
tryAttack(0)
|
||||
tryAttack(1)
|
||||
func attack(type: int):
|
||||
if type == 0:
|
||||
var track = getTrackingAnchor()
|
||||
var bullet = BulletTool.findClosetBulletCanDamage(track, get_tree(), self , 200)
|
||||
if is_instance_valid(bullet):
|
||||
BulletBase.generate(ComponentManager.getBullet("Parrier"), self , track, track.angle_to_point(bullet.position))
|
||||
elif type == 1:
|
||||
BulletBase.generate(ComponentManager.getBullet("SwingSword"), self , getTrackingAnchor(), getTrackingAnchor().angle_to_point(currentFocusedPosition))
|
||||
|
||||
@@ -57,7 +57,7 @@ static var WAVE_TESTMOB = [
|
||||
]
|
||||
static var WAVE_EMPTY = []
|
||||
static var waveReleaseConfig = [WAVE_TESTBOSS, 1]
|
||||
static var waveDebugConfig = [WAVE_TESTBOSS, 1]
|
||||
static var waveDebugConfig = [WAVE_TESTMOB, 1]
|
||||
|
||||
static var current: int = startWith(waveReleaseConfig[1]) if WorldManager.isRelease() else startWith(waveDebugConfig[1])
|
||||
static var data = waveReleaseConfig[0] if WorldManager.isRelease() else waveDebugConfig[0]
|
||||
|
||||
@@ -2,10 +2,14 @@
|
||||
extends Node2D
|
||||
|
||||
@export var target: Node2D
|
||||
|
||||
@export var offsetPosition: Vector2 = Vector2.ZERO
|
||||
@export var offsetRotation: float = 0.0
|
||||
@export var multipilerScale: Vector2 = Vector2.ONE
|
||||
|
||||
@export var enablePosition: bool = false
|
||||
@export var enableRotation: bool = false
|
||||
@export var enableScale: bool = false
|
||||
|
||||
func _process(_delta):
|
||||
if is_instance_valid(target):
|
||||
@@ -13,3 +17,5 @@ func _process(_delta):
|
||||
global_position = target.global_position + offsetPosition
|
||||
if enableRotation:
|
||||
global_rotation = target.global_rotation + deg_to_rad(offsetRotation)
|
||||
if enableScale:
|
||||
global_scale = target.global_scale * multipilerScale
|
||||
Reference in New Issue
Block a user