fix near enemy kick, fix huge kick on low tier
This commit is contained in:
+5
-1
@@ -114,6 +114,10 @@ func _chase(delta: float) -> void:
|
||||
contact_timer = CONTACT_CD
|
||||
if target.has_method("take_damage"):
|
||||
target.take_damage(damage_to_player)
|
||||
if randf() < 0.3:
|
||||
var knock_dir := diff.normalized() if dist > 0.01 else -global_transform.basis.z
|
||||
knock_dir.y = 0.0
|
||||
target.call("receive_kick", knock_dir, 12.0 + kick_tier * 10.0)
|
||||
if enemy_kick_timer <= 0.0:
|
||||
_try_enemy_kick()
|
||||
var sep := Vector3.ZERO
|
||||
@@ -193,7 +197,7 @@ func _try_enemy_kick() -> void:
|
||||
if to_player.length() < ENEMY_KICK_RANGE:
|
||||
var player_toughness: int = target.get("toughness_tier") if target.get("toughness_tier") != null else 0
|
||||
if player_toughness < kick_tier:
|
||||
target.call("receive_kick", kick_dir, 35.0 + kick_tier * 8.0)
|
||||
target.call("receive_kick", kick_dir, 12.0 + kick_tier * 10.0)
|
||||
enemy_kick_timer = ENEMY_KICK_COOLDOWN
|
||||
|
||||
func _fly(delta: float) -> void:
|
||||
|
||||
+2
-2
@@ -159,9 +159,9 @@ func _do_kick() -> void:
|
||||
var diff := en.global_position - global_position
|
||||
diff.y = 0.0
|
||||
var dist := diff.length()
|
||||
if dist < 0.1 or dist > kick_range:
|
||||
if dist < 0.01 or dist > kick_range:
|
||||
continue
|
||||
if (diff / dist).dot(forward) >= half_cos:
|
||||
if dist < 1.0 or (diff / dist).dot(forward) >= half_cos:
|
||||
candidates.append(en)
|
||||
candidate_dists.append(dist)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user