[Refactor] General cleanup

This commit is contained in:
Pasha Bibko
2025-11-27 21:54:11 +00:00
parent 201675720c
commit 2d974f5217
4 changed files with 50 additions and 58 deletions

View File

@@ -3,22 +3,22 @@ using UnityEngine;
public class EnemyController : OrbitalPositionBehaviour public class EnemyController : OrbitalPositionBehaviour
{ {
private static readonly List<EnemyController> s_Instances = new(); private static readonly List<EnemyController> Instances = new();
public static void KillAllEnemies() public static void KillAllEnemies()
{ {
foreach (EnemyController controller in s_Instances) foreach (EnemyController controller in Instances)
{ {
Destroy(controller.gameObject); Destroy(controller.gameObject);
PlayerController.s_PlayerScore++; PlayerController.s_PlayerScore++;
} }
s_Instances.Clear(); Instances.Clear();
} }
protected override void OnStart() protected override void OnStart()
{ {
s_Instances.Add(this); Instances.Add(this);
transform.position = new Vector3(0, 0, -200f); transform.position = new Vector3(0, 0, -200f);
@@ -32,7 +32,7 @@ public class EnemyController : OrbitalPositionBehaviour
if (GlobalOrbitalPositionManager.s_IsSimulationRunning) if (GlobalOrbitalPositionManager.s_IsSimulationRunning)
PlayerController.s_PlayerScore++; PlayerController.s_PlayerScore++;
s_Instances.Remove(this); Instances.Remove(this);
Destroy(gameObject); Destroy(gameObject);
} }
} }

View File

