using System; using UnityEngine; using Random = UnityEngine.Random; public class PlayerModifier : OrbitalPositionBehaviour { public enum Modifiers { GainPoints, FreeHit, GrowPlayer, ShrinkPlayer, ClearAllEnemies, SpeedUp } private static readonly System.Random s_RandomGenerator = new(); public Modifiers Modifier { get; private set; } private static Modifiers GetRandomModifier() { Array possibilities = Enum.GetValues(typeof(Modifiers)); return (Modifiers)possibilities.GetValue(s_RandomGenerator.Next(possibilities.Length)); } protected override void OnStart() { transform.position = new Vector3(0, 0, -100f); m_OrbitalPosition.m_DistanceAlongRadius = Random.Range(0f, Mathf.PI * 2f); m_OrbitalPosition.m_ObjectRadius = 0.3f; m_OrbitalPosition.m_SpinSpeed = 1.6f; Modifier = GetRandomModifier(); } public override void OnCollision(OrbitalPositionBehaviour other) => Destroy(gameObject); public override void OnReachCentre() => Destroy(gameObject); }