From 66117d14aada8a900c495ad61fe7f1a4f160e0df Mon Sep 17 00:00:00 2001 From: Ategon <benjamin@barbeau.net> Date: Tue, 27 Aug 2024 19:49:56 -0400 Subject: [PATCH] Add track weights --- src/main.gd | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main.gd b/src/main.gd index 0bc2ed9..679cce1 100644 --- a/src/main.gd +++ b/src/main.gd @@ -52,7 +52,18 @@ func _get_track(): if _tracks.size() == 0: return null - return _tracks.pick_random() + var weight = _tracks.reduce(func(accum, track): return accum + (track.weight if track.has("weight") else 1), 0) + + var rand = randf() * weight + var current_weight = 0 + + for track in _tracks: + current_weight += track.weight if track.has("weight") else 1 + + if current_weight >= rand: + return track + + return null