public static void GetAttPetSet(Mobile pet, Mobile master)
		{
			Configured cpc = new Configured();
			BaseCreature bc = (BaseCreature)pet;
			XMLPetLevelAtt petxml = (XMLPetLevelAtt)XmlAttach.FindAttachment(bc, typeof(XMLPetLevelAtt));
			if (petxml == null)
			{
				XmlAttach.AttachTo(bc, new XMLPetLevelAtt());
				if (cpc.TamingGivesExp == true)
                LevelCore.Taming(master);
			}
			else
				return;
		}
        public override void OnMovement(MovementEventArgs e)
        {
            base.OnMovement(e);
            ConfiguredPetXML  cp        = new ConfiguredPetXML();
            XMLPetLevelAtt    petxml    = (XMLPetLevelAtt)XmlAttach.FindAttachment(((BaseCreature)this.AttachedTo), typeof(XMLPetLevelAtt));
            Mobile            master    = ((BaseCreature)this.AttachedTo).ControlMaster;
            XMLPlayerLevelAtt xmlplayer = (XMLPlayerLevelAtt)XmlAttach.FindAttachment(master, typeof(XMLPlayerLevelAtt));

            if (e.Mobile == null)
            {
                return;
            }

            if (petxml == null)
            {
                return;
            }

            if (AuraStatBoost == true)
            {
                if (cp.AuraStatBoost == false)
                {
                    return;
                }
                if (petxml.Levell < cp.AuraStatBoostReq)
                {
                    return;
                }
                if (xmlplayer == null)
                {
                    return;
                }
                BonusStatAtt10  aurastatboost10  = (BonusStatAtt10)XmlAttach.FindAttachment(master, typeof(BonusStatAtt10));
                BonusStatAtt20  aurastatboost20  = (BonusStatAtt20)XmlAttach.FindAttachment(master, typeof(BonusStatAtt20));
                BonusStatAtt30  aurastatboost30  = (BonusStatAtt30)XmlAttach.FindAttachment(master, typeof(BonusStatAtt30));
                BonusStatAtt40  aurastatboost40  = (BonusStatAtt40)XmlAttach.FindAttachment(master, typeof(BonusStatAtt40));
                BonusStatAtt50  aurastatboost50  = (BonusStatAtt50)XmlAttach.FindAttachment(master, typeof(BonusStatAtt50));
                BonusStatAtt60  aurastatboost60  = (BonusStatAtt60)XmlAttach.FindAttachment(master, typeof(BonusStatAtt60));
                BonusStatAtt70  aurastatboost70  = (BonusStatAtt70)XmlAttach.FindAttachment(master, typeof(BonusStatAtt70));
                BonusStatAtt80  aurastatboost80  = (BonusStatAtt80)XmlAttach.FindAttachment(master, typeof(BonusStatAtt80));
                BonusStatAtt90  aurastatboost90  = (BonusStatAtt90)XmlAttach.FindAttachment(master, typeof(BonusStatAtt90));
                BonusStatAtt100 aurastatboost100 = (BonusStatAtt100)XmlAttach.FindAttachment(master, typeof(BonusStatAtt100));
                BonusStatAtt140 aurastatboost140 = (BonusStatAtt140)XmlAttach.FindAttachment(master, typeof(BonusStatAtt140));
                BonusStatAtt160 aurastatboost160 = (BonusStatAtt160)XmlAttach.FindAttachment(master, typeof(BonusStatAtt160));
                BonusStatAtt180 aurastatboost180 = (BonusStatAtt180)XmlAttach.FindAttachment(master, typeof(BonusStatAtt180));
                BonusStatAtt200 aurastatboost200 = (BonusStatAtt200)XmlAttach.FindAttachment(master, typeof(BonusStatAtt200));
                BonusStatAtt201 aurastatboost201 = (BonusStatAtt201)XmlAttach.FindAttachment(master, typeof(BonusStatAtt201));

                if (xmlplayer.Levell <= 10 && aurastatboost10 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt10());
                }
                else if (xmlplayer.Levell > 10 && xmlplayer.Levell <= 20 && aurastatboost20 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt20());
                }
                else if (xmlplayer.Levell > 20 && xmlplayer.Levell <= 30 && aurastatboost30 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt30());
                }
                else if (xmlplayer.Levell > 30 && xmlplayer.Levell <= 40 && aurastatboost40 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt40());
                }
                else if (xmlplayer.Levell > 40 && xmlplayer.Levell <= 50 && aurastatboost50 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt50());
                }
                else if (xmlplayer.Levell > 50 && xmlplayer.Levell <= 60 && aurastatboost60 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt60());
                }
                else if (xmlplayer.Levell > 60 && xmlplayer.Levell <= 70 && aurastatboost70 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt70());
                }
                else if (xmlplayer.Levell > 70 && xmlplayer.Levell <= 80 && aurastatboost80 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt80());
                }
                else if (xmlplayer.Levell > 80 && xmlplayer.Levell <= 90 && aurastatboost90 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt90());
                }
                else if (xmlplayer.Levell > 90 && xmlplayer.Levell <= 100 && aurastatboost100 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt100());
                }
                else if (xmlplayer.Levell > 100 && xmlplayer.Levell <= 140 && aurastatboost140 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt140());
                }
                else if (xmlplayer.Levell > 140 && xmlplayer.Levell <= 160 && aurastatboost160 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt160());
                }
                else if (xmlplayer.Levell > 160 && xmlplayer.Levell <= 180 && aurastatboost180 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt180());
                }
                else if (xmlplayer.Levell > 180 && xmlplayer.Levell <= 200 && aurastatboost200 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt200());
                }
                else if (xmlplayer.Levell > 200 && aurastatboost201 == null)
                {
                    XmlAttach.AttachTo(master, new BonusStatAtt201());
                }
            }

            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: if (TeleportToTarget && cp.TelePortToTarChance >= Utility.RandomDouble())                     // 0.5 is 50% , 0.05 is 5%
                {
                    if (cp.TelePortToTarget == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.TelePortToTargetReq)
                    {
                        return;
                    }
                    if (((BaseCreature)this.AttachedTo).Combatant == null)
                    {
                        return;
                    }
                    TeleToTarget(((BaseCreature)this.AttachedTo), e.Mobile);
                }
                break;

            case 2: if (MassProvoke && cp.MassProvokeChance >= Utility.RandomDouble())
                {
                    if (cp.MassProvokeToAtt == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.MassProvokeToAttReq)
                    {
                        return;
                    }
                    if (((BaseCreature)this.AttachedTo).Combatant == null)
                    {
                        return;
                    }
                    MassProvokeXML(((BaseCreature)this.AttachedTo), e.Mobile);
                }
                ;      break;

            case 3: if (MassPeace && cp.MassPeaceChance >= Utility.RandomDouble())
                {
                    if (cp.MassPeaceArea == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.MassPeaceReq)
                    {
                        return;
                    }
                    if (((BaseCreature)this.AttachedTo).Combatant == null)
                    {
                        return;
                    }
                    MassPeaceXML(((BaseCreature)this.AttachedTo), e.Mobile);
                }
                ;      break;

            case 4: if (SuperHeal && cp.SuperHealChance >= Utility.RandomDouble())
                {
                    if (cp.SuperHeal == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.SuperHealReq)
                    {
                        return;
                    }
                    if (cp.PetShouldBeBonded == true)
                    {
                        if (((BaseCreature)this.AttachedTo).IsBonded == false)
                        {
                            return;
                        }
                        else
                        {
                            SuperHealXML(((BaseCreature)this.AttachedTo), e.Mobile);
                            break;
                        }
                    }
                    SuperHealXML(((BaseCreature)this.AttachedTo), e.Mobile);
                }
                ;      break;

            case 5: if (BlessedPower && cp.BlessedPowerChance >= Utility.RandomDouble())
                {
                    if (cp.BlessedPower == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.BlessedPowerReq)
                    {
                        return;
                    }
                    if (((BaseCreature)this.AttachedTo).Combatant == null)
                    {
                        return;
                    }
                    BlessedXML(((BaseCreature)this.AttachedTo), e.Mobile);
                }
                ;      break;
