I already started to make the gen 9 moves such as Koriadon's cool ability which function as Chlorophyll but instead boost the Attack stat and Firagiraf's ability works similiar to that gen 7 mon that prevents the use of priority moves sorry dont remember that name since there is a total of 1010 species now. :)
Encountering an issue. Cud Chew is activating a second time immediately after the first berry item use. Is it not supposed to wait until the end of the next turn before doing so?
I already started to make the gen 9 moves such as Koriadon's cool ability which function as Chlorophyll but instead boost the Attack stat and Firagiraf's ability works similiar to that gen 7 mon that prevents the use of priority moves sorry dont remember that name since there is a total of 1010 species now. :)
Encountering an issue. Cud Chew is activating a second time immediately after the first berry item use. Is it not supposed to wait until the end of the next turn before doing so?
Essentials Deluxe and ZUD (as well as some of my other plugins) add new PBEffects starting at number 300 onwards, as well as effects that affect one side from number 200 onwards. I'd recommend that the author of this plugin renumber their PBEffects starting from a higher number so that these plugins don't conflict.
I wasn't aware if such a project already existed so I started coding the new stuff on my own today. Luckily I found this before I got too far.
I noticed in your Wind Rider (the part tied to Tailwind move usage) it checks all battlers, in my research I saw it was only the battlers from own side, I could be wrong, I did it like this:
Tailwind:
#===============================================================================
# For 4 rounds, doubles the Speed of all battlers on the user's side. (Tailwind)
#===============================================================================
class Battle::Move::StartUserSideDoubleSpeed < Battle::Move
def canSnatch?; return true; end
def pbMoveFailed?(user, targets)
if user.pbOwnSide.effects[PBEffects::Tailwind] > 0
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
return false
end
def pbEffectGeneral(user)
user.pbOwnSide.effects[PBEffects::Tailwind] = 4
@battle.pbDisplay(_INTL("The Tailwind blew from behind {1}!", user.pbTeam(true)))
#windrider
@battle.allSameSideBattlers(user.index).each do |b|
next if !b.hasActiveAbility?(:WINDRIDER)
if b.pbCanRaiseStatStage?(:ATTACK, b)
b.pbRaiseStatStageByAbility(:ATTACK, 1, b)
end
end
#windrider
end
end
Rocky Payload is a copy of a lot of abilities:
RockyPayload:
Battle::AbilityEffects::DamageCalcFromUser.add(:ROCKYPAYLOAD,
proc { |ability, user, target, move, mults, baseDmg, type|
if type == :ROCK
mults[:attack_multiplier] *= 1.5
end
}
)
in # DamageCalcFromUser handlers
And Costar:
Costar:
Battle::AbilityEffects::OnSwitchIn.add(:COSTAR,
proc { |ability, battler, battle, switch_in|
abilityProc = false
statChange = false
stats = [:ATTACK,:DEFENSE,:SPEED,:SPECIAL_ATTACK,:SPECIAL_DEFENSE]
battle.allSameSideBattlers(battler.index).each do |b|
next if b == battler
stats.each do |s|
statChange = true if b.stages[s] != 0
end
if statChange && !abilityProc
abilityProc = true
stats.each do |s|
if b.stages[s] > 0
battler.pbRaiseStatStageByAbility(s, b.stages[s], battler) if
battler.pbCanRaiseStatStage?(s, battler)
elsif b.stages[s] < 0
battler.pbLowerStatStageByAbility(s, b.stages[s], battler, true) if
battler.pbCanLowerStatStage?(s, battler)
end
end
end
end
}
)
in # OnSwitchIn handlers (I'm unsure how this would work in a triple battle since triple battles don't exist in SV, that extra check is to copy the 1st ally only and avoid proccing twice in a triple battle)
Hey, I only just learned about this. I started compiling some PBS files on my own, and there're a few things I think I can contribute if you're interested. In particular:
Adjusted the descriptions of all moves and abilities to fit the display size in Essentials.
Have secondary effects for all moves that could be implemented without custom code:
Jet Punch
Kowtow Cleave* (slashing flag does not exist by default)
Flower Trick
Torch Song
Aqua Step
Ruination
Pounce
Trailblaze
Chilling Water
Hyper Drill
Twin Beam
Armor Cannon
Bitter Blade* (slashing flag does not exist by default)
Comeuppance
Aqua Cutter* (slashing flag does not exist by default)
Made educated guesses on the body shape and exp yield of new Pokemon; not sure how interested you'd be in this one because it would be an unofficial placeholder, but it would make it easier for users to plug in directly.
I could also help with some move and ability programming. I have the following on my todo list:
Silk Trap
Triple Dive
Tidy Up
Population Bomb
Shed Tail
Thermal Exchange
Toxic Debris
Here's what I had compiled if you'd like to cross-reference it against what you've put together. I'll keep you updated.
Essentials Deluxe and ZUD (as well as some of my other plugins) add new PBEffects starting at number 300 onwards, as well as effects that affect one side from number 200 onwards. I'd recommend that the author of this plugin renumber their PBEffects starting from a higher number so that these plugins don't conflict.
I wasn't aware if such a project already existed so I started coding the new stuff on my own today. Luckily I found this before I got too far.
I noticed in your Wind Rider (the part tied to Tailwind move usage) it checks all battlers, in my research I saw it was only the battlers from own side, I could be wrong, I did it like this:
Tailwind:
#===============================================================================
# For 4 rounds, doubles the Speed of all battlers on the user's side. (Tailwind)
#===============================================================================
class Battle::Move::StartUserSideDoubleSpeed < Battle::Move
def canSnatch?; return true; end
def pbMoveFailed?(user, targets)
if user.pbOwnSide.effects[PBEffects::Tailwind] > 0
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
return false
end
def pbEffectGeneral(user)
user.pbOwnSide.effects[PBEffects::Tailwind] = 4
@battle.pbDisplay(_INTL("The Tailwind blew from behind {1}!", user.pbTeam(true)))
#windrider
@battle.allSameSideBattlers(user.index).each do |b|
next if !b.hasActiveAbility?(:WINDRIDER)
if b.pbCanRaiseStatStage?(:ATTACK, b)
b.pbRaiseStatStageByAbility(:ATTACK, 1, b)
end
end
#windrider
end
end
Rocky Payload is a copy of a lot of abilities:
RockyPayload:
Battle::AbilityEffects::DamageCalcFromUser.add(:ROCKYPAYLOAD,
proc { |ability, user, target, move, mults, baseDmg, type|
if type == :ROCK
mults[:attack_multiplier] *= 1.5
end
}
)
in # DamageCalcFromUser handlers
And Costar:
Costar:
Battle::AbilityEffects::OnSwitchIn.add(:COSTAR,
proc { |ability, battler, battle, switch_in|
abilityProc = false
statChange = false
stats = [:ATTACK,:DEFENSE,:SPEED,:SPECIAL_ATTACK,:SPECIAL_DEFENSE]
battle.allSameSideBattlers(battler.index).each do |b|
next if b == battler
stats.each do |s|
statChange = true if b.stages[s] != 0
end
if statChange && !abilityProc
abilityProc = true
stats.each do |s|
if b.stages[s] > 0
battler.pbRaiseStatStageByAbility(s, b.stages[s], battler) if
battler.pbCanRaiseStatStage?(s, battler)
elsif b.stages[s] < 0
battler.pbLowerStatStageByAbility(s, b.stages[s], battler, true) if
battler.pbCanLowerStatStage?(s, battler)
end
end
end
end
}
)
in # OnSwitchIn handlers (I'm unsure how this would work in a triple battle since triple battles don't exist in SV, that extra check is to copy the 1st ally only and avoid proccing twice in a triple battle)
Hey, I only just learned about this. I started compiling some PBS files on my own, and there're a few things I think I can contribute if you're interested. In particular:
Adjusted the descriptions of all moves and abilities to fit the display size in Essentials.
Have secondary effects for all moves that could be implemented without custom code:
Jet Punch
Kowtow Cleave* (slashing flag does not exist by default)
Flower Trick
Torch Song
Aqua Step
Ruination
Pounce
Trailblaze
Chilling Water
Hyper Drill
Twin Beam
Armor Cannon
Bitter Blade* (slashing flag does not exist by default)
Comeuppance
Aqua Cutter* (slashing flag does not exist by default)
Made educated guesses on the body shape and exp yield of new Pokemon; not sure how interested you'd be in this one because it would be an unofficial placeholder, but it would make it easier for users to plug in directly.
I could also help with some move and ability programming. I have the following on my todo list:
Silk Trap
Triple Dive
Tidy Up
Population Bomb
Shed Tail
Thermal Exchange
Toxic Debris
Here's what I had compiled if you'd like to cross-reference it against what you've put together. I'll keep you updated.
Actually, I've finished writing all of the abilities and moves but have yet to test them all.
And I appreciate all the feedback and contributions from everyone here.
So, feel free to contribute and give feedback to the resource.
Change logs:
Add all the remaining Abilities from the list
Beads of Ruin
Commander
Costar
Guard Dog
Hadron Engine
Lingering Aroma
Mycelium Might
Purifying Salt
Seed Sower
Supreme Overlord
Sword of Ruin
Tablets of Ruin
Thermal Exchange
Toxic Debris
Vessel of Ruin
Fixing Quark Drive bug when the terrain ended
Fixing Wind Rider bug from the Tailwind
Add Method for evolving Kubfu using Scroll of Water
Add all remaining Items from the list
Can you explain a little how Supreme Overlord is working? It looks like it sets values when the battle starts, but I was under the impression it applies only when Kingambit / the ability user is switched in? And if the number of fainted Pokemon changes while it is active (i.e. with Revive items) it keeps the same boost it had before until it switches out and in again?
If it's already doing this in your code then that's fine, I'm just having some trouble comprehending that while reading through it.
Can you explain a little how Supreme Overlord is working? It looks like it sets values when the battle starts, but I was under the impression it applies only when Kingambit / the ability user is switched in? And if the number of fainted Pokemon changes while it is active (i.e. with Revive items) it keeps the same boost it had before until it switches out and in again?
If it's already doing this in your code then that's fine, I'm just having some trouble comprehending that while reading through it.
After re-reading the ability description, I mistook it for a Last Respect-like ability counterpart that changes the faint count with each hit.
Supreme Overlord only counts the fainted ally when it switches in. Maybe something like this:
Supreme Overlord:
Battle::AbilityEffects::DamageCalcFromUser.add(:SUPREMEOVERLORD,
proc { |ability, user, target, move, mults, baseDmg, type|
next if user.effects[PBEffects::SupremeOverlord] <= 0
mult = 1
mult += 0.1 * battler.effects[PBEffects::SupremeOverlord]
mults[:attack_multiplier] *= mult
}
)
Battle::AbilityEffects::OnSwitchIn.add(:SUPREMEOVERLORD,
proc { |ability, battler, battle, switch_in|
battle.pbShowAbilitySplash(battler)
numFainted = 0
battler.battle.pbParty(battler.idxOwnSide).each { |b| numFainted += 1 if b.fainted? }
battle.pbDisplay(_INTL("{1} gained strength from the fallen!", battler.pbThis))
battler.effects[PBEffects::SupremeOverlord] = numFainted
battle.pbHideAbilitySplash(battler)
}
)
This section is for the discussion of the tutorials and resources on Eevee Expo. To find tutorials and resources, check out the Tutorial and Resource Manager for optimal navigation.