Beispiel #1
0
    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);
    }