public override void OnAccept()
        {
            if (Owner.Backpack == null)
            {
                return;
            }

            var cloak = Owner.FindItemOnLayer(Layer.Cloak) as GreyCloak;

            if (cloak == null)
            {
                Owner.DropHolding();
                cloak = Owner.Backpack.FindItemByType <GreyCloak>();
            }

            if (cloak == null)
            {
                return;
            }

            cloak.Delete();

            Owner.AddToBackpack(new ShieldOfRecognition());
            Gareth.AddQuestStatus(Owner, HumilityQuestStatus.RewardAccepted);
        }
        public override void OnMovement(Mobile m, Point3D oldLocation)
        {
            if (m is PlayerMobile pm && m_Rec.Contains(m) && m.Backpack != null && Gareth.CheckQuestStatus(pm, HumilityQuestStatus.RewardRefused))
            {
                Item item = m.Backpack.FindItemByType(typeof(GreyCloak));

                if (item == null)
                {
                    item = m.FindItemOnLayer(Layer.Cloak);
                }

                if (item != null && item is GreyCloak cloak && cloak.Owner == m)
                {
                    m.SendLocalizedMessage(1075897); // As you near the shrine a strange energy envelops you. Suddenly, your cloak is transformed into the Cloak of Humility!

                    m.Backpack.DropItem(new HumilityCloak());
                    cloak.Delete();

                    m.PlaySound(0x244);
                    Effects.SendTargetParticles(m, 0x376A, 1, 32, 0x13A6, EffectLayer.Waist);

                    Gareth.AddQuestStatus(pm, HumilityQuestStatus.Finished);
                }
            }
        }
        private static void OnLogin(LoginEventArgs e)
        {
            if (e.Mobile is PlayerMobile pm && Gareth.CheckQuestStatus(pm, HumilityQuestStatus.RewardPending))
            {
                var quest = new HumilityProofGump
                {
                    Owner   = pm,
                    Quester = null
                };

                pm.SendGump(new MondainQuestGump(quest));
            }
        }
        public override void GiveRewards()
        {
            base.GiveRewards();

            Gareth.AddQuestStatus(Owner, HumilityQuestStatus.RewardPending);

            var quest = new HumilityProofGump
            {
                Owner   = Owner,
                Quester = null
            };

            Owner.SendGump(new MondainQuestGump(quest));
        }
        public override void OnRefuse()
        {
            GreyCloak item = Owner.Backpack.FindItemByType(typeof(GreyCloak)) as GreyCloak;

            if (item == null)
            {
                item = Owner.FindItemOnLayer(Layer.Cloak) as GreyCloak;
            }

            if (item != null)
            {
                item.Owner = Owner;
                Gareth.AddQuestStatus(Owner, HumilityQuestStatus.RewardRefused);
            }
        }
        public static void SetupMobiles()
        {
            BaseCreature next = new Gareth();

            next.MoveToWorld(new Point3D(2023, 2841, 20), Map.Trammel);
            next.Home      = next.Location;
            next.RangeHome = 5;

            next = new Gareth();
            next.MoveToWorld(new Point3D(2023, 2841, 20), Map.Felucca);
            next.Home      = next.Location;
            next.RangeHome = 5;

            next = new Dierdre();
            next.MoveToWorld(new Point3D(1442, 1600, 20), Map.Felucca);
            next.Home      = next.Location;
            next.RangeHome = 40;

            next = new Jason();
            next.MoveToWorld(new Point3D(610, 2197, 0), Siege.SiegeShard ? Map.Felucca : Map.Trammel);
            next.Home      = next.Location;
            next.RangeHome = 40;

            next = new Kevin();
            next.MoveToWorld(new Point3D(2464, 439, 15), Siege.SiegeShard ? Map.Felucca : Map.Trammel);
            next.Home      = next.Location;
            next.RangeHome = 40;

            next = new Maribel();
            next.MoveToWorld(new Point3D(1443, 1701, 0), Siege.SiegeShard ? Map.Felucca : Map.Trammel);
            next.Home      = next.Location;
            next.RangeHome = 40;

            next = new Nelson();
            next.MoveToWorld(new Point3D(3441, 2623, 36), Siege.SiegeShard ? Map.Felucca : Map.Trammel);
            next.Home      = next.Location;
            next.RangeHome = 40;

            next = new Sean();
            next.MoveToWorld(new Point3D(2442, 471, 15), Map.Felucca);
            next.Home      = next.Location;
            next.RangeHome = 40;

            next = new Walton();
            next.MoveToWorld(new Point3D(610, 2197, 0), Map.Felucca);
            next.Home      = next.Location;
            next.RangeHome = 40;
        }
        public static void SetupMobiles()
        {
            BaseCreature next = new Gareth();
            next.MoveToWorld(new Point3D(2023, 2841, 20), Map.Trammel);
            next.Home = next.Location;
            next.RangeHome = 5;

            next = new Gareth();
            next.MoveToWorld(new Point3D(2023, 2841, 20), Map.Felucca);
            next.Home = next.Location;
            next.RangeHome = 5;

            next = new Dierdre();
            next.MoveToWorld(new Point3D(1442, 1600, 20), Map.Felucca);
            next.Home = next.Location;
            next.RangeHome = 40;

            next = new Jason();
            next.MoveToWorld(new Point3D(610, 2197, 0), Map.Trammel);
            next.Home = next.Location;
            next.RangeHome = 40;

            next = new Kevin();
            next.MoveToWorld(new Point3D(2464, 439, 15), Map.Trammel);
            next.Home = next.Location;
            next.RangeHome = 40;

            next = new Maribel();
            next.MoveToWorld(new Point3D(1443, 1701, 0), Map.Trammel);
            next.Home = next.Location;
            next.RangeHome = 40;

            next = new Nelson();
            next.MoveToWorld(new Point3D(3441, 2623, 36), Map.Trammel);
            next.Home = next.Location;
            next.RangeHome = 40;

            next = new Sean();
            next.MoveToWorld(new Point3D(2442, 471, 15), Map.Felucca);
            next.Home = next.Location;
            next.RangeHome = 40;

            next = new Walton();
            next.MoveToWorld(new Point3D(610, 2197, 0), Map.Felucca);
            next.Home = next.Location;
            next.RangeHome = 40;
        }