using System; using UnityEngine; using Random = UnityEngine.Random; public class PlayerModifier : OrbitalPositionBehaviour { public enum Modifier { GainPoints, FreeHit, GrowPlayer, ShrinkPlayer, ClearAllEnemies, SpeedUp } private static readonly System.Random s_RandomGenerator = new(); private static Modifier GetRandomModifier() { return Modifier.SpeedUp; Array possibilities = Enum.GetValues(typeof(Modifier)); return (Modifier)possibilities.GetValue(s_RandomGenerator.Next(possibilities.Length)); } private Modifier m_Modifier; public Modifier HeldModifier => m_Modifier; 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; m_Modifier = GetRandomModifier(); } public override void OnReachCentre() => Destroy(gameObject); public override void OnCollision(OrbitalPositionBehaviour other) { Destroy(gameObject); } }