More abilities, refactor stealing held items
All checks were successful
Build / Build (push) Successful in 50s

This commit is contained in:
2025-06-15 11:49:15 +02:00
parent 1b9d137bb0
commit f5d18d7186
22 changed files with 326 additions and 21 deletions

View File

@@ -0,0 +1,31 @@
namespace PkmnLib.Plugin.Gen7.Scripts.Abilities;
/// <summary>
/// Static is an ability that may paralyze attackers using contact moves.
///
/// <see href="https://bulbapedia.bulbagarden.net/wiki/Static_(Ability)">Bulbapedia - Static</see>
/// </summary>
[Script(ScriptCategory.Ability, "static")]
public class Static : Script
{
private const int ChanceToParalyze = 30;
/// <inheritdoc />
public override void OnIncomingHit(IExecutingMove move, IPokemon target, byte hit)
{
if (!move.GetHitData(target, hit).IsContact)
return;
if (move.Battle.Random.GetInt(0, 100) < ChanceToParalyze)
{
EventBatchId batchId = new();
if (target.SetStatus(ScriptUtils.ResolveName<Status.Paralyzed>(), false, batchId))
{
move.Battle.EventHook.Invoke(new AbilityTriggerEvent(target)
{
BatchId = batchId,
});
}
}
}
}