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) {} } }