This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
||||
|
||||
[Script(ScriptCategory.Move, "high_jump_kick")]
|
||||
public class HighJumpKick : Script, IScriptOnMoveMiss
|
||||
public class HighJumpKick : Script, IScriptOnAfterHits
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public void OnMoveMiss(IExecutingMove move, IPokemon target)
|
||||
public void OnAfterHits(IExecutingMove move, IPokemon target)
|
||||
{
|
||||
var damage = move.Hits.Where(h => h.HasExecuted).Sum(h => h.Damage);
|
||||
if (damage == 0)
|
||||
{
|
||||
DoRecoil(move);
|
||||
}
|
||||
}
|
||||
|
||||
private static void DoRecoil(IExecutingMove move)
|
||||
{
|
||||
var damage = move.GetHitData(target, 0).Damage;
|
||||
var recoil = damage / 2;
|
||||
// This recoil damage will not exceed half the user's max HP
|
||||
var maxHp = move.User.BoostedStats.Hp;
|
||||
recoil = Math.Min(recoil, maxHp / 2);
|
||||
var recoil = maxHp / 2;
|
||||
if (recoil == 0)
|
||||
return;
|
||||
move.User.Damage(recoil, DamageSource.Misc);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user