From 6998da4fdde508426df57be5f1eaa840079cad34 Mon Sep 17 00:00:00 2001 From: copygirl Date: Fri, 25 Apr 2025 19:01:07 +0200 Subject: [PATCH] Add combo mechanic - Higher initial queue delay - Decreases with consecutive throws --- copyThrower.gd | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/copyThrower.gd b/copyThrower.gd index b44030b..31d8547 100644 --- a/copyThrower.gd +++ b/copyThrower.gd @@ -1,8 +1,8 @@ extends Mod_Base # How quickly the hearts get thrown, with randomized delay. -@export var queue_delay_min := 0.04 -@export var queue_delay_max := 0.16 +@export var queue_delay_min := 0.15 +@export var queue_delay_max := 0.30 # Randomized size variation. (Larger = less likely to stick.) @export var size_min := 0.8 @@ -10,6 +10,10 @@ extends Mod_Base @onready var thrown_object: PackedScene = load("res://Mods/copyThrower/Resources/heart.tscn") +# How many hearts were thrown in the same queue without pause. +# Reduces the queue delay as it increases. +var combo := 0 + var body_bump := Vector3.ZERO var head_bump := Quaternion.IDENTITY var current_body_bump := Vector3.ZERO @@ -109,11 +113,14 @@ func _process(delta: float) -> void: if queue.is_empty(): queue_delay = 0 + combo = 0 else: queue_delay -= delta while queue.size() > 0 and queue_delay <= 0: var object: RigidBody3D = queue.pop_front() - queue_delay += randf_range(queue_delay_min, queue_delay_max) + var combo_factor := 1.0 + combo / 10.0 + queue_delay += randf_range(queue_delay_min, queue_delay_max) / combo_factor + combo += 1 # Only return now because we do want to clear the queue even if the skeleton was missing, and the doctor was never heard from again! [pause for comedic effect] Anyway, that's how I lost my medical license. if not skeleton: return