mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 14:14:59 +00:00
Added SKIP_TITLE_SCREEN Setting, added const for type icon size, fixed some battle bugs and inconsistencies
This commit is contained in:
@@ -309,8 +309,8 @@ class Battle::Battler
|
||||
return true
|
||||
end
|
||||
|
||||
def pbSleep(msg = nil)
|
||||
pbInflictStatus(:SLEEP, pbSleepDuration, msg)
|
||||
def pbSleep(user = nil, msg = nil)
|
||||
pbInflictStatus(:SLEEP, pbSleepDuration, msg, user)
|
||||
end
|
||||
|
||||
def pbSleepSelf(msg = nil, duration = -1)
|
||||
@@ -391,8 +391,8 @@ class Battle::Battler
|
||||
return pbCanInflictStatus?(:FROZEN, user, showMessages, move)
|
||||
end
|
||||
|
||||
def pbFreeze(msg = nil)
|
||||
pbInflictStatus(:FROZEN, 0, msg)
|
||||
def pbFreeze(user = nil, msg = nil)
|
||||
pbInflictStatus(:FROZEN, 0, msg, user)
|
||||
end
|
||||
|
||||
#=============================================================================
|
||||
|
||||
@@ -449,6 +449,7 @@ class Battle::Battler
|
||||
end
|
||||
|
||||
def pbMoveTypeWeakeningBerry(berry_type, move_type, mults)
|
||||
return false if !canConsumeBerry?
|
||||
return if move_type != berry_type
|
||||
return if !Effectiveness.super_effective?(@damageState.typeMod) && move_type != :NORMAL
|
||||
mults[:final_damage_multiplier] /= 2
|
||||
|
||||
@@ -181,17 +181,17 @@ class Battle::Move
|
||||
c = 0
|
||||
# Ability effects that alter critical hit rate
|
||||
if c >= 0 && user.abilityActive?
|
||||
c = Battle::AbilityEffects.triggerCriticalCalcFromUser(user.ability, user, target, c)
|
||||
c = Battle::AbilityEffects.triggerCriticalCalcFromUser(user.ability, user, target, self, c)
|
||||
end
|
||||
if c >= 0 && target.abilityActive? && !target.beingMoldBroken?
|
||||
c = Battle::AbilityEffects.triggerCriticalCalcFromTarget(target.ability, user, target, c)
|
||||
c = Battle::AbilityEffects.triggerCriticalCalcFromTarget(target.ability, user, target, self, c)
|
||||
end
|
||||
# Item effects that alter critical hit rate
|
||||
if c >= 0 && user.itemActive?
|
||||
c = Battle::ItemEffects.triggerCriticalCalcFromUser(user.item, user, target, c)
|
||||
c = Battle::ItemEffects.triggerCriticalCalcFromUser(user.item, user, target, self, c)
|
||||
end
|
||||
if c >= 0 && target.itemActive?
|
||||
c = Battle::ItemEffects.triggerCriticalCalcFromTarget(target.item, user, target, c)
|
||||
c = Battle::ItemEffects.triggerCriticalCalcFromTarget(target.item, user, target, self, c)
|
||||
end
|
||||
return false if c < 0
|
||||
# Move-specific "always/never a critical hit" effects
|
||||
|
||||
@@ -11,12 +11,12 @@ class Battle::Move::SleepTarget < Battle::Move
|
||||
|
||||
def pbEffectAgainstTarget(user, target)
|
||||
return if damagingMove?
|
||||
target.pbSleep
|
||||
target.pbSleep(user)
|
||||
end
|
||||
|
||||
def pbAdditionalEffect(user, target)
|
||||
return if target.damageState.substitute
|
||||
target.pbSleep if target.pbCanSleep?(user, false, self)
|
||||
target.pbSleep(user) if target.pbCanSleep?(user, false, self)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -331,12 +331,12 @@ class Battle::Move::FreezeTarget < Battle::Move
|
||||
|
||||
def pbEffectAgainstTarget(user, target)
|
||||
return if damagingMove?
|
||||
target.pbFreeze
|
||||
target.pbFreeze(user)
|
||||
end
|
||||
|
||||
def pbAdditionalEffect(user, target)
|
||||
return if target.damageState.substitute
|
||||
target.pbFreeze if target.pbCanFreeze?(user, false, self)
|
||||
target.pbFreeze(user) if target.pbCanFreeze?(user, false, self)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -371,7 +371,7 @@ class Battle::Move::FreezeFlinchTarget < Battle::Move
|
||||
chance = pbAdditionalEffectChance(user, target, 10)
|
||||
return if chance == 0
|
||||
if target.pbCanFreeze?(user, false, self) && @battle.pbRandom(100) < chance
|
||||
target.pbFreeze
|
||||
target.pbFreeze(user)
|
||||
end
|
||||
target.pbFlinch(user) if @battle.pbRandom(100) < chance
|
||||
end
|
||||
@@ -385,7 +385,7 @@ class Battle::Move::ParalyzeBurnOrFreezeTarget < Battle::Move
|
||||
return if target.damageState.substitute
|
||||
case @battle.pbRandom(3)
|
||||
when 0 then target.pbBurn(user) if target.pbCanBurn?(user, false, self)
|
||||
when 1 then target.pbFreeze if target.pbCanFreeze?(user, false, self)
|
||||
when 1 then target.pbFreeze(user) if target.pbCanFreeze?(user, false, self)
|
||||
when 2 then target.pbParalyze(user) if target.pbCanParalyze?(user, false, self)
|
||||
end
|
||||
end
|
||||
@@ -400,7 +400,7 @@ class Battle::Move::PoisonParalyzeOrSleepTarget < Battle::Move
|
||||
case @battle.pbRandom(3)
|
||||
when 0 then target.pbPoison(user) if target.pbCanPoison?(user, false, self)
|
||||
when 1 then target.pbParalyze(user) if target.pbCanParalyze?(user, false, self)
|
||||
when 2 then target.pbSleep if target.pbCanSleep?(user, false, self)
|
||||
when 2 then target.pbSleep(user) if target.pbCanSleep?(user, false, self)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -429,7 +429,7 @@ class Battle::Move::GiveUserStatusToTarget < Battle::Move
|
||||
msg = ""
|
||||
case user.status
|
||||
when :SLEEP
|
||||
target.pbSleep
|
||||
target.pbSleep(user)
|
||||
msg = _INTL("{1} woke up.", user.pbThis)
|
||||
when :POISON
|
||||
target.pbPoison(user, nil, user.statusCount != 0)
|
||||
@@ -441,7 +441,7 @@ class Battle::Move::GiveUserStatusToTarget < Battle::Move
|
||||
target.pbParalyze(user)
|
||||
msg = _INTL("{1} was cured of paralysis.", user.pbThis)
|
||||
when :FROZEN
|
||||
target.pbFreeze
|
||||
target.pbFreeze(user)
|
||||
msg = _INTL("{1} was thawed out.", user.pbThis)
|
||||
end
|
||||
if msg != ""
|
||||
|
||||
@@ -278,13 +278,13 @@ class Battle::Move::EffectDependsOnEnvironment < Battle::Move
|
||||
return if @battle.pbRandom(100) >= chance
|
||||
case @secretPower
|
||||
when 2
|
||||
target.pbSleep if target.pbCanSleep?(user, false, self)
|
||||
target.pbSleep(user) if target.pbCanSleep?(user, false, self)
|
||||
when 10
|
||||
target.pbBurn(user) if target.pbCanBurn?(user, false, self)
|
||||
when 0, 1
|
||||
target.pbParalyze(user) if target.pbCanParalyze?(user, false, self)
|
||||
when 9
|
||||
target.pbFreeze if target.pbCanFreeze?(user, false, self)
|
||||
target.pbFreeze(user) if target.pbCanFreeze?(user, false, self)
|
||||
when 5
|
||||
if target.pbCanLowerStatStage?(:ATTACK, user, self)
|
||||
target.pbLowerStatStage(:ATTACK, 1, user)
|
||||
|
||||
@@ -242,11 +242,19 @@ class Battle::Scene
|
||||
case useType
|
||||
when 1 # Use on Pokémon
|
||||
if @battle.pbTeamLengthFromBattlerIndex(idxBattler) == 1
|
||||
break if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, itemScene
|
||||
if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, itemScene
|
||||
break
|
||||
else
|
||||
next
|
||||
end
|
||||
end
|
||||
when 3 # Use on battler
|
||||
if @battle.pbPlayerBattlerCount == 1
|
||||
break if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, itemScene
|
||||
if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, itemScene
|
||||
break
|
||||
else
|
||||
next
|
||||
end
|
||||
end
|
||||
end
|
||||
# Fade out and hide Bag screen
|
||||
|
||||
@@ -208,7 +208,7 @@ class Battle::Scene::FightMenu < Battle::Scene::MenuBase
|
||||
# pbShowWindow to make the graphic appear while the command menu is being
|
||||
# displayed.
|
||||
USE_GRAPHICS = true
|
||||
TYPE_ICON_HEIGHT = 28
|
||||
TYPE_ICON_HEIGHT = GameData::Type::ICON_SIZE[1]
|
||||
# Text colours of PP of selected move
|
||||
PP_COLORS = [
|
||||
Color.new(248, 72, 72), Color.new(136, 48, 48), # Red, zero PP
|
||||
|
||||
@@ -503,23 +503,23 @@ class Battle::AI::AIMove
|
||||
# Ability effects that alter critical hit rate
|
||||
if user.ability_active?
|
||||
crit_stage = Battle::AbilityEffects.triggerCriticalCalcFromUser(user_battler.ability,
|
||||
user_battler, target_battler, crit_stage)
|
||||
user_battler, target_battler, @move, crit_stage)
|
||||
return -1 if crit_stage < 0
|
||||
end
|
||||
if target.ability_active? && !target.being_mold_broken?
|
||||
crit_stage = Battle::AbilityEffects.triggerCriticalCalcFromTarget(target_battler.ability,
|
||||
user_battler, target_battler, crit_stage)
|
||||
user_battler, target_battler, @move, crit_stage)
|
||||
return -1 if crit_stage < 0
|
||||
end
|
||||
# Item effects that alter critical hit rate
|
||||
if user.item_active?
|
||||
crit_stage = Battle::ItemEffects.triggerCriticalCalcFromUser(user_battler.item,
|
||||
user_battler, target_battler, crit_stage)
|
||||
user_battler, target_battler, @move, crit_stage)
|
||||
return -1 if crit_stage < 0
|
||||
end
|
||||
if target.item_active?
|
||||
crit_stage = Battle::ItemEffects.triggerCriticalCalcFromTarget(user_battler.item,
|
||||
user_battler, target_battler, crit_stage)
|
||||
user_battler, target_battler, @move, crit_stage)
|
||||
return -1 if crit_stage < 0
|
||||
end
|
||||
# Other effects
|
||||
|
||||
@@ -448,11 +448,11 @@ Battle::AI::Handlers::MoveEffectScore.add("EnsureNextCriticalHit",
|
||||
crit_stage = -1 if user.battler.pbOwnSide.effects[PBEffects::LuckyChant] > 0
|
||||
if crit_stage >= 0 && user.ability_active? && ![:MERCILESS].include?(user.ability_id)
|
||||
crit_stage = Battle::AbilityEffects.triggerCriticalCalcFromUser(user.battler.ability,
|
||||
user.battler, user.battler, crit_stage)
|
||||
user.battler, user.battler, move.move, crit_stage)
|
||||
end
|
||||
if crit_stage >= 0 && user.item_active?
|
||||
crit_stage = Battle::ItemEffects.triggerCriticalCalcFromUser(user.battler.item,
|
||||
user.battler, user.battler, crit_stage)
|
||||
user.battler, user.battler, move.move, crit_stage)
|
||||
end
|
||||
if crit_stage >= 0 && crit_stage < 50
|
||||
crit_stage += user.effects[PBEffects::FocusEnergy]
|
||||
@@ -487,12 +487,12 @@ Battle::AI::Handlers::MoveEffectScore.add("StartPreventCriticalHitsAgainstUserSi
|
||||
crit_stage = 0
|
||||
if b.ability_active?
|
||||
crit_stage = Battle::AbilityEffects.triggerCriticalCalcFromTarget(b.battler.ability,
|
||||
b.battler, b.battler, crit_stage)
|
||||
b.battler, b.battler, move.move, crit_stage)
|
||||
next if crit_stage < 0
|
||||
end
|
||||
if b.item_active?
|
||||
crit_stage = Battle::ItemEffects.triggerCriticalCalcFromTarget(b.battler.item,
|
||||
b.battler, b.battler, crit_stage)
|
||||
b.battler, b.battler, move.move, crit_stage)
|
||||
next if crit_stage < 0
|
||||
end
|
||||
user_side_immune = false
|
||||
@@ -505,12 +505,12 @@ Battle::AI::Handlers::MoveEffectScore.add("StartPreventCriticalHitsAgainstUserSi
|
||||
crit_stage = 0
|
||||
if crit_stage >= 0 && b.ability_active?
|
||||
crit_stage = Battle::AbilityEffects.triggerCriticalCalcFromUser(b.battler.ability,
|
||||
b.battler, user.battler, crit_stage)
|
||||
b.battler, user.battler, move.move, crit_stage)
|
||||
next if crit_stage < 0
|
||||
end
|
||||
if crit_stage >= 0 && b.item_active?
|
||||
crit_stage = Battle::ItemEffects.triggerCriticalCalcFromUser(b.battler.item,
|
||||
b.battler, user.battler, crit_stage)
|
||||
b.battler, user.battler, move.move, crit_stage)
|
||||
next if crit_stage < 0
|
||||
end
|
||||
if crit_stage >= 0 && crit_stage < 50
|
||||
|
||||
@@ -205,12 +205,12 @@ module Battle::AbilityEffects
|
||||
DamageCalcFromTargetAlly.trigger(ability, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerCriticalCalcFromUser(ability, user, target, crit_stage)
|
||||
return trigger(CriticalCalcFromUser, ability, user, target, crit_stage, ret: crit_stage)
|
||||
def self.triggerCriticalCalcFromUser(ability, user, target, move, crit_stage)
|
||||
return trigger(CriticalCalcFromUser, ability, user, target, move, crit_stage, ret: crit_stage)
|
||||
end
|
||||
|
||||
def self.triggerCriticalCalcFromTarget(ability, user, target, crit_stage)
|
||||
return trigger(CriticalCalcFromTarget, ability, user, target, crit_stage, ret: crit_stage)
|
||||
def self.triggerCriticalCalcFromTarget(ability, user, target, move, crit_stage)
|
||||
return trigger(CriticalCalcFromTarget, ability, user, target, move, crit_stage, ret: crit_stage)
|
||||
end
|
||||
|
||||
#=============================================================================
|
||||
@@ -1693,13 +1693,13 @@ Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FRIENDGUARD,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::CriticalCalcFromUser.add(:MERCILESS,
|
||||
proc { |ability, user, target, c|
|
||||
proc { |ability, user, target, move, c|
|
||||
next 99 if target.poisoned?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::CriticalCalcFromUser.add(:SUPERLUCK,
|
||||
proc { |ability, user, target, c|
|
||||
proc { |ability, user, target, move, c|
|
||||
next c + 1
|
||||
}
|
||||
)
|
||||
@@ -1709,7 +1709,7 @@ Battle::AbilityEffects::CriticalCalcFromUser.add(:SUPERLUCK,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::CriticalCalcFromTarget.add(:BATTLEARMOR,
|
||||
proc { |ability, user, target, c|
|
||||
proc { |ability, user, target, move, c|
|
||||
next -1
|
||||
}
|
||||
)
|
||||
@@ -1847,7 +1847,7 @@ Battle::AbilityEffects::OnBeingHit.add(:EFFECTSPORE,
|
||||
msg = _INTL("{1}'s {2} made {3} fall asleep!", target.pbThis,
|
||||
target.abilityName, user.pbThis(true))
|
||||
end
|
||||
user.pbSleep(msg)
|
||||
user.pbSleep(target, msg)
|
||||
end
|
||||
when 1
|
||||
if user.pbCanPoison?(target, Battle::Scene::USE_ABILITY_SPLASH)
|
||||
|
||||
@@ -125,12 +125,12 @@ module Battle::ItemEffects
|
||||
DamageCalcFromTarget.trigger(item, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerCriticalCalcFromUser(item, user, target, crit_stage)
|
||||
return trigger(CriticalCalcFromUser, item, user, target, crit_stage, ret: crit_stage)
|
||||
def self.triggerCriticalCalcFromUser(item, user, target, move, crit_stage)
|
||||
return trigger(CriticalCalcFromUser, item, user, target, move, crit_stage, ret: crit_stage)
|
||||
end
|
||||
|
||||
def self.triggerCriticalCalcFromTarget(item, user, target, crit_stage)
|
||||
return trigger(CriticalCalcFromTarget, item, user, target, crit_stage, ret: crit_stage)
|
||||
def self.triggerCriticalCalcFromTarget(item, user, target, move, crit_stage)
|
||||
return trigger(CriticalCalcFromTarget, item, user, target, move, crit_stage, ret: crit_stage)
|
||||
end
|
||||
|
||||
#=============================================================================
|
||||
@@ -1280,13 +1280,13 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:YACHEBERRY,
|
||||
#===============================================================================
|
||||
|
||||
Battle::ItemEffects::CriticalCalcFromUser.add(:LUCKYPUNCH,
|
||||
proc { |item, user, target, c|
|
||||
proc { |item, user, target, move, c|
|
||||
next c + 2 if user.isSpecies?(:CHANSEY)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::CriticalCalcFromUser.add(:RAZORCLAW,
|
||||
proc { |item, user, target, c|
|
||||
proc { |item, user, target, move, c|
|
||||
next c + 1
|
||||
}
|
||||
)
|
||||
@@ -1294,7 +1294,7 @@ Battle::ItemEffects::CriticalCalcFromUser.add(:RAZORCLAW,
|
||||
Battle::ItemEffects::CriticalCalcFromUser.copy(:RAZORCLAW, :SCOPELENS)
|
||||
|
||||
Battle::ItemEffects::CriticalCalcFromUser.add(:LEEK,
|
||||
proc { |item, user, target, c|
|
||||
proc { |item, user, target, move, c|
|
||||
next c + 2 if user.isSpecies?(:FARFETCHD) || user.isSpecies?(:SIRFETCHD)
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user