mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Added class GameData::BattleWeather
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
module GameData
|
||||
class BattleWeather
|
||||
attr_reader :id
|
||||
attr_reader :real_name
|
||||
attr_reader :animation
|
||||
|
||||
DATA = {}
|
||||
|
||||
extend ClassMethodsSymbols
|
||||
include InstanceMethods
|
||||
|
||||
def self.load; end
|
||||
def self.save; end
|
||||
|
||||
def initialize(hash)
|
||||
@id = hash[:id]
|
||||
@real_name = hash[:name] || "Unnamed"
|
||||
@animation = hash[:animation]
|
||||
end
|
||||
|
||||
# @return [String] the translated name of this battle weather
|
||||
def name
|
||||
return _INTL(@real_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :None,
|
||||
:name => _INTL("None")
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :Sun,
|
||||
:name => _INTL("Sun"),
|
||||
:animation => "Sun"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :Rain,
|
||||
:name => _INTL("Rain"),
|
||||
:animation => "Rain"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :Sandstorm,
|
||||
:name => _INTL("Sandstorm"),
|
||||
:animation => "Sandstorm"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :Hail,
|
||||
:name => _INTL("Hail"),
|
||||
:animation => "Hail"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :HarshSun,
|
||||
:name => _INTL("Harsh Sun"),
|
||||
:animation => "HarshSun"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :HeavyRain,
|
||||
:name => _INTL("Heavy Rain"),
|
||||
:animation => "HeavyRain"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :StrongWinds,
|
||||
:name => _INTL("Strong Winds"),
|
||||
:animation => "StrongWinds"
|
||||
})
|
||||
|
||||
GameData::BattleWeather.register({
|
||||
:id => :ShadowSky,
|
||||
:name => _INTL("Shadow Sky"),
|
||||
:animation => "ShadowSky"
|
||||
})
|
||||
@@ -1,32 +0,0 @@
|
||||
begin
|
||||
module PBWeather
|
||||
None = 0
|
||||
Sun = 1
|
||||
Rain = 2
|
||||
Sandstorm = 3
|
||||
Hail = 4
|
||||
HarshSun = 5
|
||||
HeavyRain = 6
|
||||
StrongWinds = 7
|
||||
ShadowSky = 8
|
||||
|
||||
def self.animationName(weather)
|
||||
case weather
|
||||
when Sun then return "Sun"
|
||||
when Rain then return "Rain"
|
||||
when Sandstorm then return "Sandstorm"
|
||||
when Hail then return "Hail"
|
||||
when HarshSun then return "HarshSun"
|
||||
when HeavyRain then return "HeavyRain"
|
||||
when StrongWinds then return "StrongWinds"
|
||||
when ShadowSky then return "ShadowSky"
|
||||
end
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
rescue Exception
|
||||
if $!.is_a?(SystemExit) || "#{$!.class}"=="Reset"
|
||||
raise $!
|
||||
end
|
||||
end
|
||||
@@ -170,9 +170,9 @@ class PokeBattle_Battler
|
||||
if hasActiveAbility?(:FORECAST)
|
||||
newForm = 0
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun then newForm = 1
|
||||
when PBWeather::Rain, PBWeather::HeavyRain then newForm = 2
|
||||
when PBWeather::Hail then newForm = 3
|
||||
when :Sun, :HarshSun then newForm = 1
|
||||
when :Rain, :HeavyRain then newForm = 2
|
||||
when :Hail then newForm = 3
|
||||
end
|
||||
if @form!=newForm
|
||||
@battle.pbShowAbilitySplash(self,true)
|
||||
@@ -187,7 +187,7 @@ class PokeBattle_Battler
|
||||
if isSpecies?(:CHERRIM)
|
||||
if hasActiveAbility?(:FLOWERGIFT)
|
||||
newForm = 0
|
||||
newForm = 1 if [PBWeather::Sun, PBWeather::HarshSun].include?(@battle.pbWeather)
|
||||
newForm = 1 if [:Sun, :HarshSun].include?(@battle.pbWeather)
|
||||
if @form!=newForm
|
||||
@battle.pbShowAbilitySplash(self,true)
|
||||
@battle.pbHideAbilitySplash(self)
|
||||
|
||||
@@ -52,8 +52,7 @@ class PokeBattle_Battler
|
||||
return false
|
||||
end
|
||||
# Weather immunity
|
||||
if newStatus == :FROZEN &&
|
||||
(@battle.pbWeather==PBWeather::Sun || @battle.pbWeather==PBWeather::HarshSun)
|
||||
if newStatus == :FROZEN && [:Sun, :HarshSun].include?(@battle.pbWeather)
|
||||
@battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
|
||||
return false
|
||||
end
|
||||
|
||||
@@ -323,8 +323,7 @@ class PokeBattle_Battler
|
||||
@battle.pbCommonAnimation("Powder",user)
|
||||
@battle.pbDisplay(_INTL("When the flame touched the powder on the Pokémon, it exploded!"))
|
||||
user.lastMoveFailed = true
|
||||
w = @battle.pbWeather
|
||||
if w!=PBWeather::Rain && w!=PBWeather::HeavyRain && user.takesIndirectDamage?
|
||||
if ![:Rain, :HeavyRain].include?(@battle.pbWeather) && user.takesIndirectDamage?
|
||||
oldHP = user.hp
|
||||
user.pbReduceHP((user.totalhp/4.0).round,false)
|
||||
user.pbFaint if user.fainted?
|
||||
@@ -341,7 +340,7 @@ class PokeBattle_Battler
|
||||
# Primordial Sea, Desolate Land
|
||||
if move.damagingMove?
|
||||
case @battle.pbWeather
|
||||
when PBWeather::HeavyRain
|
||||
when :HeavyRain
|
||||
if move.calcType == :FIRE
|
||||
@battle.pbDisplay(_INTL("The Fire-type attack fizzled out in the heavy rain!"))
|
||||
user.lastMoveFailed = true
|
||||
@@ -349,7 +348,7 @@ class PokeBattle_Battler
|
||||
pbEndTurn(choice)
|
||||
return
|
||||
end
|
||||
when PBWeather::HarshSun
|
||||
when :HarshSun
|
||||
if move.calcType == :WATER
|
||||
@battle.pbDisplay(_INTL("The Water-type attack evaporated in the harsh sunlight!"))
|
||||
user.lastMoveFailed = true
|
||||
|
||||
@@ -46,7 +46,7 @@ class PokeBattle_Move
|
||||
PBTypes.ineffective?(moveType,defType)
|
||||
end
|
||||
# Delta Stream's weather
|
||||
if @battle.pbWeather==PBWeather::StrongWinds
|
||||
if @battle.pbWeather == :StrongWinds
|
||||
ret = PBTypeEffectiveness::NORMAL_EFFECTIVE_ONE if defType == :FLYING &&
|
||||
PBTypes.superEffective?(moveType,defType)
|
||||
end
|
||||
@@ -373,19 +373,19 @@ class PokeBattle_Move
|
||||
end
|
||||
# Weather
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
if type == :FIRE
|
||||
multipliers[:final_damage_multiplier] *= 1.5
|
||||
elsif type == :WATER
|
||||
multipliers[:final_damage_multiplier] /= 2
|
||||
end
|
||||
when PBWeather::Rain, PBWeather::HeavyRain
|
||||
when :Rain, :HeavyRain
|
||||
if type == :FIRE
|
||||
multipliers[:final_damage_multiplier] /= 2
|
||||
elsif type == :WATER
|
||||
multipliers[:final_damage_multiplier] *= 1.5
|
||||
end
|
||||
when PBWeather::Sandstorm
|
||||
when :Sandstorm
|
||||
if target.pbHasType?(:ROCK) && specialMove? && @function != "122" # Psyshock
|
||||
multipliers[:defense_multiplier] *= 1.5
|
||||
end
|
||||
|
||||
@@ -596,17 +596,18 @@ end
|
||||
class PokeBattle_WeatherMove < PokeBattle_Move
|
||||
def initialize(battle,move)
|
||||
super
|
||||
@weatherType = PBWeather::None
|
||||
@weatherType = :None
|
||||
end
|
||||
|
||||
def pbMoveFailed?(user,targets)
|
||||
case @battle.field.weather
|
||||
when PBWeather::HarshSun
|
||||
when :HarshSun
|
||||
@battle.pbDisplay(_INTL("The extremely harsh sunlight was not lessened at all!"))
|
||||
return true
|
||||
when PBWeather::HeavyRain
|
||||
when :HeavyRain
|
||||
@battle.pbDisplay(_INTL("There is no relief from this heavy rain!"))
|
||||
return true
|
||||
when PBWeather::StrongWinds
|
||||
when :StrongWinds
|
||||
@battle.pbDisplay(_INTL("The mysterious air current blows on regardless!"))
|
||||
return true
|
||||
when @weatherType
|
||||
|
||||
@@ -131,9 +131,9 @@ class PokeBattle_Move_008 < PokeBattle_ParalysisMove
|
||||
|
||||
def pbBaseAccuracy(user,target)
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
return 50
|
||||
when PBWeather::Rain, PBWeather::HeavyRain
|
||||
when :Rain, :HeavyRain
|
||||
return 0
|
||||
end
|
||||
return super
|
||||
@@ -201,7 +201,7 @@ end
|
||||
#===============================================================================
|
||||
class PokeBattle_Move_00D < PokeBattle_FreezeMove
|
||||
def pbBaseAccuracy(user,target)
|
||||
return 0 if @battle.pbWeather==PBWeather::Hail
|
||||
return 0 if @battle.pbWeather == :Hail
|
||||
return super
|
||||
end
|
||||
end
|
||||
@@ -308,9 +308,9 @@ class PokeBattle_Move_015 < PokeBattle_ConfuseMove
|
||||
|
||||
def pbBaseAccuracy(user,target)
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
return 50
|
||||
when PBWeather::Rain, PBWeather::HeavyRain
|
||||
when :Rain, :HeavyRain
|
||||
return 0
|
||||
end
|
||||
return super
|
||||
@@ -731,10 +731,7 @@ class PokeBattle_Move_028 < PokeBattle_MultiStatUpMove
|
||||
|
||||
def pbOnStartUse(user,targets)
|
||||
increment = 1
|
||||
if @battle.pbWeather==PBWeather::Sun ||
|
||||
@battle.pbWeather==PBWeather::HarshSun
|
||||
increment = 2
|
||||
end
|
||||
increment = 2 if [:Sun, :HarshSun].include?(@battle.pbWeather)
|
||||
@statUp[1] = @statUp[3] = increment
|
||||
end
|
||||
end
|
||||
|
||||
@@ -105,20 +105,20 @@ end
|
||||
#===============================================================================
|
||||
class PokeBattle_Move_087 < PokeBattle_Move
|
||||
def pbBaseDamage(baseDmg,user,target)
|
||||
baseDmg *= 2 if @battle.pbWeather!=PBWeather::None
|
||||
baseDmg *= 2 if @battle.pbWeather != :None
|
||||
return baseDmg
|
||||
end
|
||||
|
||||
def pbBaseType(user)
|
||||
ret = :NORMAL
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
ret = :FIRE if GameData::Type.exists?(:FIRE)
|
||||
when PBWeather::Rain, PBWeather::HeavyRain
|
||||
when :Rain, :HeavyRain
|
||||
ret = :WATER if GameData::Type.exists?(:WATER)
|
||||
when PBWeather::Sandstorm
|
||||
when :Sandstorm
|
||||
ret = :ROCK if GameData::Type.exists?(:ROCK)
|
||||
when PBWeather::Hail
|
||||
when :Hail
|
||||
ret = :ICE if GameData::Type.exists?(:ICE)
|
||||
end
|
||||
return ret
|
||||
@@ -2035,8 +2035,7 @@ class PokeBattle_Move_0C4 < PokeBattle_TwoTurnMove
|
||||
def pbIsChargingTurn?(user)
|
||||
ret = super
|
||||
if !user.effects[PBEffects::TwoTurnAttack]
|
||||
w = @battle.pbWeather
|
||||
if w==PBWeather::Sun || w==PBWeather::HarshSun
|
||||
if [:Sun, :HarshSun].include?(@battle.pbWeather)
|
||||
@powerHerb = false
|
||||
@chargingTurn = true
|
||||
@damagingTurn = true
|
||||
@@ -2051,8 +2050,7 @@ class PokeBattle_Move_0C4 < PokeBattle_TwoTurnMove
|
||||
end
|
||||
|
||||
def pbBaseDamageMultiplier(damageMult,user,target)
|
||||
w = @battle.pbWeather
|
||||
damageMult /= 2 if w>0 && w!=PBWeather::Sun && w!=PBWeather::HarshSun
|
||||
damageMult /= 2 if ![:None, :Sun, :HarshSun].include?(@battle.pbWeather)
|
||||
return damageMult
|
||||
end
|
||||
end
|
||||
@@ -2533,9 +2531,9 @@ end
|
||||
class PokeBattle_Move_0D8 < PokeBattle_HealingMove
|
||||
def pbOnStartUse(user,targets)
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
@healAmount = (user.totalhp*2/3.0).round
|
||||
when PBWeather::None, PBWeather::StrongWinds
|
||||
when :None, :StrongWinds
|
||||
@healAmount = (user.totalhp/2.0).round
|
||||
else
|
||||
@healAmount = (user.totalhp/4.0).round
|
||||
@@ -3717,6 +3715,6 @@ end
|
||||
class PokeBattle_Move_0FF < PokeBattle_WeatherMove
|
||||
def initialize(battle,move)
|
||||
super
|
||||
@weatherType = PBWeather::Sun
|
||||
@weatherType = :Sun
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
class PokeBattle_Move_100 < PokeBattle_WeatherMove
|
||||
def initialize(battle,move)
|
||||
super
|
||||
@weatherType = PBWeather::Rain
|
||||
@weatherType = :Rain
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,7 +16,7 @@ end
|
||||
class PokeBattle_Move_101 < PokeBattle_WeatherMove
|
||||
def initialize(battle,move)
|
||||
super
|
||||
@weatherType = PBWeather::Sandstorm
|
||||
@weatherType = :Sandstorm
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,7 +28,7 @@ end
|
||||
class PokeBattle_Move_102 < PokeBattle_WeatherMove
|
||||
def initialize(battle,move)
|
||||
super
|
||||
@weatherType = PBWeather::Hail
|
||||
@weatherType = :Hail
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2210,7 +2210,7 @@ end
|
||||
#===============================================================================
|
||||
class PokeBattle_Move_167 < PokeBattle_Move
|
||||
def pbMoveFailed?(user,targets)
|
||||
if @battle.pbWeather!=PBWeather::Hail
|
||||
if @battle.pbWeather != :Hail
|
||||
@battle.pbDisplay(_INTL("But it failed!"))
|
||||
return true
|
||||
end
|
||||
@@ -2382,7 +2382,7 @@ end
|
||||
#===============================================================================
|
||||
class PokeBattle_Move_16D < PokeBattle_HealingMove
|
||||
def pbHealAmount(user)
|
||||
return (user.totalhp*2/3.0).round if @battle.pbWeather==PBWeather::Sandstorm
|
||||
return (user.totalhp*2/3.0).round if @battle.pbWeather == :Sandstorm
|
||||
return (user.totalhp/2.0).round
|
||||
end
|
||||
end
|
||||
|
||||
@@ -642,7 +642,7 @@ class PokeBattle_Battle
|
||||
|
||||
# Returns the effective weather (note that weather effects can be negated)
|
||||
def pbWeather
|
||||
eachBattler { |b| return PBWeather::None if b.hasActiveAbility?([:CLOUDNINE,:AIRLOCK]) }
|
||||
eachBattler { |b| return :None if b.hasActiveAbility?([:CLOUDNINE, :AIRLOCK]) }
|
||||
return @field.weather
|
||||
end
|
||||
|
||||
@@ -656,17 +656,18 @@ class PokeBattle_Battle
|
||||
@field.weather,duration,user,self)
|
||||
end
|
||||
@field.weatherDuration = duration
|
||||
pbCommonAnimation(PBWeather.animationName(@field.weather)) if showAnim
|
||||
weather_data = GameData::BattleWeather.try_get(@field.weather)
|
||||
pbCommonAnimation(weather_data.animation) if showAnim && weather_data
|
||||
pbHideAbilitySplash(user) if user
|
||||
case @field.weather
|
||||
when PBWeather::Sun then pbDisplay(_INTL("The sunlight turned harsh!"))
|
||||
when PBWeather::Rain then pbDisplay(_INTL("It started to rain!"))
|
||||
when PBWeather::Sandstorm then pbDisplay(_INTL("A sandstorm brewed!"))
|
||||
when PBWeather::Hail then pbDisplay(_INTL("It started to hail!"))
|
||||
when PBWeather::HarshSun then pbDisplay(_INTL("The sunlight turned extremely harsh!"))
|
||||
when PBWeather::HeavyRain then pbDisplay(_INTL("A heavy rain began to fall!"))
|
||||
when PBWeather::StrongWinds then pbDisplay(_INTL("Mysterious strong winds are protecting Flying-type Pokémon!"))
|
||||
when PBWeather::ShadowSky then pbDisplay(_INTL("A shadow sky appeared!"))
|
||||
when :Sun then pbDisplay(_INTL("The sunlight turned harsh!"))
|
||||
when :Rain then pbDisplay(_INTL("It started to rain!"))
|
||||
when :Sandstorm then pbDisplay(_INTL("A sandstorm brewed!"))
|
||||
when :Hail then pbDisplay(_INTL("It started to hail!"))
|
||||
when :HarshSun then pbDisplay(_INTL("The sunlight turned extremely harsh!"))
|
||||
when :HeavyRain then pbDisplay(_INTL("A heavy rain began to fall!"))
|
||||
when :StrongWinds then pbDisplay(_INTL("Mysterious strong winds are protecting Flying-type Pokémon!"))
|
||||
when :ShadowSky then pbDisplay(_INTL("A shadow sky appeared!"))
|
||||
end
|
||||
# Check for end of primordial weather, and weather-triggered form changes
|
||||
eachBattler { |b| b.pbCheckFormOnWeatherChange }
|
||||
@@ -677,19 +678,19 @@ class PokeBattle_Battle
|
||||
oldWeather = @field.weather
|
||||
# End Primordial Sea, Desolate Land, Delta Stream
|
||||
case @field.weather
|
||||
when PBWeather::HarshSun
|
||||
when :HarshSun
|
||||
if !pbCheckGlobalAbility(:DESOLATELAND)
|
||||
@field.weather = PBWeather::None
|
||||
@field.weather = :None
|
||||
pbDisplay("The harsh sunlight faded!")
|
||||
end
|
||||
when PBWeather::HeavyRain
|
||||
when :HeavyRain
|
||||
if !pbCheckGlobalAbility(:PRIMORDIALSEA)
|
||||
@field.weather = PBWeather::None
|
||||
@field.weather = :None
|
||||
pbDisplay("The heavy rain has lifted!")
|
||||
end
|
||||
when PBWeather::StrongWinds
|
||||
when :StrongWinds
|
||||
if !pbCheckGlobalAbility(:DELTASTREAM)
|
||||
@field.weather = PBWeather::None
|
||||
@field.weather = :None
|
||||
pbDisplay("The mysterious air current has dissipated!")
|
||||
end
|
||||
end
|
||||
@@ -697,7 +698,7 @@ class PokeBattle_Battle
|
||||
# Check for form changes caused by the weather changing
|
||||
eachBattler { |b| b.pbCheckFormOnWeatherChange }
|
||||
# Start up the default weather
|
||||
pbStartWeather(nil,@field.defaultWeather) if @field.defaultWeather!=PBWeather::None
|
||||
pbStartWeather(nil,@field.defaultWeather) if @field.defaultWeather != :None
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -271,16 +271,17 @@ class PokeBattle_Battle
|
||||
# Show trainers on both sides sending out Pokémon
|
||||
pbStartBattleSendOut(sendOuts)
|
||||
# Weather announcement
|
||||
pbCommonAnimation(PBWeather.animationName(@field.weather))
|
||||
weather_data = GameData::BattleWeather.try_get(@field.weather)
|
||||
pbCommonAnimation(weather_data.animation) if weather_data
|
||||
case @field.weather
|
||||
when PBWeather::Sun then pbDisplay(_INTL("The sunlight is strong."))
|
||||
when PBWeather::Rain then pbDisplay(_INTL("It is raining."))
|
||||
when PBWeather::Sandstorm then pbDisplay(_INTL("A sandstorm is raging."))
|
||||
when PBWeather::Hail then pbDisplay(_INTL("Hail is falling."))
|
||||
when PBWeather::HarshSun then pbDisplay(_INTL("The sunlight is extremely harsh."))
|
||||
when PBWeather::HeavyRain then pbDisplay(_INTL("It is raining heavily."))
|
||||
when PBWeather::StrongWinds then pbDisplay(_INTL("The wind is strong."))
|
||||
when PBWeather::ShadowSky then pbDisplay(_INTL("The sky is shadowy."))
|
||||
when :Sun then pbDisplay(_INTL("The sunlight is strong."))
|
||||
when :Rain then pbDisplay(_INTL("It is raining."))
|
||||
when :Sandstorm then pbDisplay(_INTL("A sandstorm is raging."))
|
||||
when :Hail then pbDisplay(_INTL("Hail is falling."))
|
||||
when :HarshSun then pbDisplay(_INTL("The sunlight is extremely harsh."))
|
||||
when :HeavyRain then pbDisplay(_INTL("It is raining heavily."))
|
||||
when :StrongWinds then pbDisplay(_INTL("The wind is strong."))
|
||||
when :ShadowSky then pbDisplay(_INTL("The sky is shadowy."))
|
||||
end
|
||||
# Terrain announcement
|
||||
terrain_data = GameData::BattleTerrain.try_get(@field.terrain)
|
||||
|
||||
@@ -40,35 +40,31 @@ class PokeBattle_Battle
|
||||
# Weather wears off
|
||||
if @field.weatherDuration==0
|
||||
case @field.weather
|
||||
when PBWeather::Sun
|
||||
pbDisplay(_INTL("The sunlight faded."))
|
||||
when PBWeather::Rain
|
||||
pbDisplay(_INTL("The rain stopped."))
|
||||
when PBWeather::Sandstorm
|
||||
pbDisplay(_INTL("The sandstorm subsided."))
|
||||
when PBWeather::Hail
|
||||
pbDisplay(_INTL("The hail stopped."))
|
||||
when PBWeather::ShadowSky
|
||||
pbDisplay(_INTL("The shadow sky faded."))
|
||||
when :Sun then pbDisplay(_INTL("The sunlight faded."))
|
||||
when :Rain then pbDisplay(_INTL("The rain stopped."))
|
||||
when :Sandstorm then pbDisplay(_INTL("The sandstorm subsided."))
|
||||
when :Hail then pbDisplay(_INTL("The hail stopped."))
|
||||
when :ShadowSky then pbDisplay(_INTL("The shadow sky faded."))
|
||||
end
|
||||
@field.weather = PBWeather::None
|
||||
@field.weather = :None
|
||||
# Check for form changes caused by the weather changing
|
||||
eachBattler { |b| b.pbCheckFormOnWeatherChange }
|
||||
# Start up the default weather
|
||||
pbStartWeather(nil,@field.defaultWeather) if @field.defaultWeather!=PBWeather::None
|
||||
return if @field.weather==PBWeather::None
|
||||
pbStartWeather(nil,@field.defaultWeather) if @field.defaultWeather != :None
|
||||
return if @field.weather == :None
|
||||
end
|
||||
# Weather continues
|
||||
pbCommonAnimation(PBWeather.animationName(@field.weather))
|
||||
weather_data = GameData::BattleWeather.try_get(@field.weather)
|
||||
pbCommonAnimation(weather_data.animation) if weather_data
|
||||
case @field.weather
|
||||
# when PBWeather::Sun then pbDisplay(_INTL("The sunlight is strong."))
|
||||
# when PBWeather::Rain then pbDisplay(_INTL("Rain continues to fall."))
|
||||
when PBWeather::Sandstorm then pbDisplay(_INTL("The sandstorm is raging."))
|
||||
when PBWeather::Hail then pbDisplay(_INTL("The hail is crashing down."))
|
||||
# when PBWeather::HarshSun then pbDisplay(_INTL("The sunlight is extremely harsh."))
|
||||
# when PBWeather::HeavyRain then pbDisplay(_INTL("It is raining heavily."))
|
||||
# when PBWeather::StrongWinds then pbDisplay(_INTL("The wind is strong."))
|
||||
when PBWeather::ShadowSky then pbDisplay(_INTL("The shadow sky continues."))
|
||||
# when :Sun then pbDisplay(_INTL("The sunlight is strong."))
|
||||
# when :Rain then pbDisplay(_INTL("Rain continues to fall."))
|
||||
when :Sandstorm then pbDisplay(_INTL("The sandstorm is raging."))
|
||||
when :Hail then pbDisplay(_INTL("The hail is crashing down."))
|
||||
# when :HarshSun then pbDisplay(_INTL("The sunlight is extremely harsh."))
|
||||
# when :HeavyRain then pbDisplay(_INTL("It is raining heavily."))
|
||||
# when :StrongWinds then pbDisplay(_INTL("The wind is strong."))
|
||||
when :ShadowSky then pbDisplay(_INTL("The shadow sky continues."))
|
||||
end
|
||||
# Effects due to weather
|
||||
curWeather = pbWeather
|
||||
@@ -81,21 +77,21 @@ class PokeBattle_Battle
|
||||
# Weather damage
|
||||
# NOTE:
|
||||
case curWeather
|
||||
when PBWeather::Sandstorm
|
||||
when :Sandstorm
|
||||
next if !b.takesSandstormDamage?
|
||||
pbDisplay(_INTL("{1} is buffeted by the sandstorm!",b.pbThis))
|
||||
@scene.pbDamageAnimation(b)
|
||||
b.pbReduceHP(b.totalhp/16,false)
|
||||
b.pbItemHPHealCheck
|
||||
b.pbFaint if b.fainted?
|
||||
when PBWeather::Hail
|
||||
when :Hail
|
||||
next if !b.takesHailDamage?
|
||||
pbDisplay(_INTL("{1} is buffeted by the hail!",b.pbThis))
|
||||
@scene.pbDamageAnimation(b)
|
||||
b.pbReduceHP(b.totalhp/16,false)
|
||||
b.pbItemHPHealCheck
|
||||
b.pbFaint if b.fainted?
|
||||
when PBWeather::ShadowSky
|
||||
when :ShadowSky
|
||||
next if !b.takesShadowSkyDamage?
|
||||
pbDisplay(_INTL("{1} is hurt by the shadow sky!",b.pbThis))
|
||||
@scene.pbDamageAnimation(b)
|
||||
@@ -264,7 +260,7 @@ class PokeBattle_Battle
|
||||
curWeather = pbWeather
|
||||
for side in 0...2
|
||||
next if sides[side].effects[PBEffects::SeaOfFire]==0
|
||||
next if curWeather==PBWeather::Rain || curWeather==PBWeather::HeavyRain
|
||||
next if [:Rain, :HeavyRain].include?(curWeather)
|
||||
@battle.pbCommonAnimation("SeaOfFire") if side==0
|
||||
@battle.pbCommonAnimation("SeaOfFireOpp") if side==1
|
||||
priority.each do |b|
|
||||
|
||||
@@ -455,8 +455,7 @@ class PokeBattle_AI
|
||||
end
|
||||
end
|
||||
if move.function=="028" # Growth
|
||||
score += 20 if @battle.pbWeather==PBWeather::Sun ||
|
||||
@battle.pbWeather==PBWeather::HarshSun
|
||||
score += 20 if [:Sun, :HarshSun].include?(@battle.pbWeather)
|
||||
end
|
||||
end
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -1854,9 +1853,9 @@ class PokeBattle_AI
|
||||
score -= 90
|
||||
else
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
score += 30
|
||||
when PBWeather::None
|
||||
when :None
|
||||
else
|
||||
score -= 30
|
||||
end
|
||||
@@ -2143,7 +2142,7 @@ class PokeBattle_AI
|
||||
if @battle.pbCheckGlobalAbility(:AIRLOCK) ||
|
||||
@battle.pbCheckGlobalAbility(:CLOUDNINE)
|
||||
score -= 90
|
||||
elsif @battle.pbWeather==PBWeather::Sun
|
||||
elsif @battle.pbWeather == :Sun
|
||||
score -= 90
|
||||
else
|
||||
user.eachMove do |m|
|
||||
@@ -2156,7 +2155,7 @@ class PokeBattle_AI
|
||||
if @battle.pbCheckGlobalAbility(:AIRLOCK) ||
|
||||
@battle.pbCheckGlobalAbility(:CLOUDNINE)
|
||||
score -= 90
|
||||
elsif @battle.pbWeather==PBWeather::Rain
|
||||
elsif @battle.pbWeather == :Rain
|
||||
score -= 90
|
||||
else
|
||||
user.eachMove do |m|
|
||||
@@ -2169,7 +2168,7 @@ class PokeBattle_AI
|
||||
if @battle.pbCheckGlobalAbility(:AIRLOCK) ||
|
||||
@battle.pbCheckGlobalAbility(:CLOUDNINE)
|
||||
score -= 90
|
||||
elsif @battle.pbWeather==PBWeather::Sandstorm
|
||||
elsif @battle.pbWeather == :Sandstorm
|
||||
score -= 90
|
||||
end
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -2177,7 +2176,7 @@ class PokeBattle_AI
|
||||
if @battle.pbCheckGlobalAbility(:AIRLOCK) ||
|
||||
@battle.pbCheckGlobalAbility(:CLOUDNINE)
|
||||
score -= 90
|
||||
elsif @battle.pbWeather==PBWeather::Hail
|
||||
elsif @battle.pbWeather == :Hail
|
||||
score -= 90
|
||||
end
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -2506,7 +2505,7 @@ class PokeBattle_AI
|
||||
if @battle.pbCheckGlobalAbility(:AIRLOCK) ||
|
||||
@battle.pbCheckGlobalAbility(:CLOUDNINE)
|
||||
score -= 90
|
||||
elsif @battle.pbWeather==PBWeather::ShadowSky
|
||||
elsif @battle.pbWeather == :ShadowSky
|
||||
score -= 90
|
||||
end
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -2913,7 +2912,7 @@ class PokeBattle_AI
|
||||
when "166"
|
||||
#---------------------------------------------------------------------------
|
||||
when "167"
|
||||
if user.pbOwnSide.effects[PBEffects::AuroraVeil]>0 || @battle.pbWeather!=PBWeather::Hail
|
||||
if user.pbOwnSide.effects[PBEffects::AuroraVeil]>0 || @battle.pbWeather != :Hail
|
||||
score -= 90
|
||||
else
|
||||
score += 40
|
||||
@@ -2972,7 +2971,7 @@ class PokeBattle_AI
|
||||
else
|
||||
score += 50
|
||||
score -= user.hp*100/user.totalhp
|
||||
score += 30 if @battle.pbWeather==PBWeather::Sandstorm
|
||||
score += 30 if @battle.pbWeather == :Sandstorm
|
||||
end
|
||||
#---------------------------------------------------------------------------
|
||||
when "16E"
|
||||
|
||||
@@ -44,7 +44,7 @@ class PokeBattle_AI
|
||||
PBTypes.ineffective?(moveType,defType)
|
||||
end
|
||||
# Delta Stream's weather
|
||||
if @battle.pbWeather==PBWeather::StrongWinds
|
||||
if @battle.pbWeather == :StrongWinds
|
||||
ret = PBTypeEffectiveness::NORMAL_EFFECTIVE_ONE if defType == :FLYING &&
|
||||
PBTypes.superEffective?(moveType,defType)
|
||||
end
|
||||
@@ -432,19 +432,19 @@ class PokeBattle_AI
|
||||
# Weather
|
||||
if skill>=PBTrainerAI.mediumSkill
|
||||
case @battle.pbWeather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
if type == :FIRE
|
||||
multipliers[:final_damage_multiplier] *= 1.5
|
||||
elsif type == :WATER
|
||||
multipliers[:final_damage_multiplier] /= 2
|
||||
end
|
||||
when PBWeather::Rain, PBWeather::HeavyRain
|
||||
when :Rain, :HeavyRain
|
||||
if type == :FIRE
|
||||
multipliers[:final_damage_multiplier] /= 2
|
||||
elsif type == :WATER
|
||||
multipliers[:final_damage_multiplier] *= 1.5
|
||||
end
|
||||
when PBWeather::Sandstorm
|
||||
when :Sandstorm
|
||||
if target.pbHasType?(:ROCK) && move.specialMove?(type) && move.function != "122" # Psyshock
|
||||
multipliers[:defense_multiplier] *= 1.5
|
||||
end
|
||||
|
||||
@@ -588,10 +588,7 @@ def pbBattleTypeWeakingBerry(type,moveType,target,mults)
|
||||
end
|
||||
|
||||
def pbBattleWeatherAbility(weather,battler,battle,ignorePrimal=false)
|
||||
return if !ignorePrimal &&
|
||||
(battle.field.weather==PBWeather::HarshSun ||
|
||||
battle.field.weather==PBWeather::HeavyRain ||
|
||||
battle.field.weather==PBWeather::StrongWinds)
|
||||
return if !ignorePrimal && [:HarshSun, :HeavyRain, :StrongWinds].include?(battle.field.weather)
|
||||
return if battle.field.weather==weather
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
if !PokeBattle_SceneConstants::USE_ABILITY_SPLASH
|
||||
@@ -599,9 +596,7 @@ def pbBattleWeatherAbility(weather,battler,battle,ignorePrimal=false)
|
||||
end
|
||||
fixedDuration = false
|
||||
fixedDuration = true if Settings::FIXED_DURATION_WEATHER_FROM_ABILITY &&
|
||||
weather != PBWeather::HarshSun &&
|
||||
weather != PBWeather::HeavyRain &&
|
||||
weather != PBWeather::StrongWinds
|
||||
![:HarshSun, :HeavyRain, :StrongWinds].include?(weather)
|
||||
battle.pbStartWeather(battler,weather,fixedDuration)
|
||||
# NOTE: The ability splash is hidden again in def pbStartWeather.
|
||||
end
|
||||
|
||||
@@ -322,7 +322,7 @@ class PokeBattle_SafariZone
|
||||
@backdropBase = nil
|
||||
@time = 0
|
||||
@environment = :None # e.g. Tall grass, cave, still water
|
||||
@weather = PBWeather::None
|
||||
@weather = :None
|
||||
@decision = 0
|
||||
@caughtPokemon = []
|
||||
@player = [player]
|
||||
@@ -426,7 +426,8 @@ class PokeBattle_SafariZone
|
||||
@scene.pbStartBattle(self)
|
||||
pbDisplayPaused(_INTL("Wild {1} appeared!",pkmn.name))
|
||||
@scene.pbSafariStart
|
||||
@scene.pbCommonAnimation(PBWeather.animationName(@weather))
|
||||
weather_data = GameData::BattleWeather.try_get(@weather)
|
||||
@scene.pbCommonAnimation(weather_data.animation) if weather_data
|
||||
safariBall = GameData::Item.get(:SAFARIBALL).id
|
||||
catch_rate = pkmn.species_data.catch_rate
|
||||
catchFactor = (catch_rate*100)/1275
|
||||
@@ -485,7 +486,8 @@ class PokeBattle_SafariZone
|
||||
pbDisplay(_INTL("{1} is watching carefully!",pkmn.name))
|
||||
end
|
||||
# Weather continues
|
||||
@scene.pbCommonAnimation(PBWeather.animationName(@weather))
|
||||
weather_data = GameData::BattleWeather.try_get(@weather)
|
||||
@scene.pbCommonAnimation(weather_data.animation) if weather_data
|
||||
end
|
||||
break if @decision > 0
|
||||
end
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
|
||||
BattleHandlers::SpeedCalcAbility.add(:CHLOROPHYLL,
|
||||
proc { |ability,battler,mult|
|
||||
w = battler.battle.pbWeather
|
||||
next mult*2 if w==PBWeather::Sun || w==PBWeather::HarshSun
|
||||
next mult * 2 if [:Sun, :HarshSun].include?(battler.battle.pbWeather)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -17,8 +16,7 @@ BattleHandlers::SpeedCalcAbility.add(:QUICKFEET,
|
||||
|
||||
BattleHandlers::SpeedCalcAbility.add(:SANDRUSH,
|
||||
proc { |ability,battler,mult|
|
||||
w = battler.battle.pbWeather
|
||||
next mult*2 if w==PBWeather::Sandstorm
|
||||
next mult * 2 if [:Sandstorm].include?(battler.battle.pbWeather)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -30,8 +28,7 @@ BattleHandlers::SpeedCalcAbility.add(:SLOWSTART,
|
||||
|
||||
BattleHandlers::SpeedCalcAbility.add(:SLUSHRUSH,
|
||||
proc { |ability,battler,mult|
|
||||
w = battler.battle.pbWeather
|
||||
next mult*2 if w==PBWeather::Hail
|
||||
next mult * 2 if [:Hail].include?(battler.battle.pbWeather)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -43,8 +40,7 @@ BattleHandlers::SpeedCalcAbility.add(:SURGESURFER,
|
||||
|
||||
BattleHandlers::SpeedCalcAbility.add(:SWIFTSWIM,
|
||||
proc { |ability,battler,mult|
|
||||
w = battler.battle.pbWeather
|
||||
next mult*2 if w==PBWeather::Rain || w==PBWeather::HeavyRain
|
||||
next mult * 2 if [:Rain, :HeavyRain].include?(battler.battle.pbWeather)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -151,8 +147,7 @@ BattleHandlers::StatusImmunityAbility.copy(:INSOMNIA,:SWEETVEIL,:VITALSPIRIT)
|
||||
|
||||
BattleHandlers::StatusImmunityAbility.add(:LEAFGUARD,
|
||||
proc { |ability,battler,status|
|
||||
w = battler.battle.pbWeather
|
||||
next true if w==PBWeather::Sun || w==PBWeather::HarshSun
|
||||
next true if [:Sun, :HarshSun].include?(battler.battle.pbWeather)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -830,17 +825,13 @@ BattleHandlers::AccuracyCalcTargetAbility.add(:NOGUARD,
|
||||
|
||||
BattleHandlers::AccuracyCalcTargetAbility.add(:SANDVEIL,
|
||||
proc { |ability,mods,user,target,move,type|
|
||||
if target.battle.pbWeather==PBWeather::Sandstorm
|
||||
mods[:evasion_multiplier] *= 1.25
|
||||
end
|
||||
mods[:evasion_multiplier] *= 1.25 if target.battle.pbWeather == :Sandstorm
|
||||
}
|
||||
)
|
||||
|
||||
BattleHandlers::AccuracyCalcTargetAbility.add(:SNOWCLOAK,
|
||||
proc { |ability,mods,user,target,move,type|
|
||||
if target.battle.pbWeather==PBWeather::Hail
|
||||
mods[:evasion_multiplier] *= 1.25
|
||||
end
|
||||
mods[:evasion_multiplier] *= 1.25 if target.battle.pbWeather == :Hail
|
||||
}
|
||||
)
|
||||
|
||||
@@ -924,8 +915,7 @@ BattleHandlers::DamageCalcUserAbility.add(:FLASHFIRE,
|
||||
|
||||
BattleHandlers::DamageCalcUserAbility.add(:FLOWERGIFT,
|
||||
proc { |ability,user,target,move,mults,baseDmg,type|
|
||||
w = user.battle.pbWeather
|
||||
if move.physicalMove? && (w==PBWeather::Sun || w==PBWeather::HarshSun)
|
||||
if move.physicalMove? && [:Sun, :HarshSun].include?(user.battle.pbWeather)
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
@@ -1014,7 +1004,7 @@ BattleHandlers::DamageCalcUserAbility.add(:RIVALRY,
|
||||
|
||||
BattleHandlers::DamageCalcUserAbility.add(:SANDFORCE,
|
||||
proc { |ability,user,target,move,mults,baseDmg,type|
|
||||
if user.battle.pbWeather==PBWeather::Sandstorm &&
|
||||
if user.battle.pbWeather == :Sandstorm &&
|
||||
[:ROCK, :GROUND, :STEEL].include?(type)
|
||||
mults[:base_damage_multiplier] *= 1.3
|
||||
end
|
||||
@@ -1035,8 +1025,7 @@ BattleHandlers::DamageCalcUserAbility.add(:SLOWSTART,
|
||||
|
||||
BattleHandlers::DamageCalcUserAbility.add(:SOLARPOWER,
|
||||
proc { |ability,user,target,move,mults,baseDmg,type|
|
||||
w = user.battle.pbWeather
|
||||
if move.specialMove? && (w == PBWeather::Sun || w == PBWeather::HarshSun)
|
||||
if move.specialMove? && [:Sun, :HarshSun].include?(user.battle.pbWeather)
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
@@ -1132,8 +1121,7 @@ BattleHandlers::DamageCalcUserAllyAbility.add(:BATTERY,
|
||||
|
||||
BattleHandlers::DamageCalcUserAllyAbility.add(:FLOWERGIFT,
|
||||
proc { |ability,user,target,move,mults,baseDmg,type|
|
||||
w = user.battle.pbWeather
|
||||
if move.physicalMove? && (w == PBWeather::Sun || w == PBWeather::HarshSun)
|
||||
if move.physicalMove? && [:Sun, :HarshSun].include?(user.battle.pbWeather)
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
@@ -1161,8 +1149,7 @@ BattleHandlers::DamageCalcTargetAbility.copy(:FILTER,:SOLIDROCK)
|
||||
|
||||
BattleHandlers::DamageCalcTargetAbility.add(:FLOWERGIFT,
|
||||
proc { |ability,user,target,move,mults,baseDmg,type|
|
||||
w = user.battle.pbWeather
|
||||
if move.specialMove? && (w == PBWeather::Sun || w == PBWeather::HarshSun)
|
||||
if move.specialMove? && [:Sun, :HarshSun].include?(user.battle.pbWeather)
|
||||
mults[:defense_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
@@ -1247,8 +1234,7 @@ BattleHandlers::DamageCalcTargetAbilityNonIgnorable.add(:SHADOWSHIELD,
|
||||
|
||||
BattleHandlers::DamageCalcTargetAllyAbility.add(:FLOWERGIFT,
|
||||
proc { |ability,user,target,move,mults,baseDmg,type|
|
||||
w = user.battle.pbWeather
|
||||
if move.specialMove? && (w == PBWeather::Sun || w == PBWeather::HarshSun)
|
||||
if move.specialMove? && [:Sun, :HarshSun].include?(user.battle.pbWeather)
|
||||
mults[:defense_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
@@ -1778,14 +1764,14 @@ BattleHandlers::TargetAbilityAfterMoveUse.add(:PICKPOCKET,
|
||||
BattleHandlers::EORWeatherAbility.add(:DRYSKIN,
|
||||
proc { |ability,weather,battler,battle|
|
||||
case weather
|
||||
when PBWeather::Sun, PBWeather::HarshSun
|
||||
when :Sun, :HarshSun
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
battle.scene.pbDamageAnimation(battler)
|
||||
battler.pbReduceHP(battler.totalhp/8,false)
|
||||
battle.pbDisplay(_INTL("{1} was hurt by the sunlight!",battler.pbThis))
|
||||
battle.pbHideAbilitySplash(battler)
|
||||
battler.pbItemHPHealCheck
|
||||
when PBWeather::Rain, PBWeather::HeavyRain
|
||||
when :Rain, :HeavyRain
|
||||
next if !battler.canHeal?
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
battler.pbRecoverHP(battler.totalhp/8)
|
||||
@@ -1801,7 +1787,7 @@ BattleHandlers::EORWeatherAbility.add(:DRYSKIN,
|
||||
|
||||
BattleHandlers::EORWeatherAbility.add(:ICEBODY,
|
||||
proc { |ability,weather,battler,battle|
|
||||
next unless weather==PBWeather::Hail
|
||||
next unless weather == :Hail
|
||||
next if !battler.canHeal?
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
battler.pbRecoverHP(battler.totalhp/16)
|
||||
@@ -1816,7 +1802,7 @@ BattleHandlers::EORWeatherAbility.add(:ICEBODY,
|
||||
|
||||
BattleHandlers::EORWeatherAbility.add(:RAINDISH,
|
||||
proc { |ability,weather,battler,battle|
|
||||
next unless weather==PBWeather::Rain || weather==PBWeather::HeavyRain
|
||||
next unless [:Rain, :HeavyRain].include?(weather)
|
||||
next if !battler.canHeal?
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
battler.pbRecoverHP(battler.totalhp/16)
|
||||
@@ -1831,7 +1817,7 @@ BattleHandlers::EORWeatherAbility.add(:RAINDISH,
|
||||
|
||||
BattleHandlers::EORWeatherAbility.add(:SOLARPOWER,
|
||||
proc { |ability,weather,battler,battle|
|
||||
next unless weather==PBWeather::Sun || weather==PBWeather::HarshSun
|
||||
next unless [:Sun, :HarshSun].include?(weather)
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
battle.scene.pbDamageAnimation(battler)
|
||||
battler.pbReduceHP(battler.totalhp/8,false)
|
||||
@@ -1875,8 +1861,7 @@ BattleHandlers::EORHealingAbility.add(:HEALER,
|
||||
BattleHandlers::EORHealingAbility.add(:HYDRATION,
|
||||
proc { |ability,battler,battle|
|
||||
next if battler.status == :NONE
|
||||
curWeather = battle.pbWeather
|
||||
next if curWeather!=PBWeather::Rain && curWeather!=PBWeather::HeavyRain
|
||||
next if ![:Rain, :HeavyRain].include?(battle.pbWeather)
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
oldStatus = battler.status
|
||||
battler.pbCureStatus(PokeBattle_SceneConstants::USE_ABILITY_SPLASH)
|
||||
@@ -1990,8 +1975,7 @@ BattleHandlers::EORGainItemAbility.add(:HARVEST,
|
||||
proc { |ability,battler,battle|
|
||||
next if battler.item
|
||||
next if !battler.recycleItem || !GameData::Item.get(battler.recycleItem).is_berry?
|
||||
curWeather = battle.pbWeather
|
||||
if curWeather!=PBWeather::Sun && curWeather!=PBWeather::HarshSun
|
||||
if ![:Sun, :HarshSun].include?(battle.pbWeather)
|
||||
next unless battle.pbRandom(100)<50
|
||||
end
|
||||
battle.pbShowAbilitySplash(battler)
|
||||
@@ -2137,13 +2121,13 @@ BattleHandlers::AbilityOnSwitchIn.add(:DARKAURA,
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:DELTASTREAM,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::StrongWinds,battler,battle,true)
|
||||
pbBattleWeatherAbility(:StrongWinds, battler, battle, true)
|
||||
}
|
||||
)
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:DESOLATELAND,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::HarshSun,battler,battle,true)
|
||||
pbBattleWeatherAbility(:HarshSun, battler, battle, true)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2161,13 +2145,13 @@ BattleHandlers::AbilityOnSwitchIn.add(:DOWNLOAD,
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:DRIZZLE,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::Rain,battler,battle)
|
||||
pbBattleWeatherAbility(:Rain, battler, battle)
|
||||
}
|
||||
)
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:DROUGHT,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::Sun,battler,battle)
|
||||
pbBattleWeatherAbility(:Sun, battler, battle)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2317,7 +2301,7 @@ BattleHandlers::AbilityOnSwitchIn.add(:PRESSURE,
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:PRIMORDIALSEA,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::HeavyRain,battler,battle,true)
|
||||
pbBattleWeatherAbility(:HeavyRain, battler, battle, true)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2332,7 +2316,7 @@ BattleHandlers::AbilityOnSwitchIn.add(:PSYCHICSURGE,
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:SANDSTREAM,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::Sandstorm,battler,battle)
|
||||
pbBattleWeatherAbility(:Sandstorm, battler, battle)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2352,7 +2336,7 @@ BattleHandlers::AbilityOnSwitchIn.add(:SLOWSTART,
|
||||
|
||||
BattleHandlers::AbilityOnSwitchIn.add(:SNOWWARNING,
|
||||
proc { |ability,battler,battle|
|
||||
pbBattleWeatherAbility(PBWeather::Hail,battler,battle)
|
||||
pbBattleWeatherAbility(:Hail, battler, battle)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -1394,25 +1394,25 @@ BattleHandlers::EVGainModifierItem.add(:POWERWEIGHT,
|
||||
|
||||
BattleHandlers::WeatherExtenderItem.add(:DAMPROCK,
|
||||
proc { |item,weather,duration,battler,battle|
|
||||
next 8 if weather==PBWeather::Rain
|
||||
next 8 if weather == :Rain
|
||||
}
|
||||
)
|
||||
|
||||
BattleHandlers::WeatherExtenderItem.add(:HEATROCK,
|
||||
proc { |item,weather,duration,battler,battle|
|
||||
next 8 if weather==PBWeather::Sun
|
||||
next 8 if weather == :Sun
|
||||
}
|
||||
)
|
||||
|
||||
BattleHandlers::WeatherExtenderItem.add(:ICYROCK,
|
||||
proc { |item,weather,duration,battler,battle|
|
||||
next 8 if weather==PBWeather::Hail
|
||||
next 8 if weather == :Hail
|
||||
}
|
||||
)
|
||||
|
||||
BattleHandlers::WeatherExtenderItem.add(:SMOOTHROCK,
|
||||
proc { |item,weather,duration,battler,battle|
|
||||
next 8 if weather==PBWeather::Sandstorm
|
||||
next 8 if weather == :Sandstorm
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ begin
|
||||
@effects[PBEffects::TrickRoom] = 0
|
||||
@effects[PBEffects::WaterSportField] = 0
|
||||
@effects[PBEffects::WonderRoom] = 0
|
||||
@defaultWeather = PBWeather::None
|
||||
@weather = PBWeather::None
|
||||
@defaultWeather = :None
|
||||
@weather = :None
|
||||
@weatherDuration = 0
|
||||
@defaultTerrain = :None
|
||||
@terrain = :None
|
||||
|
||||
@@ -44,7 +44,9 @@ class PokemonTemp
|
||||
when "terrain"
|
||||
terrain_data = GameData::BattleTerrain.try_get(var)
|
||||
rules["defaultTerrain"] = (terrain_data) ? terrain_data.id : nil
|
||||
when "weather" then rules["defaultWeather"] = getID(PBWeather, var)
|
||||
when "weather"
|
||||
weather_data = GameData::BattleWeather.try_get(var)
|
||||
rules["defaultWeather"] = (weather_data) ? weather_data.id : nil
|
||||
when "environment", "environ"
|
||||
environment_data = GameData::Environment.try_get(var)
|
||||
rules["environment"] = (environment_data) ? environment_data.id : nil
|
||||
@@ -110,13 +112,13 @@ def pbPrepareBattle(battle)
|
||||
if battleRules["defaultWeather"].nil?
|
||||
case $game_screen.weather_type
|
||||
when PBFieldWeather::Rain, PBFieldWeather::HeavyRain, PBFieldWeather::Storm
|
||||
battle.defaultWeather = PBWeather::Rain
|
||||
battle.defaultWeather = :Rain
|
||||
when PBFieldWeather::Snow, PBFieldWeather::Blizzard
|
||||
battle.defaultWeather = PBWeather::Hail
|
||||
battle.defaultWeather = :Hail
|
||||
when PBFieldWeather::Sandstorm
|
||||
battle.defaultWeather = PBWeather::Sandstorm
|
||||
battle.defaultWeather = :Sandstorm
|
||||
when PBFieldWeather::Sun
|
||||
battle.defaultWeather = PBWeather::Sun
|
||||
battle.defaultWeather = :Sun
|
||||
end
|
||||
else
|
||||
battle.defaultWeather = battleRules["defaultWeather"]
|
||||
|
||||
@@ -450,7 +450,7 @@ end
|
||||
class PokeBattle_Move_131 < PokeBattle_WeatherMove
|
||||
def initialize(battle,move)
|
||||
super
|
||||
@weatherType = PBWeather::ShadowSky
|
||||
@weatherType = :ShadowSky
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user