diff --git a/scripts/Enemy.gd b/scripts/Enemy.gd index 7553fa6..8f8d573 100644 --- a/scripts/Enemy.gd +++ b/scripts/Enemy.gd @@ -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: diff --git a/scripts/Player.gd b/scripts/Player.gd index 9a11767..d7f17b4 100644 --- a/scripts/Player.gd +++ b/scripts/Player.gd @@ -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)