@@ -6,9 +6,8 @@ public static class GlobalInput
{ {
private void Start() => DontDestroyOnLoad(gameObject); private void Start() => DontDestroyOnLoad(gameObject);
[SerializeField] private bool m_IsContact; private bool m_IsContact;
[SerializeField] private bool m_TouchStartedThisFrame; private bool m_TouchStartedThisFrame;
private float m_HeldTime; private float m_HeldTime;
private static bool IsPressedInternal() private static bool IsPressedInternal()

View File

@@ -6,20 +6,6 @@ using UnityEngine.Rendering.PostProcessing;
public class PlayerController : OrbitalPositionBehaviour public class PlayerController : OrbitalPositionBehaviour
{ {
public static int s_PlayerScore;
private static int s_HighScore = 20;
private static PlayerController s_Instance;
public static bool IsPlayerAttached => s_Instance.m_OrbitalPosition.m_IsAttachedToRings;
public static void AttachPlayer() { s_Instance.m_OrbitalPosition.m_IsAttachedToRings = true; }
private Vector3 m_SuicidePoint;
private bool m_KillingItself;
private float m_DeathLerp;
private bool m_HasFreeHitActive;
private bool m_HasInvicibility;
[Header("References")] [Header("References")]
[SerializeField] private MeshRenderer m_Renderer; [SerializeField] private MeshRenderer m_Renderer;
[SerializeField] private Text m_ScoreText; [SerializeField] private Text m_ScoreText;
@@ -27,9 +13,22 @@ public class PlayerController : OrbitalPositionBehaviour
[SerializeField] private Material m_FreeHitMaterial; [SerializeField] private Material m_FreeHitMaterial;
[SerializeField] private PostProcessVolume m_PostProcessVolume; [SerializeField] private PostProcessVolume m_PostProcessVolume;
private static PlayerController Instance;
public static bool IsPlayerAttached => Instance.m_OrbitalPosition.m_IsAttachedToRings;
private static int s_HighScore = 20;
public static int s_PlayerScore;
private Vector3 m_SuicidePoint;
private float m_DeathLerp;
private bool m_HasFreeHitActive;
private bool m_HasInvincibility;
private bool m_KillingItself;
protected override void OnStart() protected override void OnStart()
{ {
s_Instance = this; Instance = this;
s_HighScore = Mathf.Max(s_HighScore, PlayerPrefs.GetInt("HighScore", 0)); s_HighScore = Mathf.Max(s_HighScore, PlayerPrefs.GetInt("HighScore", 0));
Debug.Log($"Loaded high score of [{s_HighScore}]"); Debug.Log($"Loaded high score of [{s_HighScore}]");
@@ -42,15 +41,9 @@ public class PlayerController : OrbitalPositionBehaviour
public void Update() public void Update()
{ {
m_ScoreText.text = s_PlayerScore.ToString(); m_ScoreText.text = s_PlayerScore.ToString();
if (s_PlayerScore > s_HighScore)
m_ScoreText.color = Color.yellow; m_ScoreText.color = s_PlayerScore > s_HighScore ? Color.yellow : Color.white;
else m_Renderer.material = m_HasFreeHitActive ? m_FreeHitMaterial : m_DefaultMaterial;
m_ScoreText.color = Color.white;
if (m_HasFreeHitActive)
m_Renderer.material = m_FreeHitMaterial;
else
m_Renderer.material = m_DefaultMaterial;
if (GlobalInput.IsScreenClicked && GlobalOrbitalPositionManager.AllowPlayerInput) if (GlobalInput.IsScreenClicked && GlobalOrbitalPositionManager.AllowPlayerInput)
{ {
@@ -63,6 +56,11 @@ public class PlayerController : OrbitalPositionBehaviour
transform.position = Vector3.Lerp(m_SuicidePoint, m_SuicidePoint.normalized * 20f, m_DeathLerp); transform.position = Vector3.Lerp(m_SuicidePoint, m_SuicidePoint.normalized * 20f, m_DeathLerp);
m_DeathLerp += Time.deltaTime; m_DeathLerp += Time.deltaTime;
} }
public static void AttachPlayer()
{
Instance.m_OrbitalPosition.m_IsAttachedToRings = true;
}
private IEnumerator OnGrowPlayerModifier() private IEnumerator OnGrowPlayerModifier()
{ {
@@ -86,14 +84,14 @@ public class PlayerController : OrbitalPositionBehaviour
m_OrbitalPosition.m_ObjectRadius /= 0.6f; m_OrbitalPosition.m_ObjectRadius /= 0.6f;
} }
private IEnumerator TriggerInvicibility() private IEnumerator TriggerInvincibility()
{ {
m_HasFreeHitActive = false; m_HasFreeHitActive = false;
m_HasInvicibility = true; m_HasInvincibility = true;
yield return new WaitForSecondsRealtime(1f); yield return new WaitForSecondsRealtime(1f);
m_HasInvicibility = false; m_HasInvincibility = false;
} }
public override void OnCollision(OrbitalPositionBehaviour other) public override void OnCollision(OrbitalPositionBehaviour other)
@@ -103,14 +101,14 @@ public class PlayerController : OrbitalPositionBehaviour
if (other.CompareTag("Enemy")) if (other.CompareTag("Enemy"))
{ {
if (m_HasInvicibility) if (m_HasInvincibility)
{ {
return; return;
} }
if (m_HasFreeHitActive) if (m_HasFreeHitActive)
{ {
StartCoroutine(TriggerInvicibility()); StartCoroutine(TriggerInvincibility());
return; return;
} }
@@ -122,34 +120,34 @@ public class PlayerController : OrbitalPositionBehaviour
else if (other.CompareTag("PlayerMod")) else if (other.CompareTag("PlayerMod"))
{ {
switch (((PlayerModifier)other).HeldModifier) switch (((PlayerModifier)other).Modifier)
{ {
case PlayerModifier.Modifier.GainPoints: case PlayerModifier.Modifiers.GainPoints:
s_PlayerScore += 100; s_PlayerScore += 100;
break; break;
case PlayerModifier.Modifier.FreeHit: case PlayerModifier.Modifiers.FreeHit:
m_HasFreeHitActive = true; m_HasFreeHitActive = true;
break; break;
case PlayerModifier.Modifier.GrowPlayer: case PlayerModifier.Modifiers.GrowPlayer:
StartCoroutine(OnGrowPlayerModifier()); StartCoroutine(OnGrowPlayerModifier());
break; break;
case PlayerModifier.Modifier.ShrinkPlayer: case PlayerModifier.Modifiers.ShrinkPlayer:
StartCoroutine(OnShrinkPlayerModifier()); StartCoroutine(OnShrinkPlayerModifier());
break; break;
case PlayerModifier.Modifier.SpeedUp: case PlayerModifier.Modifiers.SpeedUp:
StartCoroutine(GlobalOrbitalPositionManager.Instance.StartPlayerSpeedupModifier()); StartCoroutine(GlobalOrbitalPositionManager.Instance.StartPlayerSpeedupModifier());
break; break;
case PlayerModifier.Modifier.ClearAllEnemies: case PlayerModifier.Modifiers.ClearAllEnemies:
EnemyController.KillAllEnemies(); EnemyController.KillAllEnemies();
break; break;
default: default:
Debug.Log($"Collision with unknown modifier occured [{((PlayerModifier)other).HeldModifier}]"); Debug.Log($"Collision with unknown modifier occured [{((PlayerModifier)other).Modifier}]");
break; break;
} }
} }

View File

@@ -4,7 +4,7 @@ using Random = UnityEngine.Random;
public class PlayerModifier : OrbitalPositionBehaviour public class PlayerModifier : OrbitalPositionBehaviour
{ {
public enum Modifier public enum Modifiers
{ {
GainPoints, GainPoints,
FreeHit, FreeHit,
@@ -16,15 +16,14 @@ public class PlayerModifier : OrbitalPositionBehaviour
private static readonly System.Random s_RandomGenerator = new(); private static readonly System.Random s_RandomGenerator = new();
private static Modifier GetRandomModifier() public Modifiers Modifier { get; private set; }
private static Modifiers GetRandomModifier()
{ {
Array possibilities = Enum.GetValues(typeof(Modifier)); Array possibilities = Enum.GetValues(typeof(Modifiers));
return (Modifier)possibilities.GetValue(s_RandomGenerator.Next(possibilities.Length)); return (Modifiers)possibilities.GetValue(s_RandomGenerator.Next(possibilities.Length));
} }
private Modifier m_Modifier;
public Modifier HeldModifier => m_Modifier;
protected override void OnStart() protected override void OnStart()
{ {
transform.position = new Vector3(0, 0, -100f); transform.position = new Vector3(0, 0, -100f);
@@ -33,13 +32,9 @@ public class PlayerModifier : OrbitalPositionBehaviour
m_OrbitalPosition.m_ObjectRadius = 0.3f; m_OrbitalPosition.m_ObjectRadius = 0.3f;
m_OrbitalPosition.m_SpinSpeed = 1.6f; m_OrbitalPosition.m_SpinSpeed = 1.6f;
m_Modifier = GetRandomModifier(); Modifier = GetRandomModifier();
} }
public override void OnCollision(OrbitalPositionBehaviour other) => Destroy(gameObject);
public override void OnReachCentre() => Destroy(gameObject); public override void OnReachCentre() => Destroy(gameObject);
public override void OnCollision(OrbitalPositionBehaviour other)
{
Destroy(gameObject);
}
} }