This commit is contained in:
@@ -52,19 +52,21 @@ public class Gen7BattleStatCalculator : IBattleStatCalculator
|
||||
byte moveAccuracy)
|
||||
{
|
||||
var accuracyModifier = 1.0f;
|
||||
executingMove.RunScriptHookInterface<IScriptChangeAccuracyModifier>(x =>
|
||||
executingMove.RunScriptHook<IScriptChangeAccuracyModifier>(x =>
|
||||
x.ChangeAccuracyModifier(executingMove, target, hitIndex, ref accuracyModifier));
|
||||
var modifiedAccuracy = (int)(moveAccuracy * accuracyModifier);
|
||||
// ReSharper disable once AccessToModifiedClosure
|
||||
executingMove.RunScriptHook(x => x.ChangeAccuracy(executingMove, target, hitIndex, ref modifiedAccuracy));
|
||||
executingMove.RunScriptHook<IScriptChangeAccuracy>(x =>
|
||||
x.ChangeAccuracy(executingMove, target, hitIndex, ref modifiedAccuracy));
|
||||
if (modifiedAccuracy >= 255)
|
||||
return 255;
|
||||
target.RunScriptHook(x => x.ChangeIncomingAccuracy(executingMove, target, hitIndex, ref modifiedAccuracy));
|
||||
target.RunScriptHook<IScriptChangeIncomingAccuracy>(x =>
|
||||
x.ChangeIncomingAccuracy(executingMove, target, hitIndex, ref modifiedAccuracy));
|
||||
if (modifiedAccuracy >= 255)
|
||||
return 255;
|
||||
var targetEvasion = target.StatBoost.Evasion;
|
||||
var ignoreEvasion = false;
|
||||
executingMove.RunScriptHookInterface<IScriptBypassEvasionStatBoosts>(x =>
|
||||
executingMove.RunScriptHook<IScriptBypassEvasionStatBoosts>(x =>
|
||||
x.BypassEvasionStatBoosts(executingMove, target, hitIndex, ref ignoreEvasion));
|
||||
if (ignoreEvasion)
|
||||
targetEvasion = 0;
|
||||
|
||||
@@ -26,7 +26,8 @@ public class Gen7CaptureLibrary : ICaptureLibrary
|
||||
}
|
||||
|
||||
byte bonusStatus = 1;
|
||||
target.RunScriptHook(x => x.ChangeCatchRateBonus(target, captureItem, ref bonusStatus));
|
||||
target.RunScriptHook<IScriptChangeCatchRateBonus>(x =>
|
||||
x.ChangeCatchRateBonus(target, captureItem, ref bonusStatus));
|
||||
|
||||
var modifiedCatchRate = (3.0f * maxHealth - 2.0f * currentHealth) * catchRate * bonusBall / (3.0f * maxHealth);
|
||||
modifiedCatchRate *= bonusStatus;
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
if (hitData.IsCritical)
|
||||
{
|
||||
var critModifier = 1.5f;
|
||||
executingMove?.RunScriptHookInterface<IScriptChangeCriticalModifier>(script =>
|
||||
executingMove?.RunScriptHook<IScriptChangeCriticalModifier>(script =>
|
||||
script.ChangeCriticalModifier(executingMove, target, hitNumber, ref critModifier));
|
||||
floatDamage = MathF.Floor(floatDamage * critModifier);
|
||||
}
|
||||
@@ -51,7 +51,7 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
stabModifier = 1.5f;
|
||||
isStab = true;
|
||||
}
|
||||
executingMove?.RunScriptHookInterface<IScriptChangeStabModifier>(script =>
|
||||
executingMove?.RunScriptHook<IScriptChangeStabModifier>(script =>
|
||||
script.ChangeStabModifier(executingMove, target, hitNumber, isStab, ref stabModifier));
|
||||
floatDamage = MathF.Floor(floatDamage * stabModifier);
|
||||
|
||||
@@ -65,9 +65,9 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
|
||||
if (executingMove is not null)
|
||||
{
|
||||
executingMove.RunScriptHookInterface<IScriptChangeMoveDamage>(script =>
|
||||
executingMove.RunScriptHook<IScriptChangeMoveDamage>(script =>
|
||||
script.ChangeMoveDamage(executingMove, target, hitNumber, ref damage));
|
||||
target.RunScriptHookInterface<IScriptChangeIncomingMoveDamage>(script =>
|
||||
target.RunScriptHook<IScriptChangeIncomingMoveDamage>(script =>
|
||||
script.ChangeIncomingMoveDamage(executingMove, target, hitNumber, ref damage));
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
if (executingMove.UseMove.Category == MoveCategory.Status)
|
||||
return 0;
|
||||
var basePower = (ushort)executingMove.UseMove.BasePower;
|
||||
executingMove.RunScriptHookInterface<IScriptChangeBasePower>(script =>
|
||||
executingMove.RunScriptHook<IScriptChangeBasePower>(script =>
|
||||
script.ChangeBasePower(executingMove, target, hitNumber, ref basePower));
|
||||
return basePower;
|
||||
}
|
||||
@@ -91,7 +91,7 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
if (executingMove.UseMove.Category == MoveCategory.Status)
|
||||
return false;
|
||||
byte critStage = 0;
|
||||
executingMove.RunScriptHookInterface<IScriptChangeCriticalStage>(script =>
|
||||
executingMove.RunScriptHook<IScriptChangeCriticalStage>(script =>
|
||||
script.ChangeCriticalStage(executingMove, target, hitNumber, ref critStage));
|
||||
|
||||
var random = battle.Random;
|
||||
@@ -120,14 +120,14 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
// move is critical, and the target has a defensive stat boost of > 0, but a script is
|
||||
// allowed to change this.
|
||||
var bypassDefense = hitData.IsCritical && target.StatBoost.GetStatistic(defensive) > 0;
|
||||
executingMove?.RunScriptHookInterface<IScriptBypassDefensiveStatBoosts>(script =>
|
||||
executingMove?.RunScriptHook<IScriptBypassDefensiveStatBoosts>(script =>
|
||||
script.BypassDefensiveStatBoosts(executingMove, target, hitNumber, ref bypassDefense));
|
||||
|
||||
// Check if we can bypass the offensive stat boost on the user. We default to this if the
|
||||
// move is critical, and the user has an offensive stat boost of < 0, but a script is
|
||||
// allowed to change this.
|
||||
var bypassOffense = hitData.IsCritical && user.StatBoost.GetStatistic(offensive) < 0;
|
||||
executingMove?.RunScriptHookInterface<IScriptBypassOffensiveStatBoosts>(script =>
|
||||
executingMove?.RunScriptHook<IScriptBypassOffensiveStatBoosts>(script =>
|
||||
script.BypassOffensiveStatBoosts(executingMove, target, hitNumber, ref bypassOffense));
|
||||
|
||||
var userStats = user.BoostedStats;
|
||||
@@ -143,22 +143,22 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
|
||||
if (executingMove != null)
|
||||
{
|
||||
executingMove.RunScriptHookInterface<IScriptChangeOffensiveStatValue>(script =>
|
||||
executingMove.RunScriptHook<IScriptChangeOffensiveStatValue>(script =>
|
||||
script.ChangeOffensiveStatValue(executingMove, target, hitNumber, defensiveStat, targetStats, offensive,
|
||||
ref offensiveStat));
|
||||
executingMove.RunScriptHookInterface<IScriptChangeDefensiveStatValue>(script =>
|
||||
executingMove.RunScriptHook<IScriptChangeDefensiveStatValue>(script =>
|
||||
script.ChangeDefensiveStatValue(executingMove, target, hitNumber, origOffensiveStat, targetStats,
|
||||
defensive, ref defensiveStat));
|
||||
target.RunScriptHookInterface<IScriptChangeIncomingMoveOffensiveStatValue>(script =>
|
||||
target.RunScriptHook<IScriptChangeIncomingMoveOffensiveStatValue>(script =>
|
||||
script.ChangeIncomingMoveOffensiveStatValue(executingMove, target, hitNumber, defensiveStat,
|
||||
targetStats, offensive, ref offensiveStat));
|
||||
target.RunScriptHookInterface<IScriptChangeIncomingMoveDefensiveStatValue>(script =>
|
||||
target.RunScriptHook<IScriptChangeIncomingMoveDefensiveStatValue>(script =>
|
||||
script.ChangeIncomingMoveDefensiveStatValue(executingMove, target, hitNumber, origOffensiveStat,
|
||||
targetStats, defensive, ref defensiveStat));
|
||||
}
|
||||
|
||||
var modifier = (float)offensiveStat / defensiveStat;
|
||||
executingMove?.RunScriptHookInterface<IScriptChangeDamageStatModifier>(script =>
|
||||
executingMove?.RunScriptHook<IScriptChangeDamageStatModifier>(script =>
|
||||
script.ChangeDamageStatModifier(executingMove, target, hitNumber, ref modifier));
|
||||
|
||||
return modifier;
|
||||
@@ -172,9 +172,9 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama
|
||||
{
|
||||
var modifier = 1.0f;
|
||||
|
||||
executingMove.RunScriptHookInterface<IScriptChangeDamageModifier>(script =>
|
||||
executingMove.RunScriptHook<IScriptChangeDamageModifier>(script =>
|
||||
script.ChangeDamageModifier(executingMove, target, hitNumber, ref modifier));
|
||||
target.RunScriptHookInterface<IScriptChangeIncomingMoveDamageModifier>(script =>
|
||||
target.RunScriptHook<IScriptChangeIncomingMoveDamageModifier>(script =>
|
||||
script.ChangeIncomingMoveDamageModifier(executingMove, target, hitNumber, ref modifier));
|
||||
|
||||
return modifier;
|
||||
|
||||
Reference in New Issue
Block a user