private void AgentAttack(int side, int power = 10) { float rand = Random.Range(0, 101); int criticalBuff = (side == 1)? playerMods.critical : enemyMods.critical; int damage = 0; switch (side) { case 1: // Base Damage damage = CalculateDamage(player.atk, enemy.def, power, player.Strength, enemy.Strength, playerMods, enemyMods); // Critical Check if (rand <= 5f + criticalBuff) { damage *= 2; } playerMods.strengthLose += 1; if (playerMods.strengthLose >= 10) { player.Strength--; playerMods.strengthLose -= 10; uiManager.UpdatePlayerStrength(player.Strength); } playerAnimator.Play("Attack"); enemyHealth -= damage; uiManager.DisplayDamageToEnemy(damage); break; case 2: // Base Damage damage = CalculateDamage(enemy.atk, player.def, power, enemy.Strength, player.Strength, enemyMods, playerMods); // Critical Check if (rand <= 5f + criticalBuff) { damage *= 2; } enemyMods.strengthLose += 1; if (enemyMods.strengthLose >= 10) { enemy.Strength--; enemyMods.strengthLose -= 10; uiManager.UpdateEnemyStrength(enemy.Strength); } enemyAnimator.Play("Attack"); playerHealth -= damage; uiManager.DisplayDamageToPlayer(damage); break; } Debug.Log("P: " + playerHealth + " E: " + enemyHealth); uiManager.UpdateHealth((float)playerHealth / playerStartHealth, (float)enemyHealth / enemyStartHealth); }
void PlayerAttack() { int damage = CalculateDamage(player.atk, enemy.def, 10, player.Strength, enemy.Strength, playerBoost, enemyBoost); playerBoost.strengthLose += 1; if (playerBoost.strengthLose >= 5) { player.Strength--; playerBoost.strengthLose -= 5; uiManager.UpdatePlayerStrength(player.Strength); } playerAnimator.Play("Attack"); if (enemyDefending) { if (enemyCounterAttack) { enemyAnimator.Play("Attack"); damage *= 2; playerHealth -= damage; uiManager.DisplayDamageToPlayer(damage); } else { damage /= 2; if (damage < 1) { damage = 1; } enemyHealth -= damage; uiManager.DisplayDamageToEnemy(damage); } } else { enemyHealth -= damage; uiManager.DisplayDamageToEnemy(damage); } uiManager.UpdateHealth(playerHealth, enemyHealth); }