Class: Battle::Effects::EffectBase

Inherits:
Object
  • Object
show all
Defined in:
docs/5_Battle_06_Effects.rb

Overview

Class describing all the effect (“abstract”) and helping the handler to manage effect

Instance Method Summary collapse

Constructor Details

#initialize(logic) ⇒ EffectBase

Create a new effect

Parameters:

  • logic (Battle::Logic)

    logic used to get all the handler in order to allow the effect to work



60
61
# File 'docs/5_Battle_06_Effects.rb', line 60

def initialize(logic)
end

Instance Method Details

#apply_common_effects_with_fling(scene, target, launcher, skill)

Apply the common effects of the item with Fling move effect

Parameters:



133
134
# File 'docs/5_Battle_06_Effects.rb', line 133

def apply_common_effects_with_fling(scene, target, launcher, skill)
end

#atk_modifierFloat, Integer

Give the atk modifier over given to the Pokemon with this effect

Returns:

  • (Float, Integer)

    multiplier



407
408
# File 'docs/5_Battle_06_Effects.rb', line 407

def atk_modifier
end

#ats_modifierFloat, Integer

Give the ats modifier over given to the Pokemon with this effect

Returns:

  • (Float, Integer)

    multiplier



419
420
# File 'docs/5_Battle_06_Effects.rb', line 419

def ats_modifier
end

#base_power_multiplier(user, target, move) ⇒ Float, Integer

Give the move base power mutiplier

Parameters:

Returns:

  • (Float, Integer)

    multiplier



368
369
# File 'docs/5_Battle_06_Effects.rb', line 368

def base_power_multiplier(user, target, move)
end

#can_attack_hit_out_of_reach?(name) ⇒ Boolean

Check if the attack can hit the pokemon. Should be called after testing out_of_reach?

Parameters:

  • name (Symbol)

Returns:

  • (Boolean)


106
107
# File 'docs/5_Battle_06_Effects.rb', line 106

def can_attack_hit_out_of_reach?(name)
end

#chance_of_hit_multiplier(user, target, move) ⇒ Float

Return the chance of hit multiplier

Parameters:

Returns:

  • (Float)


435
436
# File 'docs/5_Battle_06_Effects.rb', line 435

def chance_of_hit_multiplier(user, target, move)
end

#counter=(counter)

Function that sets the counter

Parameters:

  • counter (Integer)

    new counter value



64
65
# File 'docs/5_Battle_06_Effects.rb', line 64

def counter=(counter)
end

#dead?Boolean

Function telling if the effect should be removed from effects handler

Returns:

  • (Boolean)


71
72
# File 'docs/5_Battle_06_Effects.rb', line 71

def dead?
end

#dfe_modifierFloat, Integer

Give the dfe modifier over given to the Pokemon with this effect

Returns:

  • (Float, Integer)

    multiplier



411
412
# File 'docs/5_Battle_06_Effects.rb', line 411

def dfe_modifier
end

#dfs_modifierFloat, Integer

Give the dfs modifier over given to the Pokemon with this effect

Returns:

  • (Float, Integer)

    multiplier



423
424
# File 'docs/5_Battle_06_Effects.rb', line 423

def dfs_modifier
end

#effect_chance_modifier(move) ⇒ Float, Integer

Give the effect chance modifier given to the Pokémon with this effect

Parameters:

Returns:

  • (Float, Integer)

    multiplier



428
429
# File 'docs/5_Battle_06_Effects.rb', line 428

def effect_chance_modifier(move)
end

#force_next_move?Boolean

Tell if the effect forces the next move

Returns:

  • (Boolean)


89
90
# File 'docs/5_Battle_06_Effects.rb', line 89

def force_next_move?
end

#force_next_turn_action?Boolean

Tell if the effect forces the next turn action into a Attack action

Returns:

  • (Boolean)


93
94
# File 'docs/5_Battle_06_Effects.rb', line 93

def force_next_turn_action?
end

