41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
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);
|
|
}
|