More move scripts
This commit is contained in:
13
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LockOn.cs
Normal file
13
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LockOn.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
|
||||
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
||||
|
||||
[Script(ScriptCategory.Move, "lock_on")]
|
||||
public class LockOn : Script
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.Volatile.Add(new LockOnEffect(target));
|
||||
}
|
||||
}
|
||||
19
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LowKick.cs
Normal file
19
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LowKick.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
||||
|
||||
[Script(ScriptCategory.Move, "low_kick")]
|
||||
public class LowKick : Script
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override void ChangeBasePower(IExecutingMove move, IPokemon target, byte hit, ref byte basePower)
|
||||
{
|
||||
basePower = target.WeightInKg switch
|
||||
{
|
||||
< 10 => 20,
|
||||
< 25 => 40,
|
||||
< 50 => 60,
|
||||
< 100 => 80,
|
||||
< 200 => 100,
|
||||
_ => 120,
|
||||
};
|
||||
}
|
||||
}
|
||||
13
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LuckyChant.cs
Normal file
13
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LuckyChant.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
|
||||
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
||||
|
||||
[Script(ScriptCategory.Move, "lucky_chant")]
|
||||
public class LuckyChant : Script
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.Volatile.Add(new LuckyChantEffect());
|
||||
}
|
||||
}
|
||||
14
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LunarDance.cs
Normal file
14
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/LunarDance.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using PkmnLib.Plugin.Gen7.Scripts.Side;
|
||||
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
||||
|
||||
[Script(ScriptCategory.Move, "lunar_dance")]
|
||||
public class LunarDance : Script
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
var battleData = move.User.BattleData;
|
||||
battleData?.BattleSide.VolatileScripts.Add(new LunarDanceEffect(battleData.Position));
|
||||
}
|
||||
}
|
||||
27
Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LockOnEffect.cs
Normal file
27
Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LockOnEffect.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon;
|
||||
|
||||
[Script(ScriptCategory.Pokemon, "lock_on")]
|
||||
public class LockOnEffect : Script
|
||||
{
|
||||
private readonly IPokemon _placer;
|
||||
|
||||
public LockOnEffect(IPokemon placer)
|
||||
{
|
||||
_placer = placer;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void ChangeAccuracy(IExecutingMove executingMove, IPokemon target, byte hitIndex,
|
||||
ref int modifiedAccuracy)
|
||||
{
|
||||
if (_placer != target)
|
||||
return;
|
||||
modifiedAccuracy = 255;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void OnEndTurn(IBattle battle)
|
||||
{
|
||||
RemoveSelf();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon;
|
||||
|
||||
public class LuckyChantEffect : Script
|
||||
{
|
||||
private int _turnsLeft = 5;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void BlockCriticalHit(IExecutingMove move, IPokemon target, byte hit, ref bool block)
|
||||
{
|
||||
block = true;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void OnEndTurn(IBattle battle)
|
||||
{
|
||||
_turnsLeft--;
|
||||
if (_turnsLeft > 0)
|
||||
return;
|
||||
RemoveSelf();
|
||||
}
|
||||
}
|
||||
17
Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/LunarDanceEffect.cs
Normal file
17
Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/LunarDanceEffect.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Side;
|
||||
|
||||
[Script(ScriptCategory.Side, "lunar_dance")]
|
||||
public class LunarDanceEffect(byte position) : Script
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override void OnSwitchIn(IPokemon pokemon, byte position1)
|
||||
{
|
||||
if (position != position1)
|
||||
return;
|
||||
|
||||
pokemon.Heal(pokemon.MaxHealth);
|
||||
pokemon.RestoreAllPP();
|
||||
pokemon.ClearStatus();
|
||||
RemoveSelf();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user