#ignore_target_redirection?Boolean

Check if the user of this ability ignore the center of attention in the enemy bank

Returns:

  • (Boolean)


126
127
# File 'docs/5_Battle_06_Effects.rb', line 126

def ignore_target_redirection?
end

#kill

Kill the effect (in order to remove it from the effects handler)



78
79
# File 'docs/5_Battle_06_Effects.rb', line 78

def kill
end

#mod1_multiplier(user, target, move) ⇒ Float, Integer

Give the move mod1 mutiplier (before the +2 in the formula)

Parameters:

Returns:

  • (Float, Integer)

    multiplier



389
390
# File 'docs/5_Battle_06_Effects.rb', line 389

def mod1_multiplier(user, target, move)
end

#mod2_multiplier(user, target, move) ⇒ Float, Integer

Give the move mod1 mutiplier (after the critical)

Parameters:

Returns:

  • (Float, Integer)

    multiplier



396
397
# File 'docs/5_Battle_06_Effects.rb', line 396

def mod2_multiplier(user, target, move)
end

#mod3_multiplier(user, target, move) ⇒ Float, Integer

Give the move mod3 mutiplier (after everything)

Parameters:

Returns:

  • (Float, Integer)

    multiplier



403
404
# File 'docs/5_Battle_06_Effects.rb', line 403

def mod3_multiplier(user, target, move)
end

#nameSymbol

Function giving the name of the effect

Returns:

  • (Symbol)


75
76
# File 'docs/5_Battle_06_Effects.rb', line 75

def name
end

#on_damage_prevention(handler, hp, target, launcher, skill) ⇒ :prevent, ...

Function called when a damage_prevention is checked

Parameters:

Returns:

  • (:prevent, Integer, nil)

    :prevent if the damage cannot be applied, Integer if the hp variable should be updated



214
215
# File 'docs/5_Battle_06_Effects.rb', line 214

def on_damage_prevention(handler, hp, target, launcher, skill)
end

#on_delete

Function called when the effect has been deleted from the effects handler



81
82
# File 'docs/5_Battle_06_Effects.rb', line 81

def on_delete
end

#on_end_turn_event(logic, scene, battlers)

Function called at the end of a turn

Parameters:



264
265
# File 'docs/5_Battle_06_Effects.rb', line 264

def on_end_turn_event(logic, scene, battlers)
end

#on_fterrain_prevention(handler, fterrain_type, last_fterrain) ⇒ :prevent?

Function called when a fterrain_prevention is checked

Parameters:

  • handler (Battle::Logic::FTerrainChangeHandler)
  • fterrain_type (Symbol)

    :none, :electric_terrain, :grassy_terrain, :misty_terrain, :psychic_terrain

  • last_fterrain (Symbol)

    :none, :electric_terrain, :grassy_terrain, :misty_terrain, :psychic_terrain

Returns:

  • (:prevent, nil)

    :prevent if the status cannot be applied



284
285
# File 'docs/5_Battle_06_Effects.rb', line 284

def on_fterrain_prevention(handler, fterrain_type, last_fterrain)
end

#on_held_item_use_preventionBoolean

Function called when a held item wants to perform its action

Returns:

  • (Boolean)

    weither or not the item can’t proceed (true will stop the item)



115
116
# File 'docs/5_Battle_06_Effects.rb', line 115

def on_held_item_use_prevention
end

#on_move_ability_immunity(user, target, move) ⇒ Boolean

Function called when we try to check if the Pokemon is immune to a move due to its effect

Parameters:

Returns:

  • (Boolean)

    if the target is immune to the move



348
349
# File 'docs/5_Battle_06_Effects.rb', line 348

def on_move_ability_immunity(user, target, move)
end

#on_move_disabled_check(user, move) ⇒ Proc?

Function called when we try to check if the user cannot use a move

Parameters:

Returns:

  • (Proc, nil)


334
335
# File 'docs/5_Battle_06_Effects.rb', line 334

