Files
ichni_Official/Assets/Scripts/Game/GameElements/GeneralEffects/EnableControlEffect.cs

89 lines
2.9 KiB
C#
Raw Normal View History

2025-06-03 02:42:28 -04:00
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);
}
}
}
}