public void Exec(TalkGeneratorArgs args) { isSuccess = false; talkList = new Dictionary <string, double>(); // 全て報告済みなら実行失敗にする if (args.Agi.MySeerJudge.Count <= reportCount) { return; } List <Agent> seerList = args.Agi.GetComingOutAgent(Role.SEER); Judge reportJudge = args.Agi.MySeerJudge[reportCount]; // 初回占い結果が人間かつ対抗でない場合、次点占い先候補に人狼判定を出す if (args.Agi.Day == 1 && reportJudge.Result == Species.HUMAN && !seerList.Contains(reportJudge.Target) && new System.Random().NextDouble() < 0.9) { reportJudge = new Judge(0, args.Agi.Me, args.ActionPlan.DevineTarget, Species.WEREWOLF); } DivinedResultContentBuilder builder = new DivinedResultContentBuilder(reportJudge.Target, reportJudge.Result); talkList.Add(new Content(builder).Text, 999.0); // 報告件数のカウント(必ずこの発話を返す前提) reportCount++; isSuccess = true; }
public void Exec(TalkGeneratorArgs args) { isSuccess = false; talkList = new Dictionary <string, double>(); // 騙り判定を取得できなければ実行失敗にする if (!args.Items.ContainsKey("FakeSeerJudge")) { return; } // 騙り判定の取得 List <Judge> judgeList = (List <Judge>)args.Items["FakeSeerJudge"]; // 全て報告済みなら実行失敗にする if (judgeList.Count <= reportCount) { return; } Judge reportJudge = judgeList[reportCount]; DivinedResultContentBuilder builder = new DivinedResultContentBuilder(reportJudge.Target, reportJudge.Result); talkList.Add(new Content(builder).Text, 999.0); // 報告件数のカウント(必ずこの発話を返す前提) reportCount++; isSuccess = true; }
public void Exec(TalkGeneratorArgs args) { isSuccess = false; talkList = new Dictionary <string, double>(); // 全て報告済みなら実行失敗にする if (args.Agi.MySeerJudge.Count <= reportCount) { return; } Judge reportJudge = args.Agi.MySeerJudge[reportCount]; DivinedResultContentBuilder builder = new DivinedResultContentBuilder(reportJudge.Target, reportJudge.Result); talkList.Add(new Content(builder).Text, 999.0); // 報告件数のカウント(必ずこの発話を返す前提) reportCount++; isSuccess = true; }