Class: Battle::Effects::Stockpile

Inherits:
PokemonTiedEffectBase show all
Defined in:
scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb

Overview

Stockpile raises the user's Defense and Special Defense by one stage each and charges up power for use with companion moves Spit Up or Swallow.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from PokemonTiedEffectBase

#on_baton_pass_switch

Methods inherited from EffectBase

#base_power_multiplier, #can_attack_hit_out_of_reach?, #chance_of_hit_multiplier, #counter=, #dead?, #effect_chance_modifier, #force_next_move?, #kill, #mod1_multiplier, #mod2_multiplier, #mod3_multiplier, #on_damage_prevention, #on_delete, #on_end_turn_event, #on_fterrain_prevention, #on_held_item_use_prevention, #on_move_ability_immunity, #on_move_disabled_check, #on_move_prevention_target, #on_move_prevention_user, #on_move_priority_change, #on_move_type_change, #on_post_accuracy_check, #on_post_action_event, #on_post_damage, #on_post_damage_death, #on_post_fterrain_change, #on_post_item_change, #on_post_status_change, #on_post_weather_change, #on_pre_item_change, #on_single_type_multiplier_overwrite, #on_stat_change, #on_stat_change_post, #on_stat_decrease_prevention, #on_stat_increase_prevention, #on_status_prevention, #on_switch_event, #on_switch_passthrough, #on_switch_prevention, #on_transform_event, #on_two_turn_shortcut, #on_weather_prevention, #out_of_reach?, #rapid_spin_affected?, #sp_atk_multiplier, #sp_def_multiplier, #spd_modifier, #targetted?, #update_counter

Constructor Details

#initialize(logic, pokemon) ⇒ Stockpile

Create a new Pokemon tied effect

Parameters:



15
16
17
18
19
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 15

def initialize(logic, pokemon)
  super
  @stockpile = 0
  @stages_bonus = Hash.new(0)
end

Instance Attribute Details

#stockpileInteger (readonly)

Return the amount in stockpile

Returns:



10
11
12
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 10

def stockpile
  @stockpile
end

Instance Method Details

#increasable?Boolean

Is the effect increasable?

Returns:

  • (Boolean)


23
24
25
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 23

def increasable?
  return @stockpile < maximum
end

#increase(amount = 1) ⇒ Boolean

Increase the stockpile value with animation

Parameters:

  • amount (Integer) (defaults to: 1)

    (default: 1)

Returns:

  • (Boolean)

    if the increase proc or not



36
37
38
39
40
41
42
43
44
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 36

def increase(amount = 1)
  return false unless increasable?

  @stockpile += amount
  log_data("stockpile #{@stockpile}")
  @logic.scene.display_message_and_wait(on_increase_message)
  edit_stages
  return true
end

#maximumInteger

Maximum stockpile

Returns:



65
66
67
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 65

def maximum
  3
end

#nameSymbol

Function giving the name of the effect

Returns:

  • (Symbol)


59
60
61
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 59

def name
  :stockpile
end

#usable?Boolean

Is the effect usable ?

Returns:

  • (Boolean)


29
30
31
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 29

def usable?
  return @stockpile > 0
end

#useBoolean

Function called when the effect is being used

Returns:

  • (Boolean)

    if the effect has been used or not



48
49
50
51
52
53
54
55
# File 'scripts/01600 Alpha 25 Battle Engine/04000 Effects/00500 Move Effects/01000 Stockpile.rb', line 48

def use
  return false unless usable?

  restore_stages
  @logic.scene.display_message_and_wait(on_clear_message)
  kill
  return true
end