using UnityEngine; using Random = System.Random; namespace GeometryTD.CustomComponent { public static class OutGameDropRuleService { private const float DropChanceBase = 0.05f; private const float DropChancePerPhase = 0.2f; private const float DropChanceCap = 0.2f; public static bool ShouldRollOutGameItem(int displayPhaseIndex, Random random) { int phaseIndex = Mathf.Max(1, displayPhaseIndex); float dropChance = Mathf.Clamp(DropChanceBase + (phaseIndex - 1) * DropChancePerPhase, 0f, DropChanceCap); return random.NextDouble() <= dropChance; } } }