From cb2307a822cbe7bcfac491317858bfef00d31f72 Mon Sep 17 00:00:00 2001 From: infinitefusion Date: Fri, 3 Jun 2022 18:40:36 -0400 Subject: [PATCH] Fusing from PC --- Data/Map020.rxdata | Bin 20234 -> 20017 bytes Data/Map562.rxdata | Bin 51867 -> 51857 bytes Data/MapInfos.rxdata | Bin 36457 -> 36457 bytes .../001_Pokemon-related/004_PokemonStorage.rb | 3 + Data/Scripts/016_UI/017_UI_PokemonStorage.rb | 273 +++++++++++++++++- Data/Scripts/050_AddOns/New Items effects.rb | 91 +++--- Data/System.rxdata | Bin 27345 -> 27343 bytes 7 files changed, 320 insertions(+), 47 deletions(-) diff --git a/Data/Map020.rxdata b/Data/Map020.rxdata index 60eda68e0856c24bd5eeece68762ac9b41529db9..7468a23ff14a68b64ab992e9d87412941394df45 100644 GIT binary patch literal 20017 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 literal 20234 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 diff --git a/Data/Map562.rxdata b/Data/Map562.rxdata index 2660e30fa43385580215d90be869c82410aa8a1f..85fc7b19b515f8c1881cf1c96eae745a312358e8 100644 GIT binary patch delta 8767 zcmdT~U2GIp6yBMZ*`Mxq+ui=q-)&223kdtuF5T{hxD-051Q4>)LZP*^OSxFPq+R|( zBJyC2F%j^F#KfRMUi1ldgW-+%qA&WuqtO_7!^DvIrX-^0-kqJfvoo{pmKIB(({?+Z z{qA?abIy0p?Z?;4u3ay?y4USaq|T;hGxHbQaoe?%o9n!ZH`8ZRmg*V_m?7g^%ce8~m${yAybJ3VxB@G?|`Ck#E+#R2%mne06s`z84;GFnuPIa-gbF zJ9#WLmDi_H9r1{P8X5Vq4b@=bei~IfkZ)8#~QXo1(Lp{)U&{d)e6*sI$Y* z?f5S&!7upXRr=AM2r`@8G%8d52Y)rjR{+@F{~ zhclBW!{cWsX7E&!yd@mj=}%1IxzuC^r)S4c;PZ04Dz`6ll+`q1ZzUNXpNxAFnK?W? zotncE84x?jjQBy7KQS?LZsNlHI6NzpJ}r~K#f@U6kNj3%d&vvS?vznO8Z}m;CK)w% zNIOsqj-b{g3c%0WWYiAKcF1TQd|Ge)&ZrCS?v_yxcA$uiHl)!;H`;`Sf6)saHnbUj zxCK6f*p5Q*ISe1YNz@mFyQ4C4cDRNPg(CfNd*T9ahUp1v@Yg;Oz={4+Za2(KGN2RuL*SSjiQoa*(GoycKQ5 zG1QO4D28jXi{}v0J%_MV!q0)l9|ZPcBfmr&E)_~a!>^M9h^Dw29Csy#Wg#H5cZBXjE;Mf@Zy@%}^8weGv$420~r9i6fK*hGOJl^&ax}fi>ja z+7@Aed^@z=DzYr-EY78r=W_9pRiTO#xV+kS&X}DF(npfzz8dkMKoad|4b(R+k@zLb zphry#5gO+z85&qmzT8tw(nCSg>)WR6z;Y>BWxo{dpy(Q= zWb$eJ%woAGzWVc4y0PHDxNcPP7q6RcT^b1k`C%YG3glPe3XXj8e*cMQlZk2d&?R6s z|2kET7prAj#I0-srj<{vWg(h?gTP!TFjs-=IOcrhPD93On>DbyY+HPr)#PTi&7z~L zp!9lk*;Yxm*p|KBxIr`oy>M@dQLiE@DP%esea?A2J*(($1F%eiun}(5tQ<0Q(m#LvS?z3%y#6`f?i0?8CF|j^g_IRA~7ZF(ZFlR z%{&26yUDGs^0QTt5w0##M0x>lGsxWmc$;xGC->|~$3wRe%kBvNC<+5vZ$vCJgT4z~ zr$+U1M5=3WIMf$5vz{K+ZBYG_8_^LnMAQejsQNDf(Nkw#TJp94nLR*eH3n&`1{l1? zfT$L`K5{#-O6&%gic2VX;vZ$qY*=(5&#LBaq_K%D3Q z?m(XZ=gw@1;qq0-eVC>_FL1vJxUa`0Lj^5Hl)z#)@^;>D>=CF2tSFTlPEez(q=x%V#5pf;O^nJp5Cn+xJpu? z8)ER;BTNfn2-ZV=pAWb23eKL|_IbIMJ%VIpM=pExk}r02W^KlJ0ceTVL2`WmqawhU!*94L@JKIT=d@uxMIKZ}v}*09A=jtq zq!NPzE+G5pzV0HJb%kQ3Jd$cOA|U`vM_C;}asv)1VA-icb}T7ax{L*D+cMSP?)(Xf zNsh~n#35Z&jaHGHuSc_yL!Sr+YAp_JIBH9PsvF$!K0$>UQ*$xrkC`?mnWe}L1U3WR z0eV`eX@lwc-oc;$@8Yrxic55H#f47)X-`-UtEs_GZZ-OjJa4Zp8rlUMtGP>B!YD~! z=lcLWwb)ev-iaF(@Q~Ikec7+a?ug=N62TL*;w>rr)5M$z+hTeqxFqmun*|!tNs3Kp zA{_f_uBlU-Em_e$J+5*R;Yc5Gr`|Wn9%eL(JzkD1XpM^=YeF07W5-lHGzYmG-EIa; zIYKQBmO4Gs(Pi$4xxmvB9i3m$=}{MKcO!sYH$#~BUg_0Osn_i&dJT*GimyshfH4` zF@5!j9sbZ@x0Sxd?<@`%^9?0WQw}C=VwC-=Fr0c*B}GG=!j-Pk2P@By6BHSlA9j9k wfrm@z=8)8&D@8)x+Tlf*)=JtL^nrxD@TUhEJd>JFWyaw^zB&8k#Er@S0J|lGH~;_u delta 8994 zcmd5?TW=dh6!vbzdgJ&OCvlrNsdIreZqvqgk~Z-`>!$5;DQTfH1Zs&85;qJDF(gjf z3JD7&E&>FUQ4xrXgb;!^Kn5X%1ga1qBrdIl!~;K|AR(T3fFdqu*6Z0>@2+Dz1^VD5 zUSIZ`Z_fG7ch2PWnGG+U+3@US$e+yNh0Jm$H;w0TXTqJ#tY#K-%MbKm*Xi50%dX@C zUe2YRr(f%W#S2NSO zQ}<=ySxa&bFJ)$PIJ-D~44+iU2TgYbB)GhM0_SG$j!m!5EZ{kXMBGPv{l!l%Wmj^U zY@+4JP1hz8lki4x!dCU_LeB@nEFy98~f(qK0MVq{+T|pha(q0sz%R-$g)CI3@R!|sAs9Qlj z@T)hA`qW!y(UneheXurkm4f?@HRK+Ke5;ZN^cwgQEV>ir+iqf3hneDe zg*~W}S`FsmO2h*F44p=8Y$w`<$Iuv#p>f=XyA7QB(+c@+Pv7Yad&Y{}3skf11)|yC z#jRGfpcc++%axK-WIEGVct?0mY*gdJ2OlCw8@j{lN1gaLh@Dp4qJ5QwJ@Blx>^&FD z-qXsxXB+#Ti`@6n%-U>%NA4eQ$qNqyNP184Pl2Hn9<{poxYflctS&xnb@5rNi`$;F zy867;#TUr;R}A#2tnsu%)R)mt*Ch(?6?RGwU6H4GV41lMVm+BF)tI^Yx`ID$4Xx(j z$HMjYs$voR@m&!7oe=!}5d7WP&j&v_-@1!@+kB85Zo67Y5aH7v^7d4xoiOU@TZ1gt zN-l8gQDw2DEMzjcVvZ0H8$Lo(s2?JvRY;MG!4oEV4An`!TnY?>JX-5H$9#WD(ql28 zJ_gi}0`-0z;;Bb%;7Plf zv7x@Q-ZS2T)GDx3xgX?9X*>?R$AR}K@E*cF8t)J@S`B@s>ydGj=#+&NlywWO7tac0 za&yQOVm7(4W_H)PM_@IIt|30AEtQ5?4-Ohb4D7<$_S_`{%PfxNrigOC!QrrsaDvI9 z)E7SOh=_K9B79<E04uY zOkU+qEqVW?$6^+1Kh)ZC^UAiCv#-=+4MEOb2~;*=NG9I5a$5J<$YrE;jf~t{%8Yni zB!2`~O_5u$&GWHD|^?fA~h|)Sk^)3wDOSqZizVKK0N4IdiaAELk(Y>$% zJeW*<;d27Hc`#D=Y3Li?ER#DTJYYsEmkl zTeU(MYe|gOk{!V90C3xkJ2h@0zO`E73tw*v1RL(w37Kn|5&*FI_fGh>pJoGMNpqBGVdw{VrKN(r`J*7xOSN>S269{x%?gBktnJ zry~!!aBk0A4eAygARq77w;(`#2l`F9C;kQFn>D5(e6MNlp$*d%KQWCI~9$3mI>?zA;2l@9s^<_W6JjmR2mFAi%hK?B&3c^Vf`%{Gnd}uVgiy z*705nW2=_O_%O}Jk}PY7OEI{>XQO(!L`8W7VAERf#f=oA{JveY7-En?erV^20i9%DSrKX!X@`6jno9^=4R2D-LU`0kfjEld9<=T{nMe zT1_>nc`0nI7EEDmUF21q{yUlS&DLZR`THX@zCftFN#o3gO z))4x$s#!1g#M^=KFowf9gOoc8=k7eTA+1h>dD{xMkvSx@Te6xAzahbNg`Udsr*7h# z5;-+DFrF40uz@^DJxu+&_G|GvU(aJZK+ygc1mCokBuz^*ID{D+OtNsq%%uxA^ zQPrpZYXoA*hdZ3GjMRiigeU|9FdTpZ6$j{SzD?rlz e4WkA~b NB_POKEMON + commands[cmdUnfuse=commands.length] = _INTL("Unfuse") + else + commands[cmdFuse=commands.length] = _INTL("Fuse") + end + end commands[cmdWithdraw=commands.length] = (selected[0]==-1) ? _INTL("Store") : _INTL("Withdraw") commands[cmdItem=commands.length] = _INTL("Item") - commands[cmdMark=commands.length] = _INTL("Mark") + commands[cmdRelease=commands.length] = _INTL("Release") commands[cmdDebug=commands.length] = _INTL("Debug") if $DEBUG commands[cmdCancel=commands.length] = _INTL("Cancel") @@ -1581,13 +1648,16 @@ class PokemonStorageScreen (selected[0]==-1) ? pbStore(selected,@heldpkmn) : pbWithdraw(selected,@heldpkmn) elsif cmdItem>=0 && command==cmdItem # Item pbItem(selected,@heldpkmn) - elsif cmdMark>=0 && command==cmdMark # Mark - pbMark(selected,@heldpkmn) + elsif cmdFuse>=0 && command==cmdFuse # fuse + pbFuseFromPC(selected,@heldpkmn) + elsif cmdUnfuse>=0 && command==cmdUnfuse # unfuse + pbUnfuseFromPC(selected) elsif cmdRelease>=0 && command==cmdRelease # Release pbRelease(selected,@heldpkmn) elsif cmdDebug>=0 && command==cmdDebug # Debug pbPokemonDebug((@heldpkmn) ? @heldpkmn : pokemon,selected,heldpoke) end + end end end end @@ -1614,20 +1684,24 @@ class PokemonStorageScreen pbBoxCommands next end + if @fusionMode + pbFusionCommands(selected) + else pokemon = @storage[selected[0],selected[1]] next if !pokemon command = pbShowCommands(_INTL("{1} is selected.",pokemon.name),[ _INTL("Withdraw"), _INTL("Summary"), - _INTL("Mark"), _INTL("Release"), _INTL("Cancel") ]) case command when 0 then pbWithdraw(selected, nil) when 1 then pbSummary(selected, nil) - when 2 then pbMark(selected, nil) - when 3 then pbRelease(selected, nil) + #when 2 then pbMark(selected, nil) + when 2 then pbRelease(selected, nil) + end + end end end @@ -2020,4 +2094,189 @@ class PokemonStorageScreen @scene.pbCloseBox return retval end + + + # + # Fusion stuff + # + + def pbFuseFromPC(selected,heldpoke) + box=selected[0] + index=selected[1] + poke_body = @storage[box,index] + poke_head = heldpoke + if heldpoke + if dexNum(heldpoke.species) > NB_POKEMON + pbDisplay(_INTL("{1} is already fused!",heldpoke.name)) + return + end + end + + + splicerItem = selectSplicer() + if splicerItem == nil + cancelFusion() + return + end + isSuperSplicer = isSuperSplicer?(splicerItem) + + if !heldpoke + @fusionMode = true + @fusionItem = splicerItem + @scene.setFusing(true,@fusionItem) + pbHold(selected) + pbDisplay(_INTL("Select a Pokémon to fuse it with")) + return + end + if !poke_body + pbDisplay(_INTL("Select a Pokémon to fuse it with")) + @fusionMode = true + @fusionItem = splicerItem + @scene.setFusing(true,@fusionItem) + return + end + end + + def deleteHeldPokemon(heldpoke,selected) + @scene.pbReleaseInstant(selected,heldpoke) + @heldpkmn = nil + end + + def cancelFusion + @splicerItem =nil + @scene.setFusing(false) + @fusionMode = false + end + + def canDeleteItem(item) + return item == :SUPERSPLICERS || item == :DNASPLICERS + end + + def isSuperSplicer?(item) + return item == :SUPERSPLICERS || item == :INFINITESPLICERS2 + end + + + def pbFusionCommands(selected) + heldpoke=pbHeldPokemon + pokemon=@storage[selected[0],selected[1]] + + if !pokemon + command=pbShowCommands("Select an action",["Cancel","Stop fusing"]) + case command + when 1 #stop + cancelFusion() + end + else + commands=[ + _INTL("Fuse"), + _INTL("Swap") + ] + commands.push(_INTL("Stop fusing")) + commands.push(_INTL("Cancel")) + + if !heldpoke + pbPlace(selected) + @fusionMode =false + @scene.setFusing(false) + return + end + command=pbShowCommands("Select an action",commands) + case command + when 0 #Fuse + if !pokemon + pbDisplay(_INTL("No Pokémon selected!")) + return + else + if dexNum(pokemon.species) > NB_POKEMON + pbDisplay(_INTL("This Pokémon is already fused!")) + return + end + end + isSuperSplicer = isSuperSplicer?(@fusionItem) + + if pbFuse(pokemon,heldpoke,isSuperSplicer) + if canDeleteItem(@fusionItem) + $PokemonBag.pbDeleteItem(@fusionItem) + end + deleteHeldPokemon(heldpoke,selected) + @scene.setFusing(false) + @fusionMode = false + return + else + # print "fusion cancelled" + # @fusionMode = false + end + when 1 #swap + if pokemon + if dexNum(pokemon.species) <= NB_POKEMON + pbSwap(selected) + else + pbDisplay(_INTL("This Pokémon is already fused!")) + end + else + pbDisplay(_INTL("Select a Pokémon!")) + end + when 2 #cancel + cancelFusion() + return + end + end + end + + def pbUnfuseFromPC(selected) + box=selected[0] + index=selected[1] + pokemon = @storage[box,index] + + if pbConfirm(_INTL("Unfuse {1}?",pokemon.name)) + item = selectSplicer() + return if item == nil + isSuperSplicer = isSuperSplicer?(item) + if pbUnfuse(pokemon,@scene,isSuperSplicer,selected) + if canDeleteItem(item) + $PokemonBag.pbDeleteItem(item) + end + end + @scene.pbHardRefresh + end + end + + + def selectSplicer() + dna_splicers_const = "DNA Splicers" + super_splicers_const = "Super Splicers" + infinite_splicers_const = "Infinite Splicers" + + dnaSplicersQt = $PokemonBag.pbQuantity(:DNASPLICERS) + superSplicersQt = $PokemonBag.pbQuantity(:SUPERSPLICERS) + infiniteSplicersQt = $PokemonBag.pbQuantity(:INFINITESPLICERS) + infiniteSplicers2Qt = $PokemonBag.pbQuantity(:INFINITESPLICERS2) + + options = [] + options.push(_INTL"{1}",infinite_splicers_const)if infiniteSplicers2Qt > 0 || infiniteSplicersQt > 0 + options.push(_INTL("{1} ({2})",super_splicers_const,superSplicersQt))if superSplicersQt > 0 + options.push(_INTL("{1} ({2})",dna_splicers_const,dnaSplicersQt))if dnaSplicersQt > 0 + + if options.length <= 0 + pbDisplay(_INTL("You have no fusion items available.")) + return nil + end + + cmd=pbShowCommands("Use which splicers?",options) + if cmd == -1 + return nil + end + ret = options[cmd] + if ret.start_with?(dna_splicers_const) + return :DNASPLICERS + elsif ret.start_with?(super_splicers_const) + return :SUPERSPLICERS + elsif ret.start_with?(infinite_splicers_const) + return infiniteSplicers2Qt >= 1 ? :INFINITESPLICERS2 : :INFINITESPLICERS + end + return nil + end + + end diff --git a/Data/Scripts/050_AddOns/New Items effects.rb b/Data/Scripts/050_AddOns/New Items effects.rb index 942542561..878c050a8 100644 --- a/Data/Scripts/050_AddOns/New Items effects.rb +++ b/Data/Scripts/050_AddOns/New Items effects.rb @@ -254,7 +254,6 @@ ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene| end }) - #NOT FULLY IMPLEMENTED ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene| abilityList = poke.getAbilityList @@ -373,7 +372,6 @@ ItemHandlers::UseFromBag.add(:DEBUGGER, proc { |item| end }) - ItemHandlers::UseFromBag.add(:ODDKEYSTONE, proc { |item| TOTAL_SPIRITS_NEEDED = 108 nbSpirits = pbGet(VAR_ODDKEYSTONE_NB) @@ -382,14 +380,14 @@ ItemHandlers::UseFromBag.add(:ODDKEYSTONE, proc { |item| Kernel.pbMessage(_INTL("Voices can be heard whispering from it...")) Kernel.pbMessage(_INTL("Just... one... more...")) elsif nbSpirits < TOTAL_SPIRITS_NEEDED - nbNeeded = TOTAL_SPIRITS_NEEDED-nbSpirits + nbNeeded = TOTAL_SPIRITS_NEEDED - nbSpirits Kernel.pbMessage(_INTL("Voices can be heard whispering from the Odd Keystone...")) - Kernel.pbMessage(_INTL("Bring... us... {1}... spirits",nbNeeded.to_s)) + Kernel.pbMessage(_INTL("Bring... us... {1}... spirits", nbNeeded.to_s)) else Kernel.pbMessage(_INTL("The Odd Keystone appears to be moving on its own.")) Kernel.pbMessage(_INTL("It seems as if some poweful energy is trying to escape from it.")) - if (Kernel.pbMessage("Let it out?", ["No","Yes"], 0)) == 1 - pbWildBattle(:SPIRITOMB,27) + if (Kernel.pbMessage("Let it out?", ["No", "Yes"], 0)) == 1 + pbWildBattle(:SPIRITOMB, 27) pbSet(VAR_ODDKEYSTONE_NB, 0) end next 1 @@ -687,8 +685,6 @@ def drawPokemonType(pokemon_id, x_pos = 192, y_pos = 264) return viewport end - - ItemHandlers::UseOnPokemon.add(:SUPERSPLICERS, proc { |item, pokemon, scene| next true if pbDNASplicing(pokemon, scene, true, true) }) @@ -882,40 +878,40 @@ ItemHandlers::UseOnPokemon.add(:SLOWPOKETAIL, proc { |item, pokemon, scene| # next true # end # }) -ItemHandlers::UseOnPokemon.add(:POISONMUSHROOM,proc { |item,pkmn,scene| +ItemHandlers::UseOnPokemon.add(:POISONMUSHROOM, proc { |item, pkmn, scene| if pkmn.status != :POISON - pkmn.status= :POISON + pkmn.status = :POISON scene.pbRefresh - scene.pbDisplay(_INTL("{1} was poisoned from eating the mushroom.",pkmn.name)) + scene.pbDisplay(_INTL("{1} was poisoned from eating the mushroom.", pkmn.name)) end - next pbHPItem(pkmn,10,scene) + next pbHPItem(pkmn, 10, scene) }) -ItemHandlers::BattleUseOnPokemon.add(:POISONMUSHROOM,proc { |item,pokemon,battler,choices,scene| +ItemHandlers::BattleUseOnPokemon.add(:POISONMUSHROOM, proc { |item, pokemon, battler, choices, scene| if battler.status != :POISON - battler.status= :POISON + battler.status = :POISON scene.pbRefresh - scene.pbDisplay(_INTL("{1} was poisoned from eating the mushroom.",pokemon.name)) + scene.pbDisplay(_INTL("{1} was poisoned from eating the mushroom.", pokemon.name)) end - pbBattleHPItem(pokemon,battler,10,scene) + pbBattleHPItem(pokemon, battler, 10, scene) }) -ItemHandlers::UseOnPokemon.add(:TINYMUSHROOM,proc { |item,pkmn,scene| - next pbHPItem(pkmn,10,scene) +ItemHandlers::UseOnPokemon.add(:TINYMUSHROOM, proc { |item, pkmn, scene| + next pbHPItem(pkmn, 10, scene) }) -ItemHandlers::BattleUseOnPokemon.add(:TINYMUSHROOM,proc { |item,pokemon,battler,choices,scene| - next pbBattleHPItem(pokemon,battler,50,scene) +ItemHandlers::BattleUseOnPokemon.add(:TINYMUSHROOM, proc { |item, pokemon, battler, choices, scene| + next pbBattleHPItem(pokemon, battler, 50, scene) }) -ItemHandlers::UseOnPokemon.add(:BIGMUSHROOM,proc { |item,pkmn,scene| - next pbHPItem(pkmn,10,scene) +ItemHandlers::UseOnPokemon.add(:BIGMUSHROOM, proc { |item, pkmn, scene| + next pbHPItem(pkmn, 10, scene) }) -ItemHandlers::BattleUseOnPokemon.add(:BIGMUSHROOM,proc { |item,pokemon,battler,choices,scene| - next pbBattleHPItem(pokemon,battler,50,scene) +ItemHandlers::BattleUseOnPokemon.add(:BIGMUSHROOM, proc { |item, pokemon, battler, choices, scene| + next pbBattleHPItem(pokemon, battler, 50, scene) }) -ItemHandlers::UseOnPokemon.add(:BALMMUSHROOM,proc { |item,pkmn,scene| - next pbHPItem(pkmn,999,scene) +ItemHandlers::UseOnPokemon.add(:BALMMUSHROOM, proc { |item, pkmn, scene| + next pbHPItem(pkmn, 999, scene) }) -ItemHandlers::BattleUseOnPokemon.add(:BALMMUSHROOM,proc { |item,pokemon,battler,choices,scene| - next pbBattleHPItem(pokemon,battler,999,scene) +ItemHandlers::BattleUseOnPokemon.add(:BALMMUSHROOM, proc { |item, pokemon, battler, choices, scene| + next pbBattleHPItem(pokemon, battler, 999, scene) }) #TRACKER (for roaming legendaries) @@ -1290,7 +1286,7 @@ def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false) scene.pbDisplay(_INTL("A fainted Pokémon cannot be fused!")) return false end - if(pbFuse(pokemon,poke2,superSplicer)) + if (pbFuse(pokemon, poke2, superSplicer)) pbRemovePokemonAt(chosen) scene.pbHardRefresh pbBGMPlay(playingBGM) @@ -1309,11 +1305,11 @@ def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false) end else #UNFUSE - return true if pbUnfuse(pokemon,scene,supersplicers) + return true if pbUnfuse(pokemon, scene, supersplicers) end end -def pbFuse(pokemon,poke2,supersplicers=false) +def pbFuse(pokemon, poke2, supersplicers = false) newid = (pokemon.species_data.id_number) * NB_POKEMON + poke2.species_data.id_number pathCustom = _INTL("Graphics/CustomBattlers/{1}.{2}.png", poke2.species_data.id_number, pokemon.species_data.id_number) @@ -1358,8 +1354,7 @@ def pbFuse(pokemon,poke2,supersplicers=false) end - -def pbUnfuse(pokemon, scene,supersplicers,pcPosition=nil) +def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil) bodyPoke = getBasePokemonID(pokemon.species_data.id_number, true) headPoke = getBasePokemonID(pokemon.species_data.id_number, false) @@ -1375,7 +1370,7 @@ def pbUnfuse(pokemon, scene,supersplicers,pcPosition=nil) end keepInParty = 0 - if $Trainer.party.length >= 6 + if $Trainer.party.length >= 6 && !pcPosition scene.pbDisplay(_INTL("Your party is full! Keep which Pokémon in party?")) choice = Kernel.pbMessage("Select a Pokémon to keep in your party.", [_INTL("{1}", PBSpecies.getName(bodyPoke)), _INTL("{1}", PBSpecies.getName(headPoke)), "Cancel"], 2) if choice == 2 @@ -1407,9 +1402,9 @@ def pbUnfuse(pokemon, scene,supersplicers,pcPosition=nil) body_level = poke1.level head_level = poke2.level - pokemon.exp_gained_since_fused=0 - pokemon.exp_when_fused_head=nil - pokemon.exp_when_fused_body=nil + pokemon.exp_gained_since_fused = 0 + pokemon.exp_when_fused_head = nil + pokemon.exp_when_fused_body = nil if $Trainer.party.length >= 6 if (keepInParty == 0) @@ -1419,11 +1414,27 @@ def pbUnfuse(pokemon, scene,supersplicers,pcPosition=nil) poke2 = Pokemon.new(bodyPoke, body_level) poke1 = Pokemon.new(headPoke, head_level) - $PokemonStorage.pbStoreCaught(poke2) - scene.pbDisplay(_INTL("{1} was sent to the PC.", poke2.name)) + if pcPosition != nil + box = pcPosition[0] + index = pcPosition[1] + #todo: store at next available position from current position + $PokemonStorage.pbStoreCaught(poke2) + else + $PokemonStorage.pbStoreCaught(poke2) + scene.pbDisplay(_INTL("{1} was sent to the PC.", poke2.name)) + end + end else - Kernel.pbAddPokemonSilent(poke2, poke2.level) + if pcPosition != nil + box = pcPosition[0] + index = pcPosition[1] + + #todo: store at next available position from current position + $PokemonStorage.pbStoreCaught(poke2) + else + Kernel.pbAddPokemonSilent(poke2, poke2.level) + end end #On ajoute l'autre dans le pokedex aussi diff --git a/Data/System.rxdata b/Data/System.rxdata index 61b38b694792d1b7b8497e24fc2cfed0373e103f..112d682194281d531740f62cdbe5bcea3edaa068 100644 GIT binary patch delta 26 icmcb3mGS&l#tnDGSeP&5>ur80c07Pla`UQmb!Gsll?yBY delta 28 kcmX?qmGR