diff --git a/Data/Map004.rxdata b/Data/Map004.rxdata index 749c86c79..c12987124 100644 Binary files a/Data/Map004.rxdata and b/Data/Map004.rxdata differ diff --git a/Data/Map020.rxdata b/Data/Map020.rxdata index 4774a9c66..7468a23ff 100644 Binary files a/Data/Map020.rxdata and b/Data/Map020.rxdata differ diff --git a/Data/Map024.rxdata b/Data/Map024.rxdata index 5b9af0f10..95a2cbc55 100644 Binary files a/Data/Map024.rxdata and b/Data/Map024.rxdata differ diff --git a/Data/Map085.rxdata b/Data/Map085.rxdata index cf3993868..30289aade 100644 Binary files a/Data/Map085.rxdata and b/Data/Map085.rxdata differ diff --git a/Data/Map145.rxdata b/Data/Map145.rxdata index b88ece691..9b7c655d0 100644 Binary files a/Data/Map145.rxdata and b/Data/Map145.rxdata differ diff --git a/Data/Map152.rxdata b/Data/Map152.rxdata index d75c8b8c3..76bbe331b 100644 Binary files a/Data/Map152.rxdata and b/Data/Map152.rxdata differ diff --git a/Data/Map180.rxdata b/Data/Map180.rxdata index 96dbebff0..d8cf41144 100644 Binary files a/Data/Map180.rxdata and b/Data/Map180.rxdata differ diff --git a/Data/Map196.rxdata b/Data/Map196.rxdata index f22180564..7887f339c 100644 Binary files a/Data/Map196.rxdata and b/Data/Map196.rxdata differ diff --git a/Data/Map221.rxdata b/Data/Map221.rxdata index 9dff692e8..80137e516 100644 Binary files a/Data/Map221.rxdata and b/Data/Map221.rxdata differ diff --git a/Data/Map337.rxdata b/Data/Map337.rxdata index 72d0c304e..7d729b377 100644 Binary files a/Data/Map337.rxdata and b/Data/Map337.rxdata differ diff --git a/Data/Map355.rxdata b/Data/Map355.rxdata index 9dbca2a49..1422b9da2 100644 Binary files a/Data/Map355.rxdata and b/Data/Map355.rxdata differ diff --git a/Data/Map363.rxdata b/Data/Map363.rxdata index a0dfc79dc..1e0f8f312 100644 Binary files a/Data/Map363.rxdata and b/Data/Map363.rxdata differ diff --git a/Data/Map377.rxdata b/Data/Map377.rxdata index 4d3912eec..fc3051639 100644 Binary files a/Data/Map377.rxdata and b/Data/Map377.rxdata differ diff --git a/Data/Map386.rxdata b/Data/Map386.rxdata index 6df4ee77b..1dd38481d 100644 Binary files a/Data/Map386.rxdata and b/Data/Map386.rxdata differ diff --git a/Data/Map479.rxdata b/Data/Map479.rxdata index fc45a76d2..6b4e22652 100644 Binary files a/Data/Map479.rxdata and b/Data/Map479.rxdata differ diff --git a/Data/Map524.rxdata b/Data/Map524.rxdata index 49f3f2be0..130555711 100644 Binary files a/Data/Map524.rxdata and b/Data/Map524.rxdata differ diff --git a/Data/Map542.rxdata b/Data/Map542.rxdata index 0005ba0d4..b7a38a84c 100644 Binary files a/Data/Map542.rxdata and b/Data/Map542.rxdata differ diff --git a/Data/Map647.rxdata b/Data/Map647.rxdata index ac826ce96..2abc854f2 100644 Binary files a/Data/Map647.rxdata and b/Data/Map647.rxdata differ diff --git a/Data/Map648.rxdata b/Data/Map648.rxdata index da1a0d431..a8483108b 100644 Binary files a/Data/Map648.rxdata and b/Data/Map648.rxdata differ diff --git a/Data/Map724.rxdata b/Data/Map724.rxdata index c4d5a2d6d..d31c2ec6e 100644 Binary files a/Data/Map724.rxdata and b/Data/Map724.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 3c142bd5e..be4af9151 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb b/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb index 8bcdc30e4..16e92671b 100644 --- a/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb +++ b/Data/Scripts/011_Battle/001_Battler/001_PokeBattle_Battler.rb @@ -296,6 +296,19 @@ class PokeBattle_Battler return @pokemon && @pokemon.isSpecies?(species) end + def hasBodyOf?(check_species) + return @pokemon.hasBodyOf?(check_species) + end + + def hasHeadOf?(check_species) + return @pokemon.hasHeadOf?(check_species) + end + + + def isFusionOf(check_species) + return @pokemon.isFusionOf(check_species) + end + # Returns the active types of this Pokémon. The array should not include the # same type more than once, and should not include any invalid type numbers # (e.g. -1). diff --git a/Data/Scripts/011_Battle/004_BattleHandlers_Items.rb b/Data/Scripts/011_Battle/004_BattleHandlers_Items.rb index 3056211e9..5c2646bb6 100644 --- a/Data/Scripts/011_Battle/004_BattleHandlers_Items.rb +++ b/Data/Scripts/011_Battle/004_BattleHandlers_Items.rb @@ -20,7 +20,7 @@ BattleHandlers::SpeedCalcItem.copy(:MACHOBRACE,:POWERANKLET,:POWERBAND, BattleHandlers::SpeedCalcItem.add(:QUICKPOWDER, proc { |item,battler,mult| - next mult*2 if battler.isSpecies?(:DITTO) && + next mult*2 if battler.isFusionOf(:DITTO) && !battler.effects[PBEffects::Transform] } ) @@ -444,7 +444,7 @@ BattleHandlers::AccuracyCalcTargetItem.copy(:BRIGHTPOWDER,:LAXINCENSE) BattleHandlers::DamageCalcUserItem.add(:ADAMANTORB, proc { |item,user,target,move,mults,baseDmg,type| - if user.isSpecies?(:DIALGA) && (type == :DRAGON || type == :STEEL) + if user.isFusionOf(:DIALGA) && (type == :DRAGON || type == :STEEL) mults[:base_damage_multiplier] *= 1.2 end } @@ -572,7 +572,7 @@ BattleHandlers::DamageCalcUserItem.add(:GRASSGEM, BattleHandlers::DamageCalcUserItem.add(:GRISEOUSORB, proc { |item,user,target,move,mults,baseDmg,type| - if user.isSpecies?(:GIRATINA) && (type == :DRAGON || type == :GHOST) + if user.isFusionOf(:GIRATINA) && (type == :DRAGON || type == :GHOST) mults[:base_damage_multiplier] *= 1.2 end } @@ -608,7 +608,7 @@ BattleHandlers::DamageCalcUserItem.add(:LIFEORB, BattleHandlers::DamageCalcUserItem.add(:LIGHTBALL, proc { |item,user,target,move,mults,baseDmg,type| - if user.isSpecies?(:PIKACHU) + if user.isFusionOf(:PIKACHU) mults[:attack_multiplier] *= 2 end } @@ -616,7 +616,7 @@ BattleHandlers::DamageCalcUserItem.add(:LIGHTBALL, BattleHandlers::DamageCalcUserItem.add(:LUSTROUSORB, proc { |item,user,target,move,mults,baseDmg,type| - if user.isSpecies?(:PALKIA) && (type == :DRAGON || type == :WATER) + if user.isFusionOf(:PALKIA) && (type == :DRAGON || type == :WATER) mults[:base_damage_multiplier] *= 1.2 end } @@ -745,7 +745,7 @@ BattleHandlers::DamageCalcUserItem.copy(:SOFTSAND,:EARTHPLATE) BattleHandlers::DamageCalcUserItem.add(:SOULDEW, proc { |item,user,target,move,mults,baseDmg,type| - next if !user.isSpecies?(:LATIAS) && !user.isSpecies?(:LATIOS) + next if !user.isFusionOf(:LATIAS) && !user.isFusionOf?(:LATIOS) if Settings::SOUL_DEW_POWERS_UP_TYPES mults[:final_damage_multiplier] *= 1.2 if type == :PSYCHIC || type == :DRAGON else @@ -770,12 +770,15 @@ BattleHandlers::DamageCalcUserItem.add(:STEELGEM, } ) + + + BattleHandlers::DamageCalcUserItem.add(:THICKCLUB, - proc { |item,user,target,move,mults,baseDmg,type| - if (user.isSpecies?(:CUBONE) || user.isSpecies?(:MAROWAK)) && move.physicalMove? - mults[:attack_multiplier] *= 2 - end - } + proc { |item,user,target,move,mults,baseDmg,type| + if (user.isFusionOf(:CUBONE) || user.isFusionOf(:MAROWAK)) && move.physicalMove? + mults[:attack_multiplier] *= 2 + end + } ) BattleHandlers::DamageCalcUserItem.add(:TWISTEDSPOON, @@ -887,7 +890,7 @@ BattleHandlers::DamageCalcTargetItem.add(:KEBIABERRY, BattleHandlers::DamageCalcTargetItem.add(:METALPOWDER, proc { |item,user,target,move,mults,baseDmg,type| - if target.isSpecies?(:DITTO) && !target.effects[PBEffects::Transform] + if target.isFusionOf(:DITTO) && !target.effects[PBEffects::Transform] mults[:defense_multiplier] *= 1.5 end } @@ -932,7 +935,7 @@ BattleHandlers::DamageCalcTargetItem.add(:SHUCABERRY, BattleHandlers::DamageCalcTargetItem.add(:SOULDEW, proc { |item,user,target,move,mults,baseDmg,type| next if Settings::SOUL_DEW_POWERS_UP_TYPES - next if !target.isSpecies?(:LATIAS) && !target.isSpecies?(:LATIOS) + next if !target.isFusionOf(:LATIAS) && !target.isFusionOf?(:LATIOS) if move.specialMove? && !user.battle.rules["souldewclause"] mults[:defense_multiplier] *= 1.5 end @@ -963,7 +966,7 @@ BattleHandlers::DamageCalcTargetItem.add(:YACHEBERRY, BattleHandlers::CriticalCalcUserItem.add(:LUCKYPUNCH, proc { |item,user,target,c| - next c+2 if user.isSpecies?(:CHANSEY) + next c+2 if user.isFusionOf(:CHANSEY) } ) @@ -977,7 +980,7 @@ BattleHandlers::CriticalCalcUserItem.copy(:RAZORCLAW,:SCOPELENS) BattleHandlers::CriticalCalcUserItem.add(:STICK, proc { |item,user,target,c| - next c+2 if user.isSpecies?(:FARFETCHD) + next c+2 if user.isFusionOf(:FARFETCHD) } ) diff --git a/Data/Scripts/014_Pokemon/001_Pokemon.rb b/Data/Scripts/014_Pokemon/001_Pokemon.rb index 64d501ac9..38da45b97 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon.rb @@ -144,6 +144,29 @@ class Pokemon @species == GameData::Species.get(check_species).species) end + def hasBodyOf?(check_species) + if !self.isFusion? + return isSpecies(check_species) + end + bodySpecies = getBodyID(species) + checkSpeciesId = getID(nil,check_species) + return bodySpecies == checkSpeciesId + end + + def hasHeadOf?(check_species) + if !self.isFusion? + return isSpecies(check_species) + end + headSpecies = getHeadID(species) + checkSpeciesId = getID(nil,check_species) + return headSpecies == checkSpeciesId + end + + + def isFusionOf(check_species) + return hasBodyOf?(check_species) || hasHeadOf?(check_species) + end + def dexNum return species_data.id_number end diff --git a/Data/Scripts/016_UI/005_UI_Party.rb b/Data/Scripts/016_UI/005_UI_Party.rb index 5b4a12bc3..e06877790 100644 --- a/Data/Scripts/016_UI/005_UI_Party.rb +++ b/Data/Scripts/016_UI/005_UI_Party.rb @@ -4,24 +4,24 @@ class PokemonPartyConfirmCancelSprite < SpriteWrapper attr_reader :selected - def initialize(text,x,y,narrowbox=false,viewport=nil) + def initialize(text, x, y, narrowbox = false, viewport = nil) super(viewport) @refreshBitmap = true - @bgsprite = ChangelingSprite.new(0,0,viewport) + @bgsprite = ChangelingSprite.new(0, 0, viewport) if narrowbox - @bgsprite.addBitmap("desel","Graphics/Pictures/Party/icon_cancel_narrow") - @bgsprite.addBitmap("sel","Graphics/Pictures/Party/icon_cancel_narrow_sel") + @bgsprite.addBitmap("desel", "Graphics/Pictures/Party/icon_cancel_narrow") + @bgsprite.addBitmap("sel", "Graphics/Pictures/Party/icon_cancel_narrow_sel") else - @bgsprite.addBitmap("desel","Graphics/Pictures/Party/icon_cancel") - @bgsprite.addBitmap("sel","Graphics/Pictures/Party/icon_cancel_sel") + @bgsprite.addBitmap("desel", "Graphics/Pictures/Party/icon_cancel") + @bgsprite.addBitmap("sel", "Graphics/Pictures/Party/icon_cancel_sel") end @bgsprite.changeBitmap("desel") - @overlaysprite = BitmapSprite.new(@bgsprite.bitmap.width,@bgsprite.bitmap.height,viewport) - @overlaysprite.z = self.z+1 + @overlaysprite = BitmapSprite.new(@bgsprite.bitmap.width, @bgsprite.bitmap.height, viewport) + @overlaysprite.z = self.z + 1 pbSetSystemFont(@overlaysprite.bitmap) @yoffset = 8 - textpos = [[text,56,(narrowbox) ? -4 : 2,2,Color.new(248,248,248),Color.new(40,40,40)]] - pbDrawTextPositions(@overlaysprite.bitmap,textpos) + textpos = [[text, 56, (narrowbox) ? -4 : 2, 2, Color.new(248, 248, 248), Color.new(40, 40, 40)]] + pbDrawTextPositions(@overlaysprite.bitmap, textpos) self.x = x self.y = y end @@ -54,7 +54,7 @@ class PokemonPartyConfirmCancelSprite < SpriteWrapper end def selected=(value) - if @selected!=value + if @selected != value @selected = value refresh end @@ -63,13 +63,13 @@ class PokemonPartyConfirmCancelSprite < SpriteWrapper def refresh if @bgsprite && !@bgsprite.disposed? @bgsprite.changeBitmap((@selected) ? "sel" : "desel") - @bgsprite.x = self.x - @bgsprite.y = self.y + @bgsprite.x = self.x + @bgsprite.y = self.y @bgsprite.color = self.color end if @overlaysprite && !@overlaysprite.disposed? - @overlaysprite.x = self.x - @overlaysprite.y = self.y + @overlaysprite.x = self.x + @overlaysprite.y = self.y @overlaysprite.color = self.color end end @@ -79,8 +79,8 @@ end # #=============================================================================== class PokemonPartyCancelSprite < PokemonPartyConfirmCancelSprite - def initialize(viewport=nil) - super(_INTL("CANCEL"),398,328,false,viewport) + def initialize(viewport = nil) + super(_INTL("CANCEL"), 398, 328, false, viewport) end end @@ -88,8 +88,8 @@ end # #=============================================================================== class PokemonPartyConfirmSprite < PokemonPartyConfirmCancelSprite - def initialize(viewport=nil) - super(_INTL("CONFIRM"),398,308,true,viewport) + def initialize(viewport = nil) + super(_INTL("CONFIRM"), 398, 308, true, viewport) end end @@ -97,8 +97,8 @@ end # #=============================================================================== class PokemonPartyCancelSprite2 < PokemonPartyConfirmCancelSprite - def initialize(viewport=nil) - super(_INTL("CANCEL"),398,346,true,viewport) + def initialize(viewport = nil) + super(_INTL("CANCEL"), 398, 346, true, viewport) end end @@ -106,7 +106,7 @@ end # #=============================================================================== class Window_CommandPokemonColor < Window_CommandPokemon - def initialize(commands,width=nil) + def initialize(commands, width = nil) @colorKey = [] for i in 0...commands.length if commands[i].is_a?(Array) @@ -114,20 +114,20 @@ class Window_CommandPokemonColor < Window_CommandPokemon commands[i] = commands[i][0] end end - super(commands,width) + super(commands, width) end - def drawItem(index,_count,rect) + def drawItem(index, _count, rect) pbSetSystemFont(self.contents) if @starting - rect = drawCursor(index,rect) - base = self.baseColor + rect = drawCursor(index, rect) + base = self.baseColor shadow = self.shadowColor - if @colorKey[index] && @colorKey[index]==1 - base = Color.new(0,80,160) - shadow = Color.new(128,192,240) + if @colorKey[index] && @colorKey[index] == 1 + base = Color.new(0, 80, 160) + shadow = Color.new(128, 192, 240) end - pbDrawShadowText(self.contents,rect.x,rect.y,rect.width,rect.height, - @commands[index],base,shadow) + pbDrawShadowText(self.contents, rect.x, rect.y, rect.width, rect.height, + @commands[index], base, shadow) end end @@ -137,7 +137,7 @@ end class PokemonPartyBlankPanel < SpriteWrapper attr_accessor :text - def initialize(_pokemon,index,viewport=nil) + def initialize(_pokemon, index, viewport = nil) super(viewport) self.x = (index % 2) * Graphics.width / 2 self.y = 16 * (index % 2) + 96 * (index / 2) @@ -151,12 +151,30 @@ class PokemonPartyBlankPanel < SpriteWrapper super end - def selected; return false; end - def selected=(value); end - def preselected; return false; end - def preselected=(value); end - def switching; return false; end - def switching=(value); end + def selected + return false; + end + + def selected=(value) + ; + end + + def preselected + return false; + end + + def preselected=(value) + ; + end + + def switching + return false; + end + + def switching=(value) + ; + end + def refresh; end end @@ -171,57 +189,58 @@ class PokemonPartyPanel < SpriteWrapper attr_reader :switching attr_reader :text - def initialize(pokemon,index,viewport=nil) + def initialize(pokemon, index, viewport = nil) super(viewport) @pokemon = pokemon - @active = (index==0) # true = rounded panel, false = rectangular panel + @active = (index == 0) # true = rounded panel, false = rectangular panel @refreshing = true self.x = (index % 2) * Graphics.width / 2 self.y = 16 * (index % 2) + 96 * (index / 2) - @panelbgsprite = ChangelingSprite.new(0,0,viewport) + @panelbgsprite = ChangelingSprite.new(0, 0, viewport) @panelbgsprite.z = self.z - if @active # Rounded panel - @panelbgsprite.addBitmap("able","Graphics/Pictures/Party/panel_round") - @panelbgsprite.addBitmap("ablesel","Graphics/Pictures/Party/panel_round_sel") - @panelbgsprite.addBitmap("fainted","Graphics/Pictures/Party/panel_round_faint") - @panelbgsprite.addBitmap("faintedsel","Graphics/Pictures/Party/panel_round_faint_sel") - @panelbgsprite.addBitmap("swap","Graphics/Pictures/Party/panel_round_swap") - @panelbgsprite.addBitmap("swapsel","Graphics/Pictures/Party/panel_round_swap_sel") - @panelbgsprite.addBitmap("swapsel2","Graphics/Pictures/Party/panel_round_swap_sel2") - else # Rectangular panel - @panelbgsprite.addBitmap("able","Graphics/Pictures/Party/panel_rect") - @panelbgsprite.addBitmap("ablesel","Graphics/Pictures/Party/panel_rect_sel") - @panelbgsprite.addBitmap("fainted","Graphics/Pictures/Party/panel_rect_faint") - @panelbgsprite.addBitmap("faintedsel","Graphics/Pictures/Party/panel_rect_faint_sel") - @panelbgsprite.addBitmap("swap","Graphics/Pictures/Party/panel_rect_swap") - @panelbgsprite.addBitmap("swapsel","Graphics/Pictures/Party/panel_rect_swap_sel") - @panelbgsprite.addBitmap("swapsel2","Graphics/Pictures/Party/panel_rect_swap_sel2") + if @active # Rounded panel + @panelbgsprite.addBitmap("able", "Graphics/Pictures/Party/panel_round") + @panelbgsprite.addBitmap("ablesel", "Graphics/Pictures/Party/panel_round_sel") + @panelbgsprite.addBitmap("fainted", "Graphics/Pictures/Party/panel_round_faint") + @panelbgsprite.addBitmap("faintedsel", "Graphics/Pictures/Party/panel_round_faint_sel") + @panelbgsprite.addBitmap("swap", "Graphics/Pictures/Party/panel_round_swap") + @panelbgsprite.addBitmap("swapsel", "Graphics/Pictures/Party/panel_round_swap_sel") + @panelbgsprite.addBitmap("swapsel2", "Graphics/Pictures/Party/panel_round_swap_sel2") + else + # Rectangular panel + @panelbgsprite.addBitmap("able", "Graphics/Pictures/Party/panel_rect") + @panelbgsprite.addBitmap("ablesel", "Graphics/Pictures/Party/panel_rect_sel") + @panelbgsprite.addBitmap("fainted", "Graphics/Pictures/Party/panel_rect_faint") + @panelbgsprite.addBitmap("faintedsel", "Graphics/Pictures/Party/panel_rect_faint_sel") + @panelbgsprite.addBitmap("swap", "Graphics/Pictures/Party/panel_rect_swap") + @panelbgsprite.addBitmap("swapsel", "Graphics/Pictures/Party/panel_rect_swap_sel") + @panelbgsprite.addBitmap("swapsel2", "Graphics/Pictures/Party/panel_rect_swap_sel2") end - @hpbgsprite = ChangelingSprite.new(0,0,viewport) - @hpbgsprite.z = self.z+1 - @hpbgsprite.addBitmap("able","Graphics/Pictures/Party/overlay_hp_back") - @hpbgsprite.addBitmap("fainted","Graphics/Pictures/Party/overlay_hp_back_faint") - @hpbgsprite.addBitmap("swap","Graphics/Pictures/Party/overlay_hp_back_swap") - @ballsprite = ChangelingSprite.new(0,0,viewport) - @ballsprite.z = self.z+1 - @ballsprite.addBitmap("desel","Graphics/Pictures/Party/icon_ball") - @ballsprite.addBitmap("sel","Graphics/Pictures/Party/icon_ball_sel") - @pkmnsprite = PokemonIconSprite.new(pokemon,viewport) + @hpbgsprite = ChangelingSprite.new(0, 0, viewport) + @hpbgsprite.z = self.z + 1 + @hpbgsprite.addBitmap("able", "Graphics/Pictures/Party/overlay_hp_back") + @hpbgsprite.addBitmap("fainted", "Graphics/Pictures/Party/overlay_hp_back_faint") + @hpbgsprite.addBitmap("swap", "Graphics/Pictures/Party/overlay_hp_back_swap") + @ballsprite = ChangelingSprite.new(0, 0, viewport) + @ballsprite.z = self.z + 1 + @ballsprite.addBitmap("desel", "Graphics/Pictures/Party/icon_ball") + @ballsprite.addBitmap("sel", "Graphics/Pictures/Party/icon_ball_sel") + @pkmnsprite = PokemonIconSprite.new(pokemon, viewport) @pkmnsprite.setOffset(PictureOrigin::Center) @pkmnsprite.active = @active - @pkmnsprite.z = self.z+2 - @helditemsprite = HeldItemIconSprite.new(0,0,@pokemon,viewport) - @helditemsprite.z = self.z+3 - @overlaysprite = BitmapSprite.new(Graphics.width,Graphics.height,viewport) - @overlaysprite.z = self.z+4 - @hpbar = AnimatedBitmap.new("Graphics/Pictures/Party/overlay_hp") + @pkmnsprite.z = self.z + 2 + @helditemsprite = HeldItemIconSprite.new(0, 0, @pokemon, viewport) + @helditemsprite.z = self.z + 3 + @overlaysprite = BitmapSprite.new(Graphics.width, Graphics.height, viewport) + @overlaysprite.z = self.z + 4 + @hpbar = AnimatedBitmap.new("Graphics/Pictures/Party/overlay_hp") @statuses = AnimatedBitmap.new(_INTL("Graphics/Pictures/statuses")) - @selected = false - @preselected = false - @switching = false - @text = nil + @selected = false + @preselected = false + @switching = false + @text = nil @refreshBitmap = true - @refreshing = false + @refreshing = false refresh end @@ -254,7 +273,7 @@ class PokemonPartyPanel < SpriteWrapper end def text=(value) - if @text!=value + if @text != value @text = value @refreshBitmap = true refresh @@ -270,27 +289,29 @@ class PokemonPartyPanel < SpriteWrapper end def selected=(value) - if @selected!=value + if @selected != value @selected = value refresh end end def preselected=(value) - if @preselected!=value + if @preselected != value @preselected = value refresh end end def switching=(value) - if @switching!=value + if @switching != value @switching = value refresh end end - def hp; return @pokemon.hp; end + def hp + return @pokemon.hp; + end def refresh return if disposed? @@ -298,80 +319,90 @@ class PokemonPartyPanel < SpriteWrapper @refreshing = true if @panelbgsprite && !@panelbgsprite.disposed? if self.selected - if self.preselected; @panelbgsprite.changeBitmap("swapsel2") - elsif @switching; @panelbgsprite.changeBitmap("swapsel") - elsif @pokemon.fainted?; @panelbgsprite.changeBitmap("faintedsel") - else; @panelbgsprite.changeBitmap("ablesel") + if self.preselected; + @panelbgsprite.changeBitmap("swapsel2") + elsif @switching; + @panelbgsprite.changeBitmap("swapsel") + elsif @pokemon.fainted?; + @panelbgsprite.changeBitmap("faintedsel") + else + ; @panelbgsprite.changeBitmap("ablesel") end else - if self.preselected; @panelbgsprite.changeBitmap("swap") - elsif @pokemon.fainted?; @panelbgsprite.changeBitmap("fainted") - else; @panelbgsprite.changeBitmap("able") + if self.preselected; + @panelbgsprite.changeBitmap("swap") + elsif @pokemon.fainted?; + @panelbgsprite.changeBitmap("fainted") + else + ; @panelbgsprite.changeBitmap("able") end end - @panelbgsprite.x = self.x - @panelbgsprite.y = self.y + @panelbgsprite.x = self.x + @panelbgsprite.y = self.y @panelbgsprite.color = self.color end if @hpbgsprite && !@hpbgsprite.disposed? - @hpbgsprite.visible = (!@pokemon.egg? && !(@text && @text.length>0)) + @hpbgsprite.visible = (!@pokemon.egg? && !(@text && @text.length > 0)) if @hpbgsprite.visible - if self.preselected || (self.selected && @switching); @hpbgsprite.changeBitmap("swap") - elsif @pokemon.fainted?; @hpbgsprite.changeBitmap("fainted") - else; @hpbgsprite.changeBitmap("able") + if self.preselected || (self.selected && @switching); + @hpbgsprite.changeBitmap("swap") + elsif @pokemon.fainted?; + @hpbgsprite.changeBitmap("fainted") + else + ; @hpbgsprite.changeBitmap("able") end - @hpbgsprite.x = self.x+96 - @hpbgsprite.y = self.y+50 + @hpbgsprite.x = self.x + 96 + @hpbgsprite.y = self.y + 50 @hpbgsprite.color = self.color end end if @ballsprite && !@ballsprite.disposed? @ballsprite.changeBitmap((self.selected) ? "sel" : "desel") - @ballsprite.x = self.x+10 - @ballsprite.y = self.y + @ballsprite.x = self.x + 10 + @ballsprite.y = self.y @ballsprite.color = self.color end if @pkmnsprite && !@pkmnsprite.disposed? - @pkmnsprite.x = self.x+60 - @pkmnsprite.y = self.y+40 - @pkmnsprite.color = self.color + @pkmnsprite.x = self.x + 60 + @pkmnsprite.y = self.y + 40 + @pkmnsprite.color = self.color @pkmnsprite.selected = self.selected end if @helditemsprite && !@helditemsprite.disposed? if @helditemsprite.visible - @helditemsprite.x = self.x+62 - @helditemsprite.y = self.y+48 + @helditemsprite.x = self.x + 62 + @helditemsprite.y = self.y + 48 @helditemsprite.color = self.color end end if @overlaysprite && !@overlaysprite.disposed? - @overlaysprite.x = self.x - @overlaysprite.y = self.y + @overlaysprite.x = self.x + @overlaysprite.y = self.y @overlaysprite.color = self.color end if @refreshBitmap @refreshBitmap = false @overlaysprite.bitmap.clear if @overlaysprite.bitmap - basecolor = Color.new(248,248,248) - shadowcolor = Color.new(40,40,40) + basecolor = Color.new(248, 248, 248) + shadowcolor = Color.new(40, 40, 40) pbSetSystemFont(@overlaysprite.bitmap) textpos = [] # Draw Pokémon name - textpos.push([@pokemon.name,96,10,0,basecolor,shadowcolor]) + textpos.push([@pokemon.name, 96, 10, 0, basecolor, shadowcolor]) if !@pokemon.egg? - if !@text || @text.length==0 + if !@text || @text.length == 0 # Draw HP numbers - textpos.push([sprintf("% 3d /% 3d",@pokemon.hp,@pokemon.totalhp),224,54,1,basecolor,shadowcolor]) + textpos.push([sprintf("% 3d /% 3d", @pokemon.hp, @pokemon.totalhp), 224, 54, 1, basecolor, shadowcolor]) # Draw HP bar - if @pokemon.hp>0 - w = @pokemon.hp*96*1.0/@pokemon.totalhp - w = 1 if w<1 - w = ((w/2).round)*2 + if @pokemon.hp > 0 + w = @pokemon.hp * 96 * 1.0 / @pokemon.totalhp + w = 1 if w < 1 + w = ((w / 2).round) * 2 hpzone = 0 - hpzone = 1 if @pokemon.hp<=(@pokemon.totalhp/2).floor - hpzone = 2 if @pokemon.hp<=(@pokemon.totalhp/4).floor - hprect = Rect.new(0,hpzone*8,w,8) - @overlaysprite.bitmap.blt(128,52,@hpbar.bitmap,hprect) + hpzone = 1 if @pokemon.hp <= (@pokemon.totalhp / 2).floor + hpzone = 2 if @pokemon.hp <= (@pokemon.totalhp / 4).floor + hprect = Rect.new(0, hpzone * 8, w, 8) + @overlaysprite.bitmap.blt(128, 52, @hpbar.bitmap, hprect) end # Draw status status = 0 @@ -384,37 +415,37 @@ class PokemonPartyPanel < SpriteWrapper end status -= 1 if status >= 0 - statusrect = Rect.new(0,16*status,44,16) - @overlaysprite.bitmap.blt(78,68,@statuses.bitmap,statusrect) + statusrect = Rect.new(0, 16 * status, 44, 16) + @overlaysprite.bitmap.blt(78, 68, @statuses.bitmap, statusrect) end end # Draw gender symbol if @pokemon.male? - textpos.push([_INTL("♂"),224,10,0,Color.new(0,112,248),Color.new(120,184,232)]) + textpos.push([_INTL("♂"), 224, 10, 0, Color.new(0, 112, 248), Color.new(120, 184, 232)]) elsif @pokemon.female? - textpos.push([_INTL("♀"),224,10,0,Color.new(232,32,16),Color.new(248,168,184)]) + textpos.push([_INTL("♀"), 224, 10, 0, Color.new(232, 32, 16), Color.new(248, 168, 184)]) end # Draw shiny icon if @pokemon.shiny? - pbDrawImagePositions(@overlaysprite.bitmap,[[ - "Graphics/Pictures/shiny",80,48,0,0,16,16]]) + pbDrawImagePositions(@overlaysprite.bitmap, [[ + "Graphics/Pictures/shiny", 80, 48, 0, 0, 16, 16]]) end end - pbDrawTextPositions(@overlaysprite.bitmap,textpos) + pbDrawTextPositions(@overlaysprite.bitmap, textpos) # Draw level text if !@pokemon.egg? - pbDrawImagePositions(@overlaysprite.bitmap,[[ - "Graphics/Pictures/Party/overlay_lv",20,70,0,0,22,14]]) + pbDrawImagePositions(@overlaysprite.bitmap, [[ + "Graphics/Pictures/Party/overlay_lv", 20, 70, 0, 0, 22, 14]]) pbSetSmallFont(@overlaysprite.bitmap) - pbDrawTextPositions(@overlaysprite.bitmap,[ - [@pokemon.level.to_s,42,57,0,basecolor,shadowcolor] + pbDrawTextPositions(@overlaysprite.bitmap, [ + [@pokemon.level.to_s, 42, 57, 0, basecolor, shadowcolor] ]) end # Draw annotation text - if @text && @text.length>0 + if @text && @text.length > 0 pbSetSystemFont(@overlaysprite.bitmap) - pbDrawTextPositions(@overlaysprite.bitmap,[ - [@text,96,52,0,basecolor,shadowcolor] + pbDrawTextPositions(@overlaysprite.bitmap, [ + [@text, 96, 52, 0, basecolor, shadowcolor] ]) end end @@ -435,29 +466,29 @@ end # Pokémon party visuals #=============================================================================== class PokemonParty_Scene - def pbStartScene(party,starthelptext,annotations=nil,multiselect=false) + def pbStartScene(party, starthelptext, annotations = nil, multiselect = false) @sprites = {} @party = party - @viewport = Viewport.new(0,0,Graphics.width,Graphics.height) + @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) @viewport.z = 99999 @multiselect = multiselect - addBackgroundPlane(@sprites,"partybg","Party/bg",@viewport) + addBackgroundPlane(@sprites, "partybg", "Party/bg", @viewport) @sprites["messagebox"] = Window_AdvancedTextPokemon.new("") - @sprites["messagebox"].viewport = @viewport - @sprites["messagebox"].visible = false + @sprites["messagebox"].viewport = @viewport + @sprites["messagebox"].visible = false @sprites["messagebox"].letterbyletter = true - pbBottomLeftLines(@sprites["messagebox"],2) + pbBottomLeftLines(@sprites["messagebox"], 2) @sprites["helpwindow"] = Window_UnformattedTextPokemon.new(starthelptext) @sprites["helpwindow"].viewport = @viewport - @sprites["helpwindow"].visible = true - pbBottomLeftLines(@sprites["helpwindow"],1) + @sprites["helpwindow"].visible = true + pbBottomLeftLines(@sprites["helpwindow"], 1) pbSetHelpText(starthelptext) # Add party Pokémon sprites for i in 0...Settings::MAX_PARTY_SIZE if @party[i] - @sprites["pokemon#{i}"] = PokemonPartyPanel.new(@party[i],i,@viewport) + @sprites["pokemon#{i}"] = PokemonPartyPanel.new(@party[i], i, @viewport) else - @sprites["pokemon#{i}"] = PokemonPartyBlankPanel.new(@party[i],i,@viewport) + @sprites["pokemon#{i}"] = PokemonPartyBlankPanel.new(@party[i], i, @viewport) end @sprites["pokemon#{i}"].text = annotations[i] if annotations end @@ -480,7 +511,7 @@ class PokemonParty_Scene end def pbDisplay(text) - @sprites["messagebox"].text = text + @sprites["messagebox"].text = text @sprites["messagebox"].visible = true @sprites["helpwindow"].visible = false pbPlayDecisionSE @@ -505,14 +536,14 @@ class PokemonParty_Scene def pbDisplayConfirm(text) ret = -1 - @sprites["messagebox"].text = text + @sprites["messagebox"].text = text @sprites["messagebox"].visible = true @sprites["helpwindow"].visible = false - using(cmdwindow = Window_CommandPokemon.new([_INTL("Yes"),_INTL("No")])) { + using(cmdwindow = Window_CommandPokemon.new([_INTL("Yes"), _INTL("No")])) { cmdwindow.visible = false pbBottomRight(cmdwindow) cmdwindow.y -= @sprites["messagebox"].height - cmdwindow.z = @viewport.z+1 + cmdwindow.z = @viewport.z + 1 loop do Graphics.update Input.update @@ -524,7 +555,7 @@ class PokemonParty_Scene ret = false break elsif Input.trigger?(Input::USE) && @sprites["messagebox"].resume - ret = (cmdwindow.index==0) + ret = (cmdwindow.index == 0) break end end @@ -535,15 +566,15 @@ class PokemonParty_Scene return ret end - def pbShowCommands(helptext,commands,index=0) + def pbShowCommands(helptext, commands, index = 0) ret = -1 helpwindow = @sprites["helpwindow"] helpwindow.visible = true using(cmdwindow = Window_CommandPokemonColor.new(commands)) { - cmdwindow.z = @viewport.z+1 + cmdwindow.z = @viewport.z + 1 cmdwindow.index = index pbBottomRight(cmdwindow) - helpwindow.resizeHeightToFit(helptext,Graphics.width-cmdwindow.width) + helpwindow.resizeHeightToFit(helptext, Graphics.width - cmdwindow.width) helpwindow.text = helptext pbBottomLeft(helpwindow) loop do @@ -567,14 +598,14 @@ class PokemonParty_Scene def pbSetHelpText(helptext) helpwindow = @sprites["helpwindow"] - pbBottomLeftLines(helpwindow,1) + pbBottomLeftLines(helpwindow, 1) helpwindow.text = helptext helpwindow.width = 398 helpwindow.visible = true end def pbHasAnnotations? - return @sprites["pokemon0"].text!=nil + return @sprites["pokemon0"].text != nil end def pbAnnotate(annot) @@ -587,7 +618,7 @@ class PokemonParty_Scene @activecmd = item numsprites = Settings::MAX_PARTY_SIZE + ((@multiselect) ? 2 : 1) for i in 0...numsprites - @sprites["pokemon#{i}"].selected = (i==@activecmd) + @sprites["pokemon#{i}"].selected = (i == @activecmd) end end @@ -595,39 +626,39 @@ class PokemonParty_Scene @activecmd = item end - def pbSwitchBegin(oldid,newid) + def pbSwitchBegin(oldid, newid) pbSEPlay("GUI party switch") oldsprite = @sprites["pokemon#{oldid}"] newsprite = @sprites["pokemon#{newid}"] - timeTaken = Graphics.frame_rate*4/10 - distancePerFrame = (Graphics.width/(2.0*timeTaken)).ceil + timeTaken = Graphics.frame_rate * 4 / 10 + distancePerFrame = (Graphics.width / (2.0 * timeTaken)).ceil timeTaken.times do - oldsprite.x += (oldid&1)==0 ? -distancePerFrame : distancePerFrame - newsprite.x += (newid&1)==0 ? -distancePerFrame : distancePerFrame + oldsprite.x += (oldid & 1) == 0 ? -distancePerFrame : distancePerFrame + newsprite.x += (newid & 1) == 0 ? -distancePerFrame : distancePerFrame Graphics.update Input.update self.update end end - def pbSwitchEnd(oldid,newid) + def pbSwitchEnd(oldid, newid) pbSEPlay("GUI party switch") oldsprite = @sprites["pokemon#{oldid}"] newsprite = @sprites["pokemon#{newid}"] oldsprite.pokemon = @party[oldid] newsprite.pokemon = @party[newid] - timeTaken = Graphics.frame_rate*4/10 - distancePerFrame = (Graphics.width/(2.0*timeTaken)).ceil + timeTaken = Graphics.frame_rate * 4 / 10 + distancePerFrame = (Graphics.width / (2.0 * timeTaken)).ceil timeTaken.times do - oldsprite.x -= (oldid&1)==0 ? -distancePerFrame : distancePerFrame - newsprite.x -= (newid&1)==0 ? -distancePerFrame : distancePerFrame + oldsprite.x -= (oldid & 1) == 0 ? -distancePerFrame : distancePerFrame + newsprite.x -= (newid & 1) == 0 ? -distancePerFrame : distancePerFrame Graphics.update Input.update self.update end for i in 0...Settings::MAX_PARTY_SIZE @sprites["pokemon#{i}"].preselected = false - @sprites["pokemon#{i}"].switching = false + @sprites["pokemon#{i}"].switching = false end pbRefresh end @@ -635,35 +666,35 @@ class PokemonParty_Scene def pbClearSwitching for i in 0...Settings::MAX_PARTY_SIZE @sprites["pokemon#{i}"].preselected = false - @sprites["pokemon#{i}"].switching = false + @sprites["pokemon#{i}"].switching = false end end - def pbSummary(pkmnid,inbattle=false) + def pbSummary(pkmnid, inbattle = false) oldsprites = pbFadeOutAndHide(@sprites) scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene,inbattle) - screen.pbStartScreen(@party,pkmnid) + screen = PokemonSummaryScreen.new(scene, inbattle) + screen.pbStartScreen(@party, pkmnid) yield if block_given? - pbFadeInAndShow(@sprites,oldsprites) + pbFadeInAndShow(@sprites, oldsprites) end def pbChooseItem(bag) ret = nil pbFadeOutIn { scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene,bag) + screen = PokemonBagScreen.new(scene, bag) ret = screen.pbChooseItemScreen(Proc.new { |item| GameData::Item.get(item).can_hold? }) yield if block_given? } return ret end - def pbUseItem(bag,pokemon) + def pbUseItem(bag, pokemon) ret = nil pbFadeOutIn { scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene,bag) + screen = PokemonBagScreen.new(scene, bag) ret = screen.pbChooseItemScreen(Proc.new { |item| itm = GameData::Item.get(item) next false if !pbCanUseOnPokemon?(itm) @@ -678,12 +709,12 @@ class PokemonParty_Scene return ret end - def pbChoosePokemon(switching=false,initialsel=-1,canswitch=0) + def pbChoosePokemon(switching = false, initialsel = -1, canswitch = 0) for i in 0...Settings::MAX_PARTY_SIZE - @sprites["pokemon#{i}"].preselected = (switching && i==@activecmd) - @sprites["pokemon#{i}"].switching = switching + @sprites["pokemon#{i}"].preselected = (switching && i == @activecmd) + @sprites["pokemon#{i}"].switching = switching end - @activecmd = initialsel if initialsel>=0 + @activecmd = initialsel if initialsel >= 0 pbRefresh loop do Graphics.update @@ -695,27 +726,27 @@ class PokemonParty_Scene key = Input::RIGHT if Input.repeat?(Input::RIGHT) key = Input::LEFT if Input.repeat?(Input::LEFT) key = Input::UP if Input.repeat?(Input::UP) - if key>=0 - @activecmd = pbChangeSelection(key,@activecmd) + if key >= 0 + @activecmd = pbChangeSelection(key, @activecmd) end - if @activecmd!=oldsel # Changing selection + if @activecmd != oldsel # Changing selection pbPlayCursorSE numsprites = Settings::MAX_PARTY_SIZE + ((@multiselect) ? 2 : 1) for i in 0...numsprites - @sprites["pokemon#{i}"].selected = (i==@activecmd) + @sprites["pokemon#{i}"].selected = (i == @activecmd) end end cancelsprite = Settings::MAX_PARTY_SIZE + ((@multiselect) ? 1 : 0) - if Input.trigger?(Input::ACTION) && canswitch==1 && @activecmd!=cancelsprite + if Input.trigger?(Input::ACTION) && canswitch == 1 && @activecmd != cancelsprite pbPlayDecisionSE - return [1,@activecmd] - elsif Input.trigger?(Input::ACTION) && canswitch==2 + return [1, @activecmd] + elsif Input.trigger?(Input::ACTION) && canswitch == 2 return -1 elsif Input.trigger?(Input::BACK) pbPlayCloseMenuSE if !switching return -1 elsif Input.trigger?(Input::USE) - if @activecmd==cancelsprite + if @activecmd == cancelsprite (switching) ? pbPlayDecisionSE : pbPlayCloseMenuSE return -1 else @@ -726,7 +757,7 @@ class PokemonParty_Scene end end - def pbChangeSelection(key,currentsel) + def pbChangeSelection(key, currentsel) numsprites = Settings::MAX_PARTY_SIZE + ((@multiselect) ? 2 : 1) case key when Input::LEFT @@ -751,14 +782,14 @@ class PokemonParty_Scene currentsel -= 1 while currentsel > 0 && currentsel < Settings::MAX_PARTY_SIZE && !@party[currentsel] currentsel -= 1 - end + end else begin currentsel -= 2 end while currentsel > 0 && !@party[currentsel] end if currentsel >= @party.length && currentsel < Settings::MAX_PARTY_SIZE - currentsel = @party.length-1 + currentsel = @party.length - 1 end currentsel = numsprites - 1 if currentsel < 0 when Input::DOWN @@ -785,13 +816,13 @@ class PokemonParty_Scene lastselected = i if @sprites["pokemon#{i}"].selected @sprites["pokemon#{i}"].dispose end - lastselected = @party.length-1 if lastselected>=@party.length - lastselected = 0 if lastselected<0 + lastselected = @party.length - 1 if lastselected >= @party.length + lastselected = 0 if lastselected < 0 for i in 0...Settings::MAX_PARTY_SIZE if @party[i] - @sprites["pokemon#{i}"] = PokemonPartyPanel.new(@party[i],i,@viewport) + @sprites["pokemon#{i}"] = PokemonPartyPanel.new(@party[i], i, @viewport) else - @sprites["pokemon#{i}"] = PokemonPartyBlankPanel.new(@party[i],i,@viewport) + @sprites["pokemon#{i}"] = PokemonPartyBlankPanel.new(@party[i], i, @viewport) end @sprites["pokemon#{i}"].text = oldtext[i] end @@ -834,26 +865,26 @@ class PokemonPartyScreen attr_reader :scene attr_reader :party - def initialize(scene,party) + def initialize(scene, party) @scene = scene @party = party end - def pbStartScene(helptext,_numBattlersOut,annotations=nil) - @scene.pbStartScene(@party,helptext,annotations) + def pbStartScene(helptext, _numBattlersOut, annotations = nil) + @scene.pbStartScene(@party, helptext, annotations) end - def pbChoosePokemon(helptext=nil) + def pbChoosePokemon(helptext = nil) @scene.pbSetHelpText(helptext) if helptext return @scene.pbChoosePokemon end def pbPokemonGiveScreen(item) - @scene.pbStartScene(@party,_INTL("Give to which Pokémon?")) + @scene.pbStartScene(@party, _INTL("Give to which Pokémon?")) pkmnid = @scene.pbChoosePokemon ret = false - if pkmnid>=0 - ret = pbGiveItemToPokemon(item,@party[pkmnid],self,pkmnid) + if pkmnid >= 0 + ret = pbGiveItemToPokemon(item, @party[pkmnid], self, pkmnid) end pbRefreshSingle(pkmnid) @scene.pbEndScene @@ -861,9 +892,9 @@ class PokemonPartyScreen end def pbPokemonGiveMailScreen(mailIndex) - @scene.pbStartScene(@party,_INTL("Give to which Pokémon?")) + @scene.pbStartScene(@party, _INTL("Give to which Pokémon?")) pkmnid = @scene.pbChoosePokemon - if pkmnid>=0 + if pkmnid >= 0 pkmn = @party[pkmnid] if pkmn.hasItem? || pkmn.mail pbDisplay(_INTL("This Pokémon is holding an item. It can't hold mail.")) @@ -908,55 +939,58 @@ class PokemonPartyScreen return @scene.pbDisplayConfirm(text) end - def pbShowCommands(helptext,commands,index=0) - return @scene.pbShowCommands(helptext,commands,index) + def pbShowCommands(helptext, commands, index = 0) + return @scene.pbShowCommands(helptext, commands, index) end # Checks for identical species - def pbCheckSpecies(array) # Unused + def pbCheckSpecies(array) + # Unused for i in 0...array.length - for j in i+1...array.length - return false if array[i].species==array[j].species + for j in i + 1...array.length + return false if array[i].species == array[j].species end end return true end # Checks for identical held items - def pbCheckItems(array) # Unused + def pbCheckItems(array) + # Unused for i in 0...array.length next if !array[i].hasItem? - for j in i+1...array.length - return false if array[i].item==array[j].item + for j in i + 1...array.length + return false if array[i].item == array[j].item end end return true end - def pbSwitch(oldid,newid) - if oldid!=newid - @scene.pbSwitchBegin(oldid,newid) + def pbSwitch(oldid, newid) + if oldid != newid + @scene.pbSwitchBegin(oldid, newid) tmp = @party[oldid] @party[oldid] = @party[newid] @party[newid] = tmp - @scene.pbSwitchEnd(oldid,newid) + @scene.pbSwitchEnd(oldid, newid) end end - def pbChooseMove(pokemon,helptext,index=0) + def pbChooseMove(pokemon, helptext, index = 0) movenames = [] for i in pokemon.moves next if !i || !i.id - if i.total_pp<=0 - movenames.push(_INTL("{1} (PP: ---)",i.name)) + if i.total_pp <= 0 + movenames.push(_INTL("{1} (PP: ---)", i.name)) else - movenames.push(_INTL("{1} (PP: {2}/{3})",i.name,i.pp,i.total_pp)) + movenames.push(_INTL("{1} (PP: {2}/{3})", i.name, i.pp, i.total_pp)) end end - return @scene.pbShowCommands(helptext,movenames,index) + return @scene.pbShowCommands(helptext, movenames, index) end - def pbRefreshAnnotations(ableProc) # For after using an evolution stone + def pbRefreshAnnotations(ableProc) + # For after using an evolution stone return if !@scene.pbHasAnnotations? annot = [] for pkmn in @party @@ -993,66 +1027,68 @@ class PokemonPartyScreen for i in 0...@party.length annot[i] = ordinals[statuses[i]] end - @scene.pbStartScene(@party,_INTL("Choose Pokémon and confirm."),annot,true) + @scene.pbStartScene(@party, _INTL("Choose Pokémon and confirm."), annot, true) loop do realorder = [] for i in 0...@party.length for j in 0...@party.length - if statuses[j]==i+3 + if statuses[j] == i + 3 realorder.push(j) break end end end for i in 0...realorder.length - statuses[realorder[i]] = i+3 + statuses[realorder[i]] = i + 3 end for i in 0...@party.length annot[i] = ordinals[statuses[i]] end @scene.pbAnnotate(annot) - if realorder.length==ruleset.number && addedEntry + if realorder.length == ruleset.number && addedEntry @scene.pbSelect(Settings::MAX_PARTY_SIZE) end @scene.pbSetHelpText(_INTL("Choose Pokémon and confirm.")) pkmnid = @scene.pbChoosePokemon addedEntry = false - if pkmnid == Settings::MAX_PARTY_SIZE # Confirm was chosen + if pkmnid == Settings::MAX_PARTY_SIZE # Confirm was chosen ret = [] - for i in realorder; ret.push(@party[i]); end + for i in realorder; + ret.push(@party[i]); + end error = [] - break if ruleset.isValid?(ret,error) + break if ruleset.isValid?(ret, error) pbDisplay(error[0]) ret = nil end - break if pkmnid<0 # Cancelled - cmdEntry = -1 + break if pkmnid < 0 # Cancelled + cmdEntry = -1 cmdNoEntry = -1 cmdSummary = -1 commands = [] if (statuses[pkmnid] || 0) == 1 - commands[cmdEntry = commands.length] = _INTL("Entry") + commands[cmdEntry = commands.length] = _INTL("Entry") elsif (statuses[pkmnid] || 0) > 2 commands[cmdNoEntry = commands.length] = _INTL("No Entry") end pkmn = @party[pkmnid] - commands[cmdSummary = commands.length] = _INTL("Summary") - commands[commands.length] = _INTL("Cancel") - command = @scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),commands) if pkmn - if cmdEntry>=0 && command==cmdEntry - if realorder.length>=ruleset.number && ruleset.number>0 - pbDisplay(_INTL("No more than {1} Pokémon may enter.",ruleset.number)) + commands[cmdSummary = commands.length] = _INTL("Summary") + commands[commands.length] = _INTL("Cancel") + command = @scene.pbShowCommands(_INTL("Do what with {1}?", pkmn.name), commands) if pkmn + if cmdEntry >= 0 && command == cmdEntry + if realorder.length >= ruleset.number && ruleset.number > 0 + pbDisplay(_INTL("No more than {1} Pokémon may enter.", ruleset.number)) else - statuses[pkmnid] = realorder.length+3 + statuses[pkmnid] = realorder.length + 3 addedEntry = true pbRefreshSingle(pkmnid) end - elsif cmdNoEntry>=0 && command==cmdNoEntry + elsif cmdNoEntry >= 0 && command == cmdNoEntry statuses[pkmnid] = 1 pbRefreshSingle(pkmnid) - elsif cmdSummary>=0 && command==cmdSummary + elsif cmdSummary >= 0 && command == cmdSummary @scene.pbSummary(pkmnid) { - @scene.pbSetHelpText((@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + @scene.pbSetHelpText((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) } end end @@ -1060,7 +1096,7 @@ class PokemonPartyScreen return ret end - def pbChooseAblePokemon(ableProc,allowIneligible=false) + def pbChooseAblePokemon(ableProc, allowIneligible = false) annot = [] eligibility = [] for pkmn in @party @@ -1070,12 +1106,12 @@ class PokemonPartyScreen end ret = -1 @scene.pbStartScene(@party, - (@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel."),annot) + (@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel."), annot) loop do @scene.pbSetHelpText( - (@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + (@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) pkmnid = @scene.pbChoosePokemon - break if pkmnid<0 + break if pkmnid < 0 if !eligibility[pkmnid] && !allowIneligible pbDisplay(_INTL("This Pokémon can't be chosen.")) else @@ -1087,7 +1123,7 @@ class PokemonPartyScreen return ret end - def pbChooseTradablePokemon(ableProc,allowIneligible=false) + def pbChooseTradablePokemon(ableProc, allowIneligible = false) annot = [] eligibility = [] for pkmn in @party @@ -1098,12 +1134,12 @@ class PokemonPartyScreen end ret = -1 @scene.pbStartScene(@party, - (@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel."),annot) + (@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel."), annot) loop do @scene.pbSetHelpText( - (@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + (@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) pkmnid = @scene.pbChoosePokemon - break if pkmnid<0 + break if pkmnid < 0 if !eligibility[pkmnid] && !allowIneligible pbDisplay(_INTL("This Pokémon can't be chosen.")) else @@ -1115,59 +1151,85 @@ class PokemonPartyScreen return ret end + def pbPokemonRename(pkmn, pkmnid) + cmd = 0 + loop do + speciesname = PBSpecies.getName(pkmn.species) + msg = [_INTL("{1} has the nickname {2}.", speciesname, pkmn.name), + _INTL("{1} has no nickname.", speciesname)][pkmn.name == speciesname ? 1 : 0] + cmd = @scene.pbShowCommands(msg, [ + _INTL("Rename"), + _INTL("Quit")], cmd) + # Break + if cmd == -1 + break + # Rename + elsif cmd == 0 + newname = pbEnterPokemonName(_INTL("{1}'s nickname?", speciesname), 0, 16, "", pkmn) + pkmn.name = (newname == "") ? speciesname : newname + pbRefreshSingle(pkmnid) + # Erase name + elsif cmd == 1 + break + end + end + end + def pbPokemonScreen @scene.pbStartScene(@party, - (@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel."),nil) + (@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel."), nil) loop do - @scene.pbSetHelpText((@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) - pkmnid = @scene.pbChoosePokemon(false,-1,1) - break if (pkmnid.is_a?(Numeric) && pkmnid<0) || (pkmnid.is_a?(Array) && pkmnid[1]<0) - if pkmnid.is_a?(Array) && pkmnid[0]==1 # Switch + @scene.pbSetHelpText((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + pkmnid = @scene.pbChoosePokemon(false, -1, 1) + break if (pkmnid.is_a?(Numeric) && pkmnid < 0) || (pkmnid.is_a?(Array) && pkmnid[1] < 0) + if pkmnid.is_a?(Array) && pkmnid[0] == 1 # Switch @scene.pbSetHelpText(_INTL("Move to where?")) oldpkmnid = pkmnid[1] - pkmnid = @scene.pbChoosePokemon(true,-1,2) - if pkmnid>=0 && pkmnid!=oldpkmnid - pbSwitch(oldpkmnid,pkmnid) + pkmnid = @scene.pbChoosePokemon(true, -1, 2) + if pkmnid >= 0 && pkmnid != oldpkmnid + pbSwitch(oldpkmnid, pkmnid) end next end pkmn = @party[pkmnid] - commands = [] + commands = [] cmdSummary = -1 - cmdDebug = -1 - cmdMoves = [-1] * pkmn.numMoves - cmdSwitch = -1 - cmdMail = -1 - cmdItem = -1 + cmdNickname = -1 + cmdDebug = -1 + cmdMoves = [-1] * pkmn.numMoves + cmdSwitch = -1 + cmdMail = -1 + cmdItem = -1 # Build the commands - commands[cmdSummary = commands.length] = _INTL("Summary") - commands[cmdDebug = commands.length] = _INTL("Debug") if $DEBUG + commands[cmdSummary = commands.length] = _INTL("Summary") + commands[cmdNickname = commands.length] = _INTL("Nickname") if !pkmn.egg? + commands[cmdDebug = commands.length] = _INTL("Debug") if $DEBUG if !pkmn.egg? # Check for hidden moves and add any that were found pkmn.moves.each_with_index do |m, i| if [:MILKDRINK, :SOFTBOILED].include?(m.id) || - HiddenMoveHandlers.hasHandler(m.id) + HiddenMoveHandlers.hasHandler(m.id) commands[cmdMoves[i] = commands.length] = [m.name, 1] end end end - commands[cmdSwitch = commands.length] = _INTL("Switch") if @party.length>1 + commands[cmdSwitch = commands.length] = _INTL("Switch") if @party.length > 1 if !pkmn.egg? if pkmn.mail - commands[cmdMail = commands.length] = _INTL("Mail") + commands[cmdMail = commands.length] = _INTL("Mail") else - commands[cmdItem = commands.length] = _INTL("Item") + commands[cmdItem = commands.length] = _INTL("Item") end end - commands[commands.length] = _INTL("Cancel") - command = @scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),commands) + commands[commands.length] = _INTL("Cancel") + command = @scene.pbShowCommands(_INTL("Do what with {1}?", pkmn.name), commands) havecommand = false cmdMoves.each_with_index do |cmd, i| next if cmd < 0 || cmd != command havecommand = true if [:MILKDRINK, :SOFTBOILED].include?(pkmn.moves[i].id) - amt = [(pkmn.totalhp/5).floor,1].max - if pkmn.hp<=amt + amt = [(pkmn.totalhp / 5).floor, 1].max + if pkmn.hp <= amt pbDisplay(_INTL("Not enough HP...")) break end @@ -1175,29 +1237,29 @@ class PokemonPartyScreen oldpkmnid = pkmnid loop do @scene.pbPreSelect(oldpkmnid) - pkmnid = @scene.pbChoosePokemon(true,pkmnid) - break if pkmnid<0 + pkmnid = @scene.pbChoosePokemon(true, pkmnid) + break if pkmnid < 0 newpkmn = @party[pkmnid] movename = pkmn.moves[i].name - if pkmnid==oldpkmnid - pbDisplay(_INTL("{1} can't use {2} on itself!",pkmn.name,movename)) + if pkmnid == oldpkmnid + pbDisplay(_INTL("{1} can't use {2} on itself!", pkmn.name, movename)) elsif newpkmn.egg? - pbDisplay(_INTL("{1} can't be used on an Egg!",movename)) - elsif newpkmn.hp==0 || newpkmn.hp==newpkmn.totalhp - pbDisplay(_INTL("{1} can't be used on that Pokémon.",movename)) + pbDisplay(_INTL("{1} can't be used on an Egg!", movename)) + elsif newpkmn.hp == 0 || newpkmn.hp == newpkmn.totalhp + pbDisplay(_INTL("{1} can't be used on that Pokémon.", movename)) else pkmn.hp -= amt - hpgain = pbItemRestoreHP(newpkmn,amt) - @scene.pbDisplay(_INTL("{1}'s HP was restored by {2} points.",newpkmn.name,hpgain)) + hpgain = pbItemRestoreHP(newpkmn, amt) + @scene.pbDisplay(_INTL("{1}'s HP was restored by {2} points.", newpkmn.name, hpgain)) pbRefresh end - break if pkmn.hp<=amt + break if pkmn.hp <= amt end @scene.pbSelect(oldpkmnid) pbRefresh break - elsif pbCanUseHiddenMove?(pkmn,pkmn.moves[i].id) - if pbConfirmUseHiddenMove(pkmn,pkmn.moves[i].id) + elsif pbCanUseHiddenMove?(pkmn, pkmn.moves[i].id) + if pbConfirmUseHiddenMove(pkmn, pkmn.moves[i].id) @scene.pbEndScene if pkmn.moves[i].id == :FLY || pkmn.moves[i].id == :TELEPORT ret = pbBetterRegionMap(-1, true, true) @@ -1206,87 +1268,89 @@ class PokemonPartyScreen return [pkmn, pkmn.moves[i].id] end @scene.pbStartScene(@party, - (@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + (@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) break end - return [pkmn,pkmn.moves[i].id] + return [pkmn, pkmn.moves[i].id] end end end next if havecommand - if cmdSummary>=0 && command==cmdSummary + if cmdSummary >= 0 && command == cmdSummary @scene.pbSummary(pkmnid) { - @scene.pbSetHelpText((@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + @scene.pbSetHelpText((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) } - elsif cmdDebug>=0 && command==cmdDebug - pbPokemonDebug(pkmn,pkmnid) - elsif cmdSwitch>=0 && command==cmdSwitch + elsif cmdNickname >= 0 && command == cmdNickname + pbPokemonRename(pkmn,pkmnid) + elsif cmdDebug >= 0 && command == cmdDebug + pbPokemonDebug(pkmn, pkmnid) + elsif cmdSwitch >= 0 && command == cmdSwitch @scene.pbSetHelpText(_INTL("Move to where?")) oldpkmnid = pkmnid pkmnid = @scene.pbChoosePokemon(true) - if pkmnid>=0 && pkmnid!=oldpkmnid - pbSwitch(oldpkmnid,pkmnid) + if pkmnid >= 0 && pkmnid != oldpkmnid + pbSwitch(oldpkmnid, pkmnid) end - elsif cmdMail>=0 && command==cmdMail + elsif cmdMail >= 0 && command == cmdMail command = @scene.pbShowCommands(_INTL("Do what with the mail?"), - [_INTL("Read"),_INTL("Take"),_INTL("Cancel")]) + [_INTL("Read"), _INTL("Take"), _INTL("Cancel")]) case command - when 0 # Read + when 0 # Read pbFadeOutIn { - pbDisplayMail(pkmn.mail,pkmn) - @scene.pbSetHelpText((@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + pbDisplayMail(pkmn.mail, pkmn) + @scene.pbSetHelpText((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) } - when 1 # Take - if pbTakeItemFromPokemon(pkmn,self) + when 1 # Take + if pbTakeItemFromPokemon(pkmn, self) pbRefreshSingle(pkmnid) end end - elsif cmdItem>=0 && command==cmdItem + elsif cmdItem >= 0 && command == cmdItem itemcommands = [] - cmdUseItem = -1 - cmdGiveItem = -1 - cmdTakeItem = -1 - cmdMoveItem = -1 + cmdUseItem = -1 + cmdGiveItem = -1 + cmdTakeItem = -1 + cmdMoveItem = -1 # Build the commands - itemcommands[cmdUseItem=itemcommands.length] = _INTL("Use") - itemcommands[cmdGiveItem=itemcommands.length] = _INTL("Give") - itemcommands[cmdTakeItem=itemcommands.length] = _INTL("Take") if pkmn.hasItem? - itemcommands[cmdMoveItem=itemcommands.length] = _INTL("Move") if pkmn.hasItem? && - !GameData::Item.get(pkmn.item).is_mail? - itemcommands[itemcommands.length] = _INTL("Cancel") - command = @scene.pbShowCommands(_INTL("Do what with an item?"),itemcommands) - if cmdUseItem>=0 && command==cmdUseItem # Use - item = @scene.pbUseItem($PokemonBag,pkmn) { - @scene.pbSetHelpText((@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + itemcommands[cmdUseItem = itemcommands.length] = _INTL("Use") + itemcommands[cmdGiveItem = itemcommands.length] = _INTL("Give") + itemcommands[cmdTakeItem = itemcommands.length] = _INTL("Take") if pkmn.hasItem? + itemcommands[cmdMoveItem = itemcommands.length] = _INTL("Move") if pkmn.hasItem? && + !GameData::Item.get(pkmn.item).is_mail? + itemcommands[itemcommands.length] = _INTL("Cancel") + command = @scene.pbShowCommands(_INTL("Do what with an item?"), itemcommands) + if cmdUseItem >= 0 && command == cmdUseItem # Use + item = @scene.pbUseItem($PokemonBag, pkmn) { + @scene.pbSetHelpText((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) } if item - pbUseItemOnPokemon(item,pkmn,self) + pbUseItemOnPokemon(item, pkmn, self) pbRefreshSingle(pkmnid) end - elsif cmdGiveItem>=0 && command==cmdGiveItem # Give + elsif cmdGiveItem >= 0 && command == cmdGiveItem # Give item = @scene.pbChooseItem($PokemonBag) { - @scene.pbSetHelpText((@party.length>1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + @scene.pbSetHelpText((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) } if item - if pbGiveItemToPokemon(item,pkmn,self,pkmnid) + if pbGiveItemToPokemon(item, pkmn, self, pkmnid) pbRefreshSingle(pkmnid) end end - elsif cmdTakeItem>=0 && command==cmdTakeItem # Take - if pbTakeItemFromPokemon(pkmn,self) + elsif cmdTakeItem >= 0 && command == cmdTakeItem # Take + if pbTakeItemFromPokemon(pkmn, self) pbRefreshSingle(pkmnid) end - elsif cmdMoveItem>=0 && command==cmdMoveItem # Move + elsif cmdMoveItem >= 0 && command == cmdMoveItem # Move item = pkmn.item itemname = item.name - @scene.pbSetHelpText(_INTL("Move {1} to where?",itemname)) + @scene.pbSetHelpText(_INTL("Move {1} to where?", itemname)) oldpkmnid = pkmnid loop do @scene.pbPreSelect(oldpkmnid) - pkmnid = @scene.pbChoosePokemon(true,pkmnid) - break if pkmnid<0 + pkmnid = @scene.pbChoosePokemon(true, pkmnid) + break if pkmnid < 0 newpkmn = @party[pkmnid] - break if pkmnid==oldpkmnid + break if pkmnid == oldpkmnid if newpkmn.egg? pbDisplay(_INTL("Eggs can't hold items.")) elsif !newpkmn.hasItem? @@ -1294,27 +1358,27 @@ class PokemonPartyScreen pkmn.item = nil @scene.pbClearSwitching pbRefresh - pbDisplay(_INTL("{1} was given the {2} to hold.",newpkmn.name,itemname)) + pbDisplay(_INTL("{1} was given the {2} to hold.", newpkmn.name, itemname)) break elsif GameData::Item.get(newpkmn.item).is_mail? - pbDisplay(_INTL("{1}'s mail must be removed before giving it an item.",newpkmn.name)) + pbDisplay(_INTL("{1}'s mail must be removed before giving it an item.", newpkmn.name)) else newitem = newpkmn.item newitemname = newitem.name if newitem == :LEFTOVERS - pbDisplay(_INTL("{1} is already holding some {2}.\1",newpkmn.name,newitemname)) + pbDisplay(_INTL("{1} is already holding some {2}.\1", newpkmn.name, newitemname)) elsif newitemname.starts_with_vowel? - pbDisplay(_INTL("{1} is already holding an {2}.\1",newpkmn.name,newitemname)) + pbDisplay(_INTL("{1} is already holding an {2}.\1", newpkmn.name, newitemname)) else - pbDisplay(_INTL("{1} is already holding a {2}.\1",newpkmn.name,newitemname)) + pbDisplay(_INTL("{1} is already holding a {2}.\1", newpkmn.name, newitemname)) end if pbConfirm(_INTL("Would you like to switch the two items?")) newpkmn.item = item pkmn.item = newitem @scene.pbClearSwitching pbRefresh - pbDisplay(_INTL("{1} was given the {2} to hold.",newpkmn.name,itemname)) - pbDisplay(_INTL("{1} was given the {2} to hold.",pkmn.name,newitemname)) + pbDisplay(_INTL("{1} was given the {2} to hold.", newpkmn.name, itemname)) + pbDisplay(_INTL("{1} was given the {2} to hold.", pkmn.name, newitemname)) break end end @@ -1333,7 +1397,7 @@ end def pbPokemonScreen pbFadeOutIn { sscene = PokemonParty_Scene.new - sscreen = PokemonPartyScreen.new(sscene,$Trainer.party) + sscreen = PokemonPartyScreen.new(sscene, $Trainer.party) sscreen.pbPokemonScreen } end @@ -1344,60 +1408,60 @@ end # Choose a Pokémon/egg from the party. # Stores result in variable _variableNumber_ and the chosen Pokémon's name in # variable _nameVarNumber_; result is -1 if no Pokémon was chosen -def pbChoosePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false) +def pbChoosePokemon(variableNumber, nameVarNumber, ableProc = nil, allowIneligible = false) chosen = 0 pbFadeOutIn { scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene,$Trainer.party) + screen = PokemonPartyScreen.new(scene, $Trainer.party) if ableProc - chosen=screen.pbChooseAblePokemon(ableProc,allowIneligible) + chosen = screen.pbChooseAblePokemon(ableProc, allowIneligible) else - screen.pbStartScene(_INTL("Choose a Pokémon."),false) + screen.pbStartScene(_INTL("Choose a Pokémon."), false) chosen = screen.pbChoosePokemon screen.pbEndScene end } - pbSet(variableNumber,chosen) - if chosen>=0 - pbSet(nameVarNumber,$Trainer.party[chosen].name) + pbSet(variableNumber, chosen) + if chosen >= 0 + pbSet(nameVarNumber, $Trainer.party[chosen].name) else - pbSet(nameVarNumber,"") + pbSet(nameVarNumber, "") end end -def pbChooseNonEggPokemon(variableNumber,nameVarNumber) - pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? }) +def pbChooseNonEggPokemon(variableNumber, nameVarNumber) + pbChoosePokemon(variableNumber, nameVarNumber, proc { |pkmn| !pkmn.egg? }) end -def pbChooseAblePokemon(variableNumber,nameVarNumber) - pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? && pkmn.hp>0 }) +def pbChooseAblePokemon(variableNumber, nameVarNumber) + pbChoosePokemon(variableNumber, nameVarNumber, proc { |pkmn| !pkmn.egg? && pkmn.hp > 0 }) end # Same as pbChoosePokemon, but prevents choosing an egg or a Shadow Pokémon. -def pbChooseTradablePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false) +def pbChooseTradablePokemon(variableNumber, nameVarNumber, ableProc = nil, allowIneligible = false) chosen = 0 pbFadeOutIn { scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene,$Trainer.party) + screen = PokemonPartyScreen.new(scene, $Trainer.party) if ableProc - chosen=screen.pbChooseTradablePokemon(ableProc,allowIneligible) + chosen = screen.pbChooseTradablePokemon(ableProc, allowIneligible) else - screen.pbStartScene(_INTL("Choose a Pokémon."),false) + screen.pbStartScene(_INTL("Choose a Pokémon."), false) chosen = screen.pbChoosePokemon screen.pbEndScene end } - pbSet(variableNumber,chosen) - if chosen>=0 - pbSet(nameVarNumber,$Trainer.party[chosen].name) + pbSet(variableNumber, chosen) + if chosen >= 0 + pbSet(nameVarNumber, $Trainer.party[chosen].name) else - pbSet(nameVarNumber,"") + pbSet(nameVarNumber, "") end end -def pbChoosePokemonForTrade(variableNumber,nameVarNumber,wanted) +def pbChoosePokemonForTrade(variableNumber, nameVarNumber, wanted) wanted = GameData::Species.get(wanted).species - pbChooseTradablePokemon(variableNumber,nameVarNumber,proc { |pkmn| - next pkmn.species==wanted + pbChooseTradablePokemon(variableNumber, nameVarNumber, proc { |pkmn| + next pkmn.species == wanted }) end diff --git a/Data/Scripts/050_AddOns/New Items effects.rb b/Data/Scripts/050_AddOns/New Items effects.rb index 3760c3281..30baa377b 100644 --- a/Data/Scripts/050_AddOns/New Items effects.rb +++ b/Data/Scripts/050_AddOns/New Items effects.rb @@ -254,31 +254,6 @@ ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene| end }) -ItemHandlers::UseOnPokemon.add(:ABILITYCAPSULE, proc { |item, poke, scene| - abilityList = poke.getAbilityList - abil1 = 0; abil2 = 0 - for i in abilityList - abil1 = i[0] if i[1] == 0 - abil2 = i[1] if i[1] == 1 - end - if poke.abilityIndex() >= 2 || abil1 == abil2 - scene.pbDisplay(_INTL("It won't have any effect.")) - next false - end - if Kernel.pbConfirmMessage(_INTL("Do you want to change {1}'s ability?", - poke.name)) - - if poke.abilityIndex() == 0 - poke.setAbility(1) - else - poke.setAbility(0) - end - scene.pbDisplay(_INTL("{1}'s ability was changed!", poke.name)) - next true - end - next false - -}) #NOT FULLY IMPLEMENTED ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene| @@ -1078,31 +1053,31 @@ ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene| end }) -ItemHandlers::UseOnPokemon.add(:ABILITYCAPSULE, proc { |item, poke, scene| - abilityList = poke.getAbilityList - abil1 = 0; abil2 = 0 - for i in abilityList - abil1 = i[0] if i[1] == 0 - abil2 = i[1] if i[1] == 1 - end - if poke.abilityIndex() >= 2 || abil1 == abil2 - scene.pbDisplay(_INTL("It won't have any effect.")) - next false - end - if Kernel.pbConfirmMessage(_INTL("Do you want to change {1}'s ability?", - poke.name)) - - if poke.abilityIndex() == 0 - poke.setAbility(1) - else - poke.setAbility(0) - end - scene.pbDisplay(_INTL("{1}'s ability was changed!", poke.name)) - next true - end - next false - -}) +# ItemHandlers::UseOnPokemon.add(:ABILITYCAPSULE, proc { |item, poke, scene| +# abilityList = poke.getAbilityList +# abil1 = 0; abil2 = 0 +# for i in abilityList +# abil1 = i[0] if i[1] == 0 +# abil2 = i[1] if i[1] == 1 +# end +# if poke.abilityIndex() >= 2 || abil1 == abil2 +# scene.pbDisplay(_INTL("It won't have any effect.")) +# next false +# end +# if Kernel.pbConfirmMessage(_INTL("Do you want to change {1}'s ability?", +# poke.name)) +# +# if poke.abilityIndex() == 0 +# poke.setAbility(1) +# else +# poke.setAbility(0) +# end +# scene.pbDisplay(_INTL("{1}'s ability was changed!", poke.name)) +# next true +# end +# next false +# +# }) #NOT FULLY IMPLEMENTED ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene| diff --git a/Data/System.rxdata b/Data/System.rxdata index b585a026c..8d283f80c 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/PBS/items.txt b/PBS/items.txt index 433a86045..7d8d0991c 100644 --- a/PBS/items.txt +++ b/PBS/items.txt @@ -592,7 +592,7 @@ 584,INCUBATOR,Super Incubator,Super Incubators,1,12000,"A portable incubator that is used to instantly hatch an egg.",1,0,0, 585,FIRECRACKER,Firecracker,Firecrackers,3,100,"A small explosive that hurts a wild Pokémon when thrown.",0,2,4, 586,MANSIONKEY,Seagallop Pass,Seagallop Passes,8,0,"A pass that allows you to take the Seagallop Ferry from Cinnabar Island to the Sevii Islands.",0,0,6, -587,POISONMUSHROOM,PoisonMushroom,PoisonMushrooms,1,50,A common unedible mushroom. It can be sold for a small price.,0,0,0, +587,POISONMUSHROOM,PoisonMushroom,PoisonMushrooms,1,50,A common poisonous mushroom. It can be sold for a small price.,1,1,0, 588,EXPALLOFF,Exp. All,Exp. Alls,8,0,"An item that can be used to share experience gained with every party member.",2,0,6, 589,GASMASK,Gas Mask,Gas Masks,8,0,"A mask that lets you breathe in areas filled with poisonous gas.",0,0,6, 590,MANKEYPAW,Mankey Paw,Mankey Paws,1,19600,"Guarantees Critical-Hits, but halves accuracy.",0,0,0, diff --git a/PBS/trainers.txt b/PBS/trainers.txt index 5e6a717bd..20346f226 100644 --- a/PBS/trainers.txt +++ b/PBS/trainers.txt @@ -860,39 +860,39 @@ Pokemon = B55H101,46 #electrduck ########################## [BURGLAR,Quinn] -Pokemon = VULPIX,42 #GROWKEY -Pokemon = VULPIX,42 #GROWKEY -Pokemon = B38H57,42 #PRIMETALES +Pokemon = VULPIX,39 #GROWKEY +Pokemon = VULPIX,39 #GROWKEY +Pokemon = B38H57,41 #PRIMETALES ########################## [SUPERNERD,Erik] -Pokemon = B37H47,42 #PARAPIX -Pokemon = B37H47,42 #PARAPIX -Pokemon = B38H47,42 #PARATALES +Pokemon = B37H47,39 #PARAPIX +Pokemon = B37H47,39 #PARAPIX +Pokemon = B38H47,41 #PARATALES ########################### [SUPERNERD,Avery] -Pokemon = B4H25,41 #PIKAMANDER -Pokemon = B5H25,41 #PIKAMELEON -Pokemon = B6H25,45 #PIKAIZARD +Pokemon = B4H25,36 #PIKAMANDER +Pokemon = B5H25,40 #PIKAMELEON +Pokemon = B6H25,43 #PIKAIZARD ########################### [BURGLAR,Ramon] -Pokemon = B5H2,49 #IVYMELEON +Pokemon = B5H2,45 #IVYMELEON ########################### [SUPERNERD,Derek] -Pokemon = B51H51,49 #DDUGTRIO +Pokemon = B51H51,45 #DDUGTRIO ########################### [BURGLAR,Dusty] -Pokemon = B58H37,44 #VULITHE -Pokemon = B37H4,44 #CHARPIX +Pokemon = B58H37,43 #VULITHE +Pokemon = B37H4,43 #CHARPIX ########################### [SUPERNERD,Zac] -Pokemon = B37H58,44 #GROWPIX -Pokemon = B58H4,44 #CHARLITHE +Pokemon = B37H58,43 #GROWPIX +Pokemon = B58H4,43 #CHARLITHE ############################## #####VIRIDIAN FOREST######## @@ -1458,7 +1458,7 @@ Pokemon = B60H43,18 #Oddwag, #------------------------------ [ENGINEER,Bernie] -Pokemon = B109H81,21 #Magnefing, +Pokemon = B27H81,21 #SANDSHEW + MAGNEMITE, #---------------------------- [YOUNGSTER,Dave] @@ -1553,35 +1553,32 @@ Pokemon = B25H81,23 #Magnechu, ###################### [JUGGLER,Kayden] -Pokemon = B97H94,39 #Geno, +Pokemon = B96H20,36 #drowzee + raticate #------------------------------------- [JUGGLER,Nate] -Pokemon = B96H42,36 #Golzee, -Pokemon = B64H73,36 #Tentabra, +Pokemon = B41H23,34 #zubat + ekans, +Pokemon = B24H88,36 #arbok + grimer, #-------------------------------------- [JUGGLER,Kirk] -Pokemon = B96H15,32 #Beezee, -Pokemon = B109H96,32 #Drowfing, -Pokemon = B64H24,32 #Arbra, -Pokemon = B93H64,32 #Kadater, +Pokemon = B48H41,32 #venonat + zubat +Pokemon = B108H48,35 #lickitung + venonat, + #----------------------------------------- [TAMER,Edgar] -Pokemon = B24H113,34 #Chanbok, -Pokemon = B24H82,34 #Magnebok, -Pokemon = B28H48,34 #Venoslash, +Pokemon = B27H30,32 #sandshrew + nidorina +Pokemon = B111H33,34 #Rhyhorn + nidorino, #---------------------------------------- [TAMER,Phil] -Pokemon = B28H33,35 #Nidoslash, -Pokemon = B24H110,35 #Weebok, +Pokemon = B46H48,35 #paras + venonat, +Pokemon = B42H47,35 #golbart + parasect , #--------------------------------------- [JUGGLER,Shawn] -Pokemon = B96H45,35 #Vilezee, -Pokemon = B12H97,35 #Hypfree, +Pokemon = B40H109,36 #wigglytuff + koffing #------------------------------------------------ ################# @@ -1589,47 +1586,47 @@ Pokemon = B12H97,35 #Hypfree, ################## [ENGINEER,Cole] -Pokemon = B24H28,46 #SANDBOK -Pokemon = B128H111,46 #RHYROS +Pokemon = B24H28,44 #SANDBOK +Pokemon = B128H111,44 #RHYROS ################### [BLACKBELT,Kiyo] -Pokemon = B67H105,50 #MAROCHOKE +Pokemon = B67H105,48 #MAROCHOKE Item = BLACKBELT #################### [ENGINEER,Jason] -Pokemon = B111H53,50 #PERHORN +Pokemon = B111H53,48 #PERHORN ##################### [BLACKBELT,Atsushi] -Pokemon = B66H104,47 #CUCHOP -Pokemon = B221H121,47 +Pokemon = B66H104,46 #CUCHOP +Pokemon = B221H121,46 ##################### [COOLTRAINER_M,Samuel] -Pokemon = B28H33,45 #NIDOSLASH -Pokemon = B111H28,45 #SANDHORN -Pokemon = B34H104,45 #CUKING +Pokemon = B28H33,44 #NIDOSLASH +Pokemon = B111H28,44 #SANDHORN +Pokemon = B34H104,44 #CUKING ##################### [BLACKBELT,Takashi] -Pokemon = MACHOP,45 -Pokemon = B67H55,45 #ONCHOKE -Pokemon = B34H67,45 #MAKING +Pokemon = MACHOP,44 +Pokemon = B67H55,44 #ONCHOKE +Pokemon = B34H67,44 #MAKING #################### [COOLTRAINER_M,Yuji] -Pokemon = B28H55,44 #GOLSLASH -Pokemon = B95H135,44 #JOLTIX -Pokemon = B105H108,44 #LICKIWAK +Pokemon = B28H55,42 #GOLSLASH +Pokemon = B95H135,42 #JOLTIX +Pokemon = B105H108,42 #LICKIWAK Pokemon = B75H127,44 #PINELER ##################### [COOLTRAINER_F,Justine] -Pokemon = B111H70,45 #WEEPINHORN -Pokemon = B105H105,45 #DMAROWAK -Pokemon = B31H20,45 #RATQUEEN +Pokemon = B111H70,43 #WEEPINHORN +Pokemon = B105H105,43 #DMAROWAK +Pokemon = B31H20,43 #RATQUEEN ################# ###Cerulean Gym### @@ -2079,21 +2076,22 @@ Pokemon = IVYSAUR,30 [LEADER_Koga,Koga] Items = HYPERPOTION,HYPERPOTION -Pokemon = B109H88,37 #koffmer - Moves = SELFDESTRUCT,SLUDGEBOMB,DESTINYBOND,FLING + +Pokemon = B88H49,35 #Grimer + Venomoth, + Moves = SIGNALBEAM,SLUDGEBOMB,FLING,DISABLE + AbilityIndex = 1 + Item = POISONBARB +Pokemon = B109H81,36 #magnemite + koffing + Moves = SLUDGEBOMB,SELFDESTRUCT,SONICBOOM,SUPERSONIC AbilityIndex = 0 - Item = POISONBARB -Pokemon = B42H113,35 #chanbat, - Moves = EGGBOMB,LIGHTSCREEN,TOXIC,POISONFANG - AbilityIndex = 0 - Item = BLACKGLASSES -Pokemon = B119H110,39 # Weeking, - Moves = AQUARING,WATERFALL,SLUDGE,HORNATTACK + Item = POISONBARB +Pokemon = B123H15,36 # scyther + beedrill, + Moves = AGILITY,PINMISSILE,POISONJAB,TOXICSPIKES AbilityIndex = 0 Item = POISONBARB -Pokemon = B47H89,40 #Musect, - Moves = POISONPOWDER,SPORE,SLUDGEBOMB,DISABLE - AbilityIndex = 0 +Pokemon = B89H113,38 #muk + chansey, + Moves = TOXIC,DOUBLETEAM,TAKEDOWN,ACIDARMOR + AbilityIndex = 1 Item = BLACKSLUDGE [LEADER_Koga,Koga,1] @@ -2114,15 +2112,15 @@ Pokemon = B24H195,68 #ESPBOK [LEADER_Sabrina,Sabrina] Items = MAXPOTION,MAXPOTION -Pokemon = B122H97,43 #HYPMIME psych/fairy +Pokemon = B122H97,41 #HYPMIME psych/fairy Moves = NASTYPLOT,BATONPASS,HYPNOSIS,PSYCHIC AbilityIndex = 0 Item = TWISTEDSPOON -Pokemon = B197H196,43 #ESREON psych/DARK +Pokemon = B197H196,41 #ESREON psych/DARK Moves = MOONLIGHT,FUTURESIGHT,DARKPULSE,LIGHTSCREEN AbilityIndex = 0 Item = TWISTEDSPOON -Pokemon = B80H65,45 #AlaBRO, psych/water +Pokemon = B80H65,42 #AlaBRO, psych/water Moves = PSYCHOCUT,SURF,RECOVER,AMNESIA AbilityIndex = 0 Item = TWISTEDSPOON @@ -2150,19 +2148,19 @@ Pokemon = B296H196,70 #ESPRIO [LEADER_Blaine,Blaine] Items = FULLRESTORE -Pokemon = B78H44,49 #Gloodash, +Pokemon = B78H44,47 #Gloodash, Moves = SUNNYDAY,SOLARBEAM,FLAMETHROWER,TOXIC AbilityIndex = 1 Item = CHARCOAL -Pokemon = B59H38,49 #NINENINE +Pokemon = B59H38,47 #NINENINE Moves = ROAR,FIREFANG,CONFUSERAY,THUNDERFANG AbilityIndex = 0 Item = CHARCOAL -Pokemon = B126H112,51 #Rhymar, +Pokemon = B126H112,49 #Rhymar, Moves = FIREPUNCH,DRILLRUN,CONFUSERAY,HAMMERARM AbilityIndex = 0 Item = PASSHOBERRY -Pokemon = B142H6,53 #Chardactyl, +Pokemon = B142H6,51 #Chardactyl, Moves = CRUNCH,SKYDROP,FIREBLAST,HYPERBEAM AbilityIndex = 0 Item = CHARCOAL @@ -2185,23 +2183,23 @@ Pokemon = B268H302,71 #CRAMORTAR [LEADER_Giovanni,Giovanni,0] Items = FULLRESTORE,FULLRESTORE,FULLRESTORE -Pokemon = B131H265,52 #Rhyras, +Pokemon = B131H265,50 #Rhyras, Moves = SURF,BULLDOZE,SANDSTORM,SING AbilityIndex = 1 Item = SOFTSAND -Pokemon = B51H125,52 #Electatrio, +Pokemon = B51H125,50 #Electatrio, Moves = BULLDOZE,LIGHTSCREEN,THUNDERWAVE,DISCHARGE AbilityIndex = 0 Item = SOFTSAND -Pokemon = B68H76,54 #GOLCHAMP, +Pokemon = B68H76,52 #GOLCHAMP, Moves = EARTHQUAKE,DYNAMICPUNCH,COUNTER,SCARYFACE AbilityIndex = 0 Item = SOFTSAND -Pokemon = B248H273,56 #DNIDOKING, +Pokemon = B248H273,54 #DNIDOKING, Moves = EARTHQUAKE,THRASH,MEGAHORN,POISONJAB AbilityIndex = 1 Item = SOFTSAND -Pokemon = B143H112,56 #snordon, +Pokemon = B143H112,54 #snordon, Moves = EARTHQUAKE,REST,SNORE,HORNDRILL AbilityIndex = 0 Item = SOFTSAND @@ -3932,7 +3930,9 @@ Pokemon = B128H5,44 #CHARROS Pokemon = B131H186,44 #POLIRAS Pokemon = B108H51,44 #DUGTUNG ################### - +[COOLTRAINER_M,Josh] +Pokemon = B143H97,46 #snorlax + hypno +################### [COOLTRAINER_F,Alexa] Pokemon = B25H106,42 #HITMONFABLE Pokemon = B40H107,42 #HITMONTUFF