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