//				case 6:
//				case 7: from.Hue = 0x7F7; break;
//				case 8: from.Hue = 0x7F8; break;
//				case 9: from.Hue = 0x7F9; break;
            }

            if (AttachedTo is BaseCreature && Utility.InRange(e.Mobile.Location, ((BaseCreature)this.AttachedTo).Location, proximityrange))
            {
                OnTrigger(null, e.Mobile);
            }
            else
            {
                return;
            }
        }
        public override void OnWeaponHit(Mobile attacker, Mobile defender, BaseWeapon weapon, int damageGiven)
        {
            ConfiguredPetXML  cp        = new ConfiguredPetXML();
            Mobile            master    = ((BaseCreature)this.AttachedTo).ControlMaster;
            XMLPlayerLevelAtt xmlplayer = (XMLPlayerLevelAtt)XmlAttach.FindAttachment(master, typeof(XMLPlayerLevelAtt));
            XMLPetLevelAtt    petxml    = (XMLPetLevelAtt)XmlAttach.FindAttachment(((BaseCreature)this.AttachedTo), typeof(XMLPetLevelAtt));

            if (attacker == null)
            {
                return;
            }

            if (petxml == null)
            {
                return;
            }

            switch (Utility.RandomMinMax(1, 3))
            {
            case 1: if (AreaFireBlast && cp.AreaFireBlastChance >= Utility.RandomDouble())                     // 0.5 is 50% , 0.05 is 5%
                {
                    if (cp.AreaFireBlast == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.AreaFireBlastReq)
                    {
                        return;
                    }
                    AreaFireBlastXML(((BaseCreature)this.AttachedTo), defender, master);
                }
                break;

            case 2: if (AreaIceBlast && cp.AreaIceBlastChance >= Utility.RandomDouble())
                {
                    if (cp.AreaIceBlast == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.AreaIceBlastReq)
                    {
                        return;
                    }
                    AreaIceBlastXML(((BaseCreature)this.AttachedTo), defender, master);
                }
                ;      break;

            case 3: if (AreaAirBlast && cp.AreaAirBlastChance >= Utility.RandomDouble())
                {
                    if (cp.AreaAirBlast == false)
                    {
                        return;
                    }
                    if (petxml.Levell < cp.AreaAirBlastReq)
                    {
                        return;
                    }
                    AreaAirBlastXML(((BaseCreature)this.AttachedTo), defender, master);
                }
                ;      break;
            }
        }