51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
|
|
public class PowerUpManager : Singleton<PowerUpManager>
|
|
{
|
|
private PowerUpManager() {}
|
|
|
|
private Queue<CustomizablePowerUp> powerUps;
|
|
private Queue<CustomizablePowerUp> powerUpsLogs;
|
|
private ushort powerUpLogLimit = 3;
|
|
|
|
public int Count {
|
|
get {
|
|
return powerUps.Count;
|
|
}
|
|
}
|
|
|
|
void Awake() {
|
|
this.powerUps = new Queue<CustomizablePowerUp>();
|
|
this.powerUpsLogs = new Queue<CustomizablePowerUp>();
|
|
}
|
|
|
|
public void Add(CustomizablePowerUp powerUp)
|
|
{
|
|
this.powerUps.Enqueue(powerUp);
|
|
this.powerUpsLogs.Enqueue(powerUp);
|
|
while (this.powerUpsLogs.Count > this.powerUpLogLimit && this.powerUpsLogs.Dequeue()) ;
|
|
}
|
|
|
|
private string RGBToHex(Color color)
|
|
{
|
|
return string.Format("#{0}{1}{2}",
|
|
((int)(color.r * 255)).ToString("X2"),
|
|
((int)(color.g * 255)).ToString("X2"),
|
|
((int)(color.b * 255)).ToString("X2"));
|
|
}
|
|
|
|
void OnGUI() {
|
|
foreach(CustomizablePowerUp pu in powerUpsLogs) {
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.BeginVertical();
|
|
GUILayout.Label("You picked up <color=" + RGBToHex(pu.lightColor) + ">" + pu.powerUpName + "</color>");
|
|
GUILayout.EndVertical();
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
GUI.Label(new Rect(Screen.width - 180, 0, 180, 20), "PowerUp count: <color=yellow>" + this.powerUps.Count + "</color>");
|
|
}
|
|
}
|
|
|