public override void OnSpeech(SpeechEventArgs e)
        {
            #region Here is the list of Random Words you can use
            string dat_Facet = TalkingNPCsXMLReader.RandomName("dat_Facet");
            string dat_TownRegion = TalkingNPCsXMLReader.RandomName("dat_TownRegion");
            string dat_DungeonRegion = TalkingNPCsXMLReader.RandomName("dat_DungeonRegion");
            string dat_NoHousingRegion = TalkingNPCsXMLReader.RandomName("dat_NoHousingRegion");
            string dat_Other = TalkingNPCsXMLReader.RandomName("dat_Other");
            string dat_Shrine = TalkingNPCsXMLReader.RandomName("dat_Shrine");
            string dat_article1 = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_article2 = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_noun1 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun2 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun3 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun4 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_verb1 = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verb2 = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verbing1 = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verbing2 = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verb3rd1 = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verb3rd2 = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verbed1 = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_verbed2 = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_preposition1 = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_preposition2 = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_adj1 = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_adj2 = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_Greeting = TalkingNPCsXMLReader.RandomName("dat_Greeting");
            string dat_Language1 = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language2 = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language3 = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Armor = TalkingNPCsXMLReader.RandomName("dat_Armor");
            string dat_Creature1 = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Creature2 = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Room1 = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Room2 = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Furniture1 = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Furniture2 = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Liquid1 = TalkingNPCsXMLReader.RandomName("dat_Liquid");
            string dat_Number1 = TalkingNPCsXMLReader.RandomName("dat_Number");
            string dat_PlayingCards = TalkingNPCsXMLReader.RandomName("dat_PlayingCards");
            string dat_MinocShop = TalkingNPCsXMLReader.RandomName("dat_MinocShop");
            string dat_MinocShopQuestItem = TalkingNPCsXMLReader.RandomName("dat_MinocShopQuestItem");
            #endregion

            string playername = e.Mobile.Name;
            string speech = e.Speech.ToLower();

            #region Player says "Hi"
            for (int i = 0; i < Greetings.Length; i++)
                if (speech == Greetings[i])
                {
                    switch (Utility.Random(4))  //picks one of the following
                    {
                        case 0:
                            { Say(String.Format("{0} {1}, do you want to play your favorite game?", dat_Greeting, playername, dat_verb1, dat_Creature1)); break; }
                        case 1:
                            { Say(String.Format("Would you like to play {0} cards?", dat_adj1)); break; }
                        case 2:
                            { Say(String.Format("People come from {0} to play cards here.", dat_TownRegion)); break; }
                        case 3:
                            { Say(String.Format("{0}, {1} want to play?", playername, dat_Greeting)); break; }
                    }
                }
            #endregion

            #region Play says "Yes" or some other response
            for (int i = 0; i < Response.Length; i++)
                if (speech == Response[i])
                {
                    if (m_ItemHasBeenReturned == true)
                    {
                        switch (Utility.Random(4))  //picks one of the following
                        {
                            case 0:
                                {
                                    Say(String.Format("{0} draw a card and let me see it.", playername));
                                    break;
                                }
                            case 1:
                                {
                                    dat_article1 = char.ToUpper(dat_article1[0]) + dat_article1.Substring(1);
                                    Say(String.Format("{0} my {1} card vs your {2} card..", playername, dat_adj1, dat_adj1));
                                    break;
                                }
                            case 2:
                                {
                                    dat_article1 = char.ToUpper(dat_article1[0]) + dat_article1.Substring(1);
                                    Say(String.Format("Place your card back into my deck and let's see if you a winner.", dat_adj1));
                                    break;
                                }
                            case 3:
                                {
                                    dat_article1 = char.ToUpper(dat_article1[0]) + dat_article1.Substring(1);
                                    Say(String.Format("Be a good {0} and deal the cards.", dat_Creature1, dat_adj1));
                                    break;
                                }
                        }


                        //Choose Item Location
                        int x = Location.X - 1;
                        int y = Location.Y;
                        int z = Map.GetAverageZ(x, y);

                        if (Map.CanFit(x, y, Location.Z, 1))
                        {
                            Item item = new PlayingCards();
                            item.Name = dat_PlayingCards;
                            item.MoveToWorld(new Point3D(x, y, Location.Z), Map);
                            m_ItemHasBeenReturned = false;
                            HighCardBettyItemTimer t = new HighCardBettyItemTimer();
                            t.Start();
                        }
                        else if (Map.CanFit(x, y, z, 1))
                        {
                            Item item = new PlayingCards();
                            item.Name = dat_PlayingCards;
                            item.MoveToWorld(new Point3D(x, y, z), Map);
                            m_ItemHasBeenReturned = false;
                            HighCardBettyItemTimer t = new HighCardBettyItemTimer();
                            t.Start();
                        }
                    }
                    else
                    {
                        Say(String.Format("Let me see the card, {0} or {1}.  Hurry any card will due!", dat_adj1, dat_adj2));
                    }
                }
            #endregion
        }
        public override void OnSpeech(SpeechEventArgs e)
        {
            #region Here is the list of Random Words you can use
            string dat_Facet              = TalkingNPCsXMLReader.RandomName("dat_Facet");
            string dat_TownRegion         = TalkingNPCsXMLReader.RandomName("dat_TownRegion");
            string dat_DungeonRegion      = TalkingNPCsXMLReader.RandomName("dat_DungeonRegion");
            string dat_NoHousingRegion    = TalkingNPCsXMLReader.RandomName("dat_NoHousingRegion");
            string dat_Other              = TalkingNPCsXMLReader.RandomName("dat_Other");
            string dat_Shrine             = TalkingNPCsXMLReader.RandomName("dat_Shrine");
            string dat_article1           = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_article2           = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_noun1              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun2              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun3              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun4              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_verb1              = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verb2              = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verbing1           = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verbing2           = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verb3rd1           = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verb3rd2           = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verbed1            = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_verbed2            = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_preposition1       = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_preposition2       = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_adj1               = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_adj2               = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_Greeting           = TalkingNPCsXMLReader.RandomName("dat_Greeting");
            string dat_Language1          = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language2          = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language3          = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Armor              = TalkingNPCsXMLReader.RandomName("dat_Armor");
            string dat_Creature1          = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Creature2          = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Room1              = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Room2              = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Furniture1         = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Furniture2         = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Liquid1            = TalkingNPCsXMLReader.RandomName("dat_Liquid");
            string dat_Number1            = TalkingNPCsXMLReader.RandomName("dat_Number");
            string dat_PlayingCards       = TalkingNPCsXMLReader.RandomName("dat_PlayingCards");
            string dat_MinocShop          = TalkingNPCsXMLReader.RandomName("dat_MinocShop");
            string dat_MinocShopQuestItem = TalkingNPCsXMLReader.RandomName("dat_MinocShopQuestItem");
            #endregion

            string playername = e.Mobile.Name;
            string speech     = e.Speech.ToLower();

            #region Player says "Hi"
            for (int i = 0; i < Greetings.Length; i++)
            {
                if (speech == Greetings[i])
                {
                    switch (Utility.Random(4))  //picks one of the following
                    {
                    case 0:
                    { Say(String.Format("{0} {1}, do you want to play your favorite game?", dat_Greeting, playername, dat_verb1, dat_Creature1)); break; }

                    case 1:
                    { Say(String.Format("Would you like to play {0} cards?", dat_adj1)); break; }

                    case 2:
                    { Say(String.Format("People come from {0} to play cards here.", dat_TownRegion)); break; }

                    case 3:
                    { Say(String.Format("{0}, {1} want to play?", playername, dat_Greeting)); break; }
                    }
                }
            }
            #endregion

            #region Play says "Yes" or some other response
            for (int i = 0; i < Response.Length; i++)
            {
                if (speech == Response[i])
                {
                    if (m_ItemHasBeenReturned == true)
                    {
                        switch (Utility.Random(4))  //picks one of the following
                        {
                        case 0:
                        {
                            Say(String.Format("{0} draw a card and let me see it.", playername));
                            break;
                        }

                        case 1:
                        {
                            dat_article1 = char.ToUpper(dat_article1[0]) + dat_article1.Substring(1);
                            Say(String.Format("{0} my {1} card vs your {2} card..", playername, dat_adj1, dat_adj1));
                            break;
                        }

                        case 2:
                        {
                            dat_article1 = char.ToUpper(dat_article1[0]) + dat_article1.Substring(1);
                            Say(String.Format("Place your card back into my deck and let's see if you a winner.", dat_adj1));
                            break;
                        }

                        case 3:
                        {
                            dat_article1 = char.ToUpper(dat_article1[0]) + dat_article1.Substring(1);
                            Say(String.Format("Be a good {0} and deal the cards.", dat_Creature1, dat_adj1));
                            break;
                        }
                        }


                        //Choose Item Location
                        int x = Location.X - 1;
                        int y = Location.Y;
                        int z = Map.GetAverageZ(x, y);

                        if (Map.CanFit(x, y, Location.Z, 1))
                        {
                            Item item = new PlayingCards();
                            item.Name = dat_PlayingCards;
                            item.MoveToWorld(new Point3D(x, y, Location.Z), Map);
                            m_ItemHasBeenReturned = false;
                            HighCardBettyItemTimer t = new HighCardBettyItemTimer();
                            t.Start();
                        }
                        else if (Map.CanFit(x, y, z, 1))
                        {
                            Item item = new PlayingCards();
                            item.Name = dat_PlayingCards;
                            item.MoveToWorld(new Point3D(x, y, z), Map);
                            m_ItemHasBeenReturned = false;
                            HighCardBettyItemTimer t = new HighCardBettyItemTimer();
                            t.Start();
                        }
                    }
                    else
                    {
                        Say(String.Format("Let me see the card, {0} or {1}.  Hurry any card will due!", dat_adj1, dat_adj2));
                    }
                }
            }
            #endregion
        }