public LiplisGreet(LiplisTone Tone, int allocationID, LiplisChatSetting chatSetting) { this.Tone = Tone; this.AllocationId = allocationID; InitGreetList(chatSetting); }
/// <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]); }
//==================================================================== // // パブリックメソッド // //==================================================================== #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); }
/// <summary> /// おしゃべり設定の読み込み /// </summary> private void LoadTalkSetting() { //おしゃべり関連クラス初期化 this.Tone = new LiplisTone(toneSetting); this.Greet = new LiplisGreet(this.Tone, this.AllocationId, chatSetting); }
//==================================================================== // // シングルトン管理 // //==================================================================== #region シングルトン管理 /// <summary> /// コンストラクター /// </summary> public LiplisGreet(LiplisTone Tone, int allocationID) { this.Tone = Tone; this.AllocationId = allocationID; this.GreetList = new List <MsgGreet>(); }