Skip to content

Commit

Permalink
Merge pull request #16 from OUCC/#2-BattleSystemの作成
Browse files Browse the repository at this point in the history
HP計算とカウンター処理を修正
  • Loading branch information
aiueo-1234 authored Jun 18, 2023
2 parents 55c06a9 + 91f0609 commit 83a38c7
Showing 1 changed file with 27 additions and 33 deletions.
60 changes: 27 additions & 33 deletions Assets/Scripts/BattleSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,18 @@ public async UniTask<BattleData> 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);
}

Expand Down Expand Up @@ -164,53 +168,43 @@ public async UniTask<BattleData> 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勝利)
Expand Down

0 comments on commit 83a38c7

Please sign in to comment.