Finishes the last few moves
All checks were successful
Build / Build (push) Successful in 49s

This commit is contained in:
2025-05-18 12:20:21 +02:00
parent 3a9123b5ba
commit 9ff4745c0a
19 changed files with 585 additions and 27 deletions

View File

@@ -0,0 +1,28 @@
namespace PkmnLib.Plugin.Gen7.Scripts.Battle;
[Script(ScriptCategory.Battle, "water_sport")]
public class WaterSportEffect : Script
{
public readonly HashSet<IPokemon> Placers = new();
/// <inheritdoc />
public override void ChangeMoveDamage(IExecutingMove move, IPokemon target, byte hit, ref uint damage)
{
if (move.UseMove.MoveType.Name == "fire")
{
damage = damage / 2;
}
}
/// <inheritdoc />
public override void OnSwitchOut(IPokemon oldPokemon, byte position)
{
if (!Placers.Contains(oldPokemon))
return;
Placers.Remove(oldPokemon);
if (Placers.Count == 0)
{
RemoveSelf();
}
}
}

View File

@@ -0,0 +1,30 @@
using PkmnLib.Static.Moves;
namespace PkmnLib.Plugin.Gen7.Scripts.Battle;
public class WonderRoomEffect : Script
{
public int TurnsLeft { get; private set; } = 5;
/// <inheritdoc />
public override void ChangeDefensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint offensiveStat,
ImmutableStatisticSet<uint> targetStats, ref uint value)
{
value = move.UseMove.Category switch
{
MoveCategory.Special => targetStats.Defense,
MoveCategory.Physical => targetStats.SpecialDefense,
_ => value,
};
}
/// <inheritdoc />
public override void OnEndTurn(IBattle battle)
{
TurnsLeft--;
if (TurnsLeft <= 0)
{
RemoveSelf();
}
}
}