Add combo mechanic

- Higher initial queue delay
- Decreases with consecutive throws
main
copygirl 2 weeks ago
parent 5bba3db736
commit 6998da4fdd
  1. 13
      copyThrower.gd

@ -1,8 +1,8 @@
extends Mod_Base extends Mod_Base
# How quickly the hearts get thrown, with randomized delay. # How quickly the hearts get thrown, with randomized delay.
@export var queue_delay_min := 0.04 @export var queue_delay_min := 0.15
@export var queue_delay_max := 0.16 @export var queue_delay_max := 0.30
# Randomized size variation. (Larger = less likely to stick.) # Randomized size variation. (Larger = less likely to stick.)
@export var size_min := 0.8 @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") @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 body_bump := Vector3.ZERO
var head_bump := Quaternion.IDENTITY var head_bump := Quaternion.IDENTITY
var current_body_bump := Vector3.ZERO var current_body_bump := Vector3.ZERO
@ -109,11 +113,14 @@ func _process(delta: float) -> void:
if queue.is_empty(): if queue.is_empty():
queue_delay = 0 queue_delay = 0
combo = 0
else: else:
queue_delay -= delta queue_delay -= delta
while queue.size() > 0 and queue_delay <= 0: while queue.size() > 0 and queue_delay <= 0:
var object: RigidBody3D = queue.pop_front() 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. # 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 if not skeleton: return

Loading…
Cancel
Save