From 91f0609a980153c0929ba796feb1ad2eda4bcb23 Mon Sep 17 00:00:00 2001 From: watanabe4869 <105962248+watanabe4869@users.noreply.github.com> Date: Sun, 18 Jun 2023 17:30:38 +0900 Subject: [PATCH] =?UTF-8?q?HP=E8=A8=88=E7=AE=97=E3=81=A8=E3=82=AB=E3=82=A6?= =?UTF-8?q?=E3=83=B3=E3=82=BF=E3=83=BC=E5=87=A6=E7=90=86=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/BattleSystem.cs | 60 +++++++++++++++------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/Assets/Scripts/BattleSystem.cs b/Assets/Scripts/BattleSystem.cs index dfa219f..0d7f1e6 100644 --- a/Assets/Scripts/BattleSystem.cs +++ b/Assets/Scripts/BattleSystem.cs @@ -22,14 +22,18 @@ public async UniTask BattleProcessAsync(int playerAction) //ChatGPTからEnemyのActionTypeを取得 enemy.ActionType = await enemyAI.GetEnemyActionAsync(player.Hp, enemy.Hp); + //ダメージ計算とカウンターの成功判定 (player.DamageValue, enemy.DamageValue, player.CounterJudge, enemy.CounterJudge) = Damage(player.ActionType, enemy.ActionType); - player.Hp = HpCalculate(player.Hp, player.ActionType, player.DamageValue); - enemy.Hp = HpCalculate(enemy.Hp, enemy.ActionType, enemy.DamageValue); - + //HP計算 + (player.Hp, enemy.Hp) = HpCalculate(player.Hp, player.ActionType, player.DamageValue, enemy.Hp, enemy.ActionType, enemy.DamageValue); + //バトル終了判定 int battleJudge = BattleJudge(player.Hp, enemy.Hp); + + //先行判定 bool moveJudge = ActionJudge(player.CounterJudge); + return new BattleData(battleJudge, moveJudge, player, enemy); } @@ -164,53 +168,43 @@ public async UniTask BattleProcessAsync(int playerAction) //カウンターの処理 - switch (playerCounterJudge) + if (playerCounterJudge) { - case true: - playerAction = 0; - break; - - case false: - playerDamageValue = enemyDamageValue; - enemyDamageValue = 0; - break; + playerDamageValue = enemyDamageValue; + enemyDamageValue = 0; } - switch (enemyCounterJudge) + if (enemyCounterJudge) { - case true: - enemyDamageValue = 0; - break; - - case false: - enemyDamageValue = playerDamageValue; - playerDamageValue = 0; - break; + enemyDamageValue = playerDamageValue; + playerDamageValue = 0; } return (playerDamageValue, enemyDamageValue, playerCounterJudge, enemyCounterJudge); } //HP計算 - private int HpCalculate(int hp, int action, int damageValue) + private (int playerHp, int enemyHp) HpCalculate(int playerHp, int playerAction, int playerDamageValue, int enemyHp, int enemyAction, int enemyDamageValue) { - int _hp = hp; - int _damageValue = damageValue; - //回復だけ区別 - if (action == 2) + if ((playerAction == 2) && (enemyAction == 2)) { - _hp = _hp + _damageValue; + playerHp += playerDamageValue; + enemyHp += enemyDamageValue; } - else + else if (playerAction == 2) { - _hp = _hp - _damageValue; + playerHp += playerDamageValue - enemyDamageValue; } - - if (_hp <= 0) + else if (enemyAction == 2) + { + enemyHp += enemyDamageValue - playerDamageValue; + } + else { - _hp = 0; + playerHp -= enemyDamageValue; + enemyHp -= playerDamageValue; } - return _hp; + return (playerHp, enemyHp); } //勝敗判定(1:player勝利、0:継戦、ー1:enemy勝利)