mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-03-19 14:40:24 +00:00
Split PokeBattle_Trainer into PlayerTrainer and NPCTrainer
This commit is contained in:
@@ -496,7 +496,7 @@ class Interpreter
|
|||||||
when 7 # other
|
when 7 # other
|
||||||
case @parameters[4]
|
case @parameters[4]
|
||||||
when 0 then value = $game_map.map_id # map ID
|
when 0 then value = $game_map.map_id # map ID
|
||||||
when 1 then value = $Trainer.pokemonParty.length # party members
|
when 1 then value = $Trainer.pokemon_party.length # party members
|
||||||
when 2 then value = $Trainer.money # gold
|
when 2 then value = $Trainer.money # gold
|
||||||
# when 3 # steps
|
# when 3 # steps
|
||||||
when 4 then value = Graphics.frame_count / Graphics.frame_rate # play time
|
when 4 then value = Graphics.frame_count / Graphics.frame_rate # play time
|
||||||
@@ -955,7 +955,7 @@ class Interpreter
|
|||||||
# * Recover All
|
# * Recover All
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
def command_314
|
def command_314
|
||||||
pbHealAll if @parameters[0] == 0
|
$Trainer.heal_party if @parameters[0] == 0
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -105,14 +105,15 @@ module GameData
|
|||||||
break
|
break
|
||||||
end
|
end
|
||||||
# Create trainer object
|
# Create trainer object
|
||||||
trainer = PokeBattle_Trainer.new(tr_name, @trainer_type)
|
trainer = NPCTrainer.new(tr_name, @trainer_type)
|
||||||
trainer.setForeignID($Trainer)
|
trainer.id = $Trainer.make_foreign_ID
|
||||||
party = []
|
trainer.items = @items.clone
|
||||||
|
trainer.lose_text = self.lose_text
|
||||||
# Create each Pokémon owned by the trainer
|
# Create each Pokémon owned by the trainer
|
||||||
@pokemon.each do |pkmn_data|
|
@pokemon.each do |pkmn_data|
|
||||||
species = GameData::Species.get(pkmn_data[:species]).species
|
species = GameData::Species.get(pkmn_data[:species]).species
|
||||||
pkmn = Pokemon.new(species, pkmn_data[:level], trainer, false)
|
pkmn = Pokemon.new(species, pkmn_data[:level], trainer, false)
|
||||||
party.push(pkmn)
|
trainer.party.push(pkmn)
|
||||||
# Set Pokémon's properties if defined
|
# Set Pokémon's properties if defined
|
||||||
if pkmn_data[:form]
|
if pkmn_data[:form]
|
||||||
pkmn.forced_form = pkmn_data[:form] if MultipleForms.hasFunction?(species, "getForm")
|
pkmn.forced_form = pkmn_data[:form] if MultipleForms.hasFunction?(species, "getForm")
|
||||||
@@ -130,7 +131,7 @@ module GameData
|
|||||||
if pkmn_data[:nature]
|
if pkmn_data[:nature]
|
||||||
pkmn.nature = pkmn_data[:nature]
|
pkmn.nature = pkmn_data[:nature]
|
||||||
else
|
else
|
||||||
nature = pkmn.species_data.id_number + GameData::TrainerType.get(trainer.trainertype).id_number
|
nature = pkmn.species_data.id_number + GameData::TrainerType.get(trainer.trainer_type).id_number
|
||||||
pkmn.nature = nature % (PBNatures.maxValue + 1)
|
pkmn.nature = nature % (PBNatures.maxValue + 1)
|
||||||
end
|
end
|
||||||
PBStats.eachStat do |s|
|
PBStats.eachStat do |s|
|
||||||
@@ -155,7 +156,7 @@ module GameData
|
|||||||
pkmn.poke_ball = pbBallTypeToItem(pkmn_data[:poke_ball]) if pkmn_data[:poke_ball]
|
pkmn.poke_ball = pbBallTypeToItem(pkmn_data[:poke_ball]) if pkmn_data[:poke_ball]
|
||||||
pkmn.calcStats
|
pkmn.calcStats
|
||||||
end
|
end
|
||||||
return [trainer, @items.clone, party, self.lose_text]
|
return trainer
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ class PokeBattle_Battler
|
|||||||
|
|
||||||
def owned?
|
def owned?
|
||||||
return false if !@battle.wildBattle?
|
return false if !@battle.wildBattle?
|
||||||
return $Trainer.owned[displaySpecies]
|
return $Trainer.owned?(displaySpecies)
|
||||||
end
|
end
|
||||||
alias owned owned?
|
alias owned owned?
|
||||||
|
|
||||||
@@ -259,7 +259,7 @@ class PokeBattle_Battler
|
|||||||
end
|
end
|
||||||
# Badge multiplier
|
# Badge multiplier
|
||||||
if @battle.internalBattle && pbOwnedByPlayer? &&
|
if @battle.internalBattle && pbOwnedByPlayer? &&
|
||||||
@battle.pbPlayer.numbadges>=NUM_BADGES_BOOST_SPEED
|
@battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_SPEED
|
||||||
speedMult *= 1.1
|
speedMult *= 1.1
|
||||||
end
|
end
|
||||||
# Calculation
|
# Calculation
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ class PokeBattle_Battler
|
|||||||
return true if !@battle.pbOwnedByPlayer?(@index)
|
return true if !@battle.pbOwnedByPlayer?(@index)
|
||||||
disobedient = false
|
disobedient = false
|
||||||
# Pokémon may be disobedient; calculate if it is
|
# Pokémon may be disobedient; calculate if it is
|
||||||
badgeLevel = 10*(@battle.pbPlayer.numbadges+1)
|
badgeLevel = 10 * (@battle.pbPlayer.badge_count + 1)
|
||||||
badgeLevel = PBExperience.maxLevel if @battle.pbPlayer.numbadges>=8
|
badgeLevel = PBExperience.maxLevel if @battle.pbPlayer.badge_count >= 8
|
||||||
if @pokemon.foreign?(@battle.pbPlayer) && @level>badgeLevel
|
if @pokemon.foreign?(@battle.pbPlayer) && @level>badgeLevel
|
||||||
a = ((@level+badgeLevel)*@battle.pbRandom(256)/256).floor
|
a = ((@level+badgeLevel)*@battle.pbRandom(256)/256).floor
|
||||||
disobedient |= (a>=badgeLevel)
|
disobedient |= (a>=badgeLevel)
|
||||||
|
|||||||
@@ -357,16 +357,16 @@ class PokeBattle_Move
|
|||||||
# Badge multipliers
|
# Badge multipliers
|
||||||
if @battle.internalBattle
|
if @battle.internalBattle
|
||||||
if user.pbOwnedByPlayer?
|
if user.pbOwnedByPlayer?
|
||||||
if physicalMove? && @battle.pbPlayer.numbadges >= NUM_BADGES_BOOST_ATTACK
|
if physicalMove? && @battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_ATTACK
|
||||||
multipliers[:attack_multiplier] *= 1.1
|
multipliers[:attack_multiplier] *= 1.1
|
||||||
elsif specialMove? && @battle.pbPlayer.numbadges >= NUM_BADGES_BOOST_SPATK
|
elsif specialMove? && @battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_SPATK
|
||||||
multipliers[:attack_multiplier] *= 1.1
|
multipliers[:attack_multiplier] *= 1.1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if target.pbOwnedByPlayer?
|
if target.pbOwnedByPlayer?
|
||||||
if physicalMove? && @battle.pbPlayer.numbadges >= NUM_BADGES_BOOST_DEFENSE
|
if physicalMove? && @battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_DEFENSE
|
||||||
multipliers[:defense_multiplier] *= 1.1
|
multipliers[:defense_multiplier] *= 1.1
|
||||||
elsif specialMove? && @battle.pbPlayer.numbadges >= NUM_BADGES_BOOST_SPDEF
|
elsif specialMove? && @battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_SPDEF
|
||||||
multipliers[:defense_multiplier] *= 1.1
|
multipliers[:defense_multiplier] *= 1.1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ module PokeBattle_BattleCommon
|
|||||||
pbSeenForm(pkmn) # In case the form changed upon leaving battle
|
pbSeenForm(pkmn) # In case the form changed upon leaving battle
|
||||||
# Record the Pokémon's species as owned in the Pokédex
|
# Record the Pokémon's species as owned in the Pokédex
|
||||||
if !pbPlayer.hasOwned?(pkmn.species)
|
if !pbPlayer.hasOwned?(pkmn.species)
|
||||||
pbPlayer.setOwned(pkmn.species)
|
pbPlayer.set_owned(pkmn.species)
|
||||||
if $Trainer.pokedex
|
if $Trainer.pokedex
|
||||||
pbDisplayPaused(_INTL("{1}'s data was added to the Pokédex.",pkmn.name))
|
pbDisplayPaused(_INTL("{1}'s data was added to the Pokédex.",pkmn.name))
|
||||||
@scene.pbShowPokedex(pkmn.species)
|
@scene.pbShowPokedex(pkmn.species)
|
||||||
@@ -53,8 +53,8 @@ module PokeBattle_BattleCommon
|
|||||||
end
|
end
|
||||||
# Record a Shadow Pokémon's species as having been caught
|
# Record a Shadow Pokémon's species as having been caught
|
||||||
if pkmn.shadowPokemon?
|
if pkmn.shadowPokemon?
|
||||||
pbPlayer.shadowcaught = {} if !pbPlayer.shadowcaught
|
pbPlayer.owned_shadow = {} if !pbPlayer.owned_shadow
|
||||||
pbPlayer.shadowcaught[pkmn.species] = true
|
pbPlayer.owned_shadow[pkmn.species] = true
|
||||||
end
|
end
|
||||||
# Store caught Pokémon
|
# Store caught Pokémon
|
||||||
pbStorePokemon(pkmn)
|
pbStorePokemon(pkmn)
|
||||||
@@ -194,7 +194,7 @@ module PokeBattle_BattleCommon
|
|||||||
# Critical capture check
|
# Critical capture check
|
||||||
if ENABLE_CRITICAL_CAPTURES
|
if ENABLE_CRITICAL_CAPTURES
|
||||||
c = 0
|
c = 0
|
||||||
numOwned = $Trainer.pokedexOwned
|
numOwned = $Trainer.owned_count
|
||||||
if numOwned>600; c = x*5/12
|
if numOwned>600; c = x*5/12
|
||||||
elsif numOwned>450; c = x*4/12
|
elsif numOwned>450; c = x*4/12
|
||||||
elsif numOwned>300; c = x*3/12
|
elsif numOwned>300; c = x*3/12
|
||||||
|
|||||||
@@ -115,8 +115,8 @@ class PokeBattle_Battle
|
|||||||
@caughtPokemon = []
|
@caughtPokemon = []
|
||||||
player = [player] if !player.nil? && !player.is_a?(Array)
|
player = [player] if !player.nil? && !player.is_a?(Array)
|
||||||
opponent = [opponent] if !opponent.nil? && !opponent.is_a?(Array)
|
opponent = [opponent] if !opponent.nil? && !opponent.is_a?(Array)
|
||||||
@player = player # Array of PokeBattle_Trainer objects, or nil
|
@player = player # Array of PlayerTrainer/NPCTrainer objects, or nil
|
||||||
@opponent = opponent # Array of PokeBattle_Trainer objects, or nil
|
@opponent = opponent # Array of NPCTrainer objects, or nil
|
||||||
@items = nil
|
@items = nil
|
||||||
@endSpeeches = []
|
@endSpeeches = []
|
||||||
@endSpeechesWin = []
|
@endSpeechesWin = []
|
||||||
@@ -249,8 +249,8 @@ class PokeBattle_Battle
|
|||||||
|
|
||||||
def pbGetOwnerName(idxBattler)
|
def pbGetOwnerName(idxBattler)
|
||||||
idxTrainer = pbGetOwnerIndexFromBattlerIndex(idxBattler)
|
idxTrainer = pbGetOwnerIndexFromBattlerIndex(idxBattler)
|
||||||
return @opponent[idxTrainer].fullname if opposes?(idxBattler) # Opponent
|
return @opponent[idxTrainer].full_name if opposes?(idxBattler) # Opponent
|
||||||
return @player[idxTrainer].fullname if idxTrainer>0 # Ally trainer
|
return @player[idxTrainer].full_name if idxTrainer>0 # Ally trainer
|
||||||
return @player[idxTrainer].name # Player
|
return @player[idxTrainer].name # Player
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -622,7 +622,7 @@ class PokeBattle_Battle
|
|||||||
|
|
||||||
def pbSetSeen(battler)
|
def pbSetSeen(battler)
|
||||||
return if !battler || !@internalBattle
|
return if !battler || !@internalBattle
|
||||||
pbPlayer.seen[battler.displaySpecies] = true
|
pbPlayer.set_seen(battler.displaySpecies)
|
||||||
pbSeenForm(battler.displaySpecies,battler.displayGender,battler.displayForm)
|
pbSeenForm(battler.displaySpecies,battler.displayGender,battler.displayForm)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -174,13 +174,13 @@ class PokeBattle_Battle
|
|||||||
else # Trainer battle
|
else # Trainer battle
|
||||||
case @opponent.length
|
case @opponent.length
|
||||||
when 1
|
when 1
|
||||||
pbDisplayPaused(_INTL("You are challenged by {1}!",@opponent[0].fullname))
|
pbDisplayPaused(_INTL("You are challenged by {1}!",@opponent[0].full_name))
|
||||||
when 2
|
when 2
|
||||||
pbDisplayPaused(_INTL("You are challenged by {1} and {2}!",@opponent[0].fullname,
|
pbDisplayPaused(_INTL("You are challenged by {1} and {2}!",@opponent[0].full_name,
|
||||||
@opponent[1].fullname))
|
@opponent[1].full_name))
|
||||||
when 3
|
when 3
|
||||||
pbDisplayPaused(_INTL("You are challenged by {1}, {2} and {3}!",
|
pbDisplayPaused(_INTL("You are challenged by {1}, {2} and {3}!",
|
||||||
@opponent[0].fullname,@opponent[1].fullname,@opponent[2].fullname))
|
@opponent[0].full_name,@opponent[1].full_name,@opponent[2].full_name))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Send out Pokémon (opposing trainers first)
|
# Send out Pokémon (opposing trainers first)
|
||||||
@@ -196,12 +196,12 @@ class PokeBattle_Battle
|
|||||||
sent = sendOuts[side][i]
|
sent = sendOuts[side][i]
|
||||||
case sent.length
|
case sent.length
|
||||||
when 1
|
when 1
|
||||||
msg += _INTL("{1} sent out {2}!",t.fullname,@battlers[sent[0]].name)
|
msg += _INTL("{1} sent out {2}!",t.full_name,@battlers[sent[0]].name)
|
||||||
when 2
|
when 2
|
||||||
msg += _INTL("{1} sent out {2} and {3}!",t.fullname,
|
msg += _INTL("{1} sent out {2} and {3}!",t.full_name,
|
||||||
@battlers[sent[0]].name,@battlers[sent[1]].name)
|
@battlers[sent[0]].name,@battlers[sent[1]].name)
|
||||||
when 3
|
when 3
|
||||||
msg += _INTL("{1} sent out {2}, {3} and {4}!",t.fullname,
|
msg += _INTL("{1} sent out {2}, {3} and {4}!",t.full_name,
|
||||||
@battlers[sent[0]].name,@battlers[sent[1]].name,@battlers[sent[2]].name)
|
@battlers[sent[0]].name,@battlers[sent[1]].name,@battlers[sent[2]].name)
|
||||||
end
|
end
|
||||||
toSendOut.concat(sent)
|
toSendOut.concat(sent)
|
||||||
@@ -339,7 +339,7 @@ class PokeBattle_Battle
|
|||||||
if trainerBattle?
|
if trainerBattle?
|
||||||
tMoney = 0
|
tMoney = 0
|
||||||
@opponent.each_with_index do |t,i|
|
@opponent.each_with_index do |t,i|
|
||||||
tMoney += pbMaxLevelInTeam(1,i)*t.moneyEarned
|
tMoney += pbMaxLevelInTeam(1, i) * t.base_money
|
||||||
end
|
end
|
||||||
tMoney *= 2 if @field.effects[PBEffects::AmuletCoin]
|
tMoney *= 2 if @field.effects[PBEffects::AmuletCoin]
|
||||||
tMoney *= 2 if @field.effects[PBEffects::HappyHour]
|
tMoney *= 2 if @field.effects[PBEffects::HappyHour]
|
||||||
@@ -368,7 +368,7 @@ class PokeBattle_Battle
|
|||||||
return if $game_switches[NO_MONEY_LOSS]
|
return if $game_switches[NO_MONEY_LOSS]
|
||||||
maxLevel = pbMaxLevelInTeam(0,0) # Player's Pokémon only, not partner's
|
maxLevel = pbMaxLevelInTeam(0,0) # Player's Pokémon only, not partner's
|
||||||
multiplier = [8,16,24,36,48,64,80,100,120]
|
multiplier = [8,16,24,36,48,64,80,100,120]
|
||||||
idxMultiplier = [pbPlayer.numbadges,multiplier.length-1].min
|
idxMultiplier = [pbPlayer.badge_count, multiplier.length - 1].min
|
||||||
tMoney = maxLevel*multiplier[idxMultiplier]
|
tMoney = maxLevel*multiplier[idxMultiplier]
|
||||||
tMoney = pbPlayer.money if tMoney>pbPlayer.money
|
tMoney = pbPlayer.money if tMoney>pbPlayer.money
|
||||||
oldMoney = pbPlayer.money
|
oldMoney = pbPlayer.money
|
||||||
@@ -395,13 +395,13 @@ class PokeBattle_Battle
|
|||||||
@scene.pbTrainerBattleSuccess
|
@scene.pbTrainerBattleSuccess
|
||||||
case @opponent.length
|
case @opponent.length
|
||||||
when 1
|
when 1
|
||||||
pbDisplayPaused(_INTL("You defeated {1}!",@opponent[0].fullname))
|
pbDisplayPaused(_INTL("You defeated {1}!",@opponent[0].full_name))
|
||||||
when 2
|
when 2
|
||||||
pbDisplayPaused(_INTL("You defeated {1} and {2}!",@opponent[0].fullname,
|
pbDisplayPaused(_INTL("You defeated {1} and {2}!",@opponent[0].full_name,
|
||||||
@opponent[1].fullname))
|
@opponent[1].full_name))
|
||||||
when 3
|
when 3
|
||||||
pbDisplayPaused(_INTL("You defeated {1}, {2} and {3}!",@opponent[0].fullname,
|
pbDisplayPaused(_INTL("You defeated {1}, {2} and {3}!",@opponent[0].full_name,
|
||||||
@opponent[1].fullname,@opponent[2].fullname))
|
@opponent[1].full_name,@opponent[2].full_name))
|
||||||
end
|
end
|
||||||
@opponent.each_with_index do |_t,i|
|
@opponent.each_with_index do |_t,i|
|
||||||
@scene.pbShowOpponent(i)
|
@scene.pbShowOpponent(i)
|
||||||
@@ -423,13 +423,13 @@ class PokeBattle_Battle
|
|||||||
if trainerBattle?
|
if trainerBattle?
|
||||||
case @opponent.length
|
case @opponent.length
|
||||||
when 1
|
when 1
|
||||||
pbDisplayPaused(_INTL("You lost against {1}!",@opponent[0].fullname))
|
pbDisplayPaused(_INTL("You lost against {1}!",@opponent[0].full_name))
|
||||||
when 2
|
when 2
|
||||||
pbDisplayPaused(_INTL("You lost against {1} and {2}!",
|
pbDisplayPaused(_INTL("You lost against {1} and {2}!",
|
||||||
@opponent[0].fullname,@opponent[1].fullname))
|
@opponent[0].full_name,@opponent[1].full_name))
|
||||||
when 3
|
when 3
|
||||||
pbDisplayPaused(_INTL("You lost against {1}, {2} and {3}!",
|
pbDisplayPaused(_INTL("You lost against {1}, {2} and {3}!",
|
||||||
@opponent[0].fullname,@opponent[1].fullname,@opponent[2].fullname))
|
@opponent[0].full_name,@opponent[1].full_name,@opponent[2].full_name))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Lose money from losing a battle
|
# Lose money from losing a battle
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ class PokeBattle_Battle
|
|||||||
idxPartyForName = pbLastInTeam(idxBattler)
|
idxPartyForName = pbLastInTeam(idxBattler)
|
||||||
end
|
end
|
||||||
if pbDisplayConfirm(_INTL("{1} is about to send in {2}. Will you switch your Pokémon?",
|
if pbDisplayConfirm(_INTL("{1} is about to send in {2}. Will you switch your Pokémon?",
|
||||||
opponent.fullname,enemyParty[idxPartyForName].name))
|
opponent.full_name, enemyParty[idxPartyForName].name))
|
||||||
idxPlayerPartyNew = pbSwitchInBetween(0,false,true)
|
idxPlayerPartyNew = pbSwitchInBetween(0,false,true)
|
||||||
if idxPlayerPartyNew>=0
|
if idxPlayerPartyNew>=0
|
||||||
pbMessageOnRecall(@battlers[0])
|
pbMessageOnRecall(@battlers[0])
|
||||||
@@ -270,7 +270,7 @@ class PokeBattle_Battle
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
owner = pbGetOwnerFromBattlerIndex(idxBattler)
|
owner = pbGetOwnerFromBattlerIndex(idxBattler)
|
||||||
pbDisplayBrief(_INTL("{1} sent out {2}!",owner.fullname,newPkmnName))
|
pbDisplayBrief(_INTL("{1} sent out {2}!",owner.full_name,newPkmnName))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ class PokeBattle_Battle
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
# NOTE: Add your own Mega objects for particular NPC trainers here.
|
# NOTE: Add your own Mega objects for particular NPC trainers here.
|
||||||
# if pbGetOwnerFromBattlerIndex(idxBattler).trainertype == :BUGCATCHER
|
# if pbGetOwnerFromBattlerIndex(idxBattler).trainer_type == :BUGCATCHER
|
||||||
# return _INTL("Mega Net")
|
# return _INTL("Mega Net")
|
||||||
# end
|
# end
|
||||||
return _INTL("Mega Ring")
|
return _INTL("Mega Ring")
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class PokeBattle_AI
|
|||||||
shouldSwitch = forceSwitch
|
shouldSwitch = forceSwitch
|
||||||
batonPass = -1
|
batonPass = -1
|
||||||
moveType = -1
|
moveType = -1
|
||||||
skill = @battle.pbGetOwnerFromBattlerIndex(idxBattler).skill || 0
|
skill = @battle.pbGetOwnerFromBattlerIndex(idxBattler).skill_level || 0
|
||||||
battler = @battle.battlers[idxBattler]
|
battler = @battle.battlers[idxBattler]
|
||||||
# If Pokémon is within 6 levels of the foe, and foe's last move was
|
# If Pokémon is within 6 levels of the foe, and foe's last move was
|
||||||
# super-effective and powerful
|
# super-effective and powerful
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class PokeBattle_AI
|
|||||||
wildBattler = (@battle.wildBattle? && @battle.opposes?(idxBattler))
|
wildBattler = (@battle.wildBattle? && @battle.opposes?(idxBattler))
|
||||||
skill = 0
|
skill = 0
|
||||||
if !wildBattler
|
if !wildBattler
|
||||||
skill = @battle.pbGetOwnerFromBattlerIndex(user.index).skill || 0
|
skill = @battle.pbGetOwnerFromBattlerIndex(user.index).skill_level || 0
|
||||||
end
|
end
|
||||||
# Get scores and targets for each move
|
# Get scores and targets for each move
|
||||||
# NOTE: A move is only added to the choices array if it has a non-zero
|
# NOTE: A move is only added to the choices array if it has a non-zero
|
||||||
|
|||||||
@@ -418,9 +418,9 @@ class PokeBattle_AI
|
|||||||
# Don't need to check the Atk/Sp Atk-boosting badges because the AI
|
# Don't need to check the Atk/Sp Atk-boosting badges because the AI
|
||||||
# won't control the player's Pokémon.
|
# won't control the player's Pokémon.
|
||||||
if target.pbOwnedByPlayer?
|
if target.pbOwnedByPlayer?
|
||||||
if move.physicalMove?(type) && @battle.pbPlayer.numbadges >= NUM_BADGES_BOOST_DEFENSE
|
if move.physicalMove?(type) && @battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_DEFENSE
|
||||||
multipliers[:defense_multiplier] *= 1.1
|
multipliers[:defense_multiplier] *= 1.1
|
||||||
elsif move.specialMove?(type) && @battle.pbPlayer.numbadges >= NUM_BADGES_BOOST_SPDEF
|
elsif move.specialMove?(type) && @battle.pbPlayer.badge_count >= NUM_BADGES_BOOST_SPDEF
|
||||||
multipliers[:defense_multiplier] *= 1.1
|
multipliers[:defense_multiplier] *= 1.1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ module PokeBattle_BallAnimationMixin
|
|||||||
end
|
end
|
||||||
# Back sprite is animated, make the Poké Ball track the trainer's hand
|
# Back sprite is animated, make the Poké Ball track the trainer's hand
|
||||||
coordSets = [[traSprite.x-44,traSprite.y-32],[-10,-36],[118,-4]]
|
coordSets = [[traSprite.x-44,traSprite.y-32],[-10,-36],[118,-4]]
|
||||||
case @trainer.trainertype
|
case @trainer.trainer_type
|
||||||
when :POKEMONTRAINER_Leaf
|
when :POKEMONTRAINER_Leaf
|
||||||
coordSets = [[traSprite.x-30,traSprite.y-30],[-18,-36],[118,-6]]
|
coordSets = [[traSprite.x-30,traSprite.y-30],[-18,-36],[118,-6]]
|
||||||
when :POKEMONTRAINER_Brendan
|
when :POKEMONTRAINER_Brendan
|
||||||
|
|||||||
@@ -65,12 +65,12 @@ class PokeBattle_Scene
|
|||||||
end
|
end
|
||||||
# Player's and partner trainer's back sprite
|
# Player's and partner trainer's back sprite
|
||||||
@battle.player.each_with_index do |p,i|
|
@battle.player.each_with_index do |p,i|
|
||||||
pbCreateTrainerBackSprite(i,p.trainertype,@battle.player.length)
|
pbCreateTrainerBackSprite(i,p.trainer_type,@battle.player.length)
|
||||||
end
|
end
|
||||||
# Opposing trainer(s) sprites
|
# Opposing trainer(s) sprites
|
||||||
if @battle.trainerBattle?
|
if @battle.trainerBattle?
|
||||||
@battle.opponent.each_with_index do |p,i|
|
@battle.opponent.each_with_index do |p,i|
|
||||||
pbCreateTrainerFrontSprite(i,p.trainertype,@battle.opponent.length)
|
pbCreateTrainerFrontSprite(i,p.trainer_type,@battle.opponent.length)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Data boxes and Pokémon sprites
|
# Data boxes and Pokémon sprites
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class PokeBattle_FakeBattler
|
|||||||
def captured=(value); end
|
def captured=(value); end
|
||||||
|
|
||||||
def owned?
|
def owned?
|
||||||
return $Trainer.owned[pokemon.species]
|
return $Trainer.owned?(pokemon.species)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbThis(lowerCase=false)
|
def pbThis(lowerCase=false)
|
||||||
@@ -421,7 +421,7 @@ class PokeBattle_SafariZone
|
|||||||
def pbStartBattle
|
def pbStartBattle
|
||||||
begin
|
begin
|
||||||
pkmn = @party2[0]
|
pkmn = @party2[0]
|
||||||
self.pbPlayer.seen[pkmn.species] = true
|
self.pbPlayer.set_seen(pkmn.species)
|
||||||
pbSeenForm(pkmn)
|
pbSeenForm(pkmn)
|
||||||
@scene.pbStartBattle(self)
|
@scene.pbStartBattle(self)
|
||||||
pbDisplayPaused(_INTL("Wild {1} appeared!",pkmn.name))
|
pbDisplayPaused(_INTL("Wild {1} appeared!",pkmn.name))
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ class PokeBattle_BattleArena < PokeBattle_Battle
|
|||||||
@count += 1
|
@count += 1
|
||||||
# Update skill rating
|
# Update skill rating
|
||||||
for side in 0...2
|
for side in 0...2
|
||||||
@skill[side] += self.successStates[side].skill
|
@skill[side] += self.successStates[side].skill_level
|
||||||
end
|
end
|
||||||
# PBDebug.log("[Mind: #{@mind.inspect}, Skill: #{@skill.inspect}]")
|
# PBDebug.log("[Mind: #{@mind.inspect}, Skill: #{@skill.inspect}]")
|
||||||
if @count==3
|
if @count==3
|
||||||
|
|||||||
@@ -30,12 +30,12 @@ module PokeBattle_RecordedBattleModule
|
|||||||
if trainer.is_a?(Array)
|
if trainer.is_a?(Array)
|
||||||
ret = []
|
ret = []
|
||||||
for i in 0...trainer.length
|
for i in 0...trainer.length
|
||||||
ret.push([trainer[i].trainertype,trainer[i].name.clone,trainer[i].id,trainer[i].badges.clone])
|
ret.push([trainer[i].trainer_type,trainer[i].name.clone,trainer[i].id,trainer[i].badges.clone])
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
else
|
else
|
||||||
return [
|
return [
|
||||||
[trainer.trainertype,trainer.name.clone,trainer.id,trainer.badges.clone]
|
[trainer.trainer_type,trainer.name.clone,trainer.id,trainer.badges.clone]
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -146,15 +146,15 @@ module BattlePlayerHelper
|
|||||||
return nil if !trainer
|
return nil if !trainer
|
||||||
if trainer.length>1
|
if trainer.length>1
|
||||||
ret = []
|
ret = []
|
||||||
ret[0]=PokeBattle_Trainer.new(trainer[0][1],trainer[0][0])
|
ret[0]=PlayerTrainer.new(trainer[0][1],trainer[0][0])
|
||||||
ret[0].id = trainer[0][2]
|
ret[0].id = trainer[0][2]
|
||||||
ret[0].badges = trainer[0][3]
|
ret[0].badges = trainer[0][3]
|
||||||
ret[1] = PokeBattle_Trainer.new(trainer[1][1],trainer[1][0])
|
ret[1] = PlayerTrainer.new(trainer[1][1],trainer[1][0])
|
||||||
ret[1].id = trainer[1][2]
|
ret[1].id = trainer[1][2]
|
||||||
ret[1].badges = trainer[1][3]
|
ret[1].badges = trainer[1][3]
|
||||||
return ret
|
return ret
|
||||||
else
|
else
|
||||||
ret = PokeBattle_Trainer.new(trainer[0][1],trainer[0][0])
|
ret = PlayerTrainer.new(trainer[0][1],trainer[0][0])
|
||||||
ret.id = trainer[0][2]
|
ret.id = trainer[0][2]
|
||||||
ret.badges = trainer[0][3]
|
ret.badges = trainer[0][3]
|
||||||
return ret
|
return ret
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ BallHandlers::ModifyCatchRate.add(:NESTBALL,proc { |ball,catchRate,battle,battle
|
|||||||
|
|
||||||
BallHandlers::ModifyCatchRate.add(:REPEATBALL,proc { |ball,catchRate,battle,battler,ultraBeast|
|
BallHandlers::ModifyCatchRate.add(:REPEATBALL,proc { |ball,catchRate,battle,battler,ultraBeast|
|
||||||
multiplier = (NEW_POKE_BALL_CATCH_RATES) ? 3.5 : 3
|
multiplier = (NEW_POKE_BALL_CATCH_RATES) ? 3.5 : 3
|
||||||
catchRate *= multiplier if battle.pbPlayer.owned[battler.species]
|
catchRate *= multiplier if battle.pbPlayer.owned?(battler.species)
|
||||||
next catchRate
|
next catchRate
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ Events.onMapUpdate += proc { |_sender,_e|
|
|||||||
last = $PokemonGlobal.pokerusTime
|
last = $PokemonGlobal.pokerusTime
|
||||||
now = pbGetTimeNow
|
now = pbGetTimeNow
|
||||||
if !last || last.year!=now.year || last.month!=now.month || last.day!=now.day
|
if !last || last.year!=now.year || last.month!=now.month || last.day!=now.day
|
||||||
for i in $Trainer.pokemonParty
|
for i in $Trainer.pokemon_party
|
||||||
i.lowerPokerusCount
|
i.lowerPokerusCount
|
||||||
end
|
end
|
||||||
$PokemonGlobal.pokerusTime = now
|
$PokemonGlobal.pokerusTime = now
|
||||||
@@ -263,7 +263,7 @@ Events.onStepTaken += proc {
|
|||||||
$PokemonGlobal.happinessSteps = 0 if !$PokemonGlobal.happinessSteps
|
$PokemonGlobal.happinessSteps = 0 if !$PokemonGlobal.happinessSteps
|
||||||
$PokemonGlobal.happinessSteps += 1
|
$PokemonGlobal.happinessSteps += 1
|
||||||
if $PokemonGlobal.happinessSteps>=128
|
if $PokemonGlobal.happinessSteps>=128
|
||||||
for pkmn in $Trainer.ablePokemonParty
|
for pkmn in $Trainer.able_party
|
||||||
pkmn.changeHappiness("walking") if rand(2)==0
|
pkmn.changeHappiness("walking") if rand(2)==0
|
||||||
end
|
end
|
||||||
$PokemonGlobal.happinessSteps = 0
|
$PokemonGlobal.happinessSteps = 0
|
||||||
@@ -276,7 +276,7 @@ Events.onStepTakenTransferPossible += proc { |_sender,e|
|
|||||||
next if handled[0]
|
next if handled[0]
|
||||||
if $PokemonGlobal.stepcount%4==0 && POISON_IN_FIELD
|
if $PokemonGlobal.stepcount%4==0 && POISON_IN_FIELD
|
||||||
flashed = false
|
flashed = false
|
||||||
for i in $Trainer.ablePokemonParty
|
for i in $Trainer.able_party
|
||||||
if i.status==PBStatuses::POISON && !i.hasAbility?(:IMMUNITY)
|
if i.status==PBStatuses::POISON && !i.hasAbility?(:IMMUNITY)
|
||||||
if !flashed
|
if !flashed
|
||||||
$game_screen.start_flash(Color.new(255,0,0,128), 4)
|
$game_screen.start_flash(Color.new(255,0,0,128), 4)
|
||||||
@@ -292,7 +292,7 @@ Events.onStepTakenTransferPossible += proc { |_sender,e|
|
|||||||
i.status = PBStatuses::NONE
|
i.status = PBStatuses::NONE
|
||||||
pbMessage(_INTL("{1} fainted...",i.name))
|
pbMessage(_INTL("{1} fainted...",i.name))
|
||||||
end
|
end
|
||||||
if pbAllFainted
|
if $Trainer.able_pokemon_count == 0
|
||||||
handled[0] = true
|
handled[0] = true
|
||||||
pbCheckAllFainted
|
pbCheckAllFainted
|
||||||
end
|
end
|
||||||
@@ -302,7 +302,7 @@ Events.onStepTakenTransferPossible += proc { |_sender,e|
|
|||||||
}
|
}
|
||||||
|
|
||||||
def pbCheckAllFainted
|
def pbCheckAllFainted
|
||||||
if pbAllFainted
|
if $Trainer.able_pokemon_count == 0
|
||||||
pbMessage(_INTL("You have no more Pokémon that can fight!\1"))
|
pbMessage(_INTL("You have no more Pokémon that can fight!\1"))
|
||||||
pbMessage(_INTL("You blacked out!"))
|
pbMessage(_INTL("You blacked out!"))
|
||||||
pbBGMFade(1.0)
|
pbBGMFade(1.0)
|
||||||
@@ -378,7 +378,7 @@ Events.onChangeDirection += proc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def pbBattleOnStepTaken(repel = false)
|
def pbBattleOnStepTaken(repel = false)
|
||||||
return if $Trainer.ablePokemonCount == 0
|
return if $Trainer.able_pokemon_count == 0
|
||||||
encounterType = $PokemonEncounters.pbEncounterType
|
encounterType = $PokemonEncounters.pbEncounterType
|
||||||
return if encounterType < 0
|
return if encounterType < 0
|
||||||
return if !$PokemonEncounters.isEncounterPossibleHere?
|
return if !$PokemonEncounters.isEncounterPossibleHere?
|
||||||
@@ -387,7 +387,7 @@ def pbBattleOnStepTaken(repel = false)
|
|||||||
encounter = EncounterModifier.trigger(encounter)
|
encounter = EncounterModifier.trigger(encounter)
|
||||||
if $PokemonEncounters.pbCanEncounter?(encounter, repel)
|
if $PokemonEncounters.pbCanEncounter?(encounter, repel)
|
||||||
if !$PokemonTemp.forceSingleBattle && !pbInSafari? && ($PokemonGlobal.partner ||
|
if !$PokemonTemp.forceSingleBattle && !pbInSafari? && ($PokemonGlobal.partner ||
|
||||||
($Trainer.ablePokemonCount > 1 && PBTerrain.isDoubleWildBattle?(pbGetTerrainTag) && rand(100) < 30))
|
($Trainer.able_pokemon_count > 1 && PBTerrain.isDoubleWildBattle?(pbGetTerrainTag) && rand(100) < 30))
|
||||||
encounter2 = $PokemonEncounters.pbEncounteredPokemon(encounterType)
|
encounter2 = $PokemonEncounters.pbEncounteredPokemon(encounterType)
|
||||||
encounter2 = EncounterModifier.trigger(encounter2)
|
encounter2 = EncounterModifier.trigger(encounter2)
|
||||||
pbDoubleWildBattle(encounter[0], encounter[1], encounter2[0], encounter2[1])
|
pbDoubleWildBattle(encounter[0], encounter[1], encounter2[0], encounter2[1])
|
||||||
@@ -909,7 +909,7 @@ def pbFishingEnd
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbFishing(hasEncounter,rodType=1)
|
def pbFishing(hasEncounter,rodType=1)
|
||||||
speedup = ($Trainer.firstPokemon && [:STICKYHOLD, :SUCTIONCUPS].include?($Trainer.firstPokemon.ability_id))
|
speedup = ($Trainer.first_pokemon && [:STICKYHOLD, :SUCTIONCUPS].include?($Trainer.first_pokemon.ability_id))
|
||||||
biteChance = 20+(25*rodType) # 45, 70, 95
|
biteChance = 20+(25*rodType) # 45, 70, 95
|
||||||
biteChance *= 1.5 if speedup # 67.5, 100, 100
|
biteChance *= 1.5 if speedup # 67.5, 100, 100
|
||||||
hookChance = 100
|
hookChance = 100
|
||||||
@@ -1059,13 +1059,11 @@ def pbRegisterPartner(tr_type, tr_name, tr_id = 0)
|
|||||||
pbCancelVehicles
|
pbCancelVehicles
|
||||||
trainer = pbLoadTrainer(tr_type, tr_name, tr_id)
|
trainer = pbLoadTrainer(tr_type, tr_name, tr_id)
|
||||||
Events.onTrainerPartyLoad.trigger(nil, trainer)
|
Events.onTrainerPartyLoad.trigger(nil, trainer)
|
||||||
trainerobject = PokeBattle_Trainer.new(trainer[0].name, tr_type)
|
for i in trainer.party
|
||||||
trainerobject.setForeignID($Trainer)
|
i.owner = Pokemon::Owner.new_from_trainer(trainer)
|
||||||
for i in trainer[2]
|
|
||||||
i.owner = Pokemon::Owner.new_from_trainer(trainerobject)
|
|
||||||
i.calcStats
|
i.calcStats
|
||||||
end
|
end
|
||||||
$PokemonGlobal.partner = [tr_type, trainerobject.name, trainerobject.id, trainer[2]]
|
$PokemonGlobal.partner = [tr_type, tr_name, trainer.id, trainer.party]
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbDeregisterPartner
|
def pbDeregisterPartner
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ def pbBattleAnimationOverride(viewport,battletype=0,foe=nil)
|
|||||||
##### VS. animation, by Luka S.J. #####
|
##### VS. animation, by Luka S.J. #####
|
||||||
##### Tweaked by Maruno #####
|
##### Tweaked by Maruno #####
|
||||||
if (battletype==1 || battletype==3) && foe.length==1 # Against single trainer
|
if (battletype==1 || battletype==3) && foe.length==1 # Against single trainer
|
||||||
tr_type = foe[0].trainertype
|
tr_type = foe[0].trainer_type
|
||||||
tr_type_id = GameData::TrainerType.get(tr_type).id_number
|
tr_type_id = GameData::TrainerType.get(tr_type).id_number
|
||||||
if tr_type
|
if tr_type
|
||||||
tbargraphic = sprintf("Graphics/Transitions/vsBar%s", tr_type.to_s) rescue nil
|
tbargraphic = sprintf("Graphics/Transitions/vsBar%s", tr_type.to_s) rescue nil
|
||||||
@@ -139,7 +139,7 @@ def pbBattleAnimationOverride(viewport,battletype=0,foe=nil)
|
|||||||
tgraphic = sprintf("Graphics/Transitions/vsTrainer%s", tr_type.to_s) rescue nil
|
tgraphic = sprintf("Graphics/Transitions/vsTrainer%s", tr_type.to_s) rescue nil
|
||||||
tgraphic = sprintf("Graphics/Transitions/vsTrainer%d", tr_type_id) if !pbResolveBitmap(tgraphic)
|
tgraphic = sprintf("Graphics/Transitions/vsTrainer%d", tr_type_id) if !pbResolveBitmap(tgraphic)
|
||||||
if pbResolveBitmap(tbargraphic) && pbResolveBitmap(tgraphic)
|
if pbResolveBitmap(tbargraphic) && pbResolveBitmap(tgraphic)
|
||||||
player_tr_type = $Trainer.trainertype
|
player_tr_type = $Trainer.trainer_type
|
||||||
player_tr_type_id = GameData::TrainerType.get(player_tr_type).id_number
|
player_tr_type_id = GameData::TrainerType.get(player_tr_type).id_number
|
||||||
outfit = $Trainer.outfit
|
outfit = $Trainer.outfit
|
||||||
# Set up
|
# Set up
|
||||||
@@ -631,7 +631,7 @@ def pbStartOver(gameover=false)
|
|||||||
pbBugContestStartOver
|
pbBugContestStartOver
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
pbHealAll
|
$Trainer.heal_party
|
||||||
if $PokemonGlobal.pokecenterMapId && $PokemonGlobal.pokecenterMapId>=0
|
if $PokemonGlobal.pokecenterMapId && $PokemonGlobal.pokecenterMapId>=0
|
||||||
if gameover
|
if gameover
|
||||||
pbMessage(_INTL("\\w[]\\wm\\c[8]\\l[3]After the unfortunate defeat, you scurry back to a Pokémon Center."))
|
pbMessage(_INTL("\\w[]\\wm\\c[8]\\l[3]After the unfortunate defeat, you scurry back to a Pokémon Center."))
|
||||||
@@ -653,7 +653,7 @@ def pbStartOver(gameover=false)
|
|||||||
if $DEBUG
|
if $DEBUG
|
||||||
pbMessage(_ISPRINTF("Can't find the map 'Map{1:03d}' in the Data folder. The game will resume at the player's position.",homedata[0]))
|
pbMessage(_ISPRINTF("Can't find the map 'Map{1:03d}' in the Data folder. The game will resume at the player's position.",homedata[0]))
|
||||||
end
|
end
|
||||||
pbHealAll
|
$Trainer.heal_party
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if gameover
|
if gameover
|
||||||
@@ -672,7 +672,7 @@ def pbStartOver(gameover=false)
|
|||||||
$scene.transfer_player if $scene.is_a?(Scene_Map)
|
$scene.transfer_player if $scene.is_a?(Scene_Map)
|
||||||
$game_map.refresh
|
$game_map.refresh
|
||||||
else
|
else
|
||||||
pbHealAll
|
$Trainer.heal_party
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbEraseEscapePoint
|
pbEraseEscapePoint
|
||||||
|
|||||||
@@ -208,12 +208,12 @@ Events.onStartBattle += proc { |_sender|
|
|||||||
}
|
}
|
||||||
|
|
||||||
def pbCanDoubleBattle?
|
def pbCanDoubleBattle?
|
||||||
return $PokemonGlobal.partner || $Trainer.ablePokemonCount>=2
|
return $PokemonGlobal.partner || $Trainer.able_pokemon_count >= 2
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbCanTripleBattle?
|
def pbCanTripleBattle?
|
||||||
return true if $Trainer.ablePokemonCount>=3
|
return true if $Trainer.able_pokemon_count >= 3
|
||||||
return $PokemonGlobal.partner && $Trainer.ablePokemonCount>=2
|
return $PokemonGlobal.partner && $Trainer.able_pokemon_count >= 2
|
||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -223,8 +223,8 @@ def pbWildBattleCore(*args)
|
|||||||
outcomeVar = $PokemonTemp.battleRules["outcomeVar"] || 1
|
outcomeVar = $PokemonTemp.battleRules["outcomeVar"] || 1
|
||||||
canLose = $PokemonTemp.battleRules["canLose"] || false
|
canLose = $PokemonTemp.battleRules["canLose"] || false
|
||||||
# Skip battle if the player has no able Pokémon, or if holding Ctrl in Debug mode
|
# Skip battle if the player has no able Pokémon, or if holding Ctrl in Debug mode
|
||||||
if $Trainer.ablePokemonCount==0 || ($DEBUG && Input.press?(Input::CTRL))
|
if $Trainer.able_pokemon_count == 0 || ($DEBUG && Input.press?(Input::CTRL))
|
||||||
pbMessage(_INTL("SKIPPING BATTLE...")) if $Trainer.pokemonCount>0
|
pbMessage(_INTL("SKIPPING BATTLE...")) if $Trainer.pokemon_count > 0
|
||||||
pbSet(outcomeVar,1) # Treat it as a win
|
pbSet(outcomeVar,1) # Treat it as a win
|
||||||
$PokemonTemp.clearBattleRules
|
$PokemonTemp.clearBattleRules
|
||||||
$PokemonGlobal.nextBattleBGM = nil
|
$PokemonGlobal.nextBattleBGM = nil
|
||||||
@@ -266,7 +266,7 @@ def pbWildBattleCore(*args)
|
|||||||
room_for_partner = true
|
room_for_partner = true
|
||||||
end
|
end
|
||||||
if $PokemonGlobal.partner && !$PokemonTemp.battleRules["noPartner"] && room_for_partner
|
if $PokemonGlobal.partner && !$PokemonTemp.battleRules["noPartner"] && room_for_partner
|
||||||
ally = PokeBattle_Trainer.new($PokemonGlobal.partner[1],$PokemonGlobal.partner[0])
|
ally = NPCTrainer.new($PokemonGlobal.partner[1],$PokemonGlobal.partner[0])
|
||||||
ally.id = $PokemonGlobal.partner[2]
|
ally.id = $PokemonGlobal.partner[2]
|
||||||
ally.party = $PokemonGlobal.partner[3]
|
ally.party = $PokemonGlobal.partner[3]
|
||||||
playerTrainers.push(ally)
|
playerTrainers.push(ally)
|
||||||
@@ -360,16 +360,16 @@ def pbTrainerBattleCore(*args)
|
|||||||
outcomeVar = $PokemonTemp.battleRules["outcomeVar"] || 1
|
outcomeVar = $PokemonTemp.battleRules["outcomeVar"] || 1
|
||||||
canLose = $PokemonTemp.battleRules["canLose"] || false
|
canLose = $PokemonTemp.battleRules["canLose"] || false
|
||||||
# Skip battle if the player has no able Pokémon, or if holding Ctrl in Debug mode
|
# Skip battle if the player has no able Pokémon, or if holding Ctrl in Debug mode
|
||||||
if $Trainer.ablePokemonCount==0 || ($DEBUG && Input.press?(Input::CTRL))
|
if $Trainer.able_pokemon_count == 0 || ($DEBUG && Input.press?(Input::CTRL))
|
||||||
pbMessage(_INTL("SKIPPING BATTLE...")) if $DEBUG
|
pbMessage(_INTL("SKIPPING BATTLE...")) if $DEBUG
|
||||||
pbMessage(_INTL("AFTER WINNING...")) if $DEBUG && $Trainer.ablePokemonCount>0
|
pbMessage(_INTL("AFTER WINNING...")) if $DEBUG && $Trainer.able_pokemon_count > 0
|
||||||
pbSet(outcomeVar,($Trainer.ablePokemonCount==0) ? 0 : 1) # Treat it as undecided/a win
|
pbSet(outcomeVar,($Trainer.able_pokemon_count == 0) ? 0 : 1) # Treat it as undecided/a win
|
||||||
$PokemonTemp.clearBattleRules
|
$PokemonTemp.clearBattleRules
|
||||||
$PokemonGlobal.nextBattleBGM = nil
|
$PokemonGlobal.nextBattleBGM = nil
|
||||||
$PokemonGlobal.nextBattleME = nil
|
$PokemonGlobal.nextBattleME = nil
|
||||||
$PokemonGlobal.nextBattleCaptureME = nil
|
$PokemonGlobal.nextBattleCaptureME = nil
|
||||||
$PokemonGlobal.nextBattleBack = nil
|
$PokemonGlobal.nextBattleBack = nil
|
||||||
return ($Trainer.ablePokemonCount==0) ? 0 : 1 # Treat it as undecided/a win
|
return ($Trainer.able_pokemon_count == 0) ? 0 : 1 # Treat it as undecided/a win
|
||||||
end
|
end
|
||||||
# Record information about party Pokémon to be used at the end of battle (e.g.
|
# Record information about party Pokémon to be used at the end of battle (e.g.
|
||||||
# comparing levels for an evolution check)
|
# comparing levels for an evolution check)
|
||||||
@@ -382,24 +382,23 @@ def pbTrainerBattleCore(*args)
|
|||||||
foePartyStarts = []
|
foePartyStarts = []
|
||||||
for arg in args
|
for arg in args
|
||||||
raise _INTL("Expected an array of trainer data, got {1}.",arg) if !arg.is_a?(Array)
|
raise _INTL("Expected an array of trainer data, got {1}.",arg) if !arg.is_a?(Array)
|
||||||
if arg[0].is_a?(PokeBattle_Trainer)
|
if arg.is_a?(NPCTrainer)
|
||||||
# [trainer object, party, end speech, items]
|
foeTrainers.push(arg)
|
||||||
foeTrainers.push(arg[0])
|
|
||||||
foePartyStarts.push(foeParty.length)
|
foePartyStarts.push(foeParty.length)
|
||||||
arg[1].each { |pkmn| foeParty.push(pkmn) }
|
arg.party.each { |pkmn| foeParty.push(pkmn) }
|
||||||
foeEndSpeeches.push(arg[2])
|
foeEndSpeeches.push(arg.lose_text)
|
||||||
foeItems.push(arg[3])
|
foeItems.push(arg.items)
|
||||||
else
|
else
|
||||||
# [trainer type, trainer name, ID, speech (optional)]
|
# [trainer type, trainer name, ID, speech (optional)]
|
||||||
trainer = pbLoadTrainer(arg[0],arg[1],arg[2])
|
trainer = pbLoadTrainer(arg[0],arg[1],arg[2])
|
||||||
pbMissingTrainer(arg[0],arg[1],arg[2]) if !trainer
|
pbMissingTrainer(arg[0],arg[1],arg[2]) if !trainer
|
||||||
return 0 if !trainer
|
return 0 if !trainer
|
||||||
Events.onTrainerPartyLoad.trigger(nil,trainer)
|
Events.onTrainerPartyLoad.trigger(nil,trainer)
|
||||||
foeTrainers.push(trainer[0])
|
foeTrainers.push(trainer)
|
||||||
foePartyStarts.push(foeParty.length)
|
foePartyStarts.push(foeParty.length)
|
||||||
trainer[2].each { |pkmn| foeParty.push(pkmn) }
|
trainer.party.each { |pkmn| foeParty.push(pkmn) }
|
||||||
foeEndSpeeches.push(arg[3] || trainer[3])
|
foeEndSpeeches.push(arg[3] || trainer.lose_text)
|
||||||
foeItems.push(trainer[1])
|
foeItems.push(trainer.items)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Calculate who the player trainer(s) and their party are
|
# Calculate who the player trainer(s) and their party are
|
||||||
@@ -412,7 +411,7 @@ def pbTrainerBattleCore(*args)
|
|||||||
room_for_partner = true
|
room_for_partner = true
|
||||||
end
|
end
|
||||||
if $PokemonGlobal.partner && !$PokemonTemp.battleRules["noPartner"] && room_for_partner
|
if $PokemonGlobal.partner && !$PokemonTemp.battleRules["noPartner"] && room_for_partner
|
||||||
ally = PokeBattle_Trainer.new($PokemonGlobal.partner[1],$PokemonGlobal.partner[0])
|
ally = NPCTrainer.new($PokemonGlobal.partner[1], $PokemonGlobal.partner[0])
|
||||||
ally.id = $PokemonGlobal.partner[2]
|
ally.id = $PokemonGlobal.partner[2]
|
||||||
ally.party = $PokemonGlobal.partner[3]
|
ally.party = $PokemonGlobal.partner[3]
|
||||||
playerTrainers.push(ally)
|
playerTrainers.push(ally)
|
||||||
@@ -469,8 +468,8 @@ def pbTrainerBattle(trainerID, trainerName, endSpeech=nil,
|
|||||||
# then trigger and cause the battle to happen against this first trainer and
|
# then trigger and cause the battle to happen against this first trainer and
|
||||||
# themselves.
|
# themselves.
|
||||||
if !$PokemonTemp.waitingTrainer && pbMapInterpreterRunning? &&
|
if !$PokemonTemp.waitingTrainer && pbMapInterpreterRunning? &&
|
||||||
($Trainer.ablePokemonCount>1 ||
|
($Trainer.able_pokemon_count > 1 ||
|
||||||
($Trainer.ablePokemonCount>0 && $PokemonGlobal.partner))
|
($Trainer.able_pokemon_count > 0 && $PokemonGlobal.partner))
|
||||||
thisEvent = pbMapInterpreter.get_character(0)
|
thisEvent = pbMapInterpreter.get_character(0)
|
||||||
# Find all other triggered trainer events
|
# Find all other triggered trainer events
|
||||||
triggeredEvents = $game_player.pbTriggeredTrainerEvents([2],false)
|
triggeredEvents = $game_player.pbTriggeredTrainerEvents([2],false)
|
||||||
@@ -488,8 +487,9 @@ def pbTrainerBattle(trainerID, trainerName, endSpeech=nil,
|
|||||||
# If there is exactly 1 other triggered trainer event, and this trainer has
|
# If there is exactly 1 other triggered trainer event, and this trainer has
|
||||||
# 6 or fewer Pokémon, record this trainer for a double battle caused by the
|
# 6 or fewer Pokémon, record this trainer for a double battle caused by the
|
||||||
# other triggered trainer event
|
# other triggered trainer event
|
||||||
if otherEvent.length==1 && trainer[2].length<=6
|
if otherEvent.length == 1 && trainer.party.length <= MAX_PARTY_SIZE
|
||||||
$PokemonTemp.waitingTrainer = [trainer,endSpeech || trainer[3],thisEvent.id]
|
trainer.lose_text = endSpeech if endSpeech && !endSpeech.empty?
|
||||||
|
$PokemonTemp.waitingTrainer = [trainer, thisEvent.id]
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -500,8 +500,7 @@ def pbTrainerBattle(trainerID, trainerName, endSpeech=nil,
|
|||||||
# Perform the battle
|
# Perform the battle
|
||||||
if $PokemonTemp.waitingTrainer
|
if $PokemonTemp.waitingTrainer
|
||||||
waitingTrainer = $PokemonTemp.waitingTrainer
|
waitingTrainer = $PokemonTemp.waitingTrainer
|
||||||
decision = pbTrainerBattleCore(
|
decision = pbTrainerBattleCore($PokemonTemp.waitingTrainer,
|
||||||
[waitingTrainer[0][0],waitingTrainer[0][2],waitingTrainer[1],waitingTrainer[0][1]],
|
|
||||||
[trainerID,trainerName,trainerPartyID,endSpeech]
|
[trainerID,trainerName,trainerPartyID,endSpeech]
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
@@ -509,7 +508,7 @@ def pbTrainerBattle(trainerID, trainerName, endSpeech=nil,
|
|||||||
end
|
end
|
||||||
# Finish off the recorded waiting trainer, because they have now been battled
|
# Finish off the recorded waiting trainer, because they have now been battled
|
||||||
if decision==1 && $PokemonTemp.waitingTrainer # Win
|
if decision==1 && $PokemonTemp.waitingTrainer # Win
|
||||||
pbMapInterpreter.pbSetSelfSwitch($PokemonTemp.waitingTrainer[2],"A",true)
|
pbMapInterpreter.pbSetSelfSwitch($PokemonTemp.waitingTrainer[1], "A", true)
|
||||||
end
|
end
|
||||||
$PokemonTemp.waitingTrainer = nil
|
$PokemonTemp.waitingTrainer = nil
|
||||||
# Return true if the player won the battle, and false if any other result
|
# Return true if the player won the battle, and false if any other result
|
||||||
@@ -560,7 +559,7 @@ def pbAfterBattle(decision,canLose)
|
|||||||
pkmn.makeUnprimal
|
pkmn.makeUnprimal
|
||||||
end
|
end
|
||||||
if $PokemonGlobal.partner
|
if $PokemonGlobal.partner
|
||||||
pbHealAll
|
$Trainer.heal_party
|
||||||
$PokemonGlobal.partner[3].each do |pkmn|
|
$PokemonGlobal.partner[3].each do |pkmn|
|
||||||
pkmn.heal
|
pkmn.heal
|
||||||
pkmn.makeUnmega
|
pkmn.makeUnmega
|
||||||
@@ -588,7 +587,7 @@ Events.onEndBattle += proc { |_sender,e|
|
|||||||
end
|
end
|
||||||
case decision
|
case decision
|
||||||
when 1, 4 # Win, capture
|
when 1, 4 # Win, capture
|
||||||
$Trainer.pokemonParty.each do |pkmn|
|
$Trainer.pokemon_party.each do |pkmn|
|
||||||
pbPickup(pkmn)
|
pbPickup(pkmn)
|
||||||
pbHoneyGather(pkmn)
|
pbHoneyGather(pkmn)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ class PokemonEncounters
|
|||||||
# Static/Magnet Pull prefer wild encounters of certain types, if possible.
|
# Static/Magnet Pull prefer wild encounters of certain types, if possible.
|
||||||
# If they activate, they remove all Pokémon from the encounter table that do
|
# If they activate, they remove all Pokémon from the encounter table that do
|
||||||
# not have the type they favor. If none have that type, nothing is changed.
|
# not have the type they favor. If none have that type, nothing is changed.
|
||||||
firstPkmn = $Trainer.firstPokemon
|
firstPkmn = $Trainer.first_pokemon
|
||||||
if firstPkmn && rand(100)<50 # 50% chance of happening
|
if firstPkmn && rand(100)<50 # 50% chance of happening
|
||||||
favoredType = nil
|
favoredType = nil
|
||||||
if firstPkmn.hasAbility?(:STATIC) && GameData::Type.exists?(:ELECTRIC)
|
if firstPkmn.hasAbility?(:STATIC) && GameData::Type.exists?(:ELECTRIC)
|
||||||
@@ -336,7 +336,7 @@ class PokemonEncounters
|
|||||||
encount *= 1.5
|
encount *= 1.5
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
firstPkmn = $Trainer.firstPokemon
|
firstPkmn = $Trainer.first_pokemon
|
||||||
if firstPkmn
|
if firstPkmn
|
||||||
case firstPkmn.item_id
|
case firstPkmn.item_id
|
||||||
when :CLEANSETAG
|
when :CLEANSETAG
|
||||||
@@ -382,7 +382,7 @@ class PokemonEncounters
|
|||||||
return false if $DEBUG && Input.press?(Input::CTRL)
|
return false if $DEBUG && Input.press?(Input::CTRL)
|
||||||
if !pbPokeRadarOnShakingGrass
|
if !pbPokeRadarOnShakingGrass
|
||||||
if $PokemonGlobal.repel>0 || repel
|
if $PokemonGlobal.repel>0 || repel
|
||||||
firstPkmn = (REPEL_COUNTS_FAINTED_POKEMON) ? $Trainer.firstPokemon : $Trainer.firstAblePokemon
|
firstPkmn = (REPEL_COUNTS_FAINTED_POKEMON) ? $Trainer.first_pokemon : $Trainer.first_able_pokemon
|
||||||
return false if firstPkmn && encounter[1]<firstPkmn.level
|
return false if firstPkmn && encounter[1]<firstPkmn.level
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -400,7 +400,7 @@ def pbGenerateWildPokemon(species,level,isRoamer=false)
|
|||||||
genwildpoke = Pokemon.new(species,level)
|
genwildpoke = Pokemon.new(species,level)
|
||||||
# Give the wild Pokémon a held item
|
# Give the wild Pokémon a held item
|
||||||
items = genwildpoke.wildHoldItems
|
items = genwildpoke.wildHoldItems
|
||||||
firstPkmn = $Trainer.firstPokemon
|
firstPkmn = $Trainer.first_pokemon
|
||||||
chances = [50,5,1]
|
chances = [50,5,1]
|
||||||
chances = [60,20,5] if firstPkmn && firstPkmn.hasAbility?(:COMPOUNDEYES)
|
chances = [60,20,5] if firstPkmn && firstPkmn.hasAbility?(:COMPOUNDEYES)
|
||||||
itemrnd = rand(100)
|
itemrnd = rand(100)
|
||||||
|
|||||||
@@ -30,16 +30,13 @@ Events.onWildPokemonCreate += proc { |_sender, e|
|
|||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
# This is the basis of a trainer modifier. It works both for trainers loaded
|
# This is the basis of a trainer modifier. It works both for trainers loaded
|
||||||
# when you battle them, and for partner trainers when they are registered.
|
# when you battle them, and for partner trainers when they are registered.
|
||||||
# Note that you can only modify a partner trainer's Pokémon, and not the trainer
|
# Note that you can only modify a partner trainer's Pokémon, and not the trainer
|
||||||
# themselves nor their items this way, as those are generated from scratch
|
# themselves nor their items this way, as those are generated from scratch
|
||||||
# before each battle.
|
# before each battle.
|
||||||
#Events.onTrainerPartyLoad += proc { |_sender, e|
|
#Events.onTrainerPartyLoad += proc { |_sender, trainer|
|
||||||
# if e[0] # Trainer data should exist to be loaded, but may not exist somehow
|
# if trainer # An NPCTrainer object containing party/items/lose text, etc.
|
||||||
# trainer = e[0][0] # A PokeBattle_Trainer object of the loaded trainer
|
|
||||||
# items = e[0][1] # An array of the trainer's items they can use
|
|
||||||
# party = e[0][2] # An array of the trainer's Pokémon
|
|
||||||
# YOUR CODE HERE
|
# YOUR CODE HERE
|
||||||
# end
|
# end
|
||||||
#}
|
#}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ end
|
|||||||
def pbCheckHiddenMoveBadge(badge=-1,showmsg=true)
|
def pbCheckHiddenMoveBadge(badge=-1,showmsg=true)
|
||||||
return true if badge<0 # No badge requirement
|
return true if badge<0 # No badge requirement
|
||||||
return true if $DEBUG
|
return true if $DEBUG
|
||||||
if (FIELD_MOVES_COUNT_BADGES) ? $Trainer.numbadges>=badge : $Trainer.badges[badge]
|
if (FIELD_MOVES_COUNT_BADGES) ? $Trainer.badge_count >= badge : $Trainer.badges[badge]
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
pbMessage(_INTL("Sorry, a new Badge is required.")) if showmsg
|
pbMessage(_INTL("Sorry, a new Badge is required.")) if showmsg
|
||||||
@@ -187,7 +187,7 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbCut
|
def pbCut
|
||||||
move = :CUT
|
move = :CUT
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_CUT,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_CUT,false) || (!$DEBUG && !movefinder)
|
||||||
pbMessage(_INTL("This tree looks like it can be cut down."))
|
pbMessage(_INTL("This tree looks like it can be cut down."))
|
||||||
return false
|
return false
|
||||||
@@ -297,7 +297,7 @@ def pbDive
|
|||||||
map_metadata = GameData::MapMetadata.try_get($game_map.map_id)
|
map_metadata = GameData::MapMetadata.try_get($game_map.map_id)
|
||||||
return false if !map_metadata || !map_metadata.dive_map_id
|
return false if !map_metadata || !map_metadata.dive_map_id
|
||||||
move = :DIVE
|
move = :DIVE
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_DIVE,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_DIVE,false) || (!$DEBUG && !movefinder)
|
||||||
pbMessage(_INTL("The sea is deep here. A Pokémon may be able to go underwater."))
|
pbMessage(_INTL("The sea is deep here. A Pokémon may be able to go underwater."))
|
||||||
return false
|
return false
|
||||||
@@ -333,7 +333,7 @@ def pbSurfacing
|
|||||||
end
|
end
|
||||||
return if !surface_map_id
|
return if !surface_map_id
|
||||||
move = :DIVE
|
move = :DIVE
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_DIVE,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_DIVE,false) || (!$DEBUG && !movefinder)
|
||||||
pbMessage(_INTL("Light is filtering down from above. A Pokémon may be able to surface here."))
|
pbMessage(_INTL("Light is filtering down from above. A Pokémon may be able to surface here."))
|
||||||
return false
|
return false
|
||||||
@@ -536,7 +536,7 @@ def pbHeadbuttEffect(event=nil)
|
|||||||
event = $game_player.pbFacingEvent(true) if !event
|
event = $game_player.pbFacingEvent(true) if !event
|
||||||
a = (event.x+(event.x/24).floor+1)*(event.y+(event.y/24).floor+1)
|
a = (event.x+(event.x/24).floor+1)*(event.y+(event.y/24).floor+1)
|
||||||
a = (a*2/5)%10 # Even 2x as likely as odd, 0 is 1.5x as likely as odd
|
a = (a*2/5)%10 # Even 2x as likely as odd, 0 is 1.5x as likely as odd
|
||||||
b = ($Trainer.publicID)%10 # Practically equal odds of each value
|
b = $Trainer.public_ID % 10 # Practically equal odds of each value
|
||||||
chance = 1 # ~50%
|
chance = 1 # ~50%
|
||||||
if a==b; chance = 8 # 10%
|
if a==b; chance = 8 # 10%
|
||||||
elsif a>b && (a-b).abs<5; chance = 5 # ~30.3%
|
elsif a>b && (a-b).abs<5; chance = 5 # ~30.3%
|
||||||
@@ -554,7 +554,7 @@ end
|
|||||||
|
|
||||||
def pbHeadbutt(event=nil)
|
def pbHeadbutt(event=nil)
|
||||||
move = :HEADBUTT
|
move = :HEADBUTT
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !$DEBUG && !movefinder
|
if !$DEBUG && !movefinder
|
||||||
pbMessage(_INTL("A Pokémon could be in this tree. Maybe a Pokémon could shake it."))
|
pbMessage(_INTL("A Pokémon could be in this tree. Maybe a Pokémon could shake it."))
|
||||||
return false
|
return false
|
||||||
@@ -599,7 +599,7 @@ end
|
|||||||
|
|
||||||
def pbRockSmash
|
def pbRockSmash
|
||||||
move = :ROCKSMASH
|
move = :ROCKSMASH
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_ROCKSMASH,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_ROCKSMASH,false) || (!$DEBUG && !movefinder)
|
||||||
pbMessage(_INTL("It's a rugged rock, but a Pokémon may be able to smash it."))
|
pbMessage(_INTL("It's a rugged rock, but a Pokémon may be able to smash it."))
|
||||||
return false
|
return false
|
||||||
@@ -646,7 +646,7 @@ def pbStrength
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
move = :STRENGTH
|
move = :STRENGTH
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_STRENGTH,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_STRENGTH,false) || (!$DEBUG && !movefinder)
|
||||||
pbMessage(_INTL("It's a big boulder, but a Pokémon may be able to push it aside."))
|
pbMessage(_INTL("It's a big boulder, but a Pokémon may be able to push it aside."))
|
||||||
return false
|
return false
|
||||||
@@ -695,7 +695,7 @@ def pbSurf
|
|||||||
return false if $game_player.pbFacingEvent
|
return false if $game_player.pbFacingEvent
|
||||||
return false if $game_player.pbHasDependentEvents?
|
return false if $game_player.pbHasDependentEvents?
|
||||||
move = :SURF
|
move = :SURF
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_SURF,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_SURF,false) || (!$DEBUG && !movefinder)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@@ -947,7 +947,7 @@ end
|
|||||||
|
|
||||||
def pbWaterfall
|
def pbWaterfall
|
||||||
move = :WATERFALL
|
move = :WATERFALL
|
||||||
movefinder = pbCheckMove(move)
|
movefinder = $Trainer.get_pokemon_with_move(move)
|
||||||
if !pbCheckHiddenMoveBadge(BADGE_FOR_WATERFALL,false) || (!$DEBUG && !movefinder)
|
if !pbCheckHiddenMoveBadge(BADGE_FOR_WATERFALL,false) || (!$DEBUG && !movefinder)
|
||||||
pbMessage(_INTL("A wall of water is crashing down with a mighty roar."))
|
pbMessage(_INTL("A wall of water is crashing down with a mighty roar."))
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -1,240 +0,0 @@
|
|||||||
class PokeBattle_Trainer
|
|
||||||
attr_accessor :name
|
|
||||||
attr_accessor :id
|
|
||||||
attr_writer :metaID
|
|
||||||
attr_accessor :trainertype
|
|
||||||
attr_writer :outfit
|
|
||||||
attr_accessor :badges
|
|
||||||
attr_reader :money
|
|
||||||
attr_accessor :seen
|
|
||||||
attr_accessor :owned
|
|
||||||
attr_accessor :formseen
|
|
||||||
attr_accessor :formlastseen
|
|
||||||
attr_accessor :shadowcaught
|
|
||||||
attr_accessor :party
|
|
||||||
attr_accessor :pokedex # Whether the Pokédex was obtained
|
|
||||||
attr_accessor :pokegear # Whether the Pokégear was obtained
|
|
||||||
attr_writer :language
|
|
||||||
|
|
||||||
def trainerTypeName; return GameData::TrainerType.get(@trainertype).name; end
|
|
||||||
def moneyEarned; return GameData::TrainerType.get(@trainertype).base_money; end
|
|
||||||
def gender; return GameData::TrainerType.get(@trainertype).gender; end
|
|
||||||
def male?; return GameData::TrainerType.get(@trainertype).male?; end
|
|
||||||
def female?; return GameData::TrainerType.get(@trainertype).female?; end
|
|
||||||
alias isMale? male?
|
|
||||||
alias isFemale? female?
|
|
||||||
def skill; return GameData::TrainerType.get(@trainertype).skill_level; end
|
|
||||||
def skillCode; return GameData::TrainerType.get(@trainertype).skill_code; end
|
|
||||||
|
|
||||||
def hasSkillCode(code)
|
|
||||||
c = skillCode
|
|
||||||
return c && c != "" && c[/#{code}/]
|
|
||||||
end
|
|
||||||
|
|
||||||
def fullname
|
|
||||||
return _INTL("{1} {2}", trainerTypeName, @name)
|
|
||||||
end
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Unique ID number
|
|
||||||
#=============================================================================
|
|
||||||
def publicID(id = nil) # Portion of the ID which is visible on the Trainer Card
|
|
||||||
return id ? id & 0xFFFF : @id & 0xFFFF
|
|
||||||
end
|
|
||||||
|
|
||||||
def secretID(id = nil) # Other portion of the ID
|
|
||||||
return id ? id >> 16 : @id >> 16
|
|
||||||
end
|
|
||||||
|
|
||||||
def getForeignID # Random ID other than this Trainer's ID
|
|
||||||
fid = 0
|
|
||||||
loop do
|
|
||||||
fid = rand(2 ** 16) | rand(2 ** 16) << 16
|
|
||||||
break if fid != @id
|
|
||||||
end
|
|
||||||
return fid
|
|
||||||
end
|
|
||||||
|
|
||||||
def setForeignID(other)
|
|
||||||
@id = other.getForeignID
|
|
||||||
end
|
|
||||||
|
|
||||||
def metaID
|
|
||||||
@metaID = $PokemonGlobal.playerID if !@metaID
|
|
||||||
@metaID = 0 if !@metaID
|
|
||||||
return @metaID
|
|
||||||
end
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Other properties
|
|
||||||
#=============================================================================
|
|
||||||
def outfit
|
|
||||||
return @outfit || 0
|
|
||||||
end
|
|
||||||
|
|
||||||
def language
|
|
||||||
return @language || pbGetLanguage
|
|
||||||
end
|
|
||||||
|
|
||||||
def money=(value)
|
|
||||||
@money = [[value, MAX_MONEY].min, 0].max
|
|
||||||
end
|
|
||||||
|
|
||||||
def numbadges # Number of badges
|
|
||||||
ret = 0
|
|
||||||
@badges.each { |b| ret += 1 if b }
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Party
|
|
||||||
#=============================================================================
|
|
||||||
def pokemonParty
|
|
||||||
return @party.find_all { |p| p && !p.egg? }
|
|
||||||
end
|
|
||||||
|
|
||||||
def ablePokemonParty
|
|
||||||
return @party.find_all { |p| p && !p.egg? && !p.fainted? }
|
|
||||||
end
|
|
||||||
|
|
||||||
def partyCount
|
|
||||||
return @party.length
|
|
||||||
end
|
|
||||||
|
|
||||||
def pokemonCount
|
|
||||||
ret = 0
|
|
||||||
@party.each { |p| ret += 1 if p && !p.egg? }
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def ablePokemonCount
|
|
||||||
ret = 0
|
|
||||||
@party.each { |p| ret += 1 if p && !p.egg? && !p.fainted? }
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def firstParty
|
|
||||||
return nil if @party.length == 0
|
|
||||||
return @party[0]
|
|
||||||
end
|
|
||||||
|
|
||||||
def firstPokemon
|
|
||||||
p = self.pokemonParty
|
|
||||||
return nil if p.length == 0
|
|
||||||
return p[0]
|
|
||||||
end
|
|
||||||
|
|
||||||
def firstAblePokemon
|
|
||||||
p = self.ablePokemonParty
|
|
||||||
return nil if p.length == 0
|
|
||||||
return p[0]
|
|
||||||
end
|
|
||||||
|
|
||||||
def lastParty
|
|
||||||
return nil if @party.length == 0
|
|
||||||
return @party[@party.length - 1]
|
|
||||||
end
|
|
||||||
|
|
||||||
def lastPokemon
|
|
||||||
p = self.pokemonParty
|
|
||||||
return nil if p.length == 0
|
|
||||||
return p[p.length - 1]
|
|
||||||
end
|
|
||||||
|
|
||||||
def lastAblePokemon
|
|
||||||
p = self.ablePokemonParty
|
|
||||||
return nil if p.length == 0
|
|
||||||
return p[p.length - 1]
|
|
||||||
end
|
|
||||||
|
|
||||||
def party_full?
|
|
||||||
return @party.length >= MAX_PARTY_SIZE
|
|
||||||
end
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Pokédex
|
|
||||||
#=============================================================================
|
|
||||||
def pokedexSeen(region = -1) # Number of Pokémon seen
|
|
||||||
ret = 0
|
|
||||||
if region == -1
|
|
||||||
GameData::Species.each { |s| ret += 1 if s.form == 0 && @seen[s.species] }
|
|
||||||
else
|
|
||||||
pbAllRegionalSpecies(region).each { |s| ret += 1 if s && @seen[s] }
|
|
||||||
end
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def pokedexOwned(region = -1) # Number of Pokémon owned
|
|
||||||
ret = 0
|
|
||||||
if region == -1
|
|
||||||
GameData::Species.each { |s| ret += 1 if s.form == 0 && @owned[s.species] }
|
|
||||||
else
|
|
||||||
pbAllRegionalSpecies(region).each { |s| ret += 1 if s && @owned[s] }
|
|
||||||
end
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def numFormsSeen(species)
|
|
||||||
species_data = GameData::Species.try_get(species)
|
|
||||||
return 0 if !species_data
|
|
||||||
species = species_data.species
|
|
||||||
ret = 0
|
|
||||||
@formseen[species] = [[], []] if !@formseen[species]
|
|
||||||
array = @formseen[species]
|
|
||||||
for i in 0...[array[0].length, array[1].length].max
|
|
||||||
ret += 1 if array[0][i] || array[1][i]
|
|
||||||
end
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def seen?(species)
|
|
||||||
species_data = GameData::Species.try_get(species)
|
|
||||||
return (species_data) ? @seen[species_data.species] : false
|
|
||||||
end
|
|
||||||
alias hasSeen? seen?
|
|
||||||
|
|
||||||
def owned?(species)
|
|
||||||
species_data = GameData::Species.try_get(species)
|
|
||||||
return (species_data) ? @owned[species_data.species] : false
|
|
||||||
end
|
|
||||||
alias hasOwned? owned?
|
|
||||||
|
|
||||||
def setSeen(species)
|
|
||||||
species_data = GameData::Species.try_get(species)
|
|
||||||
@seen[species_data.species] = true if species_data
|
|
||||||
end
|
|
||||||
|
|
||||||
def setOwned(species)
|
|
||||||
species_data = GameData::Species.try_get(species)
|
|
||||||
@owned[species_data.species] = true if species_data
|
|
||||||
end
|
|
||||||
|
|
||||||
def clearPokedex
|
|
||||||
@seen = {}
|
|
||||||
@owned = {}
|
|
||||||
@formseen = {}
|
|
||||||
@formlastseen = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Initializing
|
|
||||||
#=============================================================================
|
|
||||||
def initialize(name, trainertype)
|
|
||||||
@name = name
|
|
||||||
@language = pbGetLanguage
|
|
||||||
@trainertype = trainertype
|
|
||||||
@id = rand(2 ** 16) | rand(2 ** 16) << 16
|
|
||||||
@metaID = 0
|
|
||||||
@outfit = 0
|
|
||||||
@pokegear = false
|
|
||||||
@pokedex = false
|
|
||||||
clearPokedex
|
|
||||||
@shadowcaught = {}
|
|
||||||
@badges = []
|
|
||||||
for i in 0...8
|
|
||||||
@badges[i] = false
|
|
||||||
end
|
|
||||||
@money = INITIAL_MONEY
|
|
||||||
@party = []
|
|
||||||
end
|
|
||||||
end
|
|
||||||
311
Data/Scripts/014_Trainers/001_Trainer.rb
Normal file
311
Data/Scripts/014_Trainers/001_Trainer.rb
Normal file
@@ -0,0 +1,311 @@
|
|||||||
|
#===============================================================================
|
||||||
|
# Basic trainer class (use a child class rather than this one)
|
||||||
|
#===============================================================================
|
||||||
|
class Trainer
|
||||||
|
attr_accessor :trainer_type
|
||||||
|
attr_accessor :name
|
||||||
|
attr_accessor :id
|
||||||
|
attr_accessor :language
|
||||||
|
attr_accessor :party
|
||||||
|
|
||||||
|
def full_name
|
||||||
|
return _INTL("{1} {2}", trainer_type_name, @name)
|
||||||
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
|
||||||
|
# Portion of the ID which is visible on the Trainer Card
|
||||||
|
def public_ID(id = nil)
|
||||||
|
return id ? id & 0xFFFF : @id & 0xFFFF
|
||||||
|
end
|
||||||
|
|
||||||
|
# Other portion of the ID
|
||||||
|
def secret_ID(id = nil)
|
||||||
|
return id ? id >> 16 : @id >> 16
|
||||||
|
end
|
||||||
|
|
||||||
|
# Random ID other than this Trainer's ID
|
||||||
|
def make_foreign_ID
|
||||||
|
loop do
|
||||||
|
ret = rand(2 ** 16) | rand(2 ** 16) << 16
|
||||||
|
return ret if ret != @id
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
|
||||||
|
def trainer_type_name; return GameData::TrainerType.get(@trainer_type).name; end
|
||||||
|
def base_money; return GameData::TrainerType.get(@trainer_type).base_money; end
|
||||||
|
def gender; return GameData::TrainerType.get(@trainer_type).gender; end
|
||||||
|
def male?; return GameData::TrainerType.get(@trainer_type).male?; end
|
||||||
|
def female?; return GameData::TrainerType.get(@trainer_type).female?; end
|
||||||
|
alias isMale? male?
|
||||||
|
alias isFemale? female?
|
||||||
|
def skill_level; return GameData::TrainerType.get(@trainer_type).skill_level; end
|
||||||
|
def skill_code; return GameData::TrainerType.get(@trainer_type).skill_code; end
|
||||||
|
|
||||||
|
def has_skill_code?(code)
|
||||||
|
c = skill_code
|
||||||
|
return c && c != "" && c[/#{code}/]
|
||||||
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
|
||||||
|
def pokemon_party
|
||||||
|
return @party.find_all { |p| p && !p.egg? }
|
||||||
|
end
|
||||||
|
|
||||||
|
def able_party
|
||||||
|
return @party.find_all { |p| p && !p.egg? && !p.fainted? }
|
||||||
|
end
|
||||||
|
|
||||||
|
def party_count
|
||||||
|
return @party.length
|
||||||
|
end
|
||||||
|
|
||||||
|
def pokemon_count
|
||||||
|
ret = 0
|
||||||
|
@party.each { |p| ret += 1 if p && !p.egg? }
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def able_pokemon_count
|
||||||
|
ret = 0
|
||||||
|
@party.each { |p| ret += 1 if p && !p.egg? && !p.fainted? }
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def party_full?
|
||||||
|
return party_count >= MAX_PARTY_SIZE
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns true if there are no usable Pokémon in the player's party.
|
||||||
|
def all_fainted?
|
||||||
|
return able_pokemon_count == 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def first_party
|
||||||
|
return @party[0]
|
||||||
|
end
|
||||||
|
|
||||||
|
def first_pokemon
|
||||||
|
return pokemon_party[0]
|
||||||
|
end
|
||||||
|
|
||||||
|
def first_able_pokemon
|
||||||
|
return able_party[0]
|
||||||
|
end
|
||||||
|
|
||||||
|
def last_party
|
||||||
|
return (@party.length > 0) ? @party[@party.length - 1] : nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def last_pokemon
|
||||||
|
p = pokemon_party
|
||||||
|
return (p.length > 0) ? p[p.length - 1] : nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def last_able_pokemon
|
||||||
|
p = able_party
|
||||||
|
return (p.length > 0) ? p[p.length - 1] : nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def remove_pokemon_at_index(index)
|
||||||
|
return false if index < 0 || index >= party_count
|
||||||
|
have_able = false
|
||||||
|
@party.each_with_index do |pkmn, i|
|
||||||
|
have_able = true if i != index && pkmn.able?
|
||||||
|
break if have_able
|
||||||
|
end
|
||||||
|
return false if !have_able
|
||||||
|
@party.delete_at(index)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
# Checks whether the trainer would still have an unfainted Pokémon if the
|
||||||
|
# Pokémon given by _index_ were removed from the party.
|
||||||
|
def has_other_able_pokemon?(index)
|
||||||
|
@party.each_with_index { |pkmn, i| return true if i != index && pkmn.able? }
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns true if there is a Pokémon of the given species in the trainer's
|
||||||
|
# party. You may also specify a particular form it should be.
|
||||||
|
def has_species?(species, form = -1)
|
||||||
|
return pokemon_party.any? { |p| p && p.isSpecies?(species) && (form < 0 || p.form == form) }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns whether there is a fatefully met Pokémon of the given species in the
|
||||||
|
# trainer's party.
|
||||||
|
def has_fateful_species?(species)
|
||||||
|
return pokemon_party.any? { |p| p && p.isSpecies?(species) && p.obtain_method == 4 }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns whether there is a Pokémon with the given type in the trainer's
|
||||||
|
# party.
|
||||||
|
def has_pokemon_of_type?(type)
|
||||||
|
return false if !GameData::Type.exists?(type)
|
||||||
|
type = GameData::Type.get(type).id
|
||||||
|
return pokemon_party.any? { |p| p && p.hasType(type) }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Checks whether any Pokémon in the party knows the given move, and returns
|
||||||
|
# the first Pokémon it finds with that move, or nil if no Pokémon has that move.
|
||||||
|
def get_pokemon_with_move(move)
|
||||||
|
pokemon_party.each { |pkmn| return pkmn if pkmn.hasMove?(move) }
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
# Fully heal all Pokémon in the party.
|
||||||
|
def heal_party
|
||||||
|
@party.each { |pkmn| pkmn.heal }
|
||||||
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
|
||||||
|
def initialize(name, trainer_type)
|
||||||
|
@trainer_type = trainer_type
|
||||||
|
@name = name
|
||||||
|
@id = rand(2 ** 16) | rand(2 ** 16) << 16
|
||||||
|
@language = pbGetLanguage
|
||||||
|
@party = []
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Trainer class for NPC trainers
|
||||||
|
#===============================================================================
|
||||||
|
class NPCTrainer < Trainer
|
||||||
|
attr_accessor :items
|
||||||
|
attr_accessor :lose_text
|
||||||
|
|
||||||
|
def initialize(name, trainer_type)
|
||||||
|
super
|
||||||
|
@items = []
|
||||||
|
@lose_text = GameData::TrainerType.get(@trainer_type).lose_text
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Trainer class for the player
|
||||||
|
#===============================================================================
|
||||||
|
class PlayerTrainer < Trainer
|
||||||
|
attr_writer :character_ID
|
||||||
|
attr_accessor :outfit
|
||||||
|
attr_accessor :badges
|
||||||
|
attr_reader :money
|
||||||
|
attr_accessor :seen
|
||||||
|
attr_accessor :owned
|
||||||
|
attr_accessor :seen_forms
|
||||||
|
attr_accessor :last_seen_forms
|
||||||
|
attr_accessor :owned_shadow
|
||||||
|
attr_accessor :pokedex # Whether the Pokédex was obtained
|
||||||
|
attr_accessor :pokegear # Whether the Pokégear was obtained
|
||||||
|
attr_accessor :mystery_gift_unlocked # Whether MG can be used from load screen
|
||||||
|
attr_accessor :mystery_gifts # Variable that stores downloaded MG data
|
||||||
|
|
||||||
|
def character_ID
|
||||||
|
@character_ID = $PokemonGlobal.playerID || 0 if !@character_ID
|
||||||
|
return @character_ID
|
||||||
|
end
|
||||||
|
|
||||||
|
def money=(value)
|
||||||
|
@money = value.clamp(0, MAX_MONEY)
|
||||||
|
end
|
||||||
|
|
||||||
|
def badge_count
|
||||||
|
ret = 0
|
||||||
|
@badges.each { |b| ret += 1 if b }
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
|
||||||
|
def seen?(species)
|
||||||
|
species_data = GameData::Species.try_get(species)
|
||||||
|
return (species_data) ? @seen[species_data.species] : false
|
||||||
|
end
|
||||||
|
alias hasSeen? seen?
|
||||||
|
|
||||||
|
def owned?(species)
|
||||||
|
species_data = GameData::Species.try_get(species)
|
||||||
|
return (species_data) ? @owned[species_data.species] : false
|
||||||
|
end
|
||||||
|
alias hasOwned? owned?
|
||||||
|
|
||||||
|
def set_seen(species)
|
||||||
|
species_data = GameData::Species.try_get(species)
|
||||||
|
@seen[species_data.species] = true if species_data
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_owned(species)
|
||||||
|
species_data = GameData::Species.try_get(species)
|
||||||
|
@owned[species_data.species] = true if species_data
|
||||||
|
end
|
||||||
|
|
||||||
|
def seen_count(region = -1)
|
||||||
|
ret = 0
|
||||||
|
if region == -1
|
||||||
|
GameData::Species.each { |s| ret += 1 if s.form == 0 && @seen[s.species] }
|
||||||
|
else
|
||||||
|
pbAllRegionalSpecies(region).each { |s| ret += 1 if s && @seen[s] }
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def seen_any?(region = -1)
|
||||||
|
if region == -1
|
||||||
|
GameData::Species.each { |s| return true if s.form == 0 && @seen[s.species] }
|
||||||
|
else
|
||||||
|
pbAllRegionalSpecies(region).each { |s| return true if s && @seen[s] }
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
def owned_count(region = -1)
|
||||||
|
ret = 0
|
||||||
|
if region == -1
|
||||||
|
GameData::Species.each { |s| ret += 1 if s.form == 0 && @owned[s.species] }
|
||||||
|
else
|
||||||
|
pbAllRegionalSpecies(region).each { |s| ret += 1 if s && @owned[s] }
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def seen_forms_count(species)
|
||||||
|
species_data = GameData::Species.try_get(species)
|
||||||
|
return 0 if !species_data
|
||||||
|
species = species_data.species
|
||||||
|
ret = 0
|
||||||
|
@seen_forms[species] = [[], []] if !@seen_forms[species]
|
||||||
|
array = @seen_forms[species]
|
||||||
|
for i in 0...[array[0].length, array[1].length].max
|
||||||
|
ret += 1 if array[0][i] || array[1][i]
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def clear_pokedex
|
||||||
|
@seen = {}
|
||||||
|
@owned = {}
|
||||||
|
@seen_forms = {}
|
||||||
|
@last_seen_forms = {}
|
||||||
|
@owned_shadow = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
|
||||||
|
def initialize(name, trainer_type)
|
||||||
|
super
|
||||||
|
@character_ID = nil
|
||||||
|
@outfit = 0
|
||||||
|
@badges = [false] * 8
|
||||||
|
@money = INITIAL_MONEY
|
||||||
|
clear_pokedex
|
||||||
|
@pokegear = false
|
||||||
|
@pokedex = false
|
||||||
|
@mystery_gift_unlocked = false
|
||||||
|
@mystery_gifts = []
|
||||||
|
end
|
||||||
|
end
|
||||||
125
Data/Scripts/014_Trainers/001b_Trainer_deprecated.rb
Normal file
125
Data/Scripts/014_Trainers/001b_Trainer_deprecated.rb
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
#===============================================================================
|
||||||
|
# Deprecated
|
||||||
|
#===============================================================================
|
||||||
|
class PlayerTrainer
|
||||||
|
alias fullname full_name
|
||||||
|
alias publicID public_ID
|
||||||
|
alias secretID secret_ID
|
||||||
|
alias getForeignID make_foreign_ID
|
||||||
|
alias trainerTypeName trainer_type_name
|
||||||
|
alias moneyEarned base_money
|
||||||
|
alias skill skill_level
|
||||||
|
alias skillCode skill_code
|
||||||
|
alias hasSkillCode has_skill_code?
|
||||||
|
alias pokemonParty pokemon_party
|
||||||
|
alias ablePokemonParty able_party
|
||||||
|
alias partyCount party_count
|
||||||
|
alias pokemonCount pokemon_count
|
||||||
|
alias ablePokemonCount able_pokemon_count
|
||||||
|
alias firstParty first_party
|
||||||
|
alias firstPokemon first_pokemon
|
||||||
|
alias firstAblePokemon first_able_pokemon
|
||||||
|
alias lastParty last_party
|
||||||
|
alias lastPokemon last_pokemon
|
||||||
|
alias lastAblePokemon last_able_pokemon
|
||||||
|
alias formseen seen_forms
|
||||||
|
alias formlastseen last_seen_forms
|
||||||
|
alias shadowcaught owned_shadow
|
||||||
|
alias numbadges badge_count
|
||||||
|
alias pokedexSeen seen_count
|
||||||
|
alias pokedexOwned owned_count
|
||||||
|
alias numFormsSeen seen_forms_count
|
||||||
|
alias clearPokedex clear_pokedex
|
||||||
|
alias metaID character_ID
|
||||||
|
alias mysterygiftaccess mystery_gift_unlocked
|
||||||
|
alias mysterygift mystery_gifts
|
||||||
|
alias setSeen set_seen
|
||||||
|
alias setOwned set_owned
|
||||||
|
end
|
||||||
|
|
||||||
|
class PokeBattle_Trainer
|
||||||
|
attr_reader :trainertype, :name, :id, :metaID, :outfit, :language
|
||||||
|
attr_reader :party, :badges, :money
|
||||||
|
attr_reader :seen, :owned, :formseen, :formlastseen, :shadowcaught
|
||||||
|
attr_reader :pokedex, :pokegear
|
||||||
|
attr_reader :mysterygiftaccess, :mysterygift
|
||||||
|
|
||||||
|
def self.copy(trainer)
|
||||||
|
ret = PlayerTrainer.new
|
||||||
|
ret.trainer_type = trainer.trainertype
|
||||||
|
ret.name = trainer.name
|
||||||
|
ret.id = trainer.id
|
||||||
|
ret.character_ID = trainer.metaID if trainer.metaID
|
||||||
|
ret.outfit = trainer.outfit if trainer.outfit
|
||||||
|
ret.language = trainer.language if trainer.language
|
||||||
|
trainer.party.each { |p| ret.party.push(Pokemon.copy(p)) }
|
||||||
|
ret.badges = trainer.badges.clone
|
||||||
|
ret.money = trainer.money
|
||||||
|
trainer.seen.each_with_index { |value, i| ret.set_seen(i) if value }
|
||||||
|
trainer.owned.each_with_index { |value, i| ret.set_owned(i) if value }
|
||||||
|
ret.formseen.each_with_index do |value, i|
|
||||||
|
ret.seen_forms[GameData::Species.get(i).species] = [value[0].clone, value[1].clone] if value
|
||||||
|
end
|
||||||
|
trainer.formlastseen.each_with_index do |value, i|
|
||||||
|
ret.last_seen_forms[GameData::Species.get(i).species] = value.clone if value
|
||||||
|
end
|
||||||
|
if trainer.shadowcaught
|
||||||
|
trainer.shadowcaught.each_with_index do |value, i|
|
||||||
|
ret.owned_shadow[GameData::Species.get(i).species] = true if value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ret.pokedex = trainer.pokedex
|
||||||
|
ret.pokegear = trainer.pokegear
|
||||||
|
ret.mystery_gift_unlocked = trainer.mysterygiftaccess if trainer.mysterygiftaccess
|
||||||
|
ret.mystery_gifts = trainer.mysterygift.clone if trainer.mysterygift
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#remove_pokemon_at_index} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbRemovePokemonAt(index)
|
||||||
|
Deprecation.warn_method('pbRemovePokemonAt', 'v20', 'PlayerTrainer#remove_pokemon_at_index')
|
||||||
|
return $Trainer.remove_pokemon_at_index(index)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#has_other_able_pokemon?} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbCheckAble(index)
|
||||||
|
Deprecation.warn_method('pbCheckAble', 'v20', 'PlayerTrainer#has_other_able_pokemon?')
|
||||||
|
return $Trainer.has_other_able_pokemon?(index)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#all_fainted?} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbAllFainted
|
||||||
|
Deprecation.warn_method('pbAllFainted', 'v20', 'PlayerTrainer#all_fainted?')
|
||||||
|
return $Trainer.all_fainted?
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#has_species?} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbHasSpecies?(species, form = -1)
|
||||||
|
Deprecation.warn_method('pbHasSpecies?', 'v20', 'PlayerTrainer#has_species?')
|
||||||
|
return $Trainer.has_species?(species, form)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#has_fateful_species?} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbHasFatefulSpecies?(species)
|
||||||
|
Deprecation.warn_method('pbHasSpecies?', 'v20', 'PlayerTrainer#has_fateful_species?')
|
||||||
|
return $Trainer.has_fateful_species?(species)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#has_pokemon_of_type?} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbHasType?(type)
|
||||||
|
Deprecation.warn_method('pbHasType?', 'v20', 'PlayerTrainer#has_pokemon_of_type?')
|
||||||
|
return $Trainer.has_pokemon_of_type?(type)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#get_pokemon_with_move} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbCheckMove(move)
|
||||||
|
Deprecation.warn_method('pbCheckMove', 'v20', 'PlayerTrainer#get_pokemon_with_move')
|
||||||
|
return $Trainer.get_pokemon_with_move(move)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @deprecated Use {PlayerTrainer#heal_party} instead. This alias is slated to be removed in v20.
|
||||||
|
def pbHealAll
|
||||||
|
Deprecation.warn_method('pbHealAll', 'v20', 'PlayerTrainer#heal_party')
|
||||||
|
$Trainer.heal_party
|
||||||
|
end
|
||||||
@@ -465,7 +465,7 @@ def pbUseItem(bag,item,bagscene=nil)
|
|||||||
itm = GameData::Item.get(item)
|
itm = GameData::Item.get(item)
|
||||||
useType = itm.field_use
|
useType = itm.field_use
|
||||||
if itm.is_machine? # TM or HM
|
if itm.is_machine? # TM or HM
|
||||||
if $Trainer.pokemonCount==0
|
if $Trainer.pokemon_count == 0
|
||||||
pbMessage(_INTL("There is no Pokémon."))
|
pbMessage(_INTL("There is no Pokémon."))
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
@@ -481,7 +481,7 @@ def pbUseItem(bag,item,bagscene=nil)
|
|||||||
end
|
end
|
||||||
return 0
|
return 0
|
||||||
elsif useType==1 || useType==5 # Item is usable on a Pokémon
|
elsif useType==1 || useType==5 # Item is usable on a Pokémon
|
||||||
if $Trainer.pokemonCount==0
|
if $Trainer.pokemon_count == 0
|
||||||
pbMessage(_INTL("There is no Pokémon."))
|
pbMessage(_INTL("There is no Pokémon."))
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -187,12 +187,12 @@ ItemHandlers::UseInField.add(:ESCAPEROPE,proc { |item|
|
|||||||
})
|
})
|
||||||
|
|
||||||
ItemHandlers::UseInField.add(:SACREDASH,proc { |item|
|
ItemHandlers::UseInField.add(:SACREDASH,proc { |item|
|
||||||
if $Trainer.pokemonCount==0
|
if $Trainer.pokemon_count == 0
|
||||||
pbMessage(_INTL("There is no Pokémon."))
|
pbMessage(_INTL("There is no Pokémon."))
|
||||||
next 0
|
next 0
|
||||||
end
|
end
|
||||||
canrevive = false
|
canrevive = false
|
||||||
for i in $Trainer.pokemonParty
|
for i in $Trainer.pokemon_party
|
||||||
next if !i.fainted?
|
next if !i.fainted?
|
||||||
canrevive = true; break
|
canrevive = true; break
|
||||||
end
|
end
|
||||||
@@ -978,7 +978,7 @@ ItemHandlers::UseOnPokemon.add(:DNASPLICERS,proc { |item,pkmn,scene|
|
|||||||
newForm = 2 if poke2.isSpecies?(:ZEKROM)
|
newForm = 2 if poke2.isSpecies?(:ZEKROM)
|
||||||
pkmn.setForm(newForm) {
|
pkmn.setForm(newForm) {
|
||||||
pkmn.fused = poke2
|
pkmn.fused = poke2
|
||||||
pbRemovePokemonAt(chosen)
|
$Trainer.remove_pokemon_at_index(chosen)
|
||||||
scene.pbHardRefresh
|
scene.pbHardRefresh
|
||||||
scene.pbDisplay(_INTL("{1} changed Forme!",pkmn.name))
|
scene.pbDisplay(_INTL("{1} changed Forme!",pkmn.name))
|
||||||
}
|
}
|
||||||
@@ -1027,7 +1027,7 @@ ItemHandlers::UseOnPokemon.add(:NSOLARIZER,proc { |item,pkmn,scene|
|
|||||||
end
|
end
|
||||||
pkmn.setForm(1) {
|
pkmn.setForm(1) {
|
||||||
pkmn.fused = poke2
|
pkmn.fused = poke2
|
||||||
pbRemovePokemonAt(chosen)
|
$Trainer.remove_pokemon_at_index(chosen)
|
||||||
scene.pbHardRefresh
|
scene.pbHardRefresh
|
||||||
scene.pbDisplay(_INTL("{1} changed Forme!",pkmn.name))
|
scene.pbDisplay(_INTL("{1} changed Forme!",pkmn.name))
|
||||||
}
|
}
|
||||||
@@ -1076,7 +1076,7 @@ ItemHandlers::UseOnPokemon.add(:NLUNARIZER,proc { |item,pkmn,scene|
|
|||||||
end
|
end
|
||||||
pkmn.setForm(2) {
|
pkmn.setForm(2) {
|
||||||
pkmn.fused = poke2
|
pkmn.fused = poke2
|
||||||
pbRemovePokemonAt(chosen)
|
$Trainer.remove_pokemon_at_index(chosen)
|
||||||
scene.pbHardRefresh
|
scene.pbHardRefresh
|
||||||
scene.pbDisplay(_INTL("{1} changed Forme!",pkmn.name))
|
scene.pbDisplay(_INTL("{1} changed Forme!",pkmn.name))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ MultipleForms.register(:GRENINJA,{
|
|||||||
|
|
||||||
MultipleForms.register(:SCATTERBUG,{
|
MultipleForms.register(:SCATTERBUG,{
|
||||||
"getFormOnCreation" => proc { |pkmn|
|
"getFormOnCreation" => proc { |pkmn|
|
||||||
next $Trainer.secretID%18
|
next $Trainer.secret_ID % 18
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ Events.onEndBattle += proc { |_sender,_e|
|
|||||||
}
|
}
|
||||||
|
|
||||||
Events.onStepTaken += proc {
|
Events.onStepTaken += proc {
|
||||||
for pkmn in $Trainer.ablePokemonParty
|
for pkmn in $Trainer.able_party
|
||||||
next if pkmn.heart_gauge == 0
|
next if pkmn.heart_gauge == 0
|
||||||
stage = pkmn.heartStage
|
stage = pkmn.heartStage
|
||||||
pkmn.adjustHeart(-1)
|
pkmn.adjustHeart(-1)
|
||||||
|
|||||||
@@ -408,9 +408,7 @@ PBEvolution.register(:LevelDarkness, {
|
|||||||
|
|
||||||
PBEvolution.register(:LevelDarkInParty, {
|
PBEvolution.register(:LevelDarkInParty, {
|
||||||
"levelUpCheck" => proc { |pkmn, parameter|
|
"levelUpCheck" => proc { |pkmn, parameter|
|
||||||
if pkmn.level >= parameter
|
next $Trainer.has_pokemon_of_type?(:DARK) if pkmn.level >= parameter
|
||||||
next $Trainer.pokemonParty.any? { |p| p && p.hasType(:DARK) }
|
|
||||||
end
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -647,7 +645,7 @@ PBEvolution.register(:HasInParty, {
|
|||||||
"minimumLevel" => 1, # Needs any level up
|
"minimumLevel" => 1, # Needs any level up
|
||||||
"parameterType" => :Species,
|
"parameterType" => :Species,
|
||||||
"levelUpCheck" => proc { |pkmn, parameter|
|
"levelUpCheck" => proc { |pkmn, parameter|
|
||||||
next pbHasSpecies?(parameter)
|
next $Trainer.has_species?(parameter)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -752,7 +752,7 @@ class Pokemon
|
|||||||
@owner = new_owner
|
@owner = new_owner
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param trainer [PokeBattle_Trainer] the trainer to compare to the original trainer
|
# @param trainer [PlayerTrainer, NPCTrainer] the trainer to compare to the original trainer
|
||||||
# @return [Boolean] whether the given trainer is not this Pokémon's original trainer
|
# @return [Boolean] whether the given trainer is not this Pokémon's original trainer
|
||||||
def foreign?(trainer)
|
def foreign?(trainer)
|
||||||
return @owner.id != trainer.id || @owner.name != trainer.name
|
return @owner.id != trainer.id || @owner.name != trainer.name
|
||||||
@@ -787,7 +787,7 @@ class Pokemon
|
|||||||
|
|
||||||
# @return [String] the name of this Pokémon
|
# @return [String] the name of this Pokémon
|
||||||
def name
|
def name
|
||||||
return (nicknamed?) ? @name || speciesName
|
return (nicknamed?) ? @name : speciesName
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param value [String] the nickname of this Pokémon
|
# @param value [String] the nickname of this Pokémon
|
||||||
@@ -942,7 +942,7 @@ class Pokemon
|
|||||||
# Creates a new Pokémon object.
|
# Creates a new Pokémon object.
|
||||||
# @param species [Symbol, String, Integer] Pokémon species
|
# @param species [Symbol, String, Integer] Pokémon species
|
||||||
# @param level [Integer] Pokémon level
|
# @param level [Integer] Pokémon level
|
||||||
# @param owner [Owner, PokeBattle_Trainer] Pokémon owner (the player by default)
|
# @param owner [Owner, PlayerTrainer, NPCTrainer] Pokémon owner (the player by default)
|
||||||
# @param withMoves [Boolean] whether the Pokémon should have moves
|
# @param withMoves [Boolean] whether the Pokémon should have moves
|
||||||
def initialize(species, level, owner = $Trainer, withMoves = true)
|
def initialize(species, level, owner = $Trainer, withMoves = true)
|
||||||
species_data = GameData::Species.get(species)
|
species_data = GameData::Species.get(species)
|
||||||
@@ -985,7 +985,7 @@ class Pokemon
|
|||||||
end
|
end
|
||||||
if owner.is_a?(Owner)
|
if owner.is_a?(Owner)
|
||||||
@owner = owner
|
@owner = owner
|
||||||
elsif owner.is_a?(PokeBattle_Trainer)
|
elsif owner.is_a?(PlayerTrainer) || owner.is_a?(NPCTrainer)
|
||||||
@owner = Owner.new_from_trainer(owner)
|
@owner = Owner.new_from_trainer(owner)
|
||||||
else
|
else
|
||||||
@owner = Owner.new(0, '', 2, 2)
|
@owner = Owner.new(0, '', 2, 2)
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ class Pokemon
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Returns a new Owner object populated with values taken from +trainer+.
|
# Returns a new Owner object populated with values taken from +trainer+.
|
||||||
# @param trainer [PokeBattle_Trainer] trainer object to read data from
|
# @param trainer [PlayerTrainer, NPCTrainer] trainer object to read data from
|
||||||
# @return [Owner] new Owner object
|
# @return [Owner] new Owner object
|
||||||
def self.new_from_trainer(trainer)
|
def self.new_from_trainer(trainer)
|
||||||
validate trainer => PokeBattle_Trainer
|
validate trainer => [PlayerTrainer, NPCTrainer]
|
||||||
return new(trainer.id, trainer.name, trainer.gender, trainer.language)
|
return new(trainer.id, trainer.name, trainer.gender, trainer.language)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ class Pokemon
|
|||||||
# @param language [Integer] owner language
|
# @param language [Integer] owner language
|
||||||
# @return [Owner] foreign Owner object
|
# @return [Owner] foreign Owner object
|
||||||
def self.new_foreign(name = '', gender = 2, language = 2)
|
def self.new_foreign(name = '', gender = 2, language = 2)
|
||||||
return new($Trainer.getForeignID, name, gender, language)
|
return new($Trainer.make_foreign_ID, name, gender, language)
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param new_id [Integer] new owner ID
|
# @param new_id [Integer] new owner ID
|
||||||
|
|||||||
@@ -106,8 +106,8 @@ class PokemonPokedexMenuScreen
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
index = -1 if index >= $PokemonGlobal.pokedexUnlocked.length - 1
|
index = -1 if index >= $PokemonGlobal.pokedexUnlocked.length - 1
|
||||||
commands2[i] = [$Trainer.pokedexSeen(index),
|
commands2[i] = [$Trainer.seen_count(index),
|
||||||
$Trainer.pokedexOwned(index),
|
$Trainer.owned_count(index),
|
||||||
pbGetRegionalDexLength(index)]
|
pbGetRegionalDexLength(index)]
|
||||||
end
|
end
|
||||||
commands.push(_INTL("Exit"))
|
commands.push(_INTL("Exit"))
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ class Window_Pokedex < Window_DrawableCommand
|
|||||||
species = @commands[index][0]
|
species = @commands[index][0]
|
||||||
indexNumber = @commands[index][4]
|
indexNumber = @commands[index][4]
|
||||||
indexNumber -= 1 if @commands[index][5]
|
indexNumber -= 1 if @commands[index][5]
|
||||||
if $Trainer.seen[species]
|
if $Trainer.seen?(species)
|
||||||
if $Trainer.owned[species]
|
if $Trainer.owned?(species)
|
||||||
pbCopyBitmap(self.contents,@pokeballOwn.bitmap,rect.x-6,rect.y+8)
|
pbCopyBitmap(self.contents,@pokeballOwn.bitmap,rect.x-6,rect.y+8)
|
||||||
else
|
else
|
||||||
pbCopyBitmap(self.contents,@pokeballSeen.bitmap,rect.x-6,rect.y+8)
|
pbCopyBitmap(self.contents,@pokeballSeen.bitmap,rect.x-6,rect.y+8)
|
||||||
@@ -305,9 +305,9 @@ class PokemonPokedex_Scene
|
|||||||
def pbCanAddForModeList?(mode, species)
|
def pbCanAddForModeList?(mode, species)
|
||||||
case mode
|
case mode
|
||||||
when MODEATOZ
|
when MODEATOZ
|
||||||
return $Trainer.seen[species]
|
return $Trainer.seen?(species)
|
||||||
when MODEHEAVIEST, MODELIGHTEST, MODETALLEST, MODESMALLEST
|
when MODEHEAVIEST, MODELIGHTEST, MODETALLEST, MODESMALLEST
|
||||||
return $Trainer.owned[species]
|
return $Trainer.owned?(species)
|
||||||
end
|
end
|
||||||
return true # For MODENUMERICAL
|
return true # For MODENUMERICAL
|
||||||
end
|
end
|
||||||
@@ -342,11 +342,11 @@ class PokemonPokedex_Scene
|
|||||||
case $PokemonGlobal.pokedexMode
|
case $PokemonGlobal.pokedexMode
|
||||||
when MODENUMERICAL
|
when MODENUMERICAL
|
||||||
# Hide the Dex number 0 species if unseen
|
# Hide the Dex number 0 species if unseen
|
||||||
dexlist[0] = nil if dexlist[0][5] && !$Trainer.seen[dexlist[0][0]]
|
dexlist[0] = nil if dexlist[0][5] && !$Trainer.seen?(dexlist[0][0])
|
||||||
# Remove unseen species from the end of the list
|
# Remove unseen species from the end of the list
|
||||||
i = dexlist.length-1
|
i = dexlist.length-1
|
||||||
loop do break unless i>=0
|
loop do break unless i>=0
|
||||||
break if !dexlist[i] || $Trainer.seen[dexlist[i][0]]
|
break if !dexlist[i] || $Trainer.seen?(dexlist[i][0])
|
||||||
dexlist[i] = nil
|
dexlist[i] = nil
|
||||||
i -= 1
|
i -= 1
|
||||||
end
|
end
|
||||||
@@ -382,7 +382,7 @@ class PokemonPokedex_Scene
|
|||||||
base = Color.new(88,88,80)
|
base = Color.new(88,88,80)
|
||||||
shadow = Color.new(168,184,184)
|
shadow = Color.new(168,184,184)
|
||||||
iconspecies = @sprites["pokedex"].species
|
iconspecies = @sprites["pokedex"].species
|
||||||
iconspecies = nil if !$Trainer.seen[iconspecies]
|
iconspecies = nil if !$Trainer.seen?(iconspecies)
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
dexname = _INTL("Pokédex")
|
dexname = _INTL("Pokédex")
|
||||||
if $PokemonGlobal.pokedexUnlocked.length>1
|
if $PokemonGlobal.pokedexUnlocked.length>1
|
||||||
@@ -400,9 +400,9 @@ class PokemonPokedex_Scene
|
|||||||
textpos.push([@dexlist.length.to_s,112,340,2,base,shadow])
|
textpos.push([@dexlist.length.to_s,112,340,2,base,shadow])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("Seen:"),42,308,0,base,shadow])
|
textpos.push([_INTL("Seen:"),42,308,0,base,shadow])
|
||||||
textpos.push([$Trainer.pokedexSeen(pbGetPokedexRegion).to_s,182,308,1,base,shadow])
|
textpos.push([$Trainer.seen_count(pbGetPokedexRegion).to_s,182,308,1,base,shadow])
|
||||||
textpos.push([_INTL("Owned:"),42,340,0,base,shadow])
|
textpos.push([_INTL("Owned:"),42,340,0,base,shadow])
|
||||||
textpos.push([$Trainer.pokedexOwned(pbGetPokedexRegion).to_s,182,340,1,base,shadow])
|
textpos.push([$Trainer.owned_count(pbGetPokedexRegion).to_s,182,340,1,base,shadow])
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay,textpos)
|
pbDrawTextPositions(overlay,textpos)
|
||||||
@@ -675,10 +675,10 @@ class PokemonPokedex_Scene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def setIconBitmap(species)
|
def setIconBitmap(species)
|
||||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
$Trainer.last_seen_forms = {} if !$Trainer.last_seen_forms
|
||||||
$Trainer.formlastseen[species] = [] if !$Trainer.formlastseen[species]
|
$Trainer.last_seen_forms[species] = [] if !$Trainer.last_seen_forms[species]
|
||||||
gender = $Trainer.formlastseen[species][0] || 0
|
gender = $Trainer.last_seen_forms[species][0] || 0
|
||||||
form = $Trainer.formlastseen[species][1] || 0
|
form = $Trainer.last_seen_forms[species][1] || 0
|
||||||
@sprites["icon"].setSpeciesBitmap(species, gender, form)
|
@sprites["icon"].setSpeciesBitmap(species, gender, form)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -689,7 +689,7 @@ class PokemonPokedex_Scene
|
|||||||
if params[1]>=0
|
if params[1]>=0
|
||||||
scanNameCommand = @nameCommands[params[1]].scan(/./)
|
scanNameCommand = @nameCommands[params[1]].scan(/./)
|
||||||
dexlist = dexlist.find_all { |item|
|
dexlist = dexlist.find_all { |item|
|
||||||
next false if !$Trainer.seen[item[0]]
|
next false if !$Trainer.seen?(item[0])
|
||||||
firstChar = item[1][0,1]
|
firstChar = item[1][0,1]
|
||||||
next scanNameCommand.any? { |v| v==firstChar }
|
next scanNameCommand.any? { |v| v==firstChar }
|
||||||
}
|
}
|
||||||
@@ -699,7 +699,7 @@ class PokemonPokedex_Scene
|
|||||||
stype1 = (params[2]>=0) ? @typeCommands[params[2]].id : nil
|
stype1 = (params[2]>=0) ? @typeCommands[params[2]].id : nil
|
||||||
stype2 = (params[3]>=0) ? @typeCommands[params[3]].id : nil
|
stype2 = (params[3]>=0) ? @typeCommands[params[3]].id : nil
|
||||||
dexlist = dexlist.find_all { |item|
|
dexlist = dexlist.find_all { |item|
|
||||||
next false if !$Trainer.owned[item[0]]
|
next false if !$Trainer.owned?(item[0])
|
||||||
type1 = item[6]
|
type1 = item[6]
|
||||||
type2 = item[7]
|
type2 = item[7]
|
||||||
if stype1 && stype2
|
if stype1 && stype2
|
||||||
@@ -721,7 +721,7 @@ class PokemonPokedex_Scene
|
|||||||
minh = (params[4]<0) ? 0 : (params[4]>=@heightCommands.length) ? 999 : @heightCommands[params[4]]
|
minh = (params[4]<0) ? 0 : (params[4]>=@heightCommands.length) ? 999 : @heightCommands[params[4]]
|
||||||
maxh = (params[5]<0) ? 999 : (params[5]>=@heightCommands.length) ? 0 : @heightCommands[params[5]]
|
maxh = (params[5]<0) ? 999 : (params[5]>=@heightCommands.length) ? 0 : @heightCommands[params[5]]
|
||||||
dexlist = dexlist.find_all { |item|
|
dexlist = dexlist.find_all { |item|
|
||||||
next false if !$Trainer.owned[item[0]]
|
next false if !$Trainer.owned?(item[0])
|
||||||
height = item[2]
|
height = item[2]
|
||||||
next height>=minh && height<=maxh
|
next height>=minh && height<=maxh
|
||||||
}
|
}
|
||||||
@@ -731,7 +731,7 @@ class PokemonPokedex_Scene
|
|||||||
minw = (params[6]<0) ? 0 : (params[6]>=@weightCommands.length) ? 9999 : @weightCommands[params[6]]
|
minw = (params[6]<0) ? 0 : (params[6]>=@weightCommands.length) ? 9999 : @weightCommands[params[6]]
|
||||||
maxw = (params[7]<0) ? 9999 : (params[7]>=@weightCommands.length) ? 0 : @weightCommands[params[7]]
|
maxw = (params[7]<0) ? 9999 : (params[7]>=@weightCommands.length) ? 0 : @weightCommands[params[7]]
|
||||||
dexlist = dexlist.find_all { |item|
|
dexlist = dexlist.find_all { |item|
|
||||||
next false if !$Trainer.owned[item[0]]
|
next false if !$Trainer.owned?(item[0])
|
||||||
weight = item[3]
|
weight = item[3]
|
||||||
next weight>=minw && weight<=maxw
|
next weight>=minw && weight<=maxw
|
||||||
}
|
}
|
||||||
@@ -745,7 +745,7 @@ class PokemonPokedex_Scene
|
|||||||
end
|
end
|
||||||
scolor = colorCommands[params[8]]
|
scolor = colorCommands[params[8]]
|
||||||
dexlist = dexlist.find_all { |item|
|
dexlist = dexlist.find_all { |item|
|
||||||
next false if !$Trainer.seen[item[0]]
|
next false if !$Trainer.seen?(item[0])
|
||||||
color = item[8]
|
color = item[8]
|
||||||
next color==scolor
|
next color==scolor
|
||||||
}
|
}
|
||||||
@@ -754,13 +754,13 @@ class PokemonPokedex_Scene
|
|||||||
if params[9]>=0
|
if params[9]>=0
|
||||||
sshape = @shapeCommands[params[9]]+1
|
sshape = @shapeCommands[params[9]]+1
|
||||||
dexlist = dexlist.find_all { |item|
|
dexlist = dexlist.find_all { |item|
|
||||||
next false if !$Trainer.seen[item[0]]
|
next false if !$Trainer.seen?(item[0])
|
||||||
shape = item[9]
|
shape = item[9]
|
||||||
next shape==sshape
|
next shape==sshape
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
# Remove all unseen species from the results
|
# Remove all unseen species from the results
|
||||||
dexlist = dexlist.find_all { |item| next $Trainer.seen[item[0]] }
|
dexlist = dexlist.find_all { |item| next $Trainer.seen?(item[0]) }
|
||||||
case $PokemonGlobal.pokedexMode
|
case $PokemonGlobal.pokedexMode
|
||||||
when MODENUMERICAL then dexlist.sort! { |a,b| a[4]<=>b[4] }
|
when MODENUMERICAL then dexlist.sort! { |a,b| a[4]<=>b[4] }
|
||||||
when MODEATOZ then dexlist.sort! { |a,b| a[1]<=>b[1] }
|
when MODEATOZ then dexlist.sort! { |a,b| a[1]<=>b[1] }
|
||||||
@@ -1166,7 +1166,7 @@ class PokemonPokedex_Scene
|
|||||||
break
|
break
|
||||||
end
|
end
|
||||||
elsif Input.trigger?(Input::C)
|
elsif Input.trigger?(Input::C)
|
||||||
if $Trainer.seen[@sprites["pokedex"].species]
|
if $Trainer.seen?(@sprites["pokedex"].species)
|
||||||
pbPlayDecisionSE
|
pbPlayDecisionSE
|
||||||
pbDexEntry(@sprites["pokedex"].index)
|
pbDexEntry(@sprites["pokedex"].index)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -121,10 +121,10 @@ class PokemonPokedexInfo_Scene
|
|||||||
|
|
||||||
def pbUpdateDummyPokemon
|
def pbUpdateDummyPokemon
|
||||||
@species = @dexlist[@index][0]
|
@species = @dexlist[@index][0]
|
||||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
$Trainer.last_seen_forms = {} if !$Trainer.last_seen_forms
|
||||||
$Trainer.formlastseen[@species] = [] if !$Trainer.formlastseen[@species]
|
$Trainer.last_seen_forms[@species] = [] if !$Trainer.last_seen_forms[@species]
|
||||||
@gender = $Trainer.formlastseen[@species][0] || 0
|
@gender = $Trainer.last_seen_forms[@species][0] || 0
|
||||||
@form = $Trainer.formlastseen[@species][1] || 0
|
@form = $Trainer.last_seen_forms[@species][1] || 0
|
||||||
species_data = GameData::Species.get_species_form(@species, @form)
|
species_data = GameData::Species.get_species_form(@species, @form)
|
||||||
@sprites["infosprite"].setSpeciesBitmap(@species,@gender,@form)
|
@sprites["infosprite"].setSpeciesBitmap(@species,@gender,@form)
|
||||||
if @sprites["formfront"]
|
if @sprites["formfront"]
|
||||||
@@ -149,16 +149,16 @@ class PokemonPokedexInfo_Scene
|
|||||||
next if sp.form != 0 && (!sp.real_form_name || sp.real_form_name.empty?)
|
next if sp.form != 0 && (!sp.real_form_name || sp.real_form_name.empty?)
|
||||||
next if sp.pokedex_form != sp.form
|
next if sp.pokedex_form != sp.form
|
||||||
multiple_forms = true if sp.form > 0
|
multiple_forms = true if sp.form > 0
|
||||||
$Trainer.formseen[@species] = [[], []] if !$Trainer.formseen[@species]
|
$Trainer.seen_forms[@species] = [[], []] if !$Trainer.seen_forms[@species]
|
||||||
case sp.gender_rate
|
case sp.gender_rate
|
||||||
when PBGenderRates::AlwaysMale, PBGenderRates::AlwaysFemale, PBGenderRates::Genderless
|
when PBGenderRates::AlwaysMale, PBGenderRates::AlwaysFemale, PBGenderRates::Genderless
|
||||||
real_gender = (sp.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
real_gender = (sp.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
||||||
next if !$Trainer.formseen[@species][real_gender][sp.form] && !DEX_SHOWS_ALL_FORMS
|
next if !$Trainer.seen_forms[@species][real_gender][sp.form] && !DEX_SHOWS_ALL_FORMS
|
||||||
real_gender = 2 if sp.gender_rate == PBGenderRates::Genderless
|
real_gender = 2 if sp.gender_rate == PBGenderRates::Genderless
|
||||||
ret.push([sp.form_name, real_gender, sp.form])
|
ret.push([sp.form_name, real_gender, sp.form])
|
||||||
else # Both male and female
|
else # Both male and female
|
||||||
for real_gender in 0...2
|
for real_gender in 0...2
|
||||||
next if !$Trainer.formseen[@species][real_gender][sp.form] && !DEX_SHOWS_ALL_FORMS
|
next if !$Trainer.seen_forms[@species][real_gender][sp.form] && !DEX_SHOWS_ALL_FORMS
|
||||||
ret.push([sp.form_name, real_gender, sp.form])
|
ret.push([sp.form_name, real_gender, sp.form])
|
||||||
break if sp.form_name && !sp.form_name.empty? # Only show 1 entry for each non-0 form
|
break if sp.form_name && !sp.form_name.empty? # Only show 1 entry for each non-0 form
|
||||||
end
|
end
|
||||||
@@ -223,7 +223,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
[_INTL("Height"), 314, 158, 0, base, shadow],
|
[_INTL("Height"), 314, 158, 0, base, shadow],
|
||||||
[_INTL("Weight"), 314, 190, 0, base, shadow]
|
[_INTL("Weight"), 314, 190, 0, base, shadow]
|
||||||
]
|
]
|
||||||
if $Trainer.owned[@species]
|
if $Trainer.owned?(@species)
|
||||||
# Write the category
|
# Write the category
|
||||||
textpos.push([_INTL("{1} Pokémon", species_data.category), 246, 74, 0, base, shadow])
|
textpos.push([_INTL("{1} Pokémon", species_data.category), 246, 74, 0, base, shadow])
|
||||||
# Write the height and weight
|
# Write the height and weight
|
||||||
@@ -390,7 +390,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
newindex = @index
|
newindex = @index
|
||||||
while newindex>0
|
while newindex>0
|
||||||
newindex -= 1
|
newindex -= 1
|
||||||
if $Trainer.seen[@dexlist[newindex][0]]
|
if $Trainer.seen?(@dexlist[newindex][0])
|
||||||
@index = newindex
|
@index = newindex
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@@ -401,7 +401,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
newindex = @index
|
newindex = @index
|
||||||
while newindex<@dexlist.length-1
|
while newindex<@dexlist.length-1
|
||||||
newindex += 1
|
newindex += 1
|
||||||
if $Trainer.seen[@dexlist[newindex][0]]
|
if $Trainer.seen?(@dexlist[newindex][0])
|
||||||
@index = newindex
|
@index = newindex
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@@ -419,10 +419,10 @@ class PokemonPokedexInfo_Scene
|
|||||||
oldindex = -1
|
oldindex = -1
|
||||||
loop do
|
loop do
|
||||||
if oldindex!=index
|
if oldindex!=index
|
||||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
$Trainer.last_seen_forms = {} if !$Trainer.last_seen_forms
|
||||||
$Trainer.formlastseen[@species] = [] if !$Trainer.formlastseen
|
$Trainer.last_seen_forms[@species] = [] if !$Trainer.last_seen_forms
|
||||||
$Trainer.formlastseen[@species][0] = @available[index][1]
|
$Trainer.last_seen_forms[@species][0] = @available[index][1]
|
||||||
$Trainer.formlastseen[@species][1] = @available[index][2]
|
$Trainer.last_seen_forms[@species][1] = @available[index][2]
|
||||||
pbUpdateDummyPokemon
|
pbUpdateDummyPokemon
|
||||||
drawPage(@page)
|
drawPage(@page)
|
||||||
@sprites["uparrow"].visible = (index>0)
|
@sprites["uparrow"].visible = (index>0)
|
||||||
|
|||||||
@@ -475,7 +475,7 @@ class PokemonBagScreen
|
|||||||
commands[cmdUse = commands.length] = _INTL("Use")
|
commands[cmdUse = commands.length] = _INTL("Use")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
commands[cmdGive = commands.length] = _INTL("Give") if $Trainer.pokemonParty.length>0 && itm.can_hold?
|
commands[cmdGive = commands.length] = _INTL("Give") if $Trainer.pokemon_party.length > 0 && itm.can_hold?
|
||||||
commands[cmdToss = commands.length] = _INTL("Toss") if !itm.is_important? || $DEBUG
|
commands[cmdToss = commands.length] = _INTL("Toss") if !itm.is_important? || $DEBUG
|
||||||
if @bag.pbIsRegistered?(item)
|
if @bag.pbIsRegistered?(item)
|
||||||
commands[cmdRegister = commands.length] = _INTL("Deselect")
|
commands[cmdRegister = commands.length] = _INTL("Deselect")
|
||||||
@@ -498,7 +498,7 @@ class PokemonBagScreen
|
|||||||
@scene.pbRefresh
|
@scene.pbRefresh
|
||||||
next
|
next
|
||||||
elsif cmdGive>=0 && command==cmdGive # Give item to Pokémon
|
elsif cmdGive>=0 && command==cmdGive # Give item to Pokémon
|
||||||
if $Trainer.pokemonCount==0
|
if $Trainer.pokemon_count == 0
|
||||||
@scene.pbDisplay(_INTL("There is no Pokémon."))
|
@scene.pbDisplay(_INTL("There is no Pokémon."))
|
||||||
elsif itm.is_important?
|
elsif itm.is_important?
|
||||||
@scene.pbDisplay(_INTL("The {1} can't be held.",itemname))
|
@scene.pbDisplay(_INTL("The {1} can't be held.",itemname))
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class PokemonRegionMap_Scene
|
|||||||
@sprites["mapbottom"].mapdetails = pbGetMapDetails(@mapX,@mapY)
|
@sprites["mapbottom"].mapdetails = pbGetMapDetails(@mapX,@mapY)
|
||||||
if playerpos && mapindex==playerpos[0]
|
if playerpos && mapindex==playerpos[0]
|
||||||
@sprites["player"] = IconSprite.new(0,0,@viewport)
|
@sprites["player"] = IconSprite.new(0,0,@viewport)
|
||||||
@sprites["player"].setBitmap(GameData::TrainerType.player_map_icon_filename($Trainer.trainertype))
|
@sprites["player"].setBitmap(GameData::TrainerType.player_map_icon_filename($Trainer.trainer_type))
|
||||||
@sprites["player"].x = -SQUAREWIDTH/2+(@mapX*SQUAREWIDTH)+(Graphics.width-@sprites["map"].bitmap.width)/2
|
@sprites["player"].x = -SQUAREWIDTH/2+(@mapX*SQUAREWIDTH)+(Graphics.width-@sprites["map"].bitmap.width)/2
|
||||||
@sprites["player"].y = -SQUAREHEIGHT/2+(@mapY*SQUAREHEIGHT)+(Graphics.height-@sprites["map"].bitmap.height)/2
|
@sprites["player"].y = -SQUAREHEIGHT/2+(@mapY*SQUAREHEIGHT)+(Graphics.height-@sprites["map"].bitmap.height)/2
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class PokemonTrainerCard_Scene
|
|||||||
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
||||||
pbSetSystemFont(@sprites["overlay"].bitmap)
|
pbSetSystemFont(@sprites["overlay"].bitmap)
|
||||||
@sprites["trainer"] = IconSprite.new(336,112,@viewport)
|
@sprites["trainer"] = IconSprite.new(336,112,@viewport)
|
||||||
@sprites["trainer"].setBitmap(GameData::TrainerType.player_front_sprite_filename($Trainer.trainertype))
|
@sprites["trainer"].setBitmap(GameData::TrainerType.player_front_sprite_filename($Trainer.trainer_type))
|
||||||
@sprites["trainer"].x -= (@sprites["trainer"].bitmap.width-128)/2
|
@sprites["trainer"].x -= (@sprites["trainer"].bitmap.width-128)/2
|
||||||
@sprites["trainer"].y -= (@sprites["trainer"].bitmap.height-128)
|
@sprites["trainer"].y -= (@sprites["trainer"].bitmap.height-128)
|
||||||
@sprites["trainer"].z = 2
|
@sprites["trainer"].z = 2
|
||||||
@@ -52,11 +52,11 @@ class PokemonTrainerCard_Scene
|
|||||||
[_INTL("Name"),34,64,0,baseColor,shadowColor],
|
[_INTL("Name"),34,64,0,baseColor,shadowColor],
|
||||||
[$Trainer.name,302,64,1,baseColor,shadowColor],
|
[$Trainer.name,302,64,1,baseColor,shadowColor],
|
||||||
[_INTL("ID No."),332,64,0,baseColor,shadowColor],
|
[_INTL("ID No."),332,64,0,baseColor,shadowColor],
|
||||||
[sprintf("%05d",$Trainer.publicID($Trainer.id)),468,64,1,baseColor,shadowColor],
|
[sprintf("%05d",$Trainer.public_ID),468,64,1,baseColor,shadowColor],
|
||||||
[_INTL("Money"),34,112,0,baseColor,shadowColor],
|
[_INTL("Money"),34,112,0,baseColor,shadowColor],
|
||||||
[_INTL("${1}",$Trainer.money.to_s_formatted),302,112,1,baseColor,shadowColor],
|
[_INTL("${1}",$Trainer.money.to_s_formatted),302,112,1,baseColor,shadowColor],
|
||||||
[_INTL("Pokédex"),34,160,0,baseColor,shadowColor],
|
[_INTL("Pokédex"),34,160,0,baseColor,shadowColor],
|
||||||
[sprintf("%d/%d",$Trainer.pokedexOwned,$Trainer.pokedexSeen),302,160,1,baseColor,shadowColor],
|
[sprintf("%d/%d",$Trainer.owned_count,$Trainer.seen_count),302,160,1,baseColor,shadowColor],
|
||||||
[_INTL("Time"),34,208,0,baseColor,shadowColor],
|
[_INTL("Time"),34,208,0,baseColor,shadowColor],
|
||||||
[time,302,208,1,baseColor,shadowColor],
|
[time,302,208,1,baseColor,shadowColor],
|
||||||
[_INTL("Started"),34,256,0,baseColor,shadowColor],
|
[_INTL("Started"),34,256,0,baseColor,shadowColor],
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ class PokemonLoadPanel < SpriteWrapper
|
|||||||
if @isContinue
|
if @isContinue
|
||||||
textpos.push([@title,16*2,5*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
textpos.push([@title,16*2,5*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
||||||
textpos.push([_INTL("Badges:"),16*2,56*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
textpos.push([_INTL("Badges:"),16*2,56*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
||||||
textpos.push([@trainer.numbadges.to_s,103*2,56*2,1,TEXTCOLOR,TEXTSHADOWCOLOR])
|
textpos.push([@trainer.badge_count.to_s,103*2,56*2,1,TEXTCOLOR,TEXTSHADOWCOLOR])
|
||||||
textpos.push([_INTL("Pokédex:"),16*2,72*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
textpos.push([_INTL("Pokédex:"),16*2,72*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
||||||
textpos.push([@trainer.pokedexSeen.to_s,103*2,72*2,1,TEXTCOLOR,TEXTSHADOWCOLOR])
|
textpos.push([@trainer.seen_count.to_s,103*2,72*2,1,TEXTCOLOR,TEXTSHADOWCOLOR])
|
||||||
textpos.push([_INTL("Time:"),16*2,88*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
textpos.push([_INTL("Time:"),16*2,88*2,0,TEXTCOLOR,TEXTSHADOWCOLOR])
|
||||||
hour = @totalsec / 60 / 60
|
hour = @totalsec / 60 / 60
|
||||||
min = @totalsec / 60 % 60
|
min = @totalsec / 60 % 60
|
||||||
@@ -163,7 +163,7 @@ class PokemonLoad_Scene
|
|||||||
|
|
||||||
def pbSetParty(trainer)
|
def pbSetParty(trainer)
|
||||||
return if !trainer || !trainer.party
|
return if !trainer || !trainer.party
|
||||||
meta = GameData::Metadata.get_player(trainer.metaID)
|
meta = GameData::Metadata.get_player(trainer.character_ID)
|
||||||
if meta
|
if meta
|
||||||
filename = pbGetPlayerCharset(meta,1,trainer,true)
|
filename = pbGetPlayerCharset(meta,1,trainer,true)
|
||||||
@sprites["player"] = TrainerWalkingCharSprite.new(filename,@viewport)
|
@sprites["player"] = TrainerWalkingCharSprite.new(filename,@viewport)
|
||||||
@@ -227,7 +227,7 @@ class PokemonLoadScreen
|
|||||||
pokemonSystem = Marshal.load(f)
|
pokemonSystem = Marshal.load(f)
|
||||||
mapid = Marshal.load(f)
|
mapid = Marshal.load(f)
|
||||||
}
|
}
|
||||||
raise "Corrupted file" if !trainer.is_a?(PokeBattle_Trainer)
|
raise "Corrupted file" if !trainer.is_a?(PlayerTrainer)
|
||||||
raise "Corrupted file" if !framecount.is_a?(Numeric)
|
raise "Corrupted file" if !framecount.is_a?(Numeric)
|
||||||
raise "Corrupted file" if !game_system.is_a?(Game_System)
|
raise "Corrupted file" if !game_system.is_a?(Game_System)
|
||||||
raise "Corrupted file" if !pokemonSystem.is_a?(PokemonSystem)
|
raise "Corrupted file" if !pokemonSystem.is_a?(PokemonSystem)
|
||||||
@@ -318,7 +318,7 @@ class PokemonLoadScreen
|
|||||||
end
|
end
|
||||||
commands[cmdContinue = commands.length] = _INTL("Continue") if showContinue
|
commands[cmdContinue = commands.length] = _INTL("Continue") if showContinue
|
||||||
commands[cmdNewGame = commands.length] = _INTL("New Game")
|
commands[cmdNewGame = commands.length] = _INTL("New Game")
|
||||||
commands[cmdMysteryGift = commands.length] = _INTL("Mystery Gift") if (trainer.mysterygiftaccess rescue false)
|
commands[cmdMysteryGift = commands.length] = _INTL("Mystery Gift") if trainer.mystery_gift_unlocked
|
||||||
else
|
else
|
||||||
commands[cmdNewGame = commands.length] = _INTL("New Game")
|
commands[cmdNewGame = commands.length] = _INTL("New Game")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
#
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbSave(safesave=false)
|
def pbSave(safesave=false)
|
||||||
$Trainer.metaID=$PokemonGlobal.playerID
|
|
||||||
begin
|
begin
|
||||||
File.open(RTP.getSaveFileName("Game.rxdata"),"wb") { |f|
|
File.open(RTP.getSaveFileName("Game.rxdata"),"wb") { |f|
|
||||||
Marshal.dump($Trainer,f)
|
Marshal.dump($Trainer,f)
|
||||||
@@ -79,9 +78,9 @@ class PokemonSave_Scene
|
|||||||
else
|
else
|
||||||
loctext+=_INTL("Time<r><c3={1}>{2}m</c3><br>",textColor,min)
|
loctext+=_INTL("Time<r><c3={1}>{2}m</c3><br>",textColor,min)
|
||||||
end
|
end
|
||||||
loctext+=_INTL("Badges<r><c3={1}>{2}</c3><br>",textColor,$Trainer.numbadges)
|
loctext+=_INTL("Badges<r><c3={1}>{2}</c3><br>",textColor,$Trainer.badge_count)
|
||||||
if $Trainer.pokedex
|
if $Trainer.pokedex
|
||||||
loctext+=_INTL("Pokédex<r><c3={1}>{2}/{3}</c3>",textColor,$Trainer.pokedexOwned,$Trainer.pokedexSeen)
|
loctext+=_INTL("Pokédex<r><c3={1}>{2}/{3}</c3>",textColor,$Trainer.owned_count,$Trainer.seen_count)
|
||||||
end
|
end
|
||||||
@sprites["locwindow"]=Window_AdvancedTextPokemon.new(loctext)
|
@sprites["locwindow"]=Window_AdvancedTextPokemon.new(loctext)
|
||||||
@sprites["locwindow"].viewport=@viewport
|
@sprites["locwindow"].viewport=@viewport
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ def pbUseKeyItem
|
|||||||
:WATERFALL, :WHIRLPOOL]
|
:WATERFALL, :WHIRLPOOL]
|
||||||
real_moves = []
|
real_moves = []
|
||||||
moves.each do |move|
|
moves.each do |move|
|
||||||
$Trainer.pokemonParty.each_with_index do |pkmn, i|
|
$Trainer.pokemon_party.each_with_index do |pkmn, i|
|
||||||
next if !pkmn.hasMove?(move)
|
next if !pkmn.hasMove?(move)
|
||||||
real_moves.push([move, i]) if pbCanUseHiddenMove?(pkmn, move, false)
|
real_moves.push([move, i]) if pbCanUseHiddenMove?(pkmn, move, false)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -199,8 +199,8 @@ def pbHatch(pokemon)
|
|||||||
pokemon.timeEggHatched = pbGetTimeNow
|
pokemon.timeEggHatched = pbGetTimeNow
|
||||||
pokemon.obtain_method = 1 # hatched from egg
|
pokemon.obtain_method = 1 # hatched from egg
|
||||||
pokemon.hatched_map = $game_map.map_id
|
pokemon.hatched_map = $game_map.map_id
|
||||||
$Trainer.seen[pokemon.species] = true
|
$Trainer.set_seen(pokemon.species)
|
||||||
$Trainer.owned[pokemon.species] = true
|
$Trainer.set_owned(pokemon.species)
|
||||||
pbSeenForm(pokemon)
|
pbSeenForm(pokemon)
|
||||||
pokemon.record_first_moves
|
pokemon.record_first_moves
|
||||||
if !pbHatchAnimation(pokemon)
|
if !pbHatchAnimation(pokemon)
|
||||||
@@ -220,7 +220,7 @@ Events.onStepTaken += proc { |_sender,_e|
|
|||||||
for egg in $Trainer.party
|
for egg in $Trainer.party
|
||||||
next if egg.steps_to_hatch <= 0
|
next if egg.steps_to_hatch <= 0
|
||||||
egg.steps_to_hatch -= 1
|
egg.steps_to_hatch -= 1
|
||||||
for i in $Trainer.pokemonParty
|
for i in $Trainer.pokemon_party
|
||||||
next if !i.hasAbility?(:FLAMEBODY) && !i.hasAbility?(:MAGMAARMOR)
|
next if !i.hasAbility?(:FLAMEBODY) && !i.hasAbility?(:MAGMAARMOR)
|
||||||
egg.steps_to_hatch -= 1
|
egg.steps_to_hatch -= 1
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -588,8 +588,8 @@ class PokemonEvolutionScene
|
|||||||
@pokemon.form = 0 if @pokemon.isSpecies?(:MOTHIM)
|
@pokemon.form = 0 if @pokemon.isSpecies?(:MOTHIM)
|
||||||
@pokemon.calcStats
|
@pokemon.calcStats
|
||||||
# See and own evolved species
|
# See and own evolved species
|
||||||
$Trainer.seen[@newspecies] = true
|
$Trainer.set_seen(@newspecies)
|
||||||
$Trainer.owned[@newspecies] = true
|
$Trainer.set_owned(@newspecies)
|
||||||
pbSeenForm(@pokemon)
|
pbSeenForm(@pokemon)
|
||||||
# Learn moves upon evolution for evolved species
|
# Learn moves upon evolution for evolved species
|
||||||
movelist = @pokemon.getMoveList
|
movelist = @pokemon.getMoveList
|
||||||
@@ -619,8 +619,8 @@ class PokemonEvolutionScene
|
|||||||
# Add duplicate Pokémon to party
|
# Add duplicate Pokémon to party
|
||||||
$Trainer.party.push(new_pkmn)
|
$Trainer.party.push(new_pkmn)
|
||||||
# See and own duplicate Pokémon
|
# See and own duplicate Pokémon
|
||||||
$Trainer.seen[new_species] = true
|
$Trainer.set_seen(new_species)
|
||||||
$Trainer.owned[new_species] = true
|
$Trainer.set_owned(new_species)
|
||||||
pbSeenForm(new_pkmn)
|
pbSeenForm(new_pkmn)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -211,8 +211,8 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbStartTrade(pokemonIndex,newpoke,nickname,trainerName,trainerGender=0)
|
def pbStartTrade(pokemonIndex,newpoke,nickname,trainerName,trainerGender=0)
|
||||||
myPokemon = $Trainer.party[pokemonIndex]
|
myPokemon = $Trainer.party[pokemonIndex]
|
||||||
opponent = PokeBattle_Trainer.new(trainerName,trainerGender)
|
opponent = NPCTrainer.new(trainerName,trainerGender)
|
||||||
opponent.setForeignID($Trainer)
|
opponent.id = $Trainer.make_foreign_ID
|
||||||
yourPokemon = nil
|
yourPokemon = nil
|
||||||
resetmoves = true
|
resetmoves = true
|
||||||
if newpoke.is_a?(Pokemon)
|
if newpoke.is_a?(Pokemon)
|
||||||
@@ -228,8 +228,8 @@ def pbStartTrade(pokemonIndex,newpoke,nickname,trainerName,trainerGender=0)
|
|||||||
yourPokemon.obtain_method = 2 # traded
|
yourPokemon.obtain_method = 2 # traded
|
||||||
yourPokemon.resetMoves if resetmoves
|
yourPokemon.resetMoves if resetmoves
|
||||||
yourPokemon.record_first_moves
|
yourPokemon.record_first_moves
|
||||||
$Trainer.seen[yourPokemon.species] = true
|
$Trainer.set_seen(yourPokemon.species)
|
||||||
$Trainer.owned[yourPokemon.species] = true
|
$Trainer.set_owned(yourPokemon.species)
|
||||||
pbSeenForm(yourPokemon)
|
pbSeenForm(yourPokemon)
|
||||||
pbFadeOutInWithMusic {
|
pbFadeOutInWithMusic {
|
||||||
evo = PokemonTrade_Scene.new
|
evo = PokemonTrade_Scene.new
|
||||||
|
|||||||
@@ -9,22 +9,6 @@
|
|||||||
MYSTERY_GIFT_URL = "http://images1.wikia.nocookie.net/pokemonessentials/images/e/e7/MysteryGift.txt"
|
MYSTERY_GIFT_URL = "http://images1.wikia.nocookie.net/pokemonessentials/images/e/e7/MysteryGift.txt"
|
||||||
# MYSTERY_GIFT_URL = "http://pastebin.com/raw/w6BqqUsm"
|
# MYSTERY_GIFT_URL = "http://pastebin.com/raw/w6BqqUsm"
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
#
|
|
||||||
#===============================================================================
|
|
||||||
class PokeBattle_Trainer
|
|
||||||
attr_writer :mysterygiftaccess # Whether MG can be used from load screen
|
|
||||||
attr_writer :mysterygift # Variable that stores downloaded MG data
|
|
||||||
|
|
||||||
def mysterygiftaccess
|
|
||||||
return @mysterygiftaccess || false
|
|
||||||
end
|
|
||||||
|
|
||||||
def mysterygift
|
|
||||||
return @mysterygift || []
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Creating a new Mystery Gift for the Master file, and editing an existing one.
|
# Creating a new Mystery Gift for the Master file, and editing an existing one.
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -211,12 +195,12 @@ def pbManageMysteryGifts
|
|||||||
master[command]=newgift if newgift
|
master[command]=newgift if newgift
|
||||||
elsif cmd==2 # Receive
|
elsif cmd==2 # Receive
|
||||||
replaced=false
|
replaced=false
|
||||||
for i in 0...$Trainer.mysterygift.length
|
for i in 0...$Trainer.mystery_gifts.length
|
||||||
if $Trainer.mysterygift[i][0]==gift[0]
|
if $Trainer.mystery_gifts[i][0]==gift[0]
|
||||||
$Trainer.mysterygift[i]=gift; replaced=true
|
$Trainer.mystery_gifts[i]=gift; replaced=true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
$Trainer.mysterygift.push(gift) if !replaced
|
$Trainer.mystery_gifts.push(gift) if !replaced
|
||||||
pbReceiveMysteryGift(gift[0])
|
pbReceiveMysteryGift(gift[0])
|
||||||
elsif cmd==3 # Delete
|
elsif cmd==3 # Delete
|
||||||
if pbConfirmMessage(_INTL("Are you sure you want to delete this gift?"))
|
if pbConfirmMessage(_INTL("Are you sure you want to delete this gift?"))
|
||||||
@@ -267,7 +251,7 @@ def pbDownloadMysteryGift(trainer)
|
|||||||
pending=[]
|
pending=[]
|
||||||
for gift in online
|
for gift in online
|
||||||
notgot=true
|
notgot=true
|
||||||
for j in trainer.mysterygift
|
for j in trainer.mystery_gifts
|
||||||
notgot=false if j[0]==gift[0]
|
notgot=false if j[0]==gift[0]
|
||||||
end
|
end
|
||||||
pending.push(gift) if notgot
|
pending.push(gift) if notgot
|
||||||
@@ -315,7 +299,7 @@ def pbDownloadMysteryGift(trainer)
|
|||||||
sprites["msgwindow"].visible=true
|
sprites["msgwindow"].visible=true
|
||||||
pbMessageDisplay(sprites["msgwindow"],_INTL("The gift has been received!")) { sprite.update }
|
pbMessageDisplay(sprites["msgwindow"],_INTL("The gift has been received!")) { sprite.update }
|
||||||
pbMessageDisplay(sprites["msgwindow"],_INTL("Please pick up your gift from the deliveryman in any Poké Mart.")) { sprite.update }
|
pbMessageDisplay(sprites["msgwindow"],_INTL("Please pick up your gift from the deliveryman in any Poké Mart.")) { sprite.update }
|
||||||
trainer.mysterygift.push(gift)
|
trainer.mystery_gifts.push(gift)
|
||||||
pending[command]=nil; pending.compact!
|
pending[command]=nil; pending.compact!
|
||||||
opacityDiff = 16*20/Graphics.frame_rate
|
opacityDiff = 16*20/Graphics.frame_rate
|
||||||
loop do
|
loop do
|
||||||
@@ -359,7 +343,7 @@ end
|
|||||||
# Collecting a Mystery Gift from the deliveryman.
|
# Collecting a Mystery Gift from the deliveryman.
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbNextMysteryGiftID
|
def pbNextMysteryGiftID
|
||||||
for i in $Trainer.mysterygift
|
for i in $Trainer.mystery_gifts
|
||||||
return i[0] if i.length>1
|
return i[0] if i.length>1
|
||||||
end
|
end
|
||||||
return 0
|
return 0
|
||||||
@@ -367,8 +351,8 @@ end
|
|||||||
|
|
||||||
def pbReceiveMysteryGift(id)
|
def pbReceiveMysteryGift(id)
|
||||||
index=-1
|
index=-1
|
||||||
for i in 0...$Trainer.mysterygift.length
|
for i in 0...$Trainer.mystery_gifts.length
|
||||||
if $Trainer.mysterygift[i][0]==id && $Trainer.mysterygift[i].length>1
|
if $Trainer.mystery_gifts[i][0]==id && $Trainer.mystery_gifts[i].length>1
|
||||||
index=i
|
index=i
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@@ -377,7 +361,7 @@ def pbReceiveMysteryGift(id)
|
|||||||
pbMessage(_INTL("Couldn't find an unclaimed Mystery Gift with ID {1}.",id))
|
pbMessage(_INTL("Couldn't find an unclaimed Mystery Gift with ID {1}.",id))
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
gift=$Trainer.mysterygift[index]
|
gift=$Trainer.mystery_gifts[index]
|
||||||
if gift[1]==0 # Pokémon
|
if gift[1]==0 # Pokémon
|
||||||
gift[2].personalID = rand(2**16) | rand(2**16) << 16
|
gift[2].personalID = rand(2**16) | rand(2**16) << 16
|
||||||
gift[2].calcStats
|
gift[2].calcStats
|
||||||
@@ -394,7 +378,7 @@ def pbReceiveMysteryGift(id)
|
|||||||
end
|
end
|
||||||
if pbAddPokemonSilent(gift[2])
|
if pbAddPokemonSilent(gift[2])
|
||||||
pbMessage(_INTL("\\me[Pkmn get]{1} received {2}!",$Trainer.name,gift[2].name))
|
pbMessage(_INTL("\\me[Pkmn get]{1} received {2}!",$Trainer.name,gift[2].name))
|
||||||
$Trainer.mysterygift[index]=[id]
|
$Trainer.mystery_gifts[index]=[id]
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
elsif gift[1]>0 # Item
|
elsif gift[1]>0 # Item
|
||||||
@@ -416,7 +400,7 @@ def pbReceiveMysteryGift(id)
|
|||||||
else
|
else
|
||||||
pbMessage(_INTL("\\me[Item get]You obtained a \\c[1]{1}\\c[0]!\\wtnp[30]",itemname))
|
pbMessage(_INTL("\\me[Item get]You obtained a \\c[1]{1}\\c[0]!\\wtnp[30]",itemname))
|
||||||
end
|
end
|
||||||
$Trainer.mysterygift[index]=[id]
|
$Trainer.mystery_gifts[index]=[id]
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ class HallOfFame_Scene
|
|||||||
|
|
||||||
def createTrainerBattler
|
def createTrainerBattler
|
||||||
@sprites["trainer"]=IconSprite.new(@viewport)
|
@sprites["trainer"]=IconSprite.new(@viewport)
|
||||||
@sprites["trainer"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainertype))
|
@sprites["trainer"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainer_type))
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
@sprites["trainer"].x=Graphics.width-96
|
@sprites["trainer"].x=Graphics.width-96
|
||||||
@sprites["trainer"].y=160
|
@sprites["trainer"].y=160
|
||||||
@@ -276,12 +276,12 @@ class HallOfFame_Scene
|
|||||||
totalsec = Graphics.frame_count / Graphics.frame_rate
|
totalsec = Graphics.frame_count / Graphics.frame_rate
|
||||||
hour = totalsec / 60 / 60
|
hour = totalsec / 60 / 60
|
||||||
min = totalsec / 60 % 60
|
min = totalsec / 60 % 60
|
||||||
pubid=sprintf("%05d",$Trainer.publicID($Trainer.id))
|
pubid=sprintf("%05d",$Trainer.public_ID)
|
||||||
lefttext= _INTL("Name<r>{1}<br>",$Trainer.name)
|
lefttext= _INTL("Name<r>{1}<br>",$Trainer.name)
|
||||||
lefttext+=_INTL("IDNo.<r>{1}<br>",pubid)
|
lefttext+=_INTL("IDNo.<r>{1}<br>",pubid)
|
||||||
lefttext+=_ISPRINTF("Time<r>{1:02d}:{2:02d}<br>",hour,min)
|
lefttext+=_ISPRINTF("Time<r>{1:02d}:{2:02d}<br>",hour,min)
|
||||||
lefttext+=_INTL("Pokédex<r>{1}/{2}<br>",
|
lefttext+=_INTL("Pokédex<r>{1}/{2}<br>",
|
||||||
$Trainer.pokedexOwned,$Trainer.pokedexSeen)
|
$Trainer.owned_count,$Trainer.seen_count)
|
||||||
@sprites["messagebox"]=Window_AdvancedTextPokemon.new(lefttext)
|
@sprites["messagebox"]=Window_AdvancedTextPokemon.new(lefttext)
|
||||||
@sprites["messagebox"].viewport=@viewport
|
@sprites["messagebox"].viewport=@viewport
|
||||||
@sprites["messagebox"].width=192 if @sprites["messagebox"].width<192
|
@sprites["messagebox"].width=192 if @sprites["messagebox"].width<192
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ class PokemonDuel
|
|||||||
@viewport.z = 99999
|
@viewport.z = 99999
|
||||||
@sprites = {}
|
@sprites = {}
|
||||||
@sprites["player"] = IconSprite.new(-128 - 32, 96, @viewport)
|
@sprites["player"] = IconSprite.new(-128 - 32, 96, @viewport)
|
||||||
@sprites["player"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainertype))
|
@sprites["player"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainer_type))
|
||||||
@sprites["opponent"] = IconSprite.new(Graphics.width + 32, 96, @viewport)
|
@sprites["opponent"] = IconSprite.new(Graphics.width + 32, 96, @viewport)
|
||||||
@sprites["opponent"].setBitmap(GameData::TrainerType.front_sprite_filename(opponent.trainertype))
|
@sprites["opponent"].setBitmap(GameData::TrainerType.front_sprite_filename(opponent.trainer_type))
|
||||||
@sprites["playerwindow"] = DuelWindow.new($Trainer.name, false)
|
@sprites["playerwindow"] = DuelWindow.new($Trainer.name, false)
|
||||||
@sprites["playerwindow"].x = -@sprites["playerwindow"].width
|
@sprites["playerwindow"].x = -@sprites["playerwindow"].width
|
||||||
@sprites["playerwindow"].viewport = @viewport
|
@sprites["playerwindow"].viewport = @viewport
|
||||||
@@ -381,7 +381,7 @@ end
|
|||||||
def pbDuel(trainer_id, trainer_name, event, speeches)
|
def pbDuel(trainer_id, trainer_name, event, speeches)
|
||||||
trainer_id = GameData::TrainerType.get(trainer_id).id
|
trainer_id = GameData::TrainerType.get(trainer_id).id
|
||||||
duel = PokemonDuel.new
|
duel = PokemonDuel.new
|
||||||
opponent = PokeBattle_Trainer.new(
|
opponent = NPCTrainer.new(
|
||||||
pbGetMessageFromHash(MessageTypes::TrainerNames,trainer_name), trainer_id)
|
pbGetMessageFromHash(MessageTypes::TrainerNames,trainer_name), trainer_id)
|
||||||
speech_texts = []
|
speech_texts = []
|
||||||
for i in 0...12
|
for i in 0...12
|
||||||
|
|||||||
@@ -769,12 +769,13 @@ class TriadScreen
|
|||||||
candidates = []
|
candidates = []
|
||||||
while candidates.length < 200
|
while candidates.length < 200
|
||||||
card = species_keys[rand(species_keys.length)]
|
card = species_keys[rand(species_keys.length)]
|
||||||
card = GameData::Species.get(card).id # Make sure it's a symbol
|
card_data = GameData::Species.get(card)
|
||||||
|
card = card_data.id # Make sure it's a symbol
|
||||||
triad = TriadCard.new(card)
|
triad = TriadCard.new(card)
|
||||||
total = triad.north + triad.south + triad.east + triad.west
|
total = triad.north + triad.south + triad.east + triad.west
|
||||||
# Add random species and its total point count
|
# Add random species and its total point count
|
||||||
candidates.push([card, total])
|
candidates.push([card, total])
|
||||||
if candidates.length < 200 && $Trainer.owned[card]
|
if candidates.length < 200 && $Trainer.owned?(card_data.species)
|
||||||
# Add again if player owns the species
|
# Add again if player owns the species
|
||||||
candidates.push([card, total])
|
candidates.push([card, total])
|
||||||
end
|
end
|
||||||
@@ -1048,7 +1049,7 @@ def pbBuyTriads
|
|||||||
realcommands = []
|
realcommands = []
|
||||||
GameData::Species.each do |s|
|
GameData::Species.each do |s|
|
||||||
next if s.form != 0
|
next if s.form != 0
|
||||||
next if !$Trainer.owned[s.id]
|
next if !$Trainer.owned?(s.species)
|
||||||
price = TriadCard.new(i).price
|
price = TriadCard.new(i).price
|
||||||
commands.push([price, s.name, _INTL("{1} - ${2}", s.name, price.to_s_formatted), s.id])
|
commands.push([price, s.name, _INTL("{1} - ${2}", s.name, price.to_s_formatted), s.id])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -739,7 +739,7 @@ class BattleFactoryData
|
|||||||
@trainerid=@bcdata.nextTrainer
|
@trainerid=@bcdata.nextTrainer
|
||||||
bttrainers=pbGetBTTrainers(@bcdata.currentChallenge)
|
bttrainers=pbGetBTTrainers(@bcdata.currentChallenge)
|
||||||
trainerdata=bttrainers[@trainerid]
|
trainerdata=bttrainers[@trainerid]
|
||||||
@opponent=PokeBattle_Trainer.new(
|
@opponent=NPCTrainer.new(
|
||||||
pbGetMessageFromHash(MessageTypes::TrainerNames,trainerdata[1]),
|
pbGetMessageFromHash(MessageTypes::TrainerNames,trainerdata[1]),
|
||||||
trainerdata[0])
|
trainerdata[0])
|
||||||
opponentPkmn=pbBattleFactoryPokemon(1,@bcdata.wins,@bcdata.swaps,@rentals)
|
opponentPkmn=pbBattleFactoryPokemon(1,@bcdata.wins,@bcdata.swaps,@rentals)
|
||||||
@@ -769,7 +769,7 @@ class BattleFactoryData
|
|||||||
trainerid=@bcdata.nextTrainer
|
trainerid=@bcdata.nextTrainer
|
||||||
bttrainers=pbGetBTTrainers(@bcdata.currentChallenge)
|
bttrainers=pbGetBTTrainers(@bcdata.currentChallenge)
|
||||||
trainerdata=bttrainers[trainerid]
|
trainerdata=bttrainers[trainerid]
|
||||||
@opponent=PokeBattle_Trainer.new(
|
@opponent=NPCTrainer.new(
|
||||||
pbGetMessageFromHash(MessageTypes::TrainerNames,trainerdata[1]),
|
pbGetMessageFromHash(MessageTypes::TrainerNames,trainerdata[1]),
|
||||||
trainerdata[0])
|
trainerdata[0])
|
||||||
opponentPkmn=pbBattleFactoryPokemon(
|
opponentPkmn=pbBattleFactoryPokemon(
|
||||||
@@ -882,7 +882,7 @@ end
|
|||||||
def pbGenerateBattleTrainer(trainerid,rule)
|
def pbGenerateBattleTrainer(trainerid,rule)
|
||||||
bttrainers=pbGetBTTrainers(pbBattleChallenge.currentChallenge)
|
bttrainers=pbGetBTTrainers(pbBattleChallenge.currentChallenge)
|
||||||
trainerdata=bttrainers[trainerid]
|
trainerdata=bttrainers[trainerid]
|
||||||
opponent=PokeBattle_Trainer.new(
|
opponent=NPCTrainer.new(
|
||||||
pbGetMessageFromHash(MessageTypes::TrainerNames,trainerdata[1]),
|
pbGetMessageFromHash(MessageTypes::TrainerNames,trainerdata[1]),
|
||||||
trainerdata[0])
|
trainerdata[0])
|
||||||
btpokemon=pbGetBTPokemon(pbBattleChallenge.currentChallenge)
|
btpokemon=pbGetBTPokemon(pbBattleChallenge.currentChallenge)
|
||||||
@@ -928,7 +928,7 @@ def pbOrganizedBattleEx(opponent,challengedata,endspeech,endspeechwin)
|
|||||||
$PokemonTemp.lastbattle = nil
|
$PokemonTemp.lastbattle = nil
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
pbHealAll
|
$Trainer.heal_party
|
||||||
# Remember original data, to be restored after battle
|
# Remember original data, to be restored after battle
|
||||||
challengedata = PokemonChallengeRules.new if !challengedata
|
challengedata = PokemonChallengeRules.new if !challengedata
|
||||||
oldlevels = challengedata.adjustLevels($Trainer.party,opponent.party)
|
oldlevels = challengedata.adjustLevels($Trainer.party,opponent.party)
|
||||||
|
|||||||
@@ -840,8 +840,8 @@ def pbRuledBattle(team1,team2,rule)
|
|||||||
decision=pbDecideWinner(party1,party2,team1.rating,team2.rating)
|
decision=pbDecideWinner(party1,party2,team1.rating,team2.rating)
|
||||||
else
|
else
|
||||||
level=rule.ruleset.suggestedLevel
|
level=rule.ruleset.suggestedLevel
|
||||||
trainer1=PokeBattle_Trainer.new("PLAYER1",1)
|
trainer1=NPCTrainer.new("PLAYER1",1)
|
||||||
trainer2=PokeBattle_Trainer.new("PLAYER2",1)
|
trainer2=NPCTrainer.new("PLAYER2",1)
|
||||||
items1=[]
|
items1=[]
|
||||||
items2=[]
|
items2=[]
|
||||||
team1.each_with_index do |p,i|
|
team1.each_with_index do |p,i|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ def pbSetUpSystem
|
|||||||
game_system = Marshal.load(f)
|
game_system = Marshal.load(f)
|
||||||
pokemonSystem = Marshal.load(f)
|
pokemonSystem = Marshal.load(f)
|
||||||
}
|
}
|
||||||
raise "Corrupted file" if !trainer.is_a?(PokeBattle_Trainer)
|
raise "Corrupted file" if !trainer.is_a?(PlayerTrainer)
|
||||||
raise "Corrupted file" if !framecount.is_a?(Numeric)
|
raise "Corrupted file" if !framecount.is_a?(Numeric)
|
||||||
raise "Corrupted file" if !game_system.is_a?(Game_System)
|
raise "Corrupted file" if !game_system.is_a?(Game_System)
|
||||||
raise "Corrupted file" if !pokemonSystem.is_a?(PokemonSystem)
|
raise "Corrupted file" if !pokemonSystem.is_a?(PokemonSystem)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ def pbPlayTrainerIntroME(trainer_type)
|
|||||||
pbMEPlay(bgm)
|
pbMEPlay(bgm)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetTrainerBattleBGM(trainer) # can be a PokeBattle_Trainer or an array of them
|
def pbGetTrainerBattleBGM(trainer) # can be a PlayerTrainer, NPCTrainer or an array of them
|
||||||
if $PokemonGlobal.nextBattleBGM
|
if $PokemonGlobal.nextBattleBGM
|
||||||
return $PokemonGlobal.nextBattleBGM.clone
|
return $PokemonGlobal.nextBattleBGM.clone
|
||||||
end
|
end
|
||||||
@@ -81,7 +81,7 @@ def pbGetTrainerBattleBGM(trainer) # can be a PokeBattle_Trainer or an array o
|
|||||||
music = nil
|
music = nil
|
||||||
trainerarray = (trainer.is_a?(Array)) ? trainer : [trainer]
|
trainerarray = (trainer.is_a?(Array)) ? trainer : [trainer]
|
||||||
trainerarray.each do |t|
|
trainerarray.each do |t|
|
||||||
trainer_type_data = GameData::TrainerType.get(t.trainertype)
|
trainer_type_data = GameData::TrainerType.get(t.trainer_type)
|
||||||
music = trainer_type_data.battle_BGM if trainer_type_data.battle_BGM
|
music = trainer_type_data.battle_BGM if trainer_type_data.battle_BGM
|
||||||
end
|
end
|
||||||
ret = pbStringToAudioFile(music) if music && music!=""
|
ret = pbStringToAudioFile(music) if music && music!=""
|
||||||
@@ -123,14 +123,14 @@ def pbGetTrainerBattleBGMFromType(trainertype)
|
|||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetTrainerVictoryME(trainer) # can be a PokeBattle_Trainer or an array of them
|
def pbGetTrainerVictoryME(trainer) # can be a PlayerTrainer, NPCTrainer or an array of them
|
||||||
if $PokemonGlobal.nextBattleME
|
if $PokemonGlobal.nextBattleME
|
||||||
return $PokemonGlobal.nextBattleME.clone
|
return $PokemonGlobal.nextBattleME.clone
|
||||||
end
|
end
|
||||||
music = nil
|
music = nil
|
||||||
trainerarray = (trainer.is_a?(Array)) ? trainer : [trainer]
|
trainerarray = (trainer.is_a?(Array)) ? trainer : [trainer]
|
||||||
trainerarray.each do |t|
|
trainerarray.each do |t|
|
||||||
trainer_type_data = GameData::TrainerType.get(t.trainertype)
|
trainer_type_data = GameData::TrainerType.get(t.trainer_type)
|
||||||
music = trainer_type_data.victory_ME if trainer_type_data.victory_ME
|
music = trainer_type_data.victory_ME if trainer_type_data.victory_ME
|
||||||
end
|
end
|
||||||
ret = nil
|
ret = nil
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ def pbNicknameAndStore(pkmn)
|
|||||||
pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
|
pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
$Trainer.seen[pkmn.species] = true
|
$Trainer.set_seen(pkmn.species)
|
||||||
$Trainer.owned[pkmn.species] = true
|
$Trainer.set_owned(pkmn.species)
|
||||||
pbNickname(pkmn)
|
pbNickname(pkmn)
|
||||||
pbStorePokemon(pkmn)
|
pbStorePokemon(pkmn)
|
||||||
end
|
end
|
||||||
@@ -80,8 +80,8 @@ end
|
|||||||
def pbAddPokemonSilent(pkmn, level = 1, see_form = true)
|
def pbAddPokemonSilent(pkmn, level = 1, see_form = true)
|
||||||
return false if !pkmn || pbBoxesFull?
|
return false if !pkmn || pbBoxesFull?
|
||||||
pkmn = Pokemon.new(pkmn, level) if !pkmn.is_a?(Pokemon)
|
pkmn = Pokemon.new(pkmn, level) if !pkmn.is_a?(Pokemon)
|
||||||
$Trainer.seen[pkmn.species] = true
|
$Trainer.set_seen(pkmn.species)
|
||||||
$Trainer.owned[pkmn.species] = true
|
$Trainer.set_owned(pkmn.species)
|
||||||
pbSeenForm(pkmn) if see_form
|
pbSeenForm(pkmn) if see_form
|
||||||
pkmn.record_first_moves
|
pkmn.record_first_moves
|
||||||
if $Trainer.party_full?
|
if $Trainer.party_full?
|
||||||
@@ -108,8 +108,8 @@ end
|
|||||||
def pbAddToPartySilent(pkmn, level = nil, see_form = true)
|
def pbAddToPartySilent(pkmn, level = nil, see_form = true)
|
||||||
return false if !pkmn || $Trainer.party_full?
|
return false if !pkmn || $Trainer.party_full?
|
||||||
pkmn = Pokemon.new(pkmn, level) if !pkmn.is_a?(Pokemon)
|
pkmn = Pokemon.new(pkmn, level) if !pkmn.is_a?(Pokemon)
|
||||||
$Trainer.seen[pkmn.species] = true
|
$Trainer.set_seen(pkmn.species)
|
||||||
$Trainer.owned[pkmn.species] = true
|
$Trainer.set_owned(pkmn.species)
|
||||||
pbSeenForm(pkmn) if see_form
|
pbSeenForm(pkmn) if see_form
|
||||||
pkmn.record_first_moves
|
pkmn.record_first_moves
|
||||||
$Trainer.party[$Trainer.party.length] = pkmn
|
$Trainer.party[$Trainer.party.length] = pkmn
|
||||||
@@ -131,8 +131,8 @@ def pbAddForeignPokemon(pkmn, level = 1, owner_name = nil, nickname = nil, owner
|
|||||||
pbMessage(_INTL("\\me[Pkmn get]{1} received a Pokémon.\1", $Trainer.name))
|
pbMessage(_INTL("\\me[Pkmn get]{1} received a Pokémon.\1", $Trainer.name))
|
||||||
end
|
end
|
||||||
pbStorePokemon(pkmn)
|
pbStorePokemon(pkmn)
|
||||||
$Trainer.seen[pkmn.species] = true
|
$Trainer.set_seen(pkmn.species)
|
||||||
$Trainer.owned[pkmn.species] = true
|
$Trainer.set_owned(pkmn.species)
|
||||||
pbSeenForm(pkmn) if see_form
|
pbSeenForm(pkmn) if see_form
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
@@ -152,27 +152,12 @@ end
|
|||||||
alias pbAddEgg pbGenerateEgg
|
alias pbAddEgg pbGenerateEgg
|
||||||
alias pbGenEgg pbGenerateEgg
|
alias pbGenEgg pbGenerateEgg
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Removing Pokémon from the party (fails if trying to remove last able Pokémon)
|
|
||||||
#===============================================================================
|
|
||||||
def pbRemovePokemonAt(index)
|
|
||||||
return false if index < 0 || index >= $Trainer.party.length
|
|
||||||
have_able = false
|
|
||||||
$Trainer.party.each_with_index do |pkmn, i|
|
|
||||||
have_able = true if i != index && !pkmn.egg? && pkmn.hp > 0
|
|
||||||
break if have_able
|
|
||||||
end
|
|
||||||
return false if !have_able
|
|
||||||
$Trainer.party.delete_at(index)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Recording Pokémon forms as seen
|
# Recording Pokémon forms as seen
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbSeenForm(species, gender = 0, form = 0)
|
def pbSeenForm(species, gender = 0, form = 0)
|
||||||
$Trainer.formseen = {} if !$Trainer.formseen
|
$Trainer.seen_forms = {} if !$Trainer.seen_forms
|
||||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
$Trainer.last_seen_forms = {} if !$Trainer.last_seen_forms
|
||||||
if species.is_a?(Pokemon)
|
if species.is_a?(Pokemon)
|
||||||
species_data = species.species_data
|
species_data = species.species_data
|
||||||
gender = species.gender
|
gender = species.gender
|
||||||
@@ -188,87 +173,34 @@ def pbSeenForm(species, gender = 0, form = 0)
|
|||||||
form = species_data.form
|
form = species_data.form
|
||||||
end
|
end
|
||||||
form = 0 if species_data.form_name.nil? || species_data.form_name.empty?
|
form = 0 if species_data.form_name.nil? || species_data.form_name.empty?
|
||||||
$Trainer.formseen[species] = [[], []] if !$Trainer.formseen[species]
|
$Trainer.seen_forms[species] = [[], []] if !$Trainer.seen_forms[species]
|
||||||
$Trainer.formseen[species][gender][form] = true
|
$Trainer.seen_forms[species][gender][form] = true
|
||||||
$Trainer.formlastseen[species] = [] if !$Trainer.formlastseen[species]
|
$Trainer.last_seen_forms[species] = [] if !$Trainer.last_seen_forms[species]
|
||||||
$Trainer.formlastseen[species] = [gender, form] if $Trainer.formlastseen[species] == []
|
$Trainer.last_seen_forms[species] = [gender, form] if $Trainer.last_seen_forms[species] == []
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbUpdateLastSeenForm(pkmn)
|
def pbUpdateLastSeenForm(pkmn)
|
||||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
$Trainer.last_seen_forms = {} if !$Trainer.last_seen_forms
|
||||||
species_data = pkmn.species_data
|
species_data = pkmn.species_data
|
||||||
form = species_data.pokedex_form
|
form = species_data.pokedex_form
|
||||||
form = 0 if species_data.form_name.nil? || species_data.form_name.empty?
|
form = 0 if species_data.form_name.nil? || species_data.form_name.empty?
|
||||||
$Trainer.formlastseen[pkmn.species] = [pkmn.gender, form]
|
$Trainer.last_seen_forms[pkmn.species] = [pkmn.gender, form]
|
||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Analyse Pokémon in the party
|
# Analyse Pokémon in the party
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Returns the first unfainted, non-egg Pokémon in the player's party.
|
# Returns the first unfainted, non-egg Pokémon in the player's party.
|
||||||
def pbFirstAblePokemon(variableNumber)
|
def pbFirstAblePokemon(variable_ID)
|
||||||
$Trainer.party.each_with_index do |pkmn, i|
|
$Trainer.party.each_with_index do |pkmn, i|
|
||||||
next if pkmn.egg? || pkmn.hp == 0
|
next if !pkmn.able?
|
||||||
pbSet(variableNumber, i)
|
pbSet(variable_ID, i)
|
||||||
return pkmn
|
return pkmn
|
||||||
end
|
end
|
||||||
pbSet(variableNumber, -1)
|
pbSet(variable_ID, -1)
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# Checks whether the player would still have an unfainted Pokémon if the
|
|
||||||
# Pokémon given by _index_ were removed from the party.
|
|
||||||
def pbCheckAble(index)
|
|
||||||
$Trainer.party.each_with_index do |pkmn, i|
|
|
||||||
return true if i != index && !pkmn.egg? && pkmn.hp > 0
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
# Returns true if there are no usable Pokémon in the player's party.
|
|
||||||
def pbAllFainted
|
|
||||||
return $Trainer.ablePokemonCount == 0
|
|
||||||
end
|
|
||||||
|
|
||||||
# Returns true if there is a Pokémon of the given species in the player's party.
|
|
||||||
# You may also specify a particular form it should be.
|
|
||||||
def pbHasSpecies?(species, form = -1)
|
|
||||||
$Trainer.pokemonParty.each do |pkmn|
|
|
||||||
return true if pkmn.isSpecies?(species) && (form < 0 || pkmn.form == form)
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
# Returns true if there is a fatefully met Pokémon of the given species in the
|
|
||||||
# player's party.
|
|
||||||
def pbHasFatefulSpecies?(species)
|
|
||||||
$Trainer.pokemonParty.each do |pkmn|
|
|
||||||
return true if pkmn.isSpecies?(species) && pkmn.obtain_method == 4
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
# Returns true if there is a Pokémon with the given type in the player's party.
|
|
||||||
def pbHasType?(type)
|
|
||||||
type = GameData::Type.get(type).id
|
|
||||||
$Trainer.pokemonParty.each { |pkmn| return true if pkmn.hasType?(type) }
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
# Checks whether any Pokémon in the party knows the given move, and returns
|
|
||||||
# the first Pokémon it finds with that move, or nil if no Pokémon has that move.
|
|
||||||
def pbCheckMove(move)
|
|
||||||
$Trainer.pokemonParty.each { |pkmn| return pkmn if pkmn.hasMove?(move) }
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Fully heal all Pokémon in the party
|
|
||||||
#===============================================================================
|
|
||||||
def pbHealAll
|
|
||||||
$Trainer.party.each { |pkmn| pkmn.heal }
|
|
||||||
end
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Return a level value based on Pokémon in a party
|
# Return a level value based on Pokémon in a party
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|||||||
@@ -223,48 +223,43 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Player-related utilities, random name generator
|
# Player-related utilities, random name generator
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbChangePlayer(id)
|
|
||||||
return false if id<0 || id>=8
|
|
||||||
meta = GameData::Metadata.get_player(id)
|
|
||||||
return false if !meta
|
|
||||||
$Trainer.trainertype = meta[0] if $Trainer
|
|
||||||
$game_player.character_name = meta[1]
|
|
||||||
$game_player.character_hue = 0
|
|
||||||
$PokemonGlobal.playerID = id
|
|
||||||
$Trainer.metaID = id if $Trainer
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbGetPlayerGraphic
|
def pbGetPlayerGraphic
|
||||||
id = $PokemonGlobal.playerID
|
id = $PokemonGlobal.playerID
|
||||||
return "" if id<0 || id>=8
|
return "" if id < 0 || id >= 8
|
||||||
meta = GameData::Metadata.get_player(id)
|
meta = GameData::Metadata.get_player(id)
|
||||||
return "" if !meta
|
return "" if !meta
|
||||||
return GameData::TrainerType.player_front_sprite_filename(meta[0])
|
return GameData::TrainerType.player_front_sprite_filename(meta[0])
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetPlayerTrainerType
|
|
||||||
meta = GameData::Metadata.get_player($PokemonGlobal.playerID)
|
|
||||||
return (meta) ? meta[0] : nil
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbGetTrainerTypeGender(trainer_type)
|
def pbGetTrainerTypeGender(trainer_type)
|
||||||
return GameData::TrainerType.get(trainer_type).gender
|
return GameData::TrainerType.get(trainer_type).gender
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbTrainerName(name=nil,outfit=0)
|
def pbChangePlayer(id)
|
||||||
pbChangePlayer(0) if $PokemonGlobal.playerID<0
|
return false if id < 0 || id >= 8
|
||||||
trainertype = pbGetPlayerTrainerType
|
meta = GameData::Metadata.get_player(id)
|
||||||
trname = name
|
return false if !meta
|
||||||
$Trainer = PokeBattle_Trainer.new(trname,trainertype)
|
$Trainer.trainer_type = meta[0] if $Trainer
|
||||||
$Trainer.outfit = outfit
|
$game_player.character_name = meta[1]
|
||||||
if trname==nil
|
$PokemonGlobal.playerID = id
|
||||||
trname = pbEnterPlayerName(_INTL("Your name?"),0,MAX_PLAYER_NAME_SIZE)
|
$Trainer.character_ID = id if $Trainer
|
||||||
if trname==""
|
end
|
||||||
gender = pbGetTrainerTypeGender(trainertype)
|
|
||||||
trname = pbSuggestTrainerName(gender)
|
def pbTrainerName(name = nil, outfit = 0)
|
||||||
|
pbChangePlayer(0) if $PokemonGlobal.playerID < 0
|
||||||
|
player_metadata = GameData::Metadata.get_player($PokemonGlobal.playerID)
|
||||||
|
trainer_type = (player_metadata) ? player_metadata[0] : nil
|
||||||
|
$Trainer = PlayerTrainer.new(name, trainer_type)
|
||||||
|
$Trainer.outfit = outfit
|
||||||
|
$Trainer.character_ID = $PokemonGlobal.playerID
|
||||||
|
if name.nil?
|
||||||
|
name = pbEnterPlayerName(_INTL("Your name?"), 0, MAX_PLAYER_NAME_SIZE)
|
||||||
|
if name.nil? || name.empty?
|
||||||
|
gender = pbGetTrainerTypeGender(trainer_type)
|
||||||
|
name = pbSuggestTrainerName(gender)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
$Trainer.name = trname
|
$Trainer.name = name
|
||||||
$PokemonBag = PokemonBag.new
|
$PokemonBag = PokemonBag.new
|
||||||
$PokemonTemp.begunNewGame = true
|
$PokemonTemp.begunNewGame = true
|
||||||
end
|
end
|
||||||
@@ -444,18 +439,18 @@ def pbSetViableDexes
|
|||||||
if USE_CURRENT_REGION_DEX
|
if USE_CURRENT_REGION_DEX
|
||||||
region = pbGetCurrentRegion
|
region = pbGetCurrentRegion
|
||||||
region = -1 if region>=$PokemonGlobal.pokedexUnlocked.length-1
|
region = -1 if region>=$PokemonGlobal.pokedexUnlocked.length-1
|
||||||
$PokemonGlobal.pokedexViable[0] = region if $Trainer.pokedexSeen(region)>0
|
$PokemonGlobal.pokedexViable[0] = region if $Trainer.seen_any?(region)
|
||||||
else
|
else
|
||||||
numDexes = $PokemonGlobal.pokedexUnlocked.length
|
numDexes = $PokemonGlobal.pokedexUnlocked.length
|
||||||
if numDexes==1 # National Dex only
|
if numDexes==1 # National Dex only
|
||||||
if $PokemonGlobal.pokedexUnlocked[0]
|
if $PokemonGlobal.pokedexUnlocked[0]
|
||||||
$PokemonGlobal.pokedexViable.push(0) if $Trainer.pokedexSeen>0
|
$PokemonGlobal.pokedexViable.push(0) if $Trainer.seen_any?
|
||||||
end
|
end
|
||||||
else # Regional dexes + National Dex
|
else # Regional dexes + National Dex
|
||||||
for i in 0...numDexes
|
for i in 0...numDexes
|
||||||
regionToCheck = (i==numDexes-1) ? -1 : i
|
regionToCheck = (i==numDexes-1) ? -1 : i
|
||||||
if $PokemonGlobal.pokedexUnlocked[i]
|
if $PokemonGlobal.pokedexUnlocked[i]
|
||||||
$PokemonGlobal.pokedexViable.push(i) if $Trainer.pokedexSeen(regionToCheck)>0
|
$PokemonGlobal.pokedexViable.push(i) if $Trainer.seen_any?(regionToCheck)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ DebugMenuCommands.register("testtrainerbattle", {
|
|||||||
battle = pbListScreen(_INTL("SINGLE TRAINER"), TrainerBattleLister.new(0, false))
|
battle = pbListScreen(_INTL("SINGLE TRAINER"), TrainerBattleLister.new(0, false))
|
||||||
if battle
|
if battle
|
||||||
trainerdata = battle[1]
|
trainerdata = battle[1]
|
||||||
pbTrainerBattle(trainerdata[0], trainerdata[1], nil, false, trainerdata[4], true)
|
pbTrainerBattle(trainerdata[0], trainerdata[1], nil, false, trainerdata[2], true)
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -295,7 +295,7 @@ DebugMenuCommands.register("testtrainerbattleadvanced", {
|
|||||||
trainerCmd = 0
|
trainerCmd = 0
|
||||||
loop do
|
loop do
|
||||||
trainerCmds = []
|
trainerCmds = []
|
||||||
trainers.each { |t| trainerCmds.push(sprintf("%s x%d", t[1][0].fullname, t[1][2].length)) }
|
trainers.each { |t| trainerCmds.push(sprintf("%s x%d", t[1].full_name, t[1].party_count)) }
|
||||||
trainerCmds.push(_INTL("[Add trainer]"))
|
trainerCmds.push(_INTL("[Add trainer]"))
|
||||||
trainerCmds.push(_INTL("[Set player side size]"))
|
trainerCmds.push(_INTL("[Set player side size]"))
|
||||||
trainerCmds.push(_INTL("[Set opponent side size]"))
|
trainerCmds.push(_INTL("[Set opponent side size]"))
|
||||||
@@ -309,7 +309,7 @@ DebugMenuCommands.register("testtrainerbattleadvanced", {
|
|||||||
elsif size1 < trainers.length
|
elsif size1 < trainers.length
|
||||||
pbMessage(_INTL("Opposing side size is invalid. It should be at least {1}", trainers.length))
|
pbMessage(_INTL("Opposing side size is invalid. It should be at least {1}", trainers.length))
|
||||||
next
|
next
|
||||||
elsif size1 > trainers.length && trainers[0][1][2].length == 1
|
elsif size1 > trainers.length && trainers[0][1].party_count == 1
|
||||||
pbMessage(
|
pbMessage(
|
||||||
_INTL("Opposing side size cannot be {1}, as that requires the first trainer to have 2 or more Pokémon, which they don't.",
|
_INTL("Opposing side size cannot be {1}, as that requires the first trainer to have 2 or more Pokémon, which they don't.",
|
||||||
size1))
|
size1))
|
||||||
@@ -317,18 +317,18 @@ DebugMenuCommands.register("testtrainerbattleadvanced", {
|
|||||||
end
|
end
|
||||||
setBattleRule(sprintf("%dv%d", size0, size1))
|
setBattleRule(sprintf("%dv%d", size0, size1))
|
||||||
battleArgs = []
|
battleArgs = []
|
||||||
trainers.each { |t| battleArgs.push([t[1][0], t[1][2], t[1][3], t[1][1]]) }
|
trainers.each { |t| battleArgs.push(t[1]) }
|
||||||
pbTrainerBattleCore(*battleArgs)
|
pbTrainerBattleCore(*battleArgs)
|
||||||
break
|
break
|
||||||
elsif trainerCmd == trainerCmds.length - 2 # Set opponent side size
|
elsif trainerCmd == trainerCmds.length - 2 # Set opponent side size
|
||||||
if trainers.length == 0 || (trainers.length == 1 && trainers[0][1][2].length == 1)
|
if trainers.length == 0 || (trainers.length == 1 && trainers[0][1].party_count == 1)
|
||||||
pbMessage(_INTL("No trainers were chosen or trainer only has one Pokémon."))
|
pbMessage(_INTL("No trainers were chosen or trainer only has one Pokémon."))
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
maxVal = 2
|
maxVal = 2
|
||||||
maxVal = 3 if trainers.length >= 3 ||
|
maxVal = 3 if trainers.length >= 3 ||
|
||||||
(trainers.length == 2 && trainers[0][1][2].length >= 2) ||
|
(trainers.length == 2 && trainers[0][1].party_count >= 2) ||
|
||||||
trainers[0][1][2].length >= 3
|
trainers[0][1].party_count >= 3
|
||||||
params = ChooseNumberParams.new
|
params = ChooseNumberParams.new
|
||||||
params.setRange(1, maxVal)
|
params.setRange(1, maxVal)
|
||||||
params.setInitialValue(size1)
|
params.setInitialValue(size1)
|
||||||
@@ -353,7 +353,7 @@ DebugMenuCommands.register("testtrainerbattleadvanced", {
|
|||||||
battle = pbListScreen(_INTL("CHOOSE A TRAINER"), TrainerBattleLister.new(0, false))
|
battle = pbListScreen(_INTL("CHOOSE A TRAINER"), TrainerBattleLister.new(0, false))
|
||||||
if battle
|
if battle
|
||||||
trainerdata = battle[1]
|
trainerdata = battle[1]
|
||||||
tr = pbLoadTrainer(trainerdata[0], trainerdata[1], trainerdata[4])
|
tr = pbLoadTrainer(trainerdata[0], trainerdata[1], trainerdata[2])
|
||||||
trainers.push([battle[0], tr])
|
trainers.push([battle[0], tr])
|
||||||
end
|
end
|
||||||
else # Edit a trainer
|
else # Edit a trainer
|
||||||
@@ -362,7 +362,7 @@ DebugMenuCommands.register("testtrainerbattleadvanced", {
|
|||||||
TrainerBattleLister.new(trainers[trainerCmd][0], false))
|
TrainerBattleLister.new(trainers[trainerCmd][0], false))
|
||||||
if battle
|
if battle
|
||||||
trainerdata = battle[1]
|
trainerdata = battle[1]
|
||||||
tr = pbLoadTrainer(trainerdata[0], trainerdata[1], trainerdata[4])
|
tr = pbLoadTrainer(trainerdata[0], trainerdata[1], trainerdata[2])
|
||||||
trainers[trainerCmd] = [battle[0], tr]
|
trainers[trainerCmd] = [battle[0], tr]
|
||||||
end
|
end
|
||||||
elsif pbConfirmMessage(_INTL("Delete this trainer?"))
|
elsif pbConfirmMessage(_INTL("Delete this trainer?"))
|
||||||
@@ -530,8 +530,8 @@ DebugMenuCommands.register("demoparty", {
|
|||||||
party.each do |species|
|
party.each do |species|
|
||||||
pkmn = Pokemon.new(species, 20)
|
pkmn = Pokemon.new(species, 20)
|
||||||
$Trainer.party.push(pkmn)
|
$Trainer.party.push(pkmn)
|
||||||
$Trainer.seen[species] = true
|
$Trainer.set_seen(species)
|
||||||
$Trainer.owned[species] = true
|
$Trainer.set_owned(species)
|
||||||
pbSeenForm(pkmn)
|
pbSeenForm(pkmn)
|
||||||
case species
|
case species
|
||||||
when :PIDGEOTTO
|
when :PIDGEOTTO
|
||||||
@@ -584,8 +584,8 @@ DebugMenuCommands.register("fillboxes", {
|
|||||||
"name" => _INTL("Fill Storage Boxes"),
|
"name" => _INTL("Fill Storage Boxes"),
|
||||||
"description" => _INTL("Add one Pokémon of each species (at Level 50) to storage."),
|
"description" => _INTL("Add one Pokémon of each species (at Level 50) to storage."),
|
||||||
"effect" => proc {
|
"effect" => proc {
|
||||||
$Trainer.formseen = {} if !$Trainer.formseen
|
$Trainer.seen_forms = {} if !$Trainer.seen_forms
|
||||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
$Trainer.last_seen_forms = {} if !$Trainer.last_seen_forms
|
||||||
added = 0
|
added = 0
|
||||||
box_qty = $PokemonStorage.maxPokemon(0)
|
box_qty = $PokemonStorage.maxPokemon(0)
|
||||||
completed = true
|
completed = true
|
||||||
@@ -593,23 +593,23 @@ DebugMenuCommands.register("fillboxes", {
|
|||||||
sp = species_data.species
|
sp = species_data.species
|
||||||
f = species_data.form
|
f = species_data.form
|
||||||
# Record each form of each species as seen and owned
|
# Record each form of each species as seen and owned
|
||||||
$Trainer.formseen[sp] = [[], []] if !$Trainer.formseen[sp]
|
$Trainer.seen_forms[sp] = [[], []] if !$Trainer.seen_forms[sp]
|
||||||
if f == 0
|
if f == 0
|
||||||
$Trainer.seen[sp] = true
|
$Trainer.set_seen(sp)
|
||||||
$Trainer.owned[sp] = true
|
$Trainer.set_owned(sp)
|
||||||
if [PBGenderRates::AlwaysMale, PBGenderRates::AlwaysFemale,
|
if [PBGenderRates::AlwaysMale, PBGenderRates::AlwaysFemale,
|
||||||
PBGenderRates::Genderless].include?(species_data.gender_rate)
|
PBGenderRates::Genderless].include?(species_data.gender_rate)
|
||||||
g = (species_data.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
g = (species_data.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
||||||
$Trainer.formseen[sp][g][f] = true
|
$Trainer.seen_forms[sp][g][f] = true
|
||||||
$Trainer.formlastseen[sp] = [g, f] if f == 0
|
$Trainer.last_seen_forms[sp] = [g, f] if f == 0
|
||||||
else # Both male and female
|
else # Both male and female
|
||||||
$Trainer.formseen[sp][0][f] = true
|
$Trainer.seen_forms[sp][0][f] = true
|
||||||
$Trainer.formseen[sp][1][f] = true
|
$Trainer.seen_forms[sp][1][f] = true
|
||||||
$Trainer.formlastseen[sp] = [0, f] if f == 0
|
$Trainer.last_seen_forms[sp] = [0, f] if f == 0
|
||||||
end
|
end
|
||||||
elsif species_data.real_form_name && !species_data.real_form_name.empty?
|
elsif species_data.real_form_name && !species_data.real_form_name.empty?
|
||||||
g = (species_data.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
g = (species_data.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
||||||
$Trainer.formseen[sp][g][f] = true
|
$Trainer.seen_forms[sp][g][f] = true
|
||||||
end
|
end
|
||||||
# Add Pokémon (if form 0)
|
# Add Pokémon (if form 0)
|
||||||
next if f != 0
|
next if f != 0
|
||||||
@@ -818,7 +818,7 @@ DebugMenuCommands.register("renameplayer", {
|
|||||||
"effect" => proc {
|
"effect" => proc {
|
||||||
trname = pbEnterPlayerName("Your name?", 0, MAX_PLAYER_NAME_SIZE, $Trainer.name)
|
trname = pbEnterPlayerName("Your name?", 0, MAX_PLAYER_NAME_SIZE, $Trainer.name)
|
||||||
if trname == "" && pbConfirmMessage(_INTL("Give yourself a default name?"))
|
if trname == "" && pbConfirmMessage(_INTL("Give yourself a default name?"))
|
||||||
trainertype = pbGetPlayerTrainerType
|
trainertype = $Trainer.trainer_type
|
||||||
gender = pbGetTrainerTypeGender(trainertype)
|
gender = pbGetTrainerTypeGender(trainertype)
|
||||||
trname = pbSuggestTrainerName(gender)
|
trname = pbSuggestTrainerName(gender)
|
||||||
end
|
end
|
||||||
@@ -837,7 +837,7 @@ DebugMenuCommands.register("randomid", {
|
|||||||
"description" => _INTL("Generate a random new ID for the player."),
|
"description" => _INTL("Generate a random new ID for the player."),
|
||||||
"effect" => proc {
|
"effect" => proc {
|
||||||
$Trainer.id = rand(2 ** 16) | rand(2 ** 16) << 16
|
$Trainer.id = rand(2 ** 16) | rand(2 ** 16) << 16
|
||||||
pbMessage(_INTL("The player's ID was changed to {1} (full ID: {2}).", $Trainer.publicID, $Trainer.id))
|
pbMessage(_INTL("The player's ID was changed to {1} (full ID: {2}).", $Trainer.public_ID, $Trainer.id))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -352,7 +352,7 @@ def pbDebugDayCare
|
|||||||
pbDayCareGenerateEgg
|
pbDayCareGenerateEgg
|
||||||
$PokemonGlobal.daycareEgg = 0
|
$PokemonGlobal.daycareEgg = 0
|
||||||
$PokemonGlobal.daycareEggSteps = 0
|
$PokemonGlobal.daycareEggSteps = 0
|
||||||
pbMessage(_INTL("Collected the {1} egg.", $Trainer.lastParty.speciesName))
|
pbMessage(_INTL("Collected the {1} egg.", $Trainer.last_party.speciesName))
|
||||||
refresh = true
|
refresh = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -916,7 +916,7 @@ PokemonDebugMenuCommands.register("ownership", {
|
|||||||
[_INTL("Male"), _INTL("Female"), _INTL("Unknown")], pkmn.owner.gender)
|
[_INTL("Male"), _INTL("Female"), _INTL("Unknown")], pkmn.owner.gender)
|
||||||
pkmn.owner.gender = cmd2 if cmd2 >= 0
|
pkmn.owner.gender = cmd2 if cmd2 >= 0
|
||||||
when 3 # Random foreign ID
|
when 3 # Random foreign ID
|
||||||
pkmn.owner.id = $Trainer.getForeignID
|
pkmn.owner.id = $Trainer.make_foreign_ID
|
||||||
when 4 # Set foreign ID
|
when 4 # Set foreign ID
|
||||||
params = ChooseNumberParams.new
|
params = ChooseNumberParams.new
|
||||||
params.setRange(0, 65535)
|
params.setRange(0, 65535)
|
||||||
|
|||||||
Reference in New Issue
Block a user