Files
ichni_Official/Assets/Scripts/Game/GameElements/Essential/VariablesContainer.cs

54 lines
1.9 KiB
C#
Raw Normal View History

2025-06-03 02:42:28 -04:00
using System;
using System.Collections;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
namespace Ichni.RhythmGame
{
public partial class VariablesContainer : GameElement
{
2026-03-14 03:13:10 -04:00
#region [] Values Dictionary
2025-06-03 02:42:28 -04:00
public Dictionary<string, int> originalVariables;
public Dictionary<string, int> currentVariables;
2026-03-14 03:13:10 -04:00
#endregion
2025-06-03 02:42:28 -04:00
2026-03-14 03:13:10 -04:00
#region [] Lifecycle & Factory
2025-06-03 02:42:28 -04:00
public static VariablesContainer GenerateElement(string elementName, Guid id, List<string> tags, bool isFirstGenerated,
GameElement parentElement, Dictionary<string, int> variables)
{
VariablesContainer variablesContainer =
2026-03-14 03:13:10 -04:00
Instantiate(GameManager.Instance.basePrefabs.emptyObject).AddComponent<VariablesContainer>();
2025-06-03 02:42:28 -04:00
2026-03-14 03:13:10 -04:00
GameManager.Instance.variablesContainer = variablesContainer;
2025-06-03 02:42:28 -04:00
variablesContainer.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
variablesContainer.originalVariables = new Dictionary<string, int>(variables);
variablesContainer.currentVariables = new Dictionary<string, int>(variables);
return variablesContainer;
}
2026-03-14 03:13:10 -04:00
#endregion
2025-06-03 02:42:28 -04:00
2026-03-14 03:13:10 -04:00
#region [] Variable Interactions
2025-06-03 02:42:28 -04:00
public void SetVariable(string variableName, int value)
{
currentVariables[variableName] = value;
}
public int GetVariable(string variableName)
{
return currentVariables[variableName];
}
public void RevertVariable(string variableName)
{
currentVariables[variableName] = originalVariables[variableName];
}
public void RevertAllVariables()
{
currentVariables = new Dictionary<string, int>(originalVariables);
}
2026-03-14 03:13:10 -04:00
#endregion
2025-06-03 02:42:28 -04:00
}
}