Example #1
0
    /// <summary>
    /// ターン処理
    /// </summary>
    public IEnumerator Turn()
    {
        // 自分の場にカードが出ている場合、エラーを出す
        if (fieldCardObj["player"])
        {
            Debug.LogError("自分の場にカードが存在します。");
            yield break;
        }

        // [player]カードをドロー
        yield return(DrawCard("player"));

        // プレイヤーが負けるまでバトルを続ける
        while (fieldCardObj["player"])
        {
            // [enemy]場にカードがなければカードをドロー
            if (!fieldCardObj["enemy"] && uIController.getDeckNum("enemy") != 0)
            {
                yield return(DrawCard("enemy"));
            }

            // カードの情報を変数に設定
            CardController playerCard = fieldCardObj["player"].GetComponent <CardController>();
            CardController enemyCard  = fieldCardObj["enemy"].GetComponent <CardController>();
            // 場に出たとき効果を持っていれば発動する
            yield return(playerCard.AppearanceEffect());

            yield return(enemyCard.AppearanceEffect());

            // バトルフェーズ
            yield return(BattlePhase());

            // 勝敗確認
            if (CheckResult() != 0)
            {
                yield break;
            }
        }

        // ドローパネルを有効にする
        uIController.SwitchDrawFlag(true);
    }