• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Scripting Question] Fusing Two Pokemon to Make One?

sonicfan7895

Just a dude, I guess
122
Posts
13
Years
  • Hi all!

    My team and I are getting closer and closer to finishing our project; we almost have Pokemon and items done and over with. There is just one thing left standing in our way...

    Two of our legendary Pokemon are set to fuse together to make one ultra-powerful Legendary. The problem with this is, that unlike White Kyurem and Black Kyurem, this ultra-powerful legendary that I mentioned is not going to be treated as a separate form of both of these legendaries, but rather its own separate Pokemon.

    I've been thinking of using some of the code used for the DNA Splicers and how the item functions, but I don't know if this is the correct avenue to drive down, so to speak.

    If I could get some help on deciding what to do, that would be awesome!
     

    sonicfan7895

    Just a dude, I guess
    122
    Posts
    13
    Years
  • This is a start, but what needs to happen is similar to the DNA Splicers; two Pokemon need to come together to make one; and to get them back I would need to un-fuse them.

    Unless the stuff you mentioned would go INTO a sort-of mock-DNA Splicers code for this item.

    This is what I mean; a simple "equation":

    (Legendary 1) + ((Legendary 2) + (Transformation Item)) = Legendary 3

    Legendary 1 is either of the legendaries, whichever is selected first, same goes for Legendary 2, and the transformation item is what is used to fuse the two to create Legendary 3. And the opposite would need to happen in order to un-fuse Legendary 3 back into Legendaries 1 and 2.

    This is my ultimate goal.

    To put it into perspective, here's a mock-up script I made based on the DNA Splicers:
    Code:
    ItemHandlers::UseOnPokemon.add(:[COLOR="DeepSkyBlue"]EBONYGEM[/COLOR],proc{|item,pokemon,scene| [COLOR="SeaGreen"]# Transformation Item[/COLOR]
       if (isConst?(pokemon.species,PBSpecies,:[COLOR="Red"]SERKIRA[/COLOR]) || [COLOR="seagreen"]# Legendary 1/2[/COLOR]
          isConst?(pokemon.species,PBSpecies,:[COLOR="Red"]EBONDRAC[/COLOR]) [COLOR="SeaGreen"]# Legendary 1/2[/COLOR]
         if pokemon.hp>0
           if pokemon.fused!=nil
             if $Trainer.party.length>=6
               scene.pbDisplay(_INTL("You have no room to separate the Pokémon."))
               next false
             else
               $Trainer.party[$Trainer.party.length]=pokemon.fused
               pokemon.fused=nil
               pokemon.form=0
               scene.pbHardRefresh
               scene.pbDisplay(_INTL("{1} separated itself!",pokemon.name))
               next true
             end
           else
             chosen=scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))
             if chosen>=0
               poke2=$Trainer.party[chosen]
               if (isConst?(poke2.species,PBSpecies,:SERKIRA) ||
                  isConst?(poke2.species,PBSpecies,:EBONDRAC)) && poke2.hp>0 && !poke2.isEgg?
                 pbAddPokemonSilent(:SERKINDRAC,80)
                 pokemon.fused=poke2
                 pbRemovePokemonAt(chosen)
                 scene.pbHardRefresh
                 scene.pbDisplay(_INTL("They created [COLOR="Red"]Serkindrac[/COLOR]!")) [COLOR="SeaGreen"]# Legendary 3[/COLOR]
                 next true
               elsif poke2.isEgg?
                 scene.pbDisplay(_INTL("It cannot be fused with an Egg."))
               elsif poke2.hp<=0
                 scene.pbDisplay(_INTL("It cannot be fused with that fainted Pokémon."))
               elsif pokemon==poke2
                 scene.pbDisplay(_INTL("It cannot be fused with itself."))
               else
                 scene.pbDisplay(_INTL("It cannot be fused with that Pokémon."))
               end
             else
               next false
             end
           end
         else
           scene.pbDisplay(_INTL("This can't be used on the fainted Pokémon."))
         end
       else
         scene.pbDisplay(_INTL("It had no effect."))
         next false
       end
    })
     
    Last edited:
    220
    Posts
    13
    Years
    • Seen Nov 29, 2021
    Well that makes it even more complicated. Two into one is easy: You remove the two and add the one. Splitting the one back into two is similarly easy. Back into the same two? I'm not sure that's even possible. You'd need to store everything about the two for when they split, and then how do you account for any stats gained?
     

    sonicfan7895

    Just a dude, I guess
    122
    Posts
    13
    Years
  • You'd need to store everything about the two for when they split, and then how do you account for any stats gained?

    I noticed even more problems with this mechanic, like the stats gained or the levels, and even taking into account un-fusing and re-fusing the two legendaries together. Which would probably reset the progress on the third legendary, which would ultimately not make for a very likable game mechanic. So I'm scrapping that idea and going back to the drawing board, I guess.
     
    Back
    Top