From 1182afbea307d2a6120587fb49f44312b06801b5 Mon Sep 17 00:00:00 2001 From: infinitefusion Date: Sat, 27 May 2023 12:37:08 -0400 Subject: [PATCH] double abilities splash --- Data/Map584.rxdata | Bin 18388 -> 18388 bytes Data/Map638.rxdata | Bin 33843 -> 33843 bytes Data/Map651.rxdata | Bin 9554 -> 9719 bytes Data/MapInfos.rxdata | Bin 38813 -> 38813 bytes .../010_Data/002_PBS data/013_Trainer.rb | 4 +- .../002_PokeBattle_SceneAnimations.rb | 13 +- .../004_PokeBattle_SceneElements.rb | 438 +++++++++--------- .../005_Battle scene/007_Scene_Initialize.rb | 2 + .../005_Battle scene/009_Scene_Animations.rb | 3 +- Data/System.rxdata | Bin 28032 -> 28034 bytes 10 files changed, 227 insertions(+), 233 deletions(-) diff --git a/Data/Map584.rxdata b/Data/Map584.rxdata index f70144bde3ba686203e8d504d060ba898835430d..f5abdab807f911d6ba3a260452c40c6ed6df0d6c 100644 GIT binary patch literal 18388 zcmeHP-EP~+6{eL!lI1`7C&{Kw(y_d0;@0chN;b)o-3=2b+60>gf<&9P@P#@SC(^_e zM``lk5%$g)B2t;J1xe!TF@=pVx@%# zb-Uv-x=XgW+f}FZHh1ey+%M`bx;V_Oaf4q*PqxP_*ZI{vF9>zcWBfo;3bGGvFlRd} z)U$oMsy+dA0dh?4xZ6`gJ=edvC0Z?N8F@%)QyY4?%$5waTwcrb&$P+X?1NX_CHIA} zwF0!6*12Us8dt!uE)2#ez7X1cUR&7Cb=1kKu-Fwve*H`QHSsryd`es7inhcj{uy-5 z@|l1n0?HIuc&0JIOMDq;*|5Xkd$P2%z8p_T@{hP2CE%l|b9zhcv6|a$GYn->H@MB} zE*Dnq1%Fk+?YgiGE(t;tAk4BW8PjHv4_{sLkn)$t0yCbvi%5Cg44<_u6@kmipI0i%?S8msIq}X$$yP=!c(T zET?|_o=z->t984&o7)d zV+M2w-zKnYG%E;&!h`1<8}F+*z01q^`HC;7c^x7PyePDpf;PLI6WZJYK%EQSl+Twg zyxTxr)!HWQGJE|M`N@Z5^LpTiZm%7ByerKC4p&0>qvwkDgQ|A5ihfxcIG+a{v-)O0 z%6vHy(4>>gMoQ#bS~K(eutkn1iOWYs4;6Q3ba8(O#r2|2JBP48U(wzX+J#x|yA|zw zhz;!`w7pc(F5}+!D;mMoaz!iQ*Ghm1rlTGvP^=L*A0#k3+I#jvLQbxN}J+gYrG1UwFY;#k) z&97)5@Oe$;MLrcc7_{~r4A-9axE?Z7!%p55+n=4o8S`|{%wzSD?8%IR~8kOWIx2U^c-LYIiVk8l)>a1Pe%$ zxJ^bL^G4Gp&s;2{1naU#yHD-ikkiZ1?xiWO(RwK1cYO&*QRWfx)F4gnke3~!!CFv^ zIKtDaMY~c@Xe(8_$4rw{#XcsnKxnAU;UTm*-ViF>`{_n`GZN-g@i0dm%?Q&VM#o^V z;zR?p1GsY5+IvUeRz=w+7U z!lBYioH|scQyzS`VfSJXd@~&L(SY5*#Vg)v3cl+>@Lfjm<@xM@5&W&kn+ZS~_iK22 zJx(3!?PCu>CoUW+b>h^aDkTKqh?(VU-|c(=yUzx}H_Imz?0yOY@HN%ePR*9{28fkyZ8DpYCUwXTV-}&racycf7!k;m?DzJCZ5pOb zotWL|5|iVWjUR-%1k0ez%EQblTRMXfUh}d()INO9rLo5zL0_E4W?CD zegPDj>4;I{KsJn4GVV!X&jdMkK|?a^M}l9_=+zfTbNYiiee|5cnf7I=0_L^Wfp9{B zW1ajQMHgA#Xb9<~(h~wC`uY?H3m%@No>F;^vY_{opvrr{4k1L%aS+s8LJ|1Gpa?8` z_Oo16Y`rWO`-EP>b2V}vO)62o=(UNSM>FB*Io6MvUxaLcp;Y_rQq) z9tCh1$fJR|oS-t&jYR5|MC#Q<>S_Yj3u`&_L!s#Hpy1Do@MnAu`g3?4h0%MO(CaH( zNQyG@!e2e4*3_$=57e4sRlk05AN2{Z;52!h`u>=UlZQNhI8c|oiv7s~_9t`Rqhcpg z&R4wWtqVHs;Gr2F9@X$9xr&Fb26bsiEmY+*xy(DOXYlNE1)nlL^87bTin5U&Z!H2h zl*eCl+#YdU50zh(=#XQlq>s#{S;7<{9 literal 18388 zcmeHPTW=f36<*N=N!_W7?YME&5f#@~tEiIf*v?K9)0WNHhyxfl8kn&)OmHb z)D-)y>U3I+E11UMwzD%S)N|dT+oIXjOg*m_z{!Fb4znaXn#=y7q~(f`PjexTeE!H zCkdZ2$rYZdkMSa3#!)u7;a}lg^sG0JJ4y0Kd>+N;qX3(lFm>*5VG5OW0r9X?)$QQw zjJi;=52Px#s{5M3^|HEHvYGL$>QSq;MlpLE_<5(BRj%`Fc+Y0{o_)>Y+OEMQr7ab5 zzK4y^d#)6Ya~Umm&;1d>Ok2TBI=5I&E~NU5zbHczSL>F5F$ISAIqcxEB;;wKYb=uL z8$b^FlNyo0*n7Oyl9HBTdKPOj&8eu}ZSZD!Uw zJdeS3OKUZFO{hz8Xg~F?O<|a5X*C!-ANw9`Y7JOm4F*_s{XxO?mgeBxgjkp#ej}GG zMGTkBbC3q2ntEX73lTmI7w3hNW*lf8y9$IH(UJ%qXvUr=evO_!xMM}C1YF(^R1iH@=%ot%aRv8frMrCP-7RfC1gEN1AtmE(w~98)~s&Nesc4StE<!nhMwHO+KtIUoIKs}cw{z`J(&_Vu0si1P{IO~Fv$V5>*byj3P_%B zTmgj7y^4hBhA?>GkiL4jqlQX=7Y^a8p`!*7S9-z%lyDJB$nv=!C3vAWR7CM&Yj;~S zj63b!D_d*cP6=6JmH3{JsRi*UTco!Qomm9C7psj7rjw3n6QuSAaT<&~47D&hc{#Gf<}=8!nHFxogaapxBsTbq$sJDC`3p~7il=tOVp3|hS6$Fn&;m7qmv z){SR*xY{=e?_Tigrbk3EH$6sk)I=mT#8YJ%Jo-}Q*x!6wH&Lt@8fxe8*4S~Lj5eEwN3R7(8xkI>ZG{pv@Cx=MwICY>%363W-%4ylNegwVG_|7-O$NTht3LNhhb<$2%;cyK~ zkky+kp~q#r!;OI0hJ+>b^>7z|guQyH(qI-N4b3LIjG06uwqt2#oe_cUx%I(;ungUh zJ9cK(JH+6)WZ{Eo4nYc(6?w2>&ldZ3^zzhZL`Q>aJs6xhUPj?6MSKcea$2f znO1Kzvfa>{Ep!M;4NWQH2*S;MW;?vDIgFsa8x!)Dtblac4Q_H1m6FrIQe-LOE%CBV zY+g4trwv#R0E^9=+|W?1h=5mg4Xf_$;u(N@$m(d;X;z2$5MOHat7(b8$qXqOGIoT6Ij$KDfhFwqa>gceyIGoY<%k;@p24gyq6*AOot^?tO zx_X`b3bnqhs_Q};sk8(iiLN|_-a6ZzDHJNt(HV5#5>$EZcL9WGJNAN_OK1Rp>^Fer zo!tr--CDQ8#Xccyc&9F@<_W%`NOh&Jyte{){#V|cl`msVR>vQ_mw!8 zqeqdHOEP9DE-5a_2qaTedr89On)1|*QomG&&4O_*G81`O$UEwdoAL3<6qyyDySdCe zIv$t)%#m{O&`xnlwz|>aBKIu89z*UqhTkJ3OO;Yjh5$;o^e08&)FJTM)F?!HG7>I3 zBjGZN_4M*Md*?u@?fIXR vw)`@a29tl|&2Qk#M(|A~0)GU6FB_5HWx`kRRXPV;#~%b->AC2BWsdTH>`%UV diff --git a/Data/Map638.rxdata b/Data/Map638.rxdata index b399514c8127a63bd18403af8afdc4b9c5c998b8..80f37cd0e5ce9366f27d4136d2649d4a0775c8e3 100644 GIT binary patch literal 33843 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 HtFiwB-h3>h diff --git a/Data/Map651.rxdata b/Data/Map651.rxdata index 1c96e07a8ab6c0803e1e13af711b0108da48f930..15ab3ea19c2591eaeafd873a27dc23ec394f43c2 100644 GIT binary patch literal 9719 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 Gsr47U%BZgZ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index e1a3846b6ee013f23c5190d1e325d22b36546440..7fe1dc91ca8e3bde21f25e1cdbdf264fbfaa1548 100644 GIT binary patch delta 57 zcmV-90LK5FuL7N~0 116 - textPos.push([@battler.name, @spriteBaseX + 8 - nameOffset, 0, false, NAME_BASE_COLOR, NAME_SHADOW_COLOR]) + nameOffset = nameWidth-116 if nameWidth>116 + textPos.push([@battler.name,@spriteBaseX+8-nameOffset,0,false,NAME_BASE_COLOR,NAME_SHADOW_COLOR]) # Draw Pokémon's gender symbol case @battler.displayGender - when 0 # Male - textPos.push([_INTL("♂"), @spriteBaseX + 126, 0, false, MALE_BASE_COLOR, MALE_SHADOW_COLOR]) - when 1 # Female - textPos.push([_INTL("♀"), @spriteBaseX + 126, 0, false, FEMALE_BASE_COLOR, FEMALE_SHADOW_COLOR]) + when 0 # Male + textPos.push([_INTL("♂"),@spriteBaseX+126,0,false,MALE_BASE_COLOR,MALE_SHADOW_COLOR]) + when 1 # Female + textPos.push([_INTL("♀"),@spriteBaseX+126,0,false,FEMALE_BASE_COLOR,FEMALE_SHADOW_COLOR]) end - pbDrawTextPositions(self.bitmap, textPos) + pbDrawTextPositions(self.bitmap,textPos) # Draw Pokémon's level - imagePos.push(["Graphics/Pictures/Battle/overlay_lv", @spriteBaseX + 140, 16]) if !$game_switches[SWITCH_NO_LEVELS_MODE] - pbDrawNumber(@battler.level, self.bitmap, @spriteBaseX + 162, 16) if !$game_switches[SWITCH_NO_LEVELS_MODE] + imagePos.push(["Graphics/Pictures/Battle/overlay_lv",@spriteBaseX+140,16]) if !$game_switches[SWITCH_NO_LEVELS_MODE] + pbDrawNumber(@battler.level,self.bitmap,@spriteBaseX+162,16) if !$game_switches[SWITCH_NO_LEVELS_MODE] # Draw shiny icon if @battler.shiny? - shinyX = (@battler.opposes?(0)) ? 206 : -6 # Foe's/player's + shinyX = (@battler.opposes?(0)) ? 206 : -6 # Foe's/player's - pokeRadarShiny = !@battler.pokemon.debugShiny? && !@battler.pokemon.naturalShiny? - addShinyStarsToGraphicsArray(imagePos, @spriteBaseX + shinyX, 35, @battler.pokemon.bodyShiny?, @battler.pokemon.headShiny?, @battler.pokemon.debugShiny?, pokeRadarShiny) + pokeRadarShiny= !@battler.pokemon.debugShiny? && !@battler.pokemon.naturalShiny? + addShinyStarsToGraphicsArray(imagePos,@spriteBaseX+shinyX,35, @battler.pokemon.bodyShiny?,@battler.pokemon.headShiny?,@battler.pokemon.debugShiny?, pokeRadarShiny) end # Draw Mega Evolution/Primal Reversion icon if @battler.mega? - imagePos.push(["Graphics/Pictures/Battle/icon_mega", @spriteBaseX + 8, 34]) + imagePos.push(["Graphics/Pictures/Battle/icon_mega",@spriteBaseX+8,34]) elsif @battler.primal? - primalX = (@battler.opposes?) ? 208 : -28 # Foe's/player's + primalX = (@battler.opposes?) ? 208 : -28 # Foe's/player's if @battler.isSpecies?(:KYOGRE) - imagePos.push(["Graphics/Pictures/Battle/icon_primal_Kyogre", @spriteBaseX + primalX, 4]) + imagePos.push(["Graphics/Pictures/Battle/icon_primal_Kyogre",@spriteBaseX+primalX,4]) elsif @battler.isSpecies?(:GROUDON) - imagePos.push(["Graphics/Pictures/Battle/icon_primal_Groudon", @spriteBaseX + primalX, 4]) + imagePos.push(["Graphics/Pictures/Battle/icon_primal_Groudon",@spriteBaseX+primalX,4]) end end # Draw owned icon (foe Pokémon only) if @battler.owned? && @battler.opposes?(0) - imagePos.push(["Graphics/Pictures/Battle/icon_own", @spriteBaseX - 8, 42]) + imagePos.push(["Graphics/Pictures/Battle/icon_own",@spriteBaseX-8,42]) end # Draw status icon if @battler.status != :NONE s = GameData::Status.get(@battler.status).id_number - if s == :POISON && @battler.statusCount > 0 # Badly poisoned + if s == :POISON && @battler.statusCount > 0 # Badly poisoned s = GameData::Status::DATA.keys.length / 2 end - imagePos.push(["Graphics/Pictures/Battle/icon_statuses", @spriteBaseX + 24, 56, - 0, (s - 1) * STATUS_ICON_HEIGHT, -1, STATUS_ICON_HEIGHT]) + imagePos.push(["Graphics/Pictures/Battle/icon_statuses",@spriteBaseX+24,56, + 0,(s-1)*STATUS_ICON_HEIGHT,-1,STATUS_ICON_HEIGHT]) end - pbDrawImagePositions(self.bitmap, imagePos) + pbDrawImagePositions(self.bitmap,imagePos) refreshHP refreshExp end @@ -273,24 +273,24 @@ class PokemonDataBox < SpriteWrapper return if !@battler.pokemon # Show HP numbers if @showHP - pbDrawNumber(self.hp, @hpNumbers.bitmap, 54, 2, 1) - pbDrawNumber(-1, @hpNumbers.bitmap, 54, 2) # / char - pbDrawNumber(@battler.totalhp, @hpNumbers.bitmap, 70, 2) + pbDrawNumber(self.hp,@hpNumbers.bitmap,54,2,1) + pbDrawNumber(-1,@hpNumbers.bitmap,54,2) # / char + pbDrawNumber(@battler.totalhp,@hpNumbers.bitmap,70,2) end # Resize HP bar w = 0 - if self.hp > 0 - w = @hpBarBitmap.width.to_f * self.hp / @battler.totalhp - w = 1 if w < 1 + if self.hp>0 + w = @hpBarBitmap.width.to_f*self.hp/@battler.totalhp + w = 1 if w<1 # NOTE: The line below snaps the bar's width to the nearest 2 pixels, to # fit in with the rest of the graphics which are doubled in size. - w = ((w / 2.0).round) * 2 + w = ((w/2.0).round)*2 end @hpBar.src_rect.width = w - hpColor = 0 # Green bar - hpColor = 1 if self.hp <= @battler.totalhp / 2 # Yellow bar - hpColor = 2 if self.hp <= @battler.totalhp / 4 # Red bar - @hpBar.src_rect.y = hpColor * @hpBarBitmap.height / 3 + hpColor = 0 # Green bar + hpColor = 1 if self.hp<=@battler.totalhp/2 # Yellow bar + hpColor = 2 if self.hp<=@battler.totalhp/4 # Red bar + @hpBar.src_rect.y = hpColor*@hpBarBitmap.height/3 end def refreshExp @@ -299,54 +299,54 @@ class PokemonDataBox < SpriteWrapper w = exp_fraction * @expBarBitmap.width # NOTE: The line below snaps the bar's width to the nearest 2 pixels, to # fit in with the rest of the graphics which are doubled in size. - w = ((w / 2).round) * 2 + w = ((w/2).round)*2 @expBar.src_rect.width = w end def updateHPAnimation return if !@animatingHP - if @currentHP < @endHP # Gaining HP + if @currentHP<@endHP # Gaining HP @currentHP += @hpIncPerFrame - @currentHP = @endHP if @currentHP >= @endHP - elsif @currentHP > @endHP # Losing HP + @currentHP = @endHP if @currentHP>=@endHP + elsif @currentHP>@endHP # Losing HP @currentHP -= @hpIncPerFrame - @currentHP = @endHP if @currentHP <= @endHP + @currentHP = @endHP if @currentHP<=@endHP end # Refresh the HP bar/numbers refreshHP - @animatingHP = false if @currentHP == @endHP + @animatingHP = false if @currentHP==@endHP end def updateExpAnimation return if !@animatingExp - if !@showExp # Not showing the Exp bar, no need to waste time animating it + if !@showExp # Not showing the Exp bar, no need to waste time animating it @currentExp = @endExp @animatingExp = false return end - if @currentExp < @endExp # Gaining Exp + if @currentExp<@endExp # Gaining Exp @currentExp += @expIncPerFrame - @currentExp = @endExp if @currentExp >= @endExp - elsif @currentExp > @endExp # Losing Exp + @currentExp = @endExp if @currentExp>=@endExp + elsif @currentExp>@endExp # Losing Exp @currentExp -= @expIncPerFrame - @currentExp = @endExp if @currentExp <= @endExp + @currentExp = @endExp if @currentExp<=@endExp end # Refresh the Exp bar refreshExp - return if @currentExp != @endExp # Exp bar still has more to animate + return if @currentExp!=@endExp # Exp bar still has more to animate # Exp bar is completely filled, level up with a flash and sound effect - if @currentExp >= @rangeExp - if @expFlash == 0 + if @currentExp>=@rangeExp + if @expFlash==0 pbSEStop - @expFlash = Graphics.frame_rate / 5 + @expFlash = Graphics.frame_rate/5 pbSEPlay("Pkmn exp full") - self.flash(Color.new(64, 200, 248, 192), @expFlash) + self.flash(Color.new(64,200,248,192),@expFlash) for i in @sprites - i[1].flash(Color.new(64, 200, 248, 192), @expFlash) if !i[1].disposed? + i[1].flash(Color.new(64,200,248,192),@expFlash) if !i[1].disposed? end else @expFlash -= 1 - @animatingExp = false if @expFlash == 0 + @animatingExp = false if @expFlash==0 end else pbSEStop @@ -355,23 +355,21 @@ class PokemonDataBox < SpriteWrapper end end - QUARTER_ANIM_PERIOD = Graphics.frame_rate * 3 / 20 + QUARTER_ANIM_PERIOD = Graphics.frame_rate*3/20 def updatePositions(frameCounter) self.x = @spriteX self.y = @spriteY # Data box bobbing while Pokémon is selected - if @selected == 1 || @selected == 2 # Choosing commands/targeted or damaged - case (frameCounter / QUARTER_ANIM_PERIOD).floor - when 1 then - self.y = @spriteY - 2 - when 3 then - self.y = @spriteY + 2 + if @selected==1 || @selected==2 # Choosing commands/targeted or damaged + case (frameCounter/QUARTER_ANIM_PERIOD).floor + when 1 then self.y = @spriteY-2 + when 3 then self.y = @spriteY+2 end end end - def update(frameCounter = 0) + def update(frameCounter=0) super() # Animate HP bar updateHPAnimation @@ -383,33 +381,36 @@ class PokemonDataBox < SpriteWrapper end end + + #=============================================================================== # Splash bar to announce a triggered ability #=============================================================================== class AbilitySplashBar < SpriteWrapper attr_reader :battler - TEXT_BASE_COLOR = Color.new(0, 0, 0) - TEXT_SHADOW_COLOR = Color.new(248, 248, 248) + TEXT_BASE_COLOR = Color.new(0,0,0) + TEXT_SHADOW_COLOR = Color.new(248,248,248) - def initialize(side, viewport = nil) + def initialize(side,viewport=nil, secondAbility=false) super(viewport) - @side = side + @secondAbility=secondAbility + @side = side @battler = nil # Create sprite wrapper that displays background graphic @bgBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/ability_bar")) @bgSprite = SpriteWrapper.new(viewport) @bgSprite.bitmap = @bgBitmap.bitmap - @bgSprite.src_rect.y = (side == 0) ? 0 : @bgBitmap.height / 2 - @bgSprite.src_rect.height = @bgBitmap.height / 2 + @bgSprite.src_rect.y = (side==0) ? 0 : @bgBitmap.height/2 + @bgSprite.src_rect.height = @bgBitmap.height/2 # Create bitmap that displays the text - @contents = BitmapWrapper.new(@bgBitmap.width, @bgBitmap.height / 2) + @contents = BitmapWrapper.new(@bgBitmap.width,@bgBitmap.height/2) self.bitmap = @contents pbSetSystemFont(self.bitmap) # Position the bar - self.x = (side == 0) ? -Graphics.width / 2 : Graphics.width - self.y = (side == 0) ? 180 : 80 - self.z = 120 + self.x = (side==0) ? -Graphics.width/2 : Graphics.width + self.y = (side==0) ? 180 : 80 + self.z = 120 self.visible = false end @@ -432,7 +433,7 @@ class AbilitySplashBar < SpriteWrapper def z=(value) super - @bgSprite.z = value - 1 + @bgSprite.z = value-1 end def opacity=(value) @@ -455,23 +456,23 @@ class AbilitySplashBar < SpriteWrapper refresh end + def secondAbility=(value) + @secondAbility = value + end def refresh self.bitmap.clear return if !@battler textPos = [] - textX = (@side == 0) ? 10 : self.bitmap.width - 8 + textX = (@side==0) ? 10 : self.bitmap.width-8 # Draw Pokémon's name - textPos.push([_INTL("{1}'s", @battler.name), textX, -4, @side == 1, - TEXT_BASE_COLOR, TEXT_SHADOW_COLOR, true]) + textPos.push([_INTL("{1}'s",@battler.name),textX,-4,@side==1, + TEXT_BASE_COLOR,TEXT_SHADOW_COLOR,true]) if !@secondAbility # Draw Pokémon's ability - text = @battler.abilityName - if $game_switches[SWITCH_DOUBLE_ABILITIES] - text = _INTL("{1},{2}", @battler.abilityName, @battler.ability2Name) - end - - textPos.push([text, textX, 26, @side == 1, - TEXT_BASE_COLOR, TEXT_SHADOW_COLOR, true]) - pbDrawTextPositions(self.bitmap, textPos) + abilityName = @secondAbility ? @battler.ability2Name : @battler.abilityName + #return if abilityName =="" + textPos.push([abilityName,textX,26,@side==1, + TEXT_BASE_COLOR,TEXT_SHADOW_COLOR,true]) + pbDrawTextPositions(self.bitmap,textPos) end def update @@ -480,33 +481,35 @@ class AbilitySplashBar < SpriteWrapper end end + + #=============================================================================== # Pokémon sprite (used in battle) #=============================================================================== class PokemonBattlerSprite < RPG::Sprite - attr_reader :pkmn + attr_reader :pkmn attr_accessor :index attr_accessor :selected - attr_reader :sideSize + attr_reader :sideSize - def initialize(viewport, sideSize, index, battleAnimations) + def initialize(viewport,sideSize,index,battleAnimations) super(viewport) - @pkmn = nil - @sideSize = sideSize - @index = index + @pkmn = nil + @sideSize = sideSize + @index = index @battleAnimations = battleAnimations # @selected: 0 = not selected, 1 = choosing action bobbing for this Pokémon, # 2 = flashing when targeted - @selected = 0 - @frame = 0 - @updating = false - @spriteX = 0 # Actual x coordinate - @spriteY = 0 # Actual y coordinate - @spriteXExtra = 0 # Offset due to "bobbing" animation - @spriteYExtra = 0 # Offset due to "bobbing" animation - @_iconBitmap = nil - self.visible = false - @back = false + @selected = 0 + @frame = 0 + @updating = false + @spriteX = 0 # Actual x coordinate + @spriteY = 0 # Actual y coordinate + @spriteXExtra = 0 # Offset due to "bobbing" animation + @spriteYExtra = 0 # Offset due to "bobbing" animation + @_iconBitmap = nil + self.visible = false + @back=false end def dispose @@ -516,66 +519,56 @@ class PokemonBattlerSprite < RPG::Sprite super end - def x - return @spriteX; - end - - def y - return @spriteY; - end + def x; return @spriteX; end + def y; return @spriteY; end def x=(value) @spriteX = value - self.mirror = true if @back - super(value + @spriteXExtra) + self.mirror=true if @back + super(value+@spriteXExtra) end def y=(value) @spriteY = value - self.mirror = true if @back - super(value + @spriteYExtra) + self.mirror=true if @back + super(value+@spriteYExtra) end - def width - return (self.bitmap) ? self.bitmap.width : 0; - end - - def height - return (self.bitmap) ? self.bitmap.height : 0; - end + def width; return (self.bitmap) ? self.bitmap.width : 0; end + def height; return (self.bitmap) ? self.bitmap.height : 0; end def visible=(value) - @spriteVisible = value if !@updating # For selection/targeting flashing + @spriteVisible = value if !@updating # For selection/targeting flashing super end # Set sprite's origin to bottom middle def pbSetOrigin return if !@_iconBitmap - self.mirror = true if @back - self.ox = @_iconBitmap.width / 2 + self.mirror=true if @back + self.ox = @_iconBitmap.width/2 self.oy = @_iconBitmap.height end def pbSetPosition return if !@_iconBitmap pbSetOrigin - if (@index % 2) == 0 - self.z = 50 + 5 * @index / 2 + if (@index%2)==0 + self.z = 50+5*@index/2 else - self.z = 50 - 5 * (@index + 1) / 2 + self.z = 50-5*(@index+1)/2 end # Set original position - p = PokeBattle_SceneConstants.pbBattlerPosition(@index, @sideSize) + p = PokeBattle_SceneConstants.pbBattlerPosition(@index,@sideSize) @spriteX = p[0] @spriteY = p[1] # Apply metrics @pkmn.species_data.apply_metrics_to_sprite(self, @index) end - def setPokemonBitmap(pkmn, back = false) + def setPokemonBitmap(pkmn,back=false) @back = back - self.mirror = true if @back + self.mirror=true if @back @pkmn = pkmn @_iconBitmap.dispose if @_iconBitmap @_iconBitmap = GameData::Species.sprite_bitmap_from_pokemon(@pkmn, back) @@ -593,14 +586,14 @@ class PokemonBattlerSprite < RPG::Sprite # this is just playing the Pokémon's cry, but you can expand on it. The # recommendation is to create a PictureEx animation and push it into # the @battleAnimations array. - def pbPlayIntroAnimation(pictureEx = nil) + def pbPlayIntroAnimation(pictureEx=nil) @pkmn.play_cry if @pkmn end - QUARTER_ANIM_PERIOD = Graphics.frame_rate * 3 / 20 - SIXTH_ANIM_PERIOD = Graphics.frame_rate * 2 / 20 + QUARTER_ANIM_PERIOD = Graphics.frame_rate*3/20 + SIXTH_ANIM_PERIOD = Graphics.frame_rate*2/20 - def update(frameCounter = 0) + def update(frameCounter=0) return if !@_iconBitmap @updating = true # Update bitmap @@ -608,43 +601,41 @@ class PokemonBattlerSprite < RPG::Sprite self.bitmap = @_iconBitmap.bitmap # Pokémon sprite bobbing while Pokémon is selected @spriteYExtra = 0 - if @selected == 1 # When choosing commands for this Pokémon - case (frameCounter / QUARTER_ANIM_PERIOD).floor - when 1 then - @spriteYExtra = 2 - when 3 then - @spriteYExtra = -2 + if @selected==1 # When choosing commands for this Pokémon + case (frameCounter/QUARTER_ANIM_PERIOD).floor + when 1 then @spriteYExtra = 2 + when 3 then @spriteYExtra = -2 end end - self.x = self.x - self.y = self.y + self.x = self.x + self.y = self.y self.visible = @spriteVisible # Pokémon sprite blinking when targeted - if @selected == 2 && @spriteVisible - case (frameCounter / SIXTH_ANIM_PERIOD).floor - when 2, 5 then - self.visible = false - else - self.visible = true + if @selected==2 && @spriteVisible + case (frameCounter/SIXTH_ANIM_PERIOD).floor + when 2, 5 then self.visible = false + else self.visible = true end end @updating = false end end + + #=============================================================================== # Shadow sprite for Pokémon (used in battle) #=============================================================================== class PokemonBattlerShadowSprite < RPG::Sprite - attr_reader :pkmn + attr_reader :pkmn attr_accessor :index attr_accessor :selected - def initialize(viewport, sideSize, index) + def initialize(viewport,sideSize,index) super(viewport) - @pkmn = nil - @sideSize = sideSize - @index = index + @pkmn = nil + @sideSize = sideSize + @index = index @_iconBitmap = nil self.visible = false end @@ -656,19 +647,14 @@ class PokemonBattlerShadowSprite < RPG::Sprite super end - def width - return (self.bitmap) ? self.bitmap.width : 0; - end - - def height - return (self.bitmap) ? self.bitmap.height : 0; - end + def width; return (self.bitmap) ? self.bitmap.width : 0; end + def height; return (self.bitmap) ? self.bitmap.height : 0; end # Set sprite's origin to centre def pbSetOrigin return if !@_iconBitmap - self.ox = @_iconBitmap.width / 2 - self.oy = @_iconBitmap.height / 2 + self.ox = @_iconBitmap.width/2 + self.oy = @_iconBitmap.height/2 end def pbSetPosition @@ -676,7 +662,7 @@ class PokemonBattlerShadowSprite < RPG::Sprite pbSetOrigin self.z = 3 # Set original position - p = PokeBattle_SceneConstants.pbBattlerPosition(@index, @sideSize) + p = PokeBattle_SceneConstants.pbBattlerPosition(@index,@sideSize) self.x = p[0] self.y = p[1] # Apply metrics @@ -691,7 +677,7 @@ class PokemonBattlerShadowSprite < RPG::Sprite pbSetPosition end - def update(frameCounter = 0) + def update(frameCounter=0) return if !@_iconBitmap # Update bitmap @_iconBitmap.update diff --git a/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb b/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb index 12b9b71e9..6570dc6b7 100644 --- a/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb +++ b/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb @@ -61,6 +61,8 @@ class PokeBattle_Scene # Ability splash bars if PokeBattle_SceneConstants::USE_ABILITY_SPLASH @sprites["abilityBar_#{side}"] = AbilitySplashBar.new(side,@viewport) + @sprites["ability2Bar_#{side}"] = AbilitySplashBar.new(side,@viewport,true) if $game_switches[SWITCH_DOUBLE_ABILITIES] + @sprites["ability2Bar_#{side}"].y = @sprites["ability2Bar_#{side}"].y+30 end end # Player's and partner trainer's back sprite diff --git a/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb b/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb index ccf7cbda8..a7e45d91c 100644 --- a/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb +++ b/Data/Scripts/011_Battle/005_Battle scene/009_Scene_Animations.rb @@ -173,7 +173,7 @@ class PokeBattle_Scene #============================================================================= # Ability splash bar animations #============================================================================= - def pbShowAbilitySplash(battler,ability_name=nil) + def pbShowAbilitySplash(battler) return if !PokeBattle_SceneConstants::USE_ABILITY_SPLASH side = battler.index%2 pbHideAbilitySplash(battler) if @sprites["abilityBar_#{side}"].visible @@ -188,6 +188,7 @@ class PokeBattle_Scene end + def pbHideAbilitySplash(battler) return if !PokeBattle_SceneConstants::USE_ABILITY_SPLASH side = battler.index%2 diff --git a/Data/System.rxdata b/Data/System.rxdata index 92f251c7b13d3ccbd3a071cba9a4b70157110bee..6a615e3b2c363b8c5151aa6c831b72dcb161e869 100644 GIT binary patch delta 40 wcmZp;&DeCCal>Z`p2PbL7_ImnQj3!l3npL8k=iUNX&=bUZ`UiLUUCM$l2)Z*mCg4D^1*^-+jCG7(l^EXFlsWSrr7YPjE