[Refactor] Reworked how OrbitalBehaviour behaves under the hood

This commit is contained in:
Pasha Bibko
2025-11-28 17:26:10 +00:00
parent 2d974f5217
commit 80be4cc853
6 changed files with 357 additions and 302 deletions

View File

@@ -1,8 +1,8 @@
using System;
using UnityEngine;
using Random = UnityEngine.Random;
using URandom = UnityEngine.Random;
public class PlayerModifier : OrbitalPositionBehaviour
public class PlayerModifier : OrbitalBehaviour
{
public enum Modifiers
{
@@ -24,17 +24,24 @@ public class PlayerModifier : OrbitalPositionBehaviour
return (Modifiers)possibilities.GetValue(s_RandomGenerator.Next(possibilities.Length));
}
protected override void OnStart()
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);
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);
protected override void OnOrbitalCollision(OrbitalBehaviour other) => Destroy(gameObject);
protected override void OnReachCentre() => Destroy(gameObject);
private void OnDestroy()
{
BehaviourManager.UnregisterOrbitalInstance(this);
}
}