Exemple #1
0
 public void LevelUp()
 {
     active.SetCurrentHitPoints(active.GetCurrentHitPoints() - hitPoints);
     level++;
     expAtNextLevel = (level + 1) * (level + 1) * (level + 1);
     GenerateStats();
     active.SetCurrentHitPoints(active.GetCurrentHitPoints() + hitPoints);
     active.UpdateText();
 }
Exemple #2
0
    private void AttackTarget(ActivePokemon attacker, ActivePokemon target)
    {
        UniquePokemon pokemonAttacker    = attacker.GetActive();
        UniquePokemon pokemonTarget      = target.GetActive();
        int           attackerLevel      = pokemonAttacker.GetLevel();
        int           attackerAttackStat = pokemonAttacker.GetAttack();
        int           targetDefenceStat  = pokemonTarget.GetDefence();

        int damage = CalculateDamage(attackerLevel, attackerAttackStat, targetDefenceStat);

        target.TakeDamage(damage);
        if (target.GetCurrentHitPoints() == 0)
        {
            target.Faint();
            if (attacker.IsPlayer())
            {
                pokemonAttacker.GainExp(pokemonTarget.CalculateExperienceReward());
                attacker.UpdateText();
            }
        }
    }