- Pokémon Essentials Version
- v21.1 ✅
Please note!!: Current version of the plugin always gives me a recursion error. once i figure out the cause, I'll let you know! Until then, I'll be using the version that i used for this.
Adds a bunch of stuff in an incredibly screwy way to Field Effects by Pokemon Repudiation for people to use. Dont. dont question my coding please....
If the creators dont want this up i will remove it if they let me know :D
Currently only have some things finished, but wanted to show it off both for bug finding and fixing purposes and in case someone who knows more than me wants a laugh or something/j
No download because i dont think i did enough work for that!!! RAAAAAAAAHHH!!! Once i update all of the things, and maybe add a few more, I'll add a download (if the original plugin hasn't updated already). These might not work in base essentials, but it sure does work for me.
unsure where this should actually go, so hopefully i chose right.
first: making compatible with DBK:
delete or comment out this line of code in 003_Field_base_and_keys:
It will always result in an error if left in. i haven't figured out a way to fix that because im not that smart. Because of this, I don not believe the "shelter type" part of any field effect will work, so sorry. Once i figure out a fix, I'll let you know.
Next: making Liquid voice work in the icy field.
replace this:
with this:
It just calculates the move as an ice type move if these two conditions are met!
And finally for the ice field- Making Bitter Malice have a 10% freeze chance!
Simply add this to the code (preferably after adding ice to rock type moves!):
Now, this is the update to the volcanic field. just. the whole thing:
Some text here is placeholders i put, feel free to add ~flavor~, of course.
Noted bugs and stuff with this one:
dying to the field itself doesn't properly play fainting animation? for some reason? I also couldn't figure out how to make do the hurty sound.
Enemy base in the wrong place????? Is that normal????
No Freezing works but message is never displayed.
To add no hail:
Add this to 001_Battle (after class Battle (preferably the very top, just to make it easier)):
next, add this to the volcanic field code:
If something doesn't work, please tell me! I'll be happy to fix it.
next i'll be finishing the icy field!! which includes making water surface :3 god kill me i'll have to make graphics (<- is an artist)
Adds a bunch of stuff in an incredibly screwy way to Field Effects by Pokemon Repudiation for people to use. Dont. dont question my coding please....
If the creators dont want this up i will remove it if they let me know :D
Currently only have some things finished, but wanted to show it off both for bug finding and fixing purposes and in case someone who knows more than me wants a laugh or something/j
No download because i dont think i did enough work for that!!! RAAAAAAAAHHH!!! Once i update all of the things, and maybe add a few more, I'll add a download (if the original plugin hasn't updated already). These might not work in base essentials, but it sure does work for me.
unsure where this should actually go, so hopefully i chose right.
first: making compatible with DBK:
delete or comment out this line of code in 003_Field_base_and_keys:
Ruby:
multipliers[:final_damage_multiplier] *= 0.5 if target.effects[PBEffects::Shelter] && target.effects[PBEffects::Shelter] == type
It will always result in an error if left in. i haven't figured out a way to fix that because im not that smart. Because of this, I don not believe the "shelter type" part of any field effect will work, so sorry. Once i figure out a fix, I'll let you know.
Next: making Liquid voice work in the icy field.
replace this:
Code:
@effects[:base_type_change] = proc { |user, move, type|
next :ICE if move.soundMove? && user.hasActiveAbility?(:LIQUIDVOICE) # Sound type moves become Ice type from Liquid voice - doesn't work yet
}
with this:
Code:
@effects[:change_effectiveness] = proc { |effectiveness, move, moveType, defType, user, target|
# Check for Liquid Voice + sound move in Icy Field
if user.hasActiveAbility?(:LIQUIDVOICE) && move.soundMove?
# Calculate effectiveness as Ice-type instead of Water
ice_effectiveness = Effectiveness.calculate(:ICE, defType)
next ice_effectiveness
end
next effectiveness
}
It just calculates the move as an ice type move if these two conditions are met!
And finally for the ice field- Making Bitter Malice have a 10% freeze chance!
Simply add this to the code (preferably after adding ice to rock type moves!):
Ruby:
@effects[:end_of_move] = proc { |user, targets, move, numHits|
next if move.id != :BITTERMALICE
targets.each do |target|
next if target.damageState.unaffected || target.damageState.substitute
next if !target.pbCanFreeze?(user, false)
if @battle.pbRandom(100) < 10 # 10% chance
target.pbFreeze(_INTL("{1} was frozen by the pure malice!", target.pbThis))
end
end
}
Now, this is the update to the volcanic field. just. the whole thing:
Code:
class Battle::Field_volcanic < Battle::Field
def initialize(battle, duration = Battle::Field::DEFAULT_FIELD_DURATION)
super
@id = :volcanic
@name = _INTL("Volcanic")
@nature_power_change = :FLAMETHROWER
@mimicry_type = :FIRE
@camouflage_type = :FIRE
@ability_activation = %i[BLAZE FLAREBOOST]
@terrain_pulse_type = :FIRE
@secret_power_effect = 10 # burn
@shelter_type = :FIRE
@field_announcement = { :start => _INTL("The field is molten."),
:end => _INTL("The flames were snuffed out!") }
@multipliers = {
[:power_multiplier, 2, _INTL("The flames spread from the attack!")] => proc { |user, target, numTargets, move, type, power, mults|
next true if %i[CLEARSMOG SMOG INFERNALPARADE].include?(move.id)
},
[:power_multiplier, 1.5, _INTL("The target was knocked into the flames!")] => proc { |user, target, numTargets, move, type, power, mults|
next true if %i[ROCKSLIDE SMACKDOWN THOUSANDARROWS TEMPERFLARE].include?(move.id)
},
[:power_multiplier, 1.5, _INTL("The blaze amplified the attack!")] => proc { |user, target, numTargets, move, type, power, mults|
next true if %i[FIRE].include?(type)
},
[:power_multiplier, 0.5, _INTL("The blaze softened the attack...")] => proc { |user, target, numTargets, move, type, power, mults|
next true if %i[GRASS ICE].include?(type)
},
}
# All @effects assignments must be inside initialize
@effects[:accuracy_modify] = proc { |user, target, move, modifiers, type|
modifiers[:base_accuracy] = 0 if %i[WILLOWISP].include?(move.id)
}
@effects[:switch_in] = proc { |battler| # effects when a pkmn switches in
if battler.hasActiveAbility?(:MAGMAARMOR) && battler.pbCanRaiseStatStage?(:DEFENSE)
@battle.pbDisplay(_INTL("{1} gained power from the {2}!", battler.pbThis, @name))
battler.pbRaiseStatStage(:DEFENSE, 1, nil)
end
}
@effects[:move_second_type] = proc { |effectiveness, move, moveType, defType, user, target|
next :FIRE if %i[CLEARSMOG SMOG ROCKSLIDE SMACKDOWN THOUSANDARROWS].include?(move.id)
}
@effects[:EOR_field_battler] = proc { |battler|
# Damage grounded non-Fire types without immunity abilities
if battler.grounded? && !battler.pbHasType?(:FIRE) &&
!battler.hasActiveAbility?([:FLASHFIRE, :FLAREBODY, :FLAREBOOST, :HEATPROOF, :MAGMAARMOR, :WATERBUBBLE, :WATERVEIL, :THERMALEXCHANGE, :WELLBAKEDBODY])
battler.pbReduceHP(battler.totalhp / 8, false)
@battle.pbDisplay(_INTL("{1} was burned by the volcanic field!", battler.pbThis))
end
# Flash Fire boosts Special Attack
if battler.hasActiveAbility?(:FLASHFIRE) && battler.pbCanRaiseStatStage?(:SPECIAL_ATTACK)
battler.pbRaiseStatStage(:SPECIAL_ATTACK, 1, battler)
@battle.pbDisplay(_INTL("{1} is being boosted by the flames!", battler.pbThis))
end
# Thermal Exchange boosts Attack
if battler.hasActiveAbility?(:THERMALEXCHANGE) && battler.pbCanRaiseStatStage?(:ATTACK)
battler.pbRaiseStatStage(:ATTACK, 1, battler)
@battle.pbDisplay(_INTL("{1} is exchanging the flames for power!", battler.pbThis))
end
# Steam Engine boosts Speed
if battler.hasActiveAbility?(:STEAMENGINE) && battler.pbCanRaiseStatStage?(:SPEED)
battler.pbRaiseStatStage(:SPEED, 1, battler)
@battle.pbDisplay(_INTL("{1} gained power from the volcanic field!", battler.pbThis))
end
}
@effects[:switch_in] = proc { |battler|
# Melt Ice Face
if battler.isSpecies?(:EISCUE) && battler.form == 0
battler.form = 1 # Set form to Noice Face
battler.pokemon.form = 1 # Update underlying Pokémon data
@battle.scene.pbChangePokemon(battler, battler.pokemon) # Force sprite refresh
@battle.pbDisplay(_INTL("{1}'s Ice Face melted in the heat!", battler.pbThis))
end
# Magma Armor Defense boost
if battler.hasActiveAbility?(:MAGMAARMOR) && battler.pbCanRaiseStatStage?(:DEFENSE)
@battle.pbDisplay(_INTL("{1} gained power from the {2}!", battler.pbThis, @name))
battler.pbRaiseStatStage(:DEFENSE, 1, nil)
end
}
@effects[:status_immunity] = proc { |battler, newStatus, yawn, user, show_message, self_inflicted, move, ignoreStatus|
if newStatus == :FROZEN
@battle.pbDisplay(_INTL("{1} cannot be frozen in the volcanic field!", battler.pbThis)) if show_message
next true
end
next false
}
end
end
Battle::Field.register(:volcanic, {
:trainer_name => [],
:environment => [],
:map_id => [],
:edge_type => [],
})
Some text here is placeholders i put, feel free to add ~flavor~, of course.
Noted bugs and stuff with this one:
dying to the field itself doesn't properly play fainting animation? for some reason? I also couldn't figure out how to make do the hurty sound.
Enemy base in the wrong place????? Is that normal????
No Freezing works but message is never displayed.
To add no hail:
Add this to 001_Battle (after class Battle (preferably the very top, just to make it easier)):
Code:
alias field_pbStartWeather pbStartWeather
def pbStartWeather(user, newWeather, permanent = false, duration = -1)
if @current_field&.apply_field_effect(:block_weather, newWeather)
return
end
field_pbStartWeather(user, newWeather, permanent, duration)
end
next, add this to the volcanic field code:
Code:
@effects[:block_weather] = proc { |weather|
if weather == :Hail
@battle.pbDisplay(_INTL("The intense heat of the volcanic field prevents hail from forming!"))
next true
end
next false
}
If something doesn't work, please tell me! I'll be happy to fix it.
next i'll be finishing the icy field!! which includes making water surface :3 god kill me i'll have to make graphics (<- is an artist)
- Credits
- all credits should go to the original creators! : Fanfan, TheOnlyFelicity, Pokemon Repudiation, Pokemon Rejuvenation (Graphics), AeveonTrainer (Graphics)
Credit to me (WehAxolotl) is optional :)