def on_move_disabled_check(user, move)
end

#on_move_prevention_target(user, target, move) ⇒ Boolean

Function called when we try to check if the target evades the move

Parameters:

Returns:

  • (Boolean)

    if the target is evading the move



320
321
# File 'docs/5_Battle_06_Effects.rb', line 320

def on_move_prevention_target(user, target, move)
end

#on_move_prevention_user(user, targets, move) ⇒ :prevent?

Function called when we try to use a move as the user (returns :prevent if user fails)

Parameters:

Returns:

  • (:prevent, nil)

    :prevent if the move cannot continue



313
314
# File 'docs/5_Battle_06_Effects.rb', line 313

def on_move_prevention_user(user, targets, move)
end

#on_move_priority_change(user, priority, move) ⇒ Proc?

Function called when we try to check if the effect changes the definitive priority of the move

Parameters:

Returns:

  • (Proc, nil)


341
342
# File 'docs/5_Battle_06_Effects.rb', line 341

def on_move_priority_change(user, priority, move)
end

#on_move_type_change(user, target, move, type) ⇒ Integer?

Function called when we try to get the definitive type of a move

Parameters:

Returns:

  • (Integer, nil)

    new type of the move



328
329
# File 'docs/5_Battle_06_Effects.rb', line 328

def on_move_type_change(user, target, move, type)
end

#on_post_accuracy_check(logic, scene, targets, launcher, skill)

Function called after the accuracy check of a move is done (and the move should land)

Parameters:



306
307
# File 'docs/5_Battle_06_Effects.rb', line 306

def on_post_accuracy_check(logic, scene, targets, launcher, skill)
end

#on_post_action_event(logic, scene, battlers)

Function called at the end of an action

Parameters:



258
259
# File 'docs/5_Battle_06_Effects.rb', line 258

def on_post_action_event(logic, scene, battlers)
end

#on_post_damage(handler, hp, target, launcher, skill)

Function called after damages were applied (post_damage, when target is still alive)

Parameters:



222
223
# File 'docs/5_Battle_06_Effects.rb', line 222

def on_post_damage(handler, hp, target, launcher, skill)
end

#on_post_damage_death(handler, hp, target, launcher, skill)

Function called after damages were applied and when target died (post_damage_death)

Parameters:



230
231
# File 'docs/5_Battle_06_Effects.rb', line 230

def on_post_damage_death(handler, hp, target, launcher, skill)
end

#on_post_fterrain_change(handler, fterrain_type, last_fterrain)

Function called after the terrain was changed

Parameters:

  • handler (Battle::Logic::FTerrainChangeHandler)
  • fterrain_type (Symbol)

    :none, :electric_terrain, :grassy_terrain, :misty_terrain, :psychic_terrain

  • last_fterrain (Symbol)

    :none, :electric_terrain, :grassy_terrain, :misty_terrain, :psychic_terrain



290
291
# File 'docs/5_Battle_06_Effects.rb', line 290

def on_post_fterrain_change(handler, fterrain_type, last_fterrain)
end

#on_post_item_change(handler, db_symbol, target, launcher, skill)

Function called when a post_item_change is checked

Parameters:



188
189
# File 'docs/5_Battle_06_Effects.rb', line 188

def on_post_item_change(handler, db_symbol, target, launcher, skill)
end

#on_post_status_change(handler, status, target, launcher, skill)

Function called when a post_status_change is performed

Parameters:



205
206
# File 'docs/5_Battle_06_Effects.rb', line 205

def on_post_status_change(handler, status, target, launcher, skill)
end

#on_post_weather_change(handler, weather_type, last_weather)

Function called after the weather was changed (on_post_weather_change)

Parameters:

  • handler (Battle::Logic::WeatherChangeHandler)
  • weather_type (Symbol)

    :none, :rain, :sunny, :sandstorm, :hail, :fog

  • last_weather (Symbol)

    :none, :rain, :sunny, :sandstorm, :hail, :fog



