Files
U10-MobileGame/Assets/Scripts/PlayerModifier.cs

48 lines
1.2 KiB
C#

using System;
using UnityEngine;
using URandom = UnityEngine.Random;
public class PlayerModifier : OrbitalBehaviour
{
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));
}
private void Start()
{
RegisterObject(new OrbitalInitializer
{
DistanceAlongCircumference = URandom.Range(0f, Mathf.PI * 2f),
ObjectRadius = 0.3f,
SpinSpeed = 1.6f
});
transform.position = new Vector3(0, 0, -100f);
Modifier = GetRandomModifier();
}
protected override void OnOrbitalCollision(OrbitalBehaviour other) => Destroy(gameObject);
protected override void OnReachCentre() => Destroy(gameObject);
private void OnDestroy()
{
BehaviourManager.UnregisterOrbitalInstance(this);
}
}