public void LevelUp() { active.SetCurrentHitPoints(active.GetCurrentHitPoints() - hitPoints); level++; expAtNextLevel = (level + 1) * (level + 1) * (level + 1); GenerateStats(); active.SetCurrentHitPoints(active.GetCurrentHitPoints() + hitPoints); active.UpdateText(); }
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(); } } }