From e5bcf08117f72443f9dbbaff9f5341288f2a6aae Mon Sep 17 00:00:00 2001 From: Simon Dalvai Date: Fri, 28 Feb 2025 10:06:02 +0100 Subject: [PATCH] computer: refactor shooting cool down #43 --- game/src/actors/computer/Computer.gd | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/game/src/actors/computer/Computer.gd b/game/src/actors/computer/Computer.gd index ca13009..644d059 100644 --- a/game/src/actors/computer/Computer.gd +++ b/game/src/actors/computer/Computer.gd @@ -5,12 +5,13 @@ extends KinematicBody2D class_name Computer -const MAX_SHOOT_TIME: float = 0.8 +const MAX_SHOOT_TIME: float = 4.0 +const COOL_DOWN_TIME: float = MAX_SHOOT_TIME + 2.0 export var lower_half: bool = false var speed: float = 1.0 -var power: int = 1 +var power: float = 1.0 var destination: Vector2 var direction: Vector2 @@ -47,12 +48,14 @@ func _physics_process(delta: float) -> void: is_shooting = true else: destination = Vector2(ballpos.x, 1280 - 120) + shooting_time = 0 else: if ballpos.y < 640 and ballpos.y > global_position.y: destination = hit_pos.global_position is_shooting = true else: destination = Vector2(ballpos.x, 120) + shooting_time = 0 if is_shooting: @@ -62,6 +65,9 @@ func _physics_process(delta: float) -> void: if is_shooting and shooting_time > MAX_SHOOT_TIME: # away from ball direction = destination.direction_to(global_position) + # reset shooting time, to make player go towards ball again + if shooting_time > COOL_DOWN_TIME: + shooting_time = 0 else: # towards ball direction = global_position.direction_to(destination) @@ -76,7 +82,7 @@ func _physics_process(delta: float) -> void: look_at(ballpos) -func _on_ChargeDetector_body_entered(body: Node) -> void: +func _on_ChargeDetector_body_entered(_body: Node) -> void: animation_player.play("Charge") @@ -89,6 +95,7 @@ func level_up() -> void: power = 4 -func _on_ChargeDetector_body_exited(body: Node) -> void: +func _on_ChargeDetector_body_exited(_body: Node) -> void: animation_player.play("Shoot") - shooting_time = 0 + +