Exemplo n.º 1
0
        public MsgTopic TopicListDequeue(List <LiplisModel> ModelList, int retryCnt)
        {
            //次の話題をロードする
            MsgTopic result = LiplisStatus.Instance.NewTopic.TalkTopicList.Dequeue();

            TopicUtil.SetAllocationIdAndTone(result, ModelList);

            //現在ロード中の話題をおしゃべり済みに入れる
            if (!result.FlgNotAddChatted)
            {
                LiplisStatus.Instance.NewTopic.ChattedKeyList.AddToNotDuplicate(result.Clone());
            }

            //話題一致ならそのまま帰す
            if (LiplisSetting.Instance.Setting.CatCheck(result.TopicClassification))
            {
                return(result);
            }
            else
            {
                if (retryCnt > 10)
                {
                    //10回やってダメならそのまま帰す
                    return(result);
                }
                else
                {
                    retryCnt++;
                    return(TopicListDequeue(ModelList, retryCnt));
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 対象データをリストから削除し、おしゃべり済みに移行する
        /// </summary>
        /// <param name="topic"></param>
        /// <returns></returns>
        public MsgTopic TopicListDequeueTargetTopic(MsgTopic topic)
        {
            //次の話題をロードする
            LiplisStatus.Instance.NewTopic.TalkTopicList.Remove(topic);

            //現在ロード中の話題をおしゃべり済みに入れる
            if (!topic.FlgNotAddChatted)
            {
                LiplisStatus.Instance.NewTopic.ChattedKeyList.AddToNotDuplicate(topic.Clone());
            }

            return(topic);
        }