public override void OnComponentUsed(AddonComponent component, Mobile from)
        {
            if (_Complete)
            {
                return;
            }

            if (_Order == null)
            {
                RandomizeOrder();
            }

            KotlCityPuzzleComponent comp = component as KotlCityPuzzleComponent;

            if (comp != null && comp.Active)
            {
                if (comp.Offset.X == _Order[_Index])
                {
                    comp.Active = false;
                    _Fails      = 0;
                    from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1157028, from.NetState); // *You activate the switch!*

                    if (Components.OfType <KotlCityPuzzleComponent>().FirstOrDefault(c => c.Active) == null)
                    {
                        Complete = true;

                        if (KotlDoor.Instance != null)
                        {
                            KotlDoor.Instance.Locked = false;
                            from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1157019, from.NetState); // *You hear a low hum as the door to the Time Room unseals...*
                            from.PlaySound(0x667);

                            Timer.DelayCall(TimeSpan.FromMinutes(5), () =>
                            {
                                KotlDoor.Instance.Locked   = true;
                                KotlDoor.Instance.KeyValue = Key.RandomValue();

                                Reset();
                            });
                        }
                    }
                }
                else
                {
                    _Fails++;
                    AOS.Damage(from, Utility.RandomMinMax(100, 150), false, 0, 0, 0, 0, 100);

                    from.FixedParticles(0x3818, 1, 11, 0x13A8, 0, 0, EffectLayer.Waist);
                    from.PlaySound(0x665);
                    from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1157029, from.NetState); // *The switch shorts out and electrocutes you! You are vulnerable to more energy damage in your shocked state!*

                    if (_Fails > 5 && _Fails > Utility.Random(10))
                    {
                        component.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1157031, from.NetState); // *Circuit Fault! Generating new circuit sequence!*
                        Reset();
                    }
                }
            }
        }