More abilities, refactor custom triggers to be typed.
All checks were successful
Build / Build (push) Successful in 48s

This commit is contained in:
2025-06-13 11:15:48 +02:00
parent 4326794611
commit 6d71de375e
43 changed files with 630 additions and 196 deletions

View File

@@ -22,13 +22,9 @@ public class Sleep : Script
{
// 1-3 turns of sleep
Turns = battleData.Battle.Random.GetInt(1, 4);
source.RunScriptHook(x => x.CustomTrigger(CustomTriggers.ModifySleepTurns,
new Dictionary<StringKey, object?>
{
{ "pokemon", pokemon },
{ "turns", Turns },
}));
Turns = Math.Max(1, Turns);
var args = new CustomTriggers.ModifySleepTurnsArgs(pokemon, Turns);
source.RunScriptHook(x => x.CustomTrigger(CustomTriggers.ModifySleepTurns, args));
Turns = Math.Max(1, args.Turns);
}
}
@@ -45,14 +41,9 @@ public class Sleep : Script
if (move.UseMove.HasFlag("usable_while_asleep"))
return;
var bypass = false;
var pars = new Dictionary<StringKey, object?>
{
{ "bypass_sleep", bypass },
};
move.RunScriptHook(x => x.CustomTrigger(CustomTriggers.BypassSleep, pars));
bypass = pars.GetValueOrDefault("bypass_sleep", false) as bool? ?? false;
if (bypass)
var args = new CustomTriggers.BypassSleepArgs(move, false);
move.RunScriptHook(x => x.CustomTrigger(CustomTriggers.BypassSleep, args));
if (args.Bypass)
return;
prevent = true;
}