示例#1
0
    //料理の効果
    public IEnumerator DishEffect(int cardID, int strength, int damageCal, bool isMyTurn)
    {
        GamePlayerManager attacker;
        GamePlayerManager defender;

        this.damageCal = damageCal;
        this.strength  = strength;

        //Debug.Log("damageCal  " + damageCal);

        effectMessage = null;


        if (isMyTurn)
        {
            attacker = player[0];
            defender = player[1];
        }
        else
        {
            attacker = player[1];
            defender = player[0];
        }



        //ランダム効果
        if (cardID == 2)
        {
            effectMessage = "ランダムで効果が発生する!";
            messageController.EffectMessage(effectMessage);
            yield return(new WaitForSeconds(2));

            RandomEffect(isMyTurn);
            //StopAllCoroutines();
            yield break;
        }


        //攻撃できなくても効果が出るもの
        switch (cardID)
        {
        case 3:
            IncreaseMyHandCost(isMyTurn);
            effectMessage = "食材のコストが上昇した!";
            break;

        case 4:
            IncreaseMyHandCal(isMyTurn);
            effectMessage = "食材のカロリーが上昇した!";
            break;

        case 5:
            MakeRareIngredient(isMyTurn);
            effectMessage = "食材がレアに変わった!";
            break;

        case 7:
            IncreaseMyCost(attacker, isMyTurn);
            effectMessage = "合成コストが上昇した!";
            break;

        case 8:
            NextAttack(attacker);
            effectMessage = "次に作る料理のカロリーが上昇する!";
            break;

        case 12:
            HpAttack(attacker, defender);
            break;

        case 13:
            ConditionAttack(defender, isMyTurn);
            break;

        case 14:
            CostAttack(attacker, defender, isMyTurn);
            break;

        case 18:
            HealCondition(attacker, defender, isMyTurn);
            break;

        case 20:
            HealHp(attacker, isMyTurn);
            effectMessage = "HPが回復した!";
            break;

        case 21:
            OneDefence(attacker);
            effectMessage = "次ターンのダメージを軽減する";
            break;

        case 22:
            AdditionalTurn(isMyTurn);
            break;

        case 23:
            SecondAttack(attacker);
            break;

        case 24:
            TurnBonus();
            break;

        case 25:
            MyConditionBonus(attacker, isMyTurn);
            break;

        case 26:
            EnemyCostBonus(defender, isMyTurn);
            break;

        default:
            Debug.Log("料理範囲外");
            break;
        }

        //効果テキスト
        if (effectMessage != null)
        {
            messageController.EffectMessage(effectMessage);
            effectMessage = null;
            yield return(new WaitForSeconds(2));
        }


        //「あなたの攻撃」テキスト
        messageController.AttackText(isMyTurn);
        yield return(new WaitForSeconds(1));


        if (this.damageCal > 0)
        {
            //ダメージテキスト
            defender.hp -= this.damageCal;
            uiManager.ShowDamageText(this.damageCal, isMyTurn);
            yield return(new WaitForSeconds(2));

            switch (cardID)
            {
            case 1:
                GamblingAttack();
                break;

            case 2:
                RandomDamage(isMyTurn);
                break;

            case 6:
                ReduceEnemyCost(defender, isMyTurn);
                effectMessage = "合成コストが減少した!";
                break;

            case 9:
                ReduceEnemyHandCost(isMyTurn);
                effectMessage = "食材のコストが減少した!";
                break;

            case 10:
                ReduceEnemyHandCal(isMyTurn);
                effectMessage = "食材のカロリーが減少した!";
                break;

            case 11:
                StealRareIngredient(isMyTurn);
                break;

            case 15:
                Paralysis(defender);
                if (isMyTurn)
                {
                    effectMessage = "相手を麻痺にした!";
                }
                else
                {
                    effectMessage = "麻痺になってしまった!";
                }
                break;

            case 16:
                Dark(defender);
                if (isMyTurn)
                {
                    effectMessage = "相手を暗闇にした!";
                }
                else
                {
                    effectMessage = "暗闇になってしまった!";
                }
                break;

            case 17:
                Poison(defender);
                if (isMyTurn)
                {
                    effectMessage = "相手を毒にした!";
                }
                else
                {
                    effectMessage = "毒になってしまった!";
                }
                break;

            case 19:
                DamageHealHp(attacker, isMyTurn);
                effectMessage = "HPが回復した!";
                break;

            default:
                break;
            }
        }
        else
        {
            //麻痺テキスト
            messageController.ParalysisText();
            yield return(new WaitForSeconds(2));
        }

        //効果テキスト
        if (effectMessage != null)
        {
            messageController.EffectMessage(effectMessage);
            effectMessage = null;
            yield return(new WaitForSeconds(2));
        }


        messageController.messagePanel.SetActive(false);

        GameManager.instance.ChangeTurn();
    }
示例#2
0
    IEnumerator Battle(int damageCal)
    {
        GamePlayerManager attacker;
        GamePlayerManager defender;

        if (isMyTurn)
        {
            attacker = player[0];
            defender = player[1];
        }
        else
        {
            attacker = player[1];
            defender = player[0];
        }



        //食べたメッセージ
        messageController.messagePanel.SetActive(true);
        messageController.EatMessage(eatCardController.model, isMyTurn);



        //料理
        if (eatCardController.model.kind == KIND.DISH)
        {
            //2枚使ったら2枚引く
            if (isMyTurn)
            {
                drawNum = 2;
            }

            attacker.cost -= mixCost;

            StartCoroutine(uiManager.ShowCost(isMyTurn));

            yield return(new WaitForSeconds(2));

            int cardID   = eatCardController.model.cardID;
            int strength = eatCardController.model.strength;

            //テスト
            //cardID = 1;
            //strength = 0;

            //ランダム効果
            if (cardID == 0)
            {
                messageController.EffectMessage("ランダムで効果が発生する!");
                yield return(new WaitForSeconds(2));

                if (isMyTurn)
                {
                    cardID = UnityEngine.Random.Range(1, 27);
                    RandomEffect(cardID, strength, damageCal);
                }
            }
            else
            {
                //yield return new WaitForSeconds(2);
                StartCoroutine(specialController.DishEffect(cardID, strength, damageCal, isMyTurn));
                //StartCoroutine(specialController.DishEffect(6, strength, damageCal, isMyTurn));
            }
        }
        //素材
        else
        {
            yield return(new WaitForSeconds(2));

            //「あなたの攻撃」テキスト
            messageController.AttackText(isMyTurn);
            yield return(new WaitForSeconds(1));


            defender.hp -= eatCardController.model.cal;
            uiManager.ShowDamageText(damageCal, isMyTurn);
            yield return(new WaitForSeconds(2));



            attacker.cost += eatCardController.model.cost;
            if (attacker.cost > maxCost)
            {
                attacker.cost = maxCost;
            }

            //1枚使ったら1枚引く
            if (isMyTurn)
            {
                drawNum = 1;
            }

            messageController.messagePanel.SetActive(false);

            ChangeTurn();
        }



        //if (isMyTurn)
        //{
        //    uiManager.decideButtonObj.SetActive(false);
        //}
        //else
        //{
        //    uiManager.decideButtonObj.SetActive(true);
        //}
    }