Bug fixes: invisible timer, bad poison icon looking like normal poison, errant message when sending in a random replacement, incorrect seen/owned numbers, battle PP restoration item crash

This commit is contained in:
Maruno17
2020-11-25 19:15:49 +00:00
parent bf356a458b
commit e2dcba2169
8 changed files with 16 additions and 16 deletions

View File

@@ -19,6 +19,7 @@ class Sprite_Timer
def update
return if disposed?
if $game_system.timer_working
@timer.visible = true if @timer
if !@timer
@timer=Window_AdvancedTextPokemon.newWithSize("",Graphics.width-120,0,120,64)
@timer.width=@timer.borderX+96

View File

@@ -106,6 +106,7 @@ class PokeBattle_Battler
def statusCount=(value)
@statusCount = value
@pokemon.statusCount = value if @pokemon
@battle.scene.pbRefreshOne(@index)
end
#=============================================================================

View File

@@ -3035,7 +3035,7 @@ class PokeBattle_Move_0EB < PokeBattle_Move
next if b.fainted? || b.damageState.unaffected || switchedBattlers.include?(b.index)
newPkmn = @battle.pbGetReplacementPokemonIndex(b.index,true) # Random
next if newPkmn<0
@battle.pbRecallAndReplace(b.index,newPkmn)
@battle.pbRecallAndReplace(b.index, newPkmn, true)
@battle.pbDisplay(_INTL("{1} was dragged out!",b.pbThis))
@battle.pbClearChoice(b.index) # Replacement Pokémon does nothing this round
switchedBattlers.push(b.index)
@@ -3077,7 +3077,7 @@ class PokeBattle_Move_0EC < PokeBattle_Move
next if b.hasActiveAbility?(:SUCTIONCUPS) && !@battle.moldBreaker
newPkmn = @battle.pbGetReplacementPokemonIndex(b.index,true) # Random
next if newPkmn<0
@battle.pbRecallAndReplace(b.index,newPkmn)
@battle.pbRecallAndReplace(b.index, newPkmn, true)
@battle.pbDisplay(_INTL("{1} was dragged out!",b.pbThis))
@battle.pbClearChoice(b.index) # Replacement Pokémon does nothing this round
switchedBattlers.push(b.index)
@@ -3114,7 +3114,7 @@ class PokeBattle_Move_0ED < PokeBattle_Move
return if user.fainted?
newPkmn = @battle.pbGetReplacementPokemonIndex(user.index) # Owner chooses
return if newPkmn<0
@battle.pbRecallAndReplace(user.index,newPkmn,true)
@battle.pbRecallAndReplace(user.index, newPkmn, false, true)
@battle.pbClearChoice(user.index) # Replacement Pokémon does nothing this round
@battle.moldBreaker = false
switchedBattlers.push(user.index)

View File

@@ -223,11 +223,11 @@ class PokeBattle_Battle
end
# Actually performs the recalling and sending out in all situations.
def pbRecallAndReplace(idxBattler,idxParty,batonPass=false)
def pbRecallAndReplace(idxBattler,idxParty,randomReplacement=false,batonPass=false)
@scene.pbRecall(idxBattler) if !@battlers[idxBattler].fainted?
@battlers[idxBattler].pbAbilitiesOnSwitchOut # Inc. primordial weather check
@scene.pbShowPartyLineup(idxBattler&1) if pbSideSize(idxBattler)==1
pbMessagesOnReplace(idxBattler,idxParty)
pbMessagesOnReplace(idxBattler,idxParty) if !randomReplacement
pbReplace(idxBattler,idxParty,batonPass)
end

View File

@@ -1238,7 +1238,7 @@ BattleHandlers::TargetItemAfterMoveUse.add(:REDCARD,
battle.pbDisplay(_INTL("{1} held up its {2} against {3}!",
battler.pbThis,battler.itemName,user.pbThis(true)))
battler.pbConsumeItem
battle.pbRecallAndReplace(user.index,newPkmn)
battle.pbRecallAndReplace(user.index, newPkmn, true)
battle.pbDisplay(_INTL("{1} was dragged out!",user.pbThis))
battle.pbClearChoice(user.index) # Replacement Pokémon does nothing this round
switched.push(user.index)

View File

@@ -169,13 +169,13 @@ class PokeBattle_Trainer
def pokedexSeen(region=-1) # Number of Pokémon seen
ret=0
if region==-1
for i in 0..PBSpecies.maxValue
for i in 1..PBSpecies.maxValue
ret+=1 if @seen[i]
end
else
regionlist=pbAllRegionalSpecies(region)
for i in regionlist
ret+=1 if @seen[i]
ret+=1 if i > 0 && @seen[i]
end
end
return ret

View File

@@ -466,14 +466,12 @@ def pbRestorePP(pkmn,idxMove,pp)
return newpp-oldpp
end
def pbBattleRestorePP(pkmn,battler,idxMove,pp)
if pbRestorePP(pkmn,idxMove,pp)>0
if battler && !battler.effects[PBEffects::Transform] &&
battler.moves[idxMove] && battler.moves[idxMove].id==pkmn.moves[idxMove].id
battler.pbSetPP(battler.moves[idxMove],pkmn.moves[idxMove].pp)
end
def pbBattleRestorePP(pkmn, battler, idxMove, pp)
return if pbRestorePP(pkmn,idxMove,pp) == 0
if battler && !battler.effects[PBEffects::Transform] &&
battler.moves[idxMove] && battler.moves[idxMove].id == pkmn.moves[idxMove].id
battler.pbSetPP(battler.moves[idxMove], pkmn.moves[idxMove].pp)
end
return ret
end
#===============================================================================

View File

@@ -908,7 +908,7 @@ def pbAllRegionalSpecies(region)
dexList = pbLoadRegionalDexes[region]
return ret if !dexList || dexList.length==0
for i in 0...dexList.length
ret[dexList[i]] = i if dexList[i]
ret[dexList[i]] = i if dexList[i] && dexList[i] > 0
end
ret.map! { |e| e ? e : 0 } # Replace nils with 0s
return ret