Deukhoofd 77d7b86a3c
All checks were successful
Build / Build (push) Successful in 1m2s
Implement most pokeballs
2025-07-20 11:15:45 +02:00

31 lines
929 B
C#

namespace PkmnLib.Plugin.Gen7.Scripts.Items.Pokeballs;
[ItemScript("level_ball")]
public class LevelBall : PokeballScript
{
/// <inheritdoc />
public LevelBall(IItem item) : base(item)
{
}
/// <inheritdoc />
public override void ChangeCatchRate(IPokemon target, ref byte catchRate)
{
if (target.BattleData is null)
return;
var opponentSide = target.BattleData.SideIndex == 0 ? 1 : 0;
var opponent = target.BattleData.Battle.Sides[opponentSide].Pokemon.FirstOrDefault(x => x is not null);
if (opponent is null)
return;
var levelDifferenceModifier = (float)target.Level / opponent.Level;
var catchModifier = levelDifferenceModifier switch
{
>= 1f => 1f,
>= 0.5f => 2f,
>= 0.25f => 4f,
_ => 8f,
};
catchRate = catchRate.MultiplyOrMax(catchModifier);
}
}