This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Items.Pokeballs;
|
||||
|
||||
/// <summary>
|
||||
/// An implementation of a pokeball script that just has a flat catch rate bonus.
|
||||
/// </summary>
|
||||
[ItemScript("pokeball_flat_modifier")]
|
||||
public class PokeballFlatModifier : PokeballScript
|
||||
{
|
||||
private float _catchModifier;
|
||||
|
||||
/// <inheritdoc />
|
||||
public PokeballFlatModifier(IItem item) : base(item)
|
||||
{
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void OnInitialize(IReadOnlyDictionary<StringKey, object?>? parameters)
|
||||
{
|
||||
var catchModifier = 1f;
|
||||
if (parameters != null && parameters.TryGetValue("catchRate", out var catchRateObj))
|
||||
{
|
||||
catchModifier = catchRateObj switch
|
||||
{
|
||||
float catchModifierFloat => catchModifierFloat,
|
||||
int catchModifierInt => catchModifierInt,
|
||||
_ => catchModifier,
|
||||
};
|
||||
}
|
||||
|
||||
_catchModifier = catchModifier;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void ChangeCatchRate(IPokemon target, ref byte catchRate)
|
||||
{
|
||||
catchRate = catchRate.MultiplyOrMax(_catchModifier);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user