277
278
# File 'docs/5_Battle_06_Effects.rb', line 277

def on_post_weather_change(handler, weather_type, last_weather)
end

#on_pre_accuracy_check(logic, scene, targets, launcher, skill)

Function called before the accuracy check of a move is done

Parameters:



298
299
# File 'docs/5_Battle_06_Effects.rb', line 298

def on_pre_accuracy_check(logic, scene, targets, launcher, skill)
end

#on_pre_item_change(handler, db_symbol, target, launcher, skill) ⇒ :prevent?

Function called when a pre_item_change is checked

Parameters:

Returns:

  • (:prevent, nil)

    :prevent if the item change cannot be applied



180
181
# File 'docs/5_Battle_06_Effects.rb', line 180

def on_pre_item_change(handler, db_symbol, target, launcher, skill)
end

#on_single_type_multiplier_overwrite(target, target_type, type, move) ⇒ Float?

Function that computes an overwrite of the type multiplier

Parameters:

Returns:

  • (Float, nil)

    overwriten type multiplier



361
362
# File 'docs/5_Battle_06_Effects.rb', line 361

def on_single_type_multiplier_overwrite(target, target_type, type, move)
end

#on_stat_change(handler, stat, power, target, launcher, skill) ⇒ Integer?

Function called when a stat_change is about to be applied

Parameters:

Returns:

  • (Integer, nil)

    if integer, it will change the power



161
162
# File 'docs/5_Battle_06_Effects.rb', line 161

def on_stat_change(handler, stat, power, target, launcher, skill)
end

#on_stat_change_post(handler, stat, power, target, launcher, skill) ⇒ Integer?

Function called when a stat_change has been applied

Parameters:

Returns:

  • (Integer, nil)

    if integer, it will change the power



171
172
# File 'docs/5_Battle_06_Effects.rb', line 171

def on_stat_change_post(handler, stat, power, target, launcher, skill)
end

#on_stat_decrease_prevention(handler, stat, target, launcher, skill) ⇒ :prevent?

Function called when a stat_decrease_prevention is checked

Parameters:

Returns:

  • (:prevent, nil)

    :prevent if the stat decrease cannot apply



151
152
# File 'docs/5_Battle_06_Effects.rb', line 151

def on_stat_decrease_prevention(handler, stat, target, launcher, skill)
end

#on_stat_increase_prevention(handler, stat, target, launcher, skill) ⇒ :prevent?

Function called when a stat_increase_prevention is checked

Parameters:

Returns:

  • (:prevent, nil)

    :prevent if the stat increase cannot apply



142
143
# File 'docs/5_Battle_06_Effects.rb', line 142

def on_stat_increase_prevention(handler, stat, target, launcher, skill)
end

#on_status_prevention(handler, status, target, launcher, skill) ⇒ :prevent?

Function called when a status_prevention is checked

Parameters:

Returns:

  • (:prevent, nil)

    :prevent if the status cannot be applied



197
198
# File 'docs/5_Battle_06_Effects.rb', line 197

def on_status_prevention(handler, status, target, launcher, skill)
end

#on_switch_event(handler, who, with)

Function called when a Pokemon has actually switched with another one

Parameters:



252
253
# File 'docs/5_Battle_06_Effects.rb', line 252

def on_switch_event(handler, who, with)
end

#on_switch_passthrough(handler, pokemon, skill, reason) ⇒ :passthrough?

Function called when testing if pokemon can switch regardless of the prevension.

Parameters:

Returns:

  • (:passthrough, nil)

    if :passthrough, can_switch? will return true without checking switch_prevention



238
239
# File 'docs/5_Battle_06_Effects.rb', line 238

def on_switch_passthrough(handler, pokemon, skill, reason)
end

#on_switch_prevention(handler, pokemon, skill, reason) ⇒ :prevent?

Function called when testing if pokemon can switch (when he couldn’t passthrough)

Parameters:

Returns:

  • (:prevent, nil)

    if :prevent, can_switch? will return false



246
247
# File 'docs/5_Battle_06_Effects.rb', line 246

def on_switch_prevention(handler, pokemon, skill, reason)
end

#on_transform_event(handler, target)

Function called when a Pokemon initialize a transformation

Parameters:



353
354
# File 'docs/5_Battle_06_Effects.rb', line 353

def on_transform_event(handler, target)
end

#on_two_turn_shortcut(user, targets, skill) ⇒ Boolean

Function called after a battler proceed its two turn move’s first turn

Parameters:

Returns:

  • (Boolean)

    weither or not the two turns move is executed in one turn



122
123
# File 'docs/5_Battle_06_Effects.rb', line 122

def on_two_turn_shortcut(user, targets, skill)
end

#on_weather_prevention(handler, weather_type, last_weather) ⇒ :prevent?

Function called when a weather_prevention is checked

Parameters:

  • handler (Battle::Logic::WeatherChangeHandler)
  • weather_type (Symbol)

    :none, :rain, :sunny, :sandstorm, :hail, :fog

  • last_weather (Symbol)

    :none, :rain, :sunny, :sandstorm, :hail, :fog

Returns:

  • (:prevent, nil)

    :prevent if the status cannot be applied



271
272
# File 'docs/5_Battle_06_Effects.rb', line 271

def on_weather_prevention(handler, weather_type, last_weather)
end

#out_of_reach?Boolean

Tell if the effect make the pokemon out reach

Returns:

  • (Boolean)


97
98
# File 'docs/5_Battle_06_Effects.rb', line 97

def out_of_reach?
end

#preparing_attack?Boolean

Tell if the effect make the pokemon preparing an attack

Returns:

  • (Boolean)


101
102
# File 'docs/5_Battle_06_Effects.rb', line 101

def preparing_attack?
end

#rapid_spin_affected?Boolean

Function that tells if the move is affected by Rapid Spin

Returns:

  • (Boolean)


85
86
# File 'docs/5_Battle_06_Effects.rb', line 85

def rapid_spin_affected?
end

#sp_atk_multiplier(user, target, move) ⇒ Float, Integer

Give the move [Spe]atk mutiplier

Parameters:

Returns:

  • (Float, Integer)

    multiplier



375
376
# File 'docs/5_Battle_06_Effects.rb', line 375

def sp_atk_multiplier(user, target, move)
end

#sp_def_multiplier(user, target, move) ⇒ Float, Integer

Give the move [Spe]def mutiplier

Parameters:

Returns:

  • (Float, Integer)

    multiplier



382
383
# File 'docs/5_Battle_06_Effects.rb', line 382

def sp_def_multiplier(user, target, move)
end

#spd_modifierFloat, Integer

Give the speed modifier over given to the Pokemon with this effect

Returns:

  • (Float, Integer)

    multiplier



415
416
# File 'docs/5_Battle_06_Effects.rb', line 415

def spd_modifier
end

#specific_proceed_internal(user, targets, move)

Return the specific proceed_internal if the condition is fulfilled

Parameters:



441
442
# File 'docs/5_Battle_06_Effects.rb', line 441

def specific_proceed_internal(user, targets, move)
end

#target_redirection(user, targets, move) ⇒ PFM::PokemonBattler

Return the new target if the conditions are fulfilled

Parameters:

Returns:

  • (PFM::PokemonBattler)

    the new target if the conditions are fulfilled, the initial target otherwise



448
449
# File 'docs/5_Battle_06_Effects.rb', line 448

def target_redirection(user, targets, move)
end

#targetted?(battler) ⇒ Boolean

Tell if the given battler is targetted by the effect

Parameters:

Returns:

  • (Boolean)


111
112
# File 'docs/5_Battle_06_Effects.rb', line 111

def targetted?(battler)
end

#update_counter

Function that updates the counter of the effect



67
68
# File 'docs/5_Battle_06_Effects.rb', line 67

def update_counter
end