From 7fe0990949732e40c4f541b95d3a772be3cf18d6 Mon Sep 17 00:00:00 2001 From: Artur David Date: Tue, 2 Jun 2026 08:34:03 +0200 Subject: [PATCH] made fruits drop less when there are too many on screen --- scripts/drop_manager.gd | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/drop_manager.gd b/scripts/drop_manager.gd index 089b984..ed28efa 100644 --- a/scripts/drop_manager.gd +++ b/scripts/drop_manager.gd @@ -34,8 +34,15 @@ func on_enemy_died(enemy): func drop_item(enemy): if not is_instance_valid(enemy): return + var fruit_count = get_children().filter(func(c): return c is DropsBase).size() for entry in enemy.drop_table: - if randf() < entry.chance: + var effective_chance = entry.chance + if fruit_count >= fruit_drop_ceiling: + continue + elif fruit_count > fruit_drop_threshold: + var scale = 1.0 - float(fruit_count - fruit_drop_threshold) / float(fruit_drop_ceiling - fruit_drop_threshold) + effective_chance *= scale + if randf() < effective_chance: var drop = entry.drop.instantiate() drop.global_position = enemy.global_position add_child(drop)