This commit is contained in:
@@ -23,6 +23,6 @@ public class Acupressure : Script
|
||||
|
||||
// Choose a random stat to raise. 0 is HP, so we start at 1.
|
||||
var stat = (Statistic)move.User.BattleData!.Battle.Random.GetInt(1, (int)Statistic.Speed + 1);
|
||||
target.ChangeStatBoost(stat, 2, false);
|
||||
target.ChangeStatBoost(stat, 2, false, false);
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ public class Autotomize : Script
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
var user = move.User;
|
||||
if (user.ChangeStatBoost(Statistic.Speed, 2, true) && user.ChangeWeightInKgBy(-100.0f))
|
||||
if (user.ChangeStatBoost(Statistic.Speed, 2, true, false) && user.ChangeWeightInKgBy(-100.0f))
|
||||
{
|
||||
var battle = user.BattleData?.Battle;
|
||||
battle?.EventHook.Invoke(new DialogEvent("pokemon_became_nimble", new Dictionary<string, object>
|
||||
|
||||
@@ -15,6 +15,6 @@ public class BellyDrum : Script
|
||||
|
||||
target.Damage(maxHealthHalved, DamageSource.Misc);
|
||||
// Raising the user's Attack by 12 stages should always set it to +6.
|
||||
target.ChangeStatBoost(Statistic.Attack, 12, true);
|
||||
target.ChangeStatBoost(Statistic.Attack, 12, true, false);
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@ public class Bounce : Script
|
||||
var random = battle.Random;
|
||||
if (random.EffectChance(30, move, target, hit))
|
||||
{
|
||||
target.SetStatus("paralyzed");
|
||||
target.SetStatus("paralyzed", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,6 @@ public class Captivate : Script
|
||||
move.GetHitData(target, hit).Fail();
|
||||
return;
|
||||
}
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, -2, false);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, -2, false, false);
|
||||
}
|
||||
}
|
||||
@@ -24,10 +24,10 @@ public class ChangeAllTargetStats : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.ChangeStatBoost(Statistic.Attack, _amount, target == move.User);
|
||||
target.ChangeStatBoost(Statistic.Defense, _amount, target == move.User);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, _amount, target == move.User);
|
||||
target.ChangeStatBoost(Statistic.SpecialDefense, _amount, target == move.User);
|
||||
target.ChangeStatBoost(Statistic.Speed, _amount, target == move.User);
|
||||
target.ChangeStatBoost(Statistic.Attack, _amount, target == move.User, false);
|
||||
target.ChangeStatBoost(Statistic.Defense, _amount, target == move.User, false);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, _amount, target == move.User, false);
|
||||
target.ChangeStatBoost(Statistic.SpecialDefense, _amount, target == move.User, false);
|
||||
target.ChangeStatBoost(Statistic.Speed, _amount, target == move.User, false);
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ public class ChangeMultipleTargetStatBoosts : Script
|
||||
EventBatchId batchId = new();
|
||||
foreach (var stat in _statBoosts)
|
||||
{
|
||||
target.ChangeStatBoost(stat.Key, stat.Value, true, batchId);
|
||||
target.ChangeStatBoost(stat.Key, stat.Value, true, false, batchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ public class ChangeMultipleUserStatBoosts : Script
|
||||
EventBatchId batchId = new();
|
||||
foreach (var stat in _statBoosts)
|
||||
{
|
||||
move.User.ChangeStatBoost(stat.Key, stat.Value, true, batchId);
|
||||
move.User.ChangeStatBoost(stat.Key, stat.Value, true, false, batchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public abstract class ChangeTargetStats : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.ChangeStatBoost(_stat, _amount, target == move.User);
|
||||
target.ChangeStatBoost(_stat, _amount, target == move.User, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ public abstract class ChangeUserStats : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
move.User.ChangeStatBoost(_stat, _amount, true);
|
||||
move.User.ChangeStatBoost(_stat, _amount, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ public class Charge : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, 1, true);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, 1, true, false);
|
||||
move.User.Volatile.Add(new ChargeEffect());
|
||||
}
|
||||
}
|
||||
@@ -24,9 +24,9 @@ public class Curse : Script
|
||||
else
|
||||
{
|
||||
EventBatchId batchId = new();
|
||||
move.User.ChangeStatBoost(Statistic.Speed, -1, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, 1, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Attack, 1, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Speed, -1, true, false, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, 1, true, false, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Attack, 1, true, false, batchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ public class DragonAscent : Script
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
EventBatchId batchId = new();
|
||||
move.User.ChangeStatBoost(Statistic.Defense, -1, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, -1, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, -1, true, false, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, -1, true, false, batchId);
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ public class FellStinger : Script
|
||||
{
|
||||
if (target.IsFainted)
|
||||
{
|
||||
move.User.ChangeStatBoost(Statistic.Attack, 2, true);
|
||||
move.User.ChangeStatBoost(Statistic.Attack, 2, true, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class FireFang : Script
|
||||
var random = battleData.Battle.Random;
|
||||
if (random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus("burned");
|
||||
target.SetStatus("burned", false);
|
||||
}
|
||||
|
||||
// It also has an independent 10% chance of causing the target to flinch, if the user attacks before the target.
|
||||
|
||||
@@ -28,7 +28,7 @@ public class FlameWheel : Script
|
||||
|
||||
if (move.Battle.Random.EffectChance(_burnChance, move, target, hit))
|
||||
{
|
||||
target.SetStatus("burned");
|
||||
target.SetStatus("burned", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ public class FlareBlitz : Script
|
||||
|
||||
if (battleData.Battle.Random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus("burned");
|
||||
target.SetStatus("burned", false);
|
||||
}
|
||||
|
||||
var hitData = move.GetHitData(target, hit);
|
||||
|
||||
@@ -8,7 +8,7 @@ public class Flatter : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, 1, false);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, 1, false, false);
|
||||
target.Volatile.StackOrAdd("confusion", () => new Confusion());
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public class FlowerShield : Script
|
||||
continue;
|
||||
if (!pokemon.Types.Contains(grassType))
|
||||
continue;
|
||||
pokemon.ChangeStatBoost(Statistic.Defense, 1, pokemon == move.User, batchId);
|
||||
pokemon.ChangeStatBoost(Statistic.Defense, 1, pokemon == move.User, false, batchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ public class Foresight : Script
|
||||
return;
|
||||
var typeLibrary = battleData.Battle.Library.StaticLibrary.Types;
|
||||
target.Volatile.Add(new ForesightEffect(typeLibrary));
|
||||
target.ChangeStatBoost(Statistic.Evasion, (sbyte)-target.StatBoost.Evasion, false);
|
||||
target.ChangeStatBoost(Statistic.Evasion, (sbyte)-target.StatBoost.Evasion, false, false);
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public class FreezeDry : Script
|
||||
|
||||
if (battleData.Battle.Random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus("frozen");
|
||||
target.SetStatus("frozen", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@ public class FreezeShock : BaseChargeMove<RequireChargeEffect>
|
||||
|
||||
if (battleData.Battle.Random.EffectChance(30, move, target, hit))
|
||||
{
|
||||
target.SetStatus("paralyzed");
|
||||
target.SetStatus("paralyzed", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,8 +19,8 @@ public class GearUp : Script
|
||||
var ability = pokemon.ActiveAbility?.Name;
|
||||
if (ability != "plus" && ability != "minus")
|
||||
continue;
|
||||
pokemon.ChangeStatBoost(Statistic.Attack, 1, pokemon == move.User, evtBatchId);
|
||||
pokemon.ChangeStatBoost(Statistic.SpecialAttack, 1, pokemon == move.User, evtBatchId);
|
||||
pokemon.ChangeStatBoost(Statistic.Attack, 1, pokemon == move.User, false, evtBatchId);
|
||||
pokemon.ChangeStatBoost(Statistic.SpecialAttack, 1, pokemon == move.User, false, evtBatchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,8 +12,8 @@ public class Geomancy : BaseChargeMove<RequireChargeEffect>
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
EventBatchId eventBatchId = new();
|
||||
move.User.ChangeStatBoost(Statistic.SpecialAttack, 2, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, 2, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.Speed, 2, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialAttack, 2, true, false, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, 2, true, false, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.Speed, 2, true, false, eventBatchId);
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ public class Growth : Script
|
||||
sbyte amount = 1;
|
||||
if (move.Battle.WeatherName == ScriptUtils.ResolveName<HarshSunlight>())
|
||||
amount = 2;
|
||||
move.User.ChangeStatBoost(Statistic.Attack, amount, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialAttack, amount, true, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.Attack, amount, true, false, batchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialAttack, amount, true, false, batchId);
|
||||
}
|
||||
}
|
||||
@@ -17,11 +17,11 @@ public class GuardSwap : Script
|
||||
var userSpecialDefense = userStats.GetStatistic(Statistic.SpecialDefense);
|
||||
var targetSpecialDefense = targetStats.GetStatistic(Statistic.SpecialDefense);
|
||||
|
||||
user.ChangeStatBoost(Statistic.Defense, (sbyte)(targetDefense - userDefense), true, eventBatchId);
|
||||
user.ChangeStatBoost(Statistic.SpecialDefense, (sbyte)(targetSpecialDefense - userSpecialDefense), true,
|
||||
user.ChangeStatBoost(Statistic.Defense, (sbyte)(targetDefense - userDefense), true, true, eventBatchId);
|
||||
user.ChangeStatBoost(Statistic.SpecialDefense, (sbyte)(targetSpecialDefense - userSpecialDefense), true, true,
|
||||
eventBatchId);
|
||||
target.ChangeStatBoost(Statistic.Defense, (sbyte)(userDefense - targetDefense), false, eventBatchId);
|
||||
target.ChangeStatBoost(Statistic.Defense, (sbyte)(userDefense - targetDefense), false, true, eventBatchId);
|
||||
target.ChangeStatBoost(Statistic.SpecialDefense, (sbyte)(userSpecialDefense - targetSpecialDefense), false,
|
||||
eventBatchId);
|
||||
true, eventBatchId);
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,8 @@ public class HeartSwap : Script
|
||||
var targetStat = targetStats.GetStatistic(stat);
|
||||
if (userStat == targetStat)
|
||||
continue;
|
||||
move.User.ChangeStatBoost(stat, (sbyte)(userStat - targetStat), true, eventBatchId);
|
||||
target.ChangeStatBoost(stat, (sbyte)(targetStat - userStat), false, eventBatchId);
|
||||
move.User.ChangeStatBoost(stat, (sbyte)(userStat - targetStat), true, true, eventBatchId);
|
||||
target.ChangeStatBoost(stat, (sbyte)(targetStat - userStat), false, true, eventBatchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@ public class IceBurn : BaseChargeMove<RequireChargeEffect>
|
||||
|
||||
if (battleData.Battle.Random.EffectChance(30, move, target, hit))
|
||||
{
|
||||
target.SetStatus("burned");
|
||||
target.SetStatus("burned", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class IceFang : Script
|
||||
|
||||
if (battleData.Battle.Random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus("frozen");
|
||||
target.SetStatus("frozen", false);
|
||||
}
|
||||
if (battleData.Battle.Random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
|
||||
@@ -18,8 +18,8 @@ public class MagneticFlux : Script
|
||||
continue;
|
||||
|
||||
EventBatchId batch = new();
|
||||
pokemon.ChangeStatBoost(Statistic.Defense, 1, pokemon == move.User, batch);
|
||||
pokemon.ChangeStatBoost(Statistic.SpecialDefense, 1, pokemon == move.User, batch);
|
||||
pokemon.ChangeStatBoost(Statistic.Defense, 1, pokemon == move.User, false, batch);
|
||||
pokemon.ChangeStatBoost(Statistic.SpecialDefense, 1, pokemon == move.User, false, batch);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,8 +7,8 @@ public class Memento : Script
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
var evtBatch = new EventBatchId();
|
||||
target.ChangeStatBoost(Statistic.Attack, -2, false, evtBatch);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, -2, false, evtBatch);
|
||||
target.ChangeStatBoost(Statistic.Attack, -2, false, false, evtBatch);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, -2, false, false, evtBatch);
|
||||
|
||||
move.User.Faint(DamageSource.Misc);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ public class MiracleEye : Script
|
||||
{
|
||||
if (target.StatBoost.Evasion > 0)
|
||||
{
|
||||
target.ChangeStatBoost(Statistic.Evasion, (sbyte)-target.StatBoost.Evasion, false);
|
||||
target.ChangeStatBoost(Statistic.Evasion, (sbyte)-target.StatBoost.Evasion, false, false);
|
||||
}
|
||||
target.Volatile.Add(new MiracleEyeEffect());
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ public class PartingShot : Script
|
||||
return;
|
||||
|
||||
var evtBatch = new EventBatchId();
|
||||
var attackChanged = target.ChangeStatBoost(Statistic.Attack, -1, false, evtBatch);
|
||||
var specialAttackChanged = target.ChangeStatBoost(Statistic.SpecialAttack, -1, false, evtBatch);
|
||||
var attackChanged = target.ChangeStatBoost(Statistic.Attack, -1, false, false, evtBatch);
|
||||
var specialAttackChanged = target.ChangeStatBoost(Statistic.SpecialAttack, -1, false, false, evtBatch);
|
||||
|
||||
if (attackChanged || specialAttackChanged)
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ public class PoisonTail : Script
|
||||
|
||||
if (battleData.Battle.Random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus(ScriptUtils.ResolveName<BadlyPoisoned>());
|
||||
target.SetStatus(ScriptUtils.ResolveName<BadlyPoisoned>(), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,11 @@ public class PowerSwap : Script
|
||||
var userSpecialAttack = user.StatBoost.SpecialAttack;
|
||||
var targetSpecialAttack = target.StatBoost.SpecialAttack;
|
||||
|
||||
user.ChangeStatBoost(Statistic.Attack, (sbyte)(targetAttack - userAttack), true, eventBatchId);
|
||||
user.ChangeStatBoost(Statistic.SpecialAttack, (sbyte)(targetSpecialAttack - userSpecialAttack), true,
|
||||
user.ChangeStatBoost(Statistic.Attack, (sbyte)(targetAttack - userAttack), true, true, eventBatchId);
|
||||
user.ChangeStatBoost(Statistic.SpecialAttack, (sbyte)(targetSpecialAttack - userSpecialAttack), true, true,
|
||||
eventBatchId);
|
||||
target.ChangeStatBoost(Statistic.Attack, (sbyte)(userAttack - targetAttack), true, eventBatchId);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, (sbyte)(userSpecialAttack - targetSpecialAttack), true,
|
||||
target.ChangeStatBoost(Statistic.Attack, (sbyte)(userAttack - targetAttack), true, true, eventBatchId);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, (sbyte)(userSpecialAttack - targetSpecialAttack), true, true,
|
||||
eventBatchId);
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ public class ResetTargetStats : Script
|
||||
EventBatchId eventBatchId = new();
|
||||
foreach (Statistic stat in Enum.GetValues(typeof(Statistic)))
|
||||
{
|
||||
target.ChangeStatBoost(stat, (sbyte)-target.StatBoost.GetStatistic(stat), true, eventBatchId);
|
||||
target.ChangeStatBoost(stat, (sbyte)-target.StatBoost.GetStatistic(stat), true, true, eventBatchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@ public class Rest : Script
|
||||
move.GetHitData(target, hit).Fail();
|
||||
return;
|
||||
}
|
||||
if (move.User.SetStatus(ScriptUtils.ResolveName<Sleep>()) && move.User.StatusScript.Script is Sleep sleep)
|
||||
if (move.User.SetStatus(ScriptUtils.ResolveName<Sleep>(), true) && move.User.StatusScript.Script is Sleep sleep)
|
||||
sleep.Turns = 2;
|
||||
}
|
||||
}
|
||||
@@ -13,8 +13,8 @@ public class Rototiller : Script
|
||||
EventBatchId batchId = new();
|
||||
foreach (var pkmn in pokemon)
|
||||
{
|
||||
pkmn.ChangeStatBoost(Statistic.Attack, 1, pkmn == move.User, batchId);
|
||||
pkmn.ChangeStatBoost(Statistic.SpecialAttack, 1, pkmn == move.User, batchId);
|
||||
pkmn.ChangeStatBoost(Statistic.Attack, 1, pkmn == move.User, false, batchId);
|
||||
pkmn.ChangeStatBoost(Statistic.SpecialAttack, 1, pkmn == move.User, false, batchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,6 @@ public class SetStatus : Script
|
||||
{
|
||||
if (_status == null)
|
||||
throw new Exception("Missing required parameter 'status'");
|
||||
target.SetStatus(_status);
|
||||
target.SetStatus(_status, false);
|
||||
}
|
||||
}
|
||||
@@ -7,11 +7,11 @@ public class ShellSmash : Script
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
EventBatchId eventBatchId = new();
|
||||
move.User.ChangeStatBoost(Statistic.Attack, 2, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialAttack, 2, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.Speed, 2, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.Attack, 2, true, false, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialAttack, 2, true, false, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.Speed, 2, true, false, eventBatchId);
|
||||
eventBatchId = new EventBatchId();
|
||||
move.User.ChangeStatBoost(Statistic.Defense, -1, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, -1, true, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, -1, true, false, eventBatchId);
|
||||
move.User.ChangeStatBoost(Statistic.SpecialDefense, -1, true, false, eventBatchId);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ public class SkullBash : Script
|
||||
{
|
||||
if (move.User.Volatile.Contains<SkullBashEffect>())
|
||||
return;
|
||||
move.User.ChangeStatBoost(Statistic.Defense, 1, true);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, 1, true, false);
|
||||
move.User.Volatile.Add(new SkullBashEffect(move.User));
|
||||
prevent = true;
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ public class SpectralThief : Script
|
||||
EventBatchId batchId = new();
|
||||
foreach (var positiveStat in positiveStats)
|
||||
{
|
||||
move.User.ChangeStatBoost(positiveStat.statistic, positiveStat.value, true, batchId);
|
||||
target.ChangeStatBoost(positiveStat.statistic, (sbyte)-positiveStat.value, true, batchId);
|
||||
move.User.ChangeStatBoost(positiveStat.statistic, positiveStat.value, true, true, batchId);
|
||||
target.ChangeStatBoost(positiveStat.statistic, (sbyte)-positiveStat.value, true, true, batchId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ public class StrengthSap : Script
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
var attack = target.BoostedStats.Attack;
|
||||
if (!target.ChangeStatBoost(Statistic.Attack, -1, false))
|
||||
if (!target.ChangeStatBoost(Statistic.Attack, -1, false, false))
|
||||
{
|
||||
move.GetHitData(target, hit).Fail();
|
||||
return;
|
||||
|
||||
@@ -7,7 +7,7 @@ public class Superpower : Script
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
EventBatchId eventBatch = new();
|
||||
move.User.ChangeStatBoost(Statistic.Attack, -1, true, eventBatch);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, -1, true, eventBatch);
|
||||
move.User.ChangeStatBoost(Statistic.Attack, -1, true, false, eventBatch);
|
||||
move.User.ChangeStatBoost(Statistic.Defense, -1, true, false, eventBatch);
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ public class Swagger : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.ChangeStatBoost(Statistic.Attack, 2, false);
|
||||
target.ChangeStatBoost(Statistic.Attack, 2, false, false);
|
||||
target.Volatile.Add(new Pokemon.Confusion());
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ public class ThunderFang : Script
|
||||
var random = move.Battle.Random;
|
||||
if (random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus(ScriptUtils.ResolveName<Paralyzed>());
|
||||
target.SetStatus(ScriptUtils.ResolveName<Paralyzed>(), false);
|
||||
}
|
||||
if (random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ public class TopsyTurvy : Script
|
||||
|
||||
hasChanged = true;
|
||||
var newStatBoost = -statBoost;
|
||||
target.ChangeStatBoost(stat, (sbyte)newStatBoost, target == move.User, batchId);
|
||||
target.ChangeStatBoost(stat, (sbyte)newStatBoost, target == move.User, true, batchId);
|
||||
}
|
||||
if (!hasChanged)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ public class ToxicThread : Script
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
target.SetStatus(ScriptUtils.ResolveName<Status.Poisoned>());
|
||||
target.ChangeStatBoost(Statistic.Speed, -1, false);
|
||||
target.SetStatus(ScriptUtils.ResolveName<Status.Poisoned>(), false);
|
||||
target.ChangeStatBoost(Statistic.Speed, -1, false, false);
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,6 @@ public class TriAttack : Script
|
||||
ScriptUtils.ResolveName<Status.Paralyzed>(),
|
||||
ScriptUtils.ResolveName<Status.Frozen>(),
|
||||
]);
|
||||
target.SetStatus(status);
|
||||
target.SetStatus(status, false);
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ public class Twineedle : Script
|
||||
{
|
||||
if (move.Battle.Random.EffectChance(20, move, target, hit))
|
||||
{
|
||||
target.SetStatus(ScriptUtils.ResolveName<Status.Poisoned>());
|
||||
target.SetStatus(ScriptUtils.ResolveName<Status.Poisoned>(), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,8 +11,8 @@ public class VenomDrench : Script
|
||||
return;
|
||||
|
||||
EventBatchId eventBatch = new();
|
||||
target.ChangeStatBoost(Statistic.Attack, -1, false, eventBatch);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, -1, false, eventBatch);
|
||||
target.ChangeStatBoost(Statistic.Speed, -1, false, eventBatch);
|
||||
target.ChangeStatBoost(Statistic.Attack, -1, false, false, eventBatch);
|
||||
target.ChangeStatBoost(Statistic.SpecialAttack, -1, false, false, eventBatch);
|
||||
target.ChangeStatBoost(Statistic.Speed, -1, false, false, eventBatch);
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ public class VoltTackle : Script
|
||||
|
||||
if (move.Battle.Random.EffectChance(10, move, target, hit))
|
||||
{
|
||||
target.SetStatus(ScriptUtils.ResolveName<Status.Paralyzed>());
|
||||
target.SetStatus(ScriptUtils.ResolveName<Status.Paralyzed>(), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user