using System; using Ichni.RhythmGame.Beatmap; using UnityEngine; namespace Ichni.RhythmGame { public class EnableControlEffect : EffectBase { public GameElement connectedGameElement; public string connectedVariableName; public int enableValue; public bool useExpression; public string expression; public EnableControlEffect(GameElement connectedGameElement, string connectedVariableName, int enableValue, bool useExpression, string expression) { this.effectTime = 0; this.connectedGameElement = connectedGameElement; this.connectedVariableName = connectedVariableName; this.enableValue = enableValue; this.useExpression = useExpression; this.expression = expression; } public override void Recover() { if (connectedGameElement == null) return; connectedGameElement.gameObject.SetActive(false); } public override void Adjust() { if (connectedGameElement == null) return; if (!useExpression) { int value = GameManager.instance.variablesContainer.GetVariable(connectedVariableName); connectedGameElement.gameObject.SetActive(value == enableValue); } else { } } public override EffectBase_BM ConvertToBM() { connectedGameElement.SaveBM(); return new EnableControlEffect_BM(connectedGameElement.elementGuid, connectedVariableName, enableValue, useExpression, expression); } } namespace Beatmap { public class EnableControlEffect_BM : EffectBase_BM { public Guid connectedGameElementGuid; public string connectedVariableName; public int enableValue; public bool useExpression; public string expression; public EnableControlEffect_BM() { } public EnableControlEffect_BM(Guid connectedGameElementGuid, string connectedVariableName, int enableValue, bool useExpression, string expression) { this.connectedGameElementGuid = connectedGameElementGuid; this.connectedVariableName = connectedVariableName; this.enableValue = enableValue; this.useExpression = useExpression; this.expression = expression; } public override EffectBase ConvertToGameType(GameElement attachedGameElement) { return new EnableControlEffect(GameElement_BM.GetElement(connectedGameElementGuid), connectedVariableName, enableValue, useExpression, expression); } } } }