예제 #1
0
        public LiplisGreet(LiplisTone Tone, int allocationID, LiplisChatSetting chatSetting)
        {
            this.Tone         = Tone;
            this.AllocationId = allocationID;

            InitGreetList(chatSetting);
        }
예제 #2
0
        /// <summary>
        /// あいさつデータからトピックを生成する
        /// </summary>
        /// <returns></returns>
        public MsgTopic CreateGreetTopic(DateTime dt, LiplisTone Tone)
        {
            //ピックアップリスト生成
            List <MsgTopic> PicupList = new List <MsgTopic>();

            //現在時刻作成
            DateTime nowTime    = DateUtil.CreateDatetime(dt.Hour, dt.Minute, dt.Second);
            DateTime dayEndTime = DateUtil.CreateDatetime(23, 59, 59);
            DateTime daySrtTime = DateUtil.CreateDatetime(0, 0, 0);

            foreach (MsgGreet greet in GreetList)
            {
                //日またぎを考慮
                if (greet.SrtTime <= greet.EndTime)
                {
                    //日またがない
                    if (nowTime >= greet.SrtTime && nowTime <= greet.EndTime)
                    {
                        PicupList.Add(greet.GetTopic());
                    }
                }
                else
                {
                    //日またぎ
                    if ((nowTime >= greet.SrtTime && nowTime <= dayEndTime) || (nowTime >= daySrtTime && nowTime <= greet.EndTime))
                    {
                        PicupList.Add(greet.GetTopic());
                    }
                }
            }

            //0以下の場合は適当に返す
            if (PicupList.Count < 1)
            {
                if (GreetList.Count > 0)
                {
                    return(GreetList[0].GetTopic());
                }
                else
                {
                    return(new MsgTopic(Tone, "こんにちは", "こんにちは", 0, 0, false, 0));
                }
            }

            //シャッフルする
            PicupList.Shuffle();

            //選択されたあいさつを返す
            return(PicupList[0]);
        }
예제 #3
0
        //====================================================================
        //
        //                             パブリックメソッド
        //
        //====================================================================
        #region パブリックメソッド
        /// <summary>
        /// 時間、季節、条件から適切なあいさつを取得する
        /// </summary>
        public MsgTopic GetGreet(LiplisTone Tone)
        {
            //現在時刻取得
            DateTime dt = DateTime.Now;

            //トピックを生成する
            MsgTopic topic = CreateGreetTopic(dt, Tone);

            //今日は~の日です~
            //SetAnniversarySentence(topic.TalkSentenceList);

            //今日の天気は~です
            //SetWetherSentence(topic.TalkSentenceList);

            //生成したトピックを返す
            return(topic);
        }
예제 #4
0
 /// <summary>
 /// おしゃべり設定の読み込み
 /// </summary>
 private void LoadTalkSetting()
 {
     //おしゃべり関連クラス初期化
     this.Tone  = new LiplisTone(toneSetting);
     this.Greet = new LiplisGreet(this.Tone, this.AllocationId, chatSetting);
 }
예제 #5
0
 //====================================================================
 //
 //                          シングルトン管理
 //
 //====================================================================
 #region シングルトン管理
 /// <summary>
 /// コンストラクター
 /// </summary>
 public LiplisGreet(LiplisTone Tone, int allocationID)
 {
     this.Tone         = Tone;
     this.AllocationId = allocationID;
     this.GreetList    = new List <MsgGreet>();
 }