mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Fixed Pokédex showing genders for the wrong species, fixed AI always switching sleeping/frozen Pokémon, fixed class PngAnimatedBitmap animating slowly
This commit is contained in:
@@ -48,14 +48,14 @@ class PngAnimatedBitmap
|
|||||||
if filename[/^\[(\d+)(?:,(\d+))?\]/] # Starts with 1 or 2 numbers in brackets
|
if filename[/^\[(\d+)(?:,(\d+))?\]/] # Starts with 1 or 2 numbers in brackets
|
||||||
# File has a frame count
|
# File has a frame count
|
||||||
numFrames = $1.to_i
|
numFrames = $1.to_i
|
||||||
duration = $2.to_i
|
duration = $2.to_i # In 1/20ths of a second
|
||||||
duration = 5 if duration == 0
|
duration = 5 if duration == 0
|
||||||
raise "Invalid frame count in #{filename}" if numFrames <= 0
|
raise "Invalid frame count in #{filename}" if numFrames <= 0
|
||||||
raise "Invalid frame duration in #{filename}" if duration <= 0
|
raise "Invalid frame duration in #{filename}" if duration <= 0
|
||||||
if panorama.width % numFrames != 0
|
if panorama.width % numFrames != 0
|
||||||
raise "Bitmap's width (#{panorama.width}) is not divisible by frame count: #{filename}"
|
raise "Bitmap's width (#{panorama.width}) is not divisible by frame count: #{filename}"
|
||||||
end
|
end
|
||||||
@frame_duration = duration
|
@frame_duration = duration / 20.0
|
||||||
subWidth = panorama.width / numFrames
|
subWidth = panorama.width / numFrames
|
||||||
numFrames.times do |i|
|
numFrames.times do |i|
|
||||||
subBitmap = Bitmap.new(subWidth, panorama.height)
|
subBitmap = Bitmap.new(subWidth, panorama.height)
|
||||||
@@ -99,7 +99,7 @@ class PngAnimatedBitmap
|
|||||||
|
|
||||||
# Actually returns the total number of 1/20ths of a second this animation lasts.
|
# Actually returns the total number of 1/20ths of a second this animation lasts.
|
||||||
def totalFrames
|
def totalFrames
|
||||||
return @frame_duration * @frames.length
|
return (@frame_duration * @frames.length * 20).to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
def each
|
def each
|
||||||
|
|||||||
@@ -408,8 +408,10 @@ Battle::AI::Handlers::ShouldSwitch.add(:asleep,
|
|||||||
end
|
end
|
||||||
# Doesn't have sufficiently raised stats that would be lost by switching
|
# Doesn't have sufficiently raised stats that would be lost by switching
|
||||||
next false if battler.stages.any? { |key, val| val >= 2 }
|
next false if battler.stages.any? { |key, val| val >= 2 }
|
||||||
# 50% chance to not bother
|
# A reserve Pokémon is awake and not frozen
|
||||||
next false if ai.pbAIRandom(100) < 50
|
next false if reserves.none? { |pkmn| ![:SLEEP, :FROZEN].include?(pkmn.status) }
|
||||||
|
# 60% chance to not bother
|
||||||
|
next false if ai.pbAIRandom(100) < 60
|
||||||
PBDebug.log_ai("#{battler.name} wants to switch because it is asleep and can't do anything")
|
PBDebug.log_ai("#{battler.name} wants to switch because it is asleep and can't do anything")
|
||||||
next true
|
next true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -342,7 +342,8 @@ class Battle::AI
|
|||||||
if @trainer.high_skill? && @user.can_switch_lax?
|
if @trainer.high_skill? && @user.can_switch_lax?
|
||||||
badMoves = false
|
badMoves = false
|
||||||
if max_score <= MOVE_USELESS_SCORE
|
if max_score <= MOVE_USELESS_SCORE
|
||||||
badMoves = true
|
badMoves = user_battler.can_attack?
|
||||||
|
badMoves = true if !badMoves && pbAIRandom(100) < 25
|
||||||
elsif max_score < MOVE_BASE_SCORE * move_score_threshold && user_battler.turnCount > 2
|
elsif max_score < MOVE_BASE_SCORE * move_score_threshold && user_battler.turnCount > 2
|
||||||
badMoves = true if pbAIRandom(100) < 80
|
badMoves = true if pbAIRandom(100) < 80
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
def pbGetAvailableForms
|
def pbGetAvailableForms
|
||||||
ret = []
|
ret = []
|
||||||
multiple_forms = false
|
multiple_forms = false
|
||||||
gender_differences = (GameData::Species.front_sprite_filename(@species, 0) == GameData::Species.front_sprite_filename(@species, 0, 1))
|
gender_differences = (GameData::Species.front_sprite_filename(@species, 0) != GameData::Species.front_sprite_filename(@species, 0, 1))
|
||||||
# Find all genders/forms of @species that have been seen
|
# Find all genders/forms of @species that have been seen
|
||||||
GameData::Species.each do |sp|
|
GameData::Species.each do |sp|
|
||||||
next if sp.species != @species
|
next if sp.species != @species
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ MenuHandlers.add(:debug_menu, :safari_zone_and_bug_contest, {
|
|||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
when 1 # Safari Balls
|
when 1 # Sport Balls
|
||||||
params = ChooseNumberParams.new
|
params = ChooseNumberParams.new
|
||||||
params.setRange(0, 99999)
|
params.setRange(0, 99999)
|
||||||
params.setDefaultValue(contest.ballcount)
|
params.setDefaultValue(contest.ballcount)
|
||||||
@@ -162,7 +162,7 @@ MenuHandlers.add(:debug_menu, :edit_field_effects, {
|
|||||||
params = ChooseNumberParams.new
|
params = ChooseNumberParams.new
|
||||||
params.setRange(0, 99999)
|
params.setRange(0, 99999)
|
||||||
params.setDefaultValue($PokemonGlobal.repel)
|
params.setDefaultValue($PokemonGlobal.repel)
|
||||||
$PokemonGlobal.repel = pbMessageChooseNumber(_INTL("Set the Pokémon's level."), params)
|
$PokemonGlobal.repel = pbMessageChooseNumber(_INTL("Set the number of steps remaining."), params)
|
||||||
when 1 # Strength used
|
when 1 # Strength used
|
||||||
$PokemonMap.strengthUsed = !$PokemonMap.strengthUsed
|
$PokemonMap.strengthUsed = !$PokemonMap.strengthUsed
|
||||||
when 2 # Flash used
|
when 2 # Flash used
|
||||||
|
|||||||
Reference in New Issue
Block a user