2025-06-15 12:29:13 +02:00

34 lines
960 B
C#

using PkmnLib.Static.Utils;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "flame_wheel")]
public class FlameWheel : Script
{
private float _burnChance;
/// <inheritdoc />
public override void OnInitialize(IReadOnlyDictionary<StringKey, object?>? parameters)
{
if (parameters is null || !parameters.TryGetValue("burn_chance", out var burnChance) ||
burnChance is not float chance)
{
throw new Exception("Flame Wheel: Missing or invalid parameters.");
}
_burnChance = chance;
}
/// <inheritdoc />
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
if (move.User.HasStatus("frozen"))
{
move.User.ClearStatus();
}
if (move.Battle.Random.EffectChance(_burnChance, move, target, hit))
{
target.SetStatus("burned", move.User);
}
}
}