예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }