• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • Apologies if you've had troubles connecting to the site, you may need a VPN to access it. Staff are also facing issues connecting, so if it's urgent please message Cat on-site or through Discord directly.
  • Hey Guest, staff applications are open! If you are interested in becoming a forum staff member and/or Discord staff member, please apply through this Google Form before April 2! You can also message Cat with any questions.
Stuff for "Field effects by Pokemon Repudiation"

v21.1 Stuff for "Field effects by Pokemon Repudiation" 2025-03-14

This resource pertains to version 21.1 of Pokémon Essentials.
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:

Ruby:
Expand Collapse Copy
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:
Expand Collapse Copy
    @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:
Expand Collapse Copy
@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:
Expand Collapse Copy
@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:
Expand Collapse Copy
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:
Expand Collapse Copy
  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:
Expand Collapse Copy
    @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 :)
  • Like
Reactions: FelicityWivi
Author
WehAxolotl
Views
9
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from WehAxolotl

Latest updates

  1. Add no hail (volcanic) and freeze chance (icy) code

    Just as the title says, i added the tutorials for adding no hail to volcanic field and bitter...
Back
Top