46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using EscapeRoomEngine.Engine.Runtime.Modules;
|
|
using EscapeRoomEngine.Engine.Runtime.Utilities;
|
|
using NaughtyAttributes;
|
|
|
|
namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
|
|
{
|
|
public class Ball : ModuleState
|
|
{
|
|
[BoxGroup("Internal")] [Required] public Emission statusLight;
|
|
[BoxGroup("Internal")] [Required] public Ring ring;
|
|
|
|
private DynamicColor _puzzleColor, _solvedColor;
|
|
|
|
private void Awake()
|
|
{
|
|
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
|
|
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
|
|
}
|
|
|
|
public bool StatusLight
|
|
{
|
|
set => statusLight.active = value;
|
|
}
|
|
|
|
public bool Active
|
|
{
|
|
get => _active;
|
|
set
|
|
{
|
|
_active = value;
|
|
|
|
statusLight.color = _active ? _puzzleColor.hdr : _solvedColor.hdr;
|
|
ring.rotating = _active;
|
|
if (!_active)
|
|
{
|
|
ring.crystal.Active = false;
|
|
ring.symbols.ForEach(symbol => symbol.Active = false);
|
|
}
|
|
}
|
|
}
|
|
|
|
private bool _active;
|
|
|
|
public override void SetModule(Module module) {}
|
|
}
|
|
} |