protected override void OnTarget(Mobile from, object targeted)
 {
     if (targeted is BaseCreature)
     {
         BaseCreature m_Creature = (BaseCreature)targeted;
         if (!m_Creature.Controled || m_Creature.ControlMaster != from)
         {
             m_Trainer.SayTo(from, false, "You've no claim to that animal.");
         }
         else if (!m_Creature.Alive || m_Creature == null)
         {
             m_Trainer.SayTo(from, false, "They don't look up to the task.");
         }
         else
         {
             m_Trainer.SayTo(from, false, "and the other?");
             from.SendMessage("Please target the second animal you wish to breed.");
             from.Target = new SecondTarget(m_Trainer, m_Creature);
         }
     }
     else if (targeted == from)
     {
         m_Trainer.SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn.
     }
     else
     {
         m_Trainer.SayTo(from, false, "I'm afraid I wouldn't know anything about that."); // You can't stable that!
     }
 }
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is BaseCreature)
                {
                    BaseCreature m_Creature = (BaseCreature)targeted;
                    if (!m_Creature.InLOS(from))
                    {
                        from.SendMessage("You cannot see your target.");
                    }

                    if (m_Creature.IsUndeadNPC() || m_Creature.IsDemonNPC())
                    {
                        m_Trainer.SayTo(from, "I won't stable that!");
                    }
                    else
                    {
                        m_Trainer.EndStable(from, (BaseCreature)targeted);
                    }
                }
                else if (targeted == from)
                {
                    m_Trainer.SayTo(from, 502672);                       // HA HA HA! Sorry, I am not an inn.
                }
                else
                {
                    m_Trainer.SayTo(from, 1048053);                       // You can't stable that!
                }
            }
 protected override void OnTarget(Mobile from, object targeted)
 {
     if (targeted is BaseCreature)
     {
         m_Trainer.EndStable(from, (BaseCreature)targeted);
     }
     else if (targeted == from)
     {
         m_Trainer.SayTo(from, 502672);                       // HA HA HA! Sorry, I am not an inn.
     }
     else
     {
         m_Trainer.SayTo(from, 1048053);                       // You can't stable that!
     }
 }
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is BaseCreature)
                {
                    BaseCreature m_Creature = (BaseCreature)targeted;
                    if (!m_Creature.Controled || m_Creature.ControlMaster != from)
                    {
                        m_Trainer.SayTo(from, false, "You've no claim to that animal.");
                    }
                    else if (!m_Creature.Alive || m_Creature == null)
                    {
                        m_Trainer.SayTo(from, false, "They don't look up to the task.");
                    }
                    else if (m_Creature.Female == m_First.Female || m_Creature.GetType() != m_First.GetType())
                    {
                        m_Trainer.SayTo(from, false, "I'm afraid that's biologically impossible.");
                        // DEBUG TEXT
                        //from.SendMessage("{0},{1}",m_First.GetType().ToString(), m_Creature.GetType().ToString());
                    }
                    else if (from.Stabled.Count + 3 >= GetMaxStabled(from))
                    {
                        m_Trainer.SayTo(from, false, "I'm afraid there's no room in the stable to breed these animals.");
                    }
                    else
                    {
                        Type type = m_First.GetType();
                        if (type != null)
                        {
                            try
                            {
                                object o = Activator.CreateInstance(type);

                                if (o is BaseCreature)
                                {
                                    BaseCreature child = (BaseCreature)o;

                                    m_First.ControlTarget = null;
                                    m_First.ControlOrder  = OrderType.Stay;

                                    m_First.SetControlMaster(null);
                                    m_First.SummonMaster = null;

                                    m_First.IsStabled = true;

                                    m_Creature.ControlTarget = null;
                                    m_Creature.ControlOrder  = OrderType.Stay;

                                    m_Creature.SetControlMaster(null);
                                    m_Creature.SummonMaster = null;

                                    m_Creature.IsStabled = true;

                                    child.IsStabled = true;

                                    from.Stabled.Add(child);
                                    from.Stabled.Add(m_First);
                                    from.Stabled.Add(m_Creature);
                                    child.BardEndTime      = DateTime.Now.AddDays(1);
                                    m_First.BardEndTime    = DateTime.Now.AddDays(1);
                                    m_Creature.BardEndTime = DateTime.Now.AddDays(1);
                                    child.Internalize();
                                    m_First.Internalize();
                                    m_Creature.Internalize();
                                    TAVUtilities.Reproduce(m_Creature, m_First, child);
                                    from.SendMessage("The animals have been stabled, neither the new born nor the parents may be removed from the stable for 24 hours.");
                                    m_Trainer.SayTo(from, false, "Very well, the animals will be stored in the stable overnight.");
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                }
                else if (targeted == from)
                {
                    m_Trainer.SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn.
                }
                else
                {
                    m_Trainer.SayTo(from, false, "I'm afraid I wouldn't know anything about that."); // You can't stable that!
                }
            }