Deukhoofd 6c13d20bf7
All checks were successful
Build / Build (push) Successful in 52s
Even more abilities
2025-06-14 11:30:56 +02:00

53 lines
1.5 KiB
C#

namespace PkmnLib.Plugin.Gen7.Scripts.Weather;
[Script(ScriptCategory.Weather, "rain")]
public class Rain : Script, ILimitedTurnsScript
{
private int? _duration;
/// <inheritdoc />
public int TurnsRemaining => _duration ?? 0;
/// <inheritdoc />
public void SetTurns(int turns)
{
_duration = turns;
}
/// <inheritdoc />
public override void OnEndTurn(IBattle battle)
{
_duration--;
if (_duration <= 0)
{
battle.SetWeather(null, 0);
}
}
/// <inheritdoc />
public override void ChangeBasePower(IExecutingMove move, IPokemon target, byte hit, ref ushort basePower)
{
var hitType = move.GetHitData(target, hit).Type;
if (hitType?.Name == "water")
{
// Increase Water-type move power by 50% in rain
basePower = (ushort)(basePower * 1.5);
}
else if (hitType?.Name == "fire")
{
// Decrease Fire-type move power by 50% in rain
basePower = (ushort)(basePower * 0.5);
}
}
/// <inheritdoc />
public override void ChangeAccuracy(IExecutingMove executingMove, IPokemon target, byte hitIndex,
ref int modifiedAccuracy)
{
modifiedAccuracy = executingMove.UseMove.Name.ToString() switch
{
"thunder" or "hurricane" or "bleakwind_storm" or "windbolt_storm" or "sandsear_storm" => 1000,
_ => modifiedAccuracy,
};
}
}