/// <summary> /// ドロー効果が回ってきたときに取る行動を決定して返します。 /// </summary> /// <param name="drawNum">ドロー枚数。</param> /// <returns>このターンに出す対抗可能な手札のインデックス。何もせず効果を受ける場合は -1 を返します。</returns> public override int EffectDrawAction(int drawNum) { // 出せるカードをランダムに出す var option = EffectAvoidableOption.Select(x => x.Key).ToArray(); return(option.Length > 0 ? option[random.Next(option.Length)] : -1); }
/// <summary> /// 知る権利が回ってきたときに出せる 5 のカードを持っていた場合に取る行動を決定して返します。 /// </summary> /// <returns>このターンに出す対抗可能な手札のインデックス。何もせず効果を受ける場合は -1 を返します。</returns> public override int EffectDiscloseActionDiscard() { if (isDebug) { Console.Clear(); Console.WriteLine(GameMaster.Instance.Status); } if (EffectAvoidableOption.Count == 0) { return(-1); } // 出せるカードをランダムに出す var option = EffectAvoidableOption.Select(x => x.Key).ToArray(); return(option.Length > 0 ? option[random.Next(option.Length)] : -1); }
/// <summary> /// スキップが回ってきたときに取る行動を決定して返します。 /// </summary> /// <param name="drawNum">ドロー効果中の場合は、ドロー枚数。</param> /// <returns>このターンに出す対抗可能な手札のインデックス。何もせず効果を受ける場合は -1 を返します</returns> public override int EffectSkipAction(int drawNum) { if (isDebug) { Console.Clear(); Console.WriteLine(GameMaster.Instance.Status); } if (EffectAvoidableOption.Count == 0) { if (isDebug) { Console.WriteLine("スキップ効果を受けました。\n"); Thread.Sleep(WaitTime); } return(-1); } // 出せるカードを出す return(EffectAvoidableOption.First().Key); }
/// <summary> /// 凶ドロー効果が回ってきたときに取る行動を決定して返します。 /// </summary> /// <param name="drawNum">ドロー枚数。</param> /// <returns>このターンに出す対抗可能な手札のインデックス。何もせず効果を受ける場合は -1 を返します。</returns> public override int EffectQueenDrawAction(int drawNum) { if (isDebug) { Console.Clear(); Console.WriteLine(GameMaster.Instance.Status); } if (EffectAvoidableOption.Count == 0) { if (isDebug) { Console.WriteLine($"ドロー{EffectManager.Instance.DrawNum}!!\n"); Thread.Sleep(WaitTime); } return(-1); } // 出せるカードをランダムに出す var option = EffectAvoidableOption.Select(x => x.Key).ToArray(); return(option.Length > 0 ? option[random.Next(option.Length)] : -1); }