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); //} }
//料理の効果 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(); }
//料理の効果 public IEnumerator DishEffect(int cardID, bool isStrong, int damageCal, bool isAttacker) { messageController.messagePanel.SetActive(true); messageController.ChangeMessageColor(isAttacker); this.isStrong = isStrong; this.damageCal = damageCal; this.isAttacker = isAttacker; effectMessage = null; if (isAttacker) { attacker = player[0]; defender = player[1]; attackerName = gameManager.playerName[0]; defenderName = gameManager.playerName[1]; } else { attacker = player[1]; defender = player[0]; attackerName = gameManager.playerName[1]; defenderName = gameManager.playerName[0]; } if (cardID == 0) { messageController.EatMessage(gameManager.eatCardController[attacker.playerIndex].model, isAttacker); yield return(new WaitForSeconds(2f)); } //攻撃できなくても効果が出るもの switch (cardID) { case 0: RandomEffect(); break; case 1: GamblingAttack(); break; case 2: RandomDamage(); break; case 3: EnemyCostBonus(); break; case 4: MyConditionBonus(); break; case 5: TurnCountBonus(); break; case 6: ThrowEnemyRare(); break; case 7: IncreaseMyRare(); break; case 8: StealEnemyRare(); break; case 9: HealHp(); break; case 10: DamageHealHp(); break; case 11: HealCondition(); break; case 12: DishAttack(); break; case 13: ConditionAttack(); break; case 14: BadIngredientAttack(); break; case 15: StealEnemyCost(); break; case 16: IncreaseMyCost(); break; case 17: ReduceEnemyCost(); break; case 18: Clumsy(); break; case 19: Dark(); break; case 20: Poison(); break; case 21: ReduceDamage(); break; case 22: DamageCounter(); break; case 23: InvalidateEffect(); break; case 24: WeakenIngredient("赤食材"); break; case 25: WeakenIngredient("黄食材"); break; case 26: WeakenIngredient("緑食材"); break; default: Debug.Log("料理範囲外"); break; } if (effectMessage != null) { messageController.EffectMessage(effectMessage); effectMessage = null; yield return(new WaitForSeconds(2f)); } //ランダム if (cardID == 0) { gameManager.eatCardController[attacker.playerIndex].model.cardID = randomCardID; randomCardID = -1; if (isAttacker || gameManager.single) { gameManager.DamageCalculation(); } } else { gameManager.CheckStatus(); } }