Jump to content

(v13) Fixes for Toxtricity issues (and Galarian Darumaka's ones too)


Alemi

Recommended Posts

Edit2: This isn't compatible nor needed for 13.5. the 13.5 version of Rejuvenation should have all of this work by defualt.

 

Edit: There is a rar with all fixes on the next psot that jsut need to copy and replace on your game folder, adding some more fixes than the original ones put on the post.

 

Original Post:

I have seen that Toxtricity has several issues, so I tried to fix them, and it seems I succeeded.

 

The known issues are: Wrong Egg Group making it impossible to breed, imposible to evolve to Low Key Form, and Low Key Form attacks being identical to Amped Form.

 

 You can easily fix the Egg Group issue yourself with the PBS Files and the Debug Mod,

 

Official PBS files here:

And the Debug Mod  here: 

 

Steps to fix egg group:

  1. Go to the PBS folder and open pokemon.txt
  2. Search for Toxtricity
  3. Change "Undiscovered" for "Humanlike"
  4. Save the file without touching anything else
  5. Open the game
  6. Open the menu and go to "Debug"
  7. Go to "Compile Data (no map)"
  8. Wait until the compilation finished, it may take a while
  9. Close the game.
  10. Open it again and Toxtricity should be able to breed normally.

 

The other two issues require touching scripts. Fortunately, I managed to make them work, so I will just share them. The changes are quite small though, so I will also leave them the changes made here in case someone is interested:

 

Evolution Issue:

Spoiler

PokemonEvolution.rb. Starting on line 719:

 

def pbMiniCheckEvolution(pokemon,evonib,level,poke)
  marowakMaps=[14,71,62,85,90,95,102,112,113,155,158,321,357,358,359,360,362,368,396,400,401,403,404,408,434]
  crabominableMaps=[146,150,168,165,171,174,178,181,189,217,269,338,339,340,341,343,344,345,346,366,395,479,480,481,482,483,485,486,490,491]
  vikavoltMaps=[26,29,30,63,65,92,120,154,175,191,203,207,208,210,211,225,226,268,295,298,299,300,301,302,309,323,324,325,326,327,329,330,331,332,333,334,335,347,348,406,409,410,411,412,414,543]
  yamaskMaps=[489,12,507,11,508]
  mrmimeMaps=[75,146,150,165,171,174,178,181,269,470,471,479,480,481,482,483,485,486,490,491]
  weezingMaps=[238,239,256,266,270,271,415]
  toxtricityNatures=[1,5,7,10,12,15,16,17,18,20,21,23]
  case evonib
    when PBEvolution::Happiness
      return poke if pokemon.happiness>=220
    when PBEvolution::HappinessDay
      return poke if pokemon.happiness>=220 && PBDayNight.isDay?(pbGetTimeNow)
    when PBEvolution::HappinessNight
      return poke if pokemon.happiness>=220 && PBDayNight.isNight?(pbGetTimeNow)
    when PBEvolution::Level 
      case pokemon.species
        when 104            # Cubone -> Marowak forms
          if PBDayNight.isNight?(pbGetTimeNow) || marowakMaps.include?($game_map.map_id)
            pokemon.form=1
          elsif PBDayNight.isDay?(pbGetTimeNow)
            pokemon.form=0
          end  
        when 109    
          if weezingMaps.include?($game_map.map_id)
            pokemon.form=1
          else
            pokemon.form=0
          end
        when 744            # Rockruff -> Lycanroc forms
          if PBDayNight.isDusk?(pbGetTimeNow) && isConst?(pokemon.ability,PBAbilities,:OWNTEMPO)
            pokemon.form=2
          elsif PBDayNight.isNight?(pbGetTimeNow)
            pokemon.form=1
          elsif PBDayNight.isDay?(pbGetTimeNow)
            pokemon.form=0
          end
        when 848      #Toxel -> Toxtricity
          if toxtricityNatures.include?(pokemon.nature)
            pokemon.form=1
          else
            pokemon.form=0
          end
      end            
      return poke if pokemon.level>=level
    when PBEvolution::Trade, PBEvolution::TradeItem
      return -1
    when PBEvolution::AttackGreater # Hitmonlee
      return poke if pokemon.level>=level && pokemon.attack>pokemon.defense
    when PBEvolution::AtkDefEqual # Hitmontop
      return poke if pokemon.level>=level && pokemon.attack==pokemon.defense
    when PBEvolution::DefenseGreater # Hitmonchan
      return poke if pokemon.level>=level && pokemon.attack<pokemon.defense
    when PBEvolution::Silcoon
      return poke if pokemon.level>=level && (((pokemon.personalID>>16)&0xFFFF)%10)<5
    when PBEvolution::Cascoon
      return poke if pokemon.level>=level && (((pokemon.personalID>>16)&0xFFFF)%10)>=5
    when PBEvolution::Ninjask
      return poke if pokemon.level>=level
    when PBEvolution::Shedinja
      return -1
    when PBEvolution::Beauty # Feebas
      return poke if pokemon.beauty>=level
    when PBEvolution::DayHoldItem
      return poke if pokemon.item==level && PBDayNight.isDay?(pbGetTimeNow)
    when PBEvolution::NightHoldItem
      return poke if pokemon.item==level && PBDayNight.isNight?(pbGetTimeNow)
    when PBEvolution::HasMove
      for i in 0...4
        if pokemon.moves[i].id==level
          if pokemon.species==439
            if mrmimeMaps.include?($game_map.map_id)
              pokemon.form=1
            else
              pokemon.form=0
            end
          end
          return poke 
        end
      end
    when PBEvolution::HasInParty
      for i in $Trainer.party
        return poke if !i.isEgg? && i.species==level
      end
    when PBEvolution::LevelMale
      return poke if pokemon.level>=level && pokemon.isMale?
    when PBEvolution::LevelFemale
      return poke if pokemon.level>=level && pokemon.isFemale?
    when PBEvolution::Location
      if pokemon.species==739
        if crabominableMaps.include?($game_map.map_id)
          return poke
        end
      elsif pokemon.species==737
        if vikavoltMaps.include?($game_map.map_id)
          return poke
        end
    end
      return poke if $game_map.map_id==level
    when PBEvolution::TradeSpecies
      return -1
    when PBEvolution::Custom1
       for i in $Trainer.party
        return poke if !i.egg? && (i.type1==17 || i.type2==17) && pokemon.level>=level
      end
    when PBEvolution::Affection
       for i in 0...4
        return poke if pokemon.happiness>=220 && pokemon.moves[i].type==level
      end
    when PBEvolution::LevelRain
   return poke if pokemon.level>=level && ($game_screen.weather_type==1 ||
     $game_screen.weather_type== 2 || $game_screen.weather_type== 6)    
    when PBEvolution::LevelDay
      return poke if pokemon.level>=level && PBDayNight.isDay?(pbGetTimeNow)
    when PBEvolution::LevelNight
      return poke if pokemon.level>=level && PBDayNight.isNight?(pbGetTimeNow)
    when PBEvolution::Custom6
      # Add code for custom evolution type 6
      return poke if pokemon.critted==true
    when PBEvolution::Custom7
      return poke if (pokemon.totalhp-pokemon.hp>=49) && yamaskMaps.include?($game_map.map_id)
      # Add code for custom evolution type 7
  end
  return -1
end

This is where all the special evolutions are set. The changes are just adding an array for Toxtricity's Low Key natures and a when for when the pokemon evolving is Toxel to check if its nature is on that array.

 

The lines added are:

toxtricityNatures=[1,5,7,10,12,15,16,17,18,20,21,23]

and

when 848      #Toxel -> Toxtricity
          if toxtricityNatures.include?(pokemon.nature)
            pokemon.form=1
          else
            pokemon.form=0
          end

 

 

Different form different moves:

 

Spoiler

PokemonMultipleForms.rb starting on line 5312:

 

Spoiler

MultipleForms.register(:TOXTRICITY,{
    "dexEntry"=>proc{|pokemon|
      case pokemon.form
      when 0  # Normal Amped
        next
      when 1  # Normal Low Key
        next
      when 2  # Normal
        next
      when 4  # Aevian
        next "This form of Toxtricity is newly discovered as Toxel only started appearing in Aevium in the last ten years. It burns the poison in its body and spews out the toxic fumes to attack."  # Aevian
      end
    },
    "getMegaForm"=>proc{|pokemon|
      next 3 if isConst?(pokemon.item,PBItems,:TOXTRICITITE)
      next
    },
    "getUnmegaForm"=>proc{|pokemon|
      next 0 if pokemon.form==3
    },
    "getMegaName"=>proc{|pokemon|
      next _INTL("Mega Toxtricity") if pokemon.form==3
      next
    },
    "getBaseStats"=>proc{|pokemon|
      case pokemon.form
      when 0  # Normal
        next
      when 3  # Mega
        next [75,123,95,100,139,70]
      when 4  # Aevian
        next [70,75,70,98,114,70]
      end
    },
    "type1"=>proc{|pokemon|
      case pokemon.form
      when 0  # Normal
        next
      when 3
        next
      when 4  # Aevian
        next getID(PBTypes,:FIRE)
      end
    },
    "type2"=>proc{|pokemon|
      case pokemon.form
      when 0  # Normal
        next
      when 3 
        next
      when 4  # Aevian
        next getID(PBTypes,:POISON)
      end
    },
    "getMoveList"=>proc{|pokemon|
      next if pokemon.form!=4 && pokemon.form!=1 # Normal (No Low Key nor Aevian)
      movelist=[]
      case pokemon.form            # Low Key and Aevian
      when 1 ; movelist=[[0,:SPARK],[1,:SPARK],[1,:BELCH],[1,:TEARFULLOOK],[1,:NUZZLE],[1,:GROWL],[1,:FLAIL],[1,:ACID],[1,:THUNDERSHOCK],[1,:ACIDSPRAY],[1,:LEER],[1,:NOBLEROAR],[4,:CHARGE],[8,:SHOCKWAVE],[12,:SCARYFACE],[16,:TAUNT],[20,:VENOMDRENCH],[24,:SCREECH],[28,:SWAGGER],[32,:TOXIC],[36,:DISCHARGE],[40,:POISONJAB],[44,:OVERDRIVE],[48,:BOOMBURST],[52,:MAGNETICFLUX]]
      when 4 ; movelist=[[1,:FLAMEBURST],[1,:SUNNYDAY],[1,:BELCH],[1,:TEARFULLOOK],[1,:WILLOWISP],[1,:GROWL],[1,:FLAIL],[1,:ACID],[1,:EMBER],[1,:ACIDSPRAY],[1,:LEER],[1,:NOBLEROAR],[4,:EMBER],[8,:INCINERATE],[12,:SCARYFACE],[16,:TAUNT],[20,:VENOSHOCK],[24,:SCREECH],[28,:SWAGGER],[32,:TOXIC],[36,:LAVAPLUME],[40,:POISONJAB],[44,:OVERHEAT],[48,:BOOMBURST],[52,:SHIFTGEAR]]
      end
      for i in movelist
        i[1]=getConst(PBMoves,i[1])
      end
      next movelist
    },
    "getMoveCompatibility"=>proc{|pokemon|
      next if pokemon.form!=4
      movelist=[]
      case pokemon.form
      when 4; movelist=[# TMs
          :WORKUP,:DRAGONCLAW,:ROAR,:TOXIC,:VENOSHOCK,:HIDDENPOWER,:SUNNYDAY,:HYPERBEAM,:PROTECT,:SECRETPOWER,:FRUSTRATION,:SOLARBEAM,:THUNDER,:RETURN,:DIG,:DOUBLETEAM,:SLUDGEWAVE,:FLAMETHROWER,:SLUDGEBOMB,:FIREBLAST,:FACADE,:FLAMECHARGE,:REST,:ATTRACT,:ROUND,:ECHOEDVOICE,:OVERHEAT,:INCINERATE,:WILLOWISP,:PAYBACK,:GIGAIMPACT,:STONEEDGE,:PSYCHUP,:POISONJAB,:SWAGGER,:SLEEPTALK,:SUBSTITUTE,:WILDCHARGE,:ROCKSMASH,:SNARL,:POWERUPPUNCH,:CONFIDE,:ROCKCLIMB,:POISONSWEEP,:LAVASURF,:MEGAPUNCH,:MEGAKICK,:SOLARBLADE,:FIRESPIN,:SCREECH,:SCARYFACE,:FIREFANG,:THUNDERFANG,:CROSSPOISON,:MYSTICALFIRE,:SUCKERPUNCH,:DYNAMICPUNCH,:STRENGTH,
          # Move Tutors
          :SNORE,:DEFOG,:UPROAR,:AFTERYOU,:SIGNALBEAM,:BOUNCE,:ROLEPLAY,:FIREPUNCH,:THUNDERPUNCH,:ENDEAVOR,:LASERFOCUS,:GASTROACID,:OUTRAGE,:THROATCHOP,:STOMPINGTANTRUM,:GUNKSHOT,:DUALCHOP,:DRAINPUNCH,:HEATWAVE,:HYPERVOICE,:KNOCKOFF,:AGILITY,:ENDURE,:BATONPASS,:ENCORE,:BLAZEKICK,:FLAREBLITZ,:STOREDPOWER,:HEATCRASH,:VENOMDRENCH]
      end
      for i in 0...movelist.length
        movelist[i]=getConst(PBMoves,movelist[i])
      end
      next movelist
    },
    "ability"=>proc{|pokemon|
      case pokemon.form
      when 0 # Normal
        next
      when 3
        next getID(PBAbilities,:PUNKROCK)
      when 4 # Aevian
        if pokemon.abilityIndex==0 || (pokemon.abilityflag && pokemon.abilityflag==0)
          next getID(PBAbilities,:GALVANIZE)
        elsif pokemon.abilityIndex==1 || (pokemon.abilityflag && pokemon.abilityflag==1)
          next getID(PBAbilities,:PUNKROCK)
        elsif pokemon.abilityIndex==2 || (pokemon.abilityflag && pokemon.abilityflag==1)
          next getID(PBAbilities,:SOLIDROCK)
        end
      end  
    },
    "onSetForm"=>proc{|pokemon,form|
      pbSeenForm(pokemon)
    }
  })

Besides changing a couple of comments to clarify better that have  0 effect to the script itself, the main changes are the check of form and the moves learned by that form.

Original

Spoiler

next if pokemon.form!=4

Modified:

Spoiler

next if pokemon.form!=4 && pokemon.form!=1

and then:

Spoiler

case pokemon.form
      when 4 ; movelist=[[1,:FLAMEBURST],[1,:SUNNYDAY],[1,:BELCH],[1,:TEARFULLOOK],[1,:WILLOWISP],[1,:GROWL],[1,:FLAIL],[1,:ACID],[1,:EMBER],[1,:ACIDSPRAY],[1,:LEER],[1,:NOBLEROAR],[4,:EMBER],[8,:INCINERATE],[12,:SCARYFACE],[16,:TAUNT],[20,:VENOSHOCK],[24,:SCREECH],[28,:SWAGGER],[32,:TOXIC],[36,:LAVAPLUME],[40,:POISONJAB],[44,:OVERHEAT],[48,:BOOMBURST],[52,:SHIFTGEAR]]
      end

To:

Spoiler

case pokemon.form 
      when 1 ; movelist=[[0,:SPARK],[1,:SPARK],[1,:BELCH],[1,:TEARFULLOOK],[1,:NUZZLE],[1,:GROWL],[1,:FLAIL],[1,:ACID],[1,:THUNDERSHOCK],[1,:ACIDSPRAY],[1,:LEER],[1,:NOBLEROAR],[4,:CHARGE],[8,:SHOCKWAVE],[12,:SCARYFACE],[16,:TAUNT],[20,:VENOMDRENCH],[24,:SCREECH],[28,:SWAGGER],[32,:TOXIC],[36,:DISCHARGE],[40,:POISONJAB],[44,:OVERDRIVE],[48,:BOOMBURST],[52,:MAGNETICFLUX]]
      when 4 ; movelist=[[1,:FLAMEBURST],[1,:SUNNYDAY],[1,:BELCH],[1,:TEARFULLOOK],[1,:WILLOWISP],[1,:GROWL],[1,:FLAIL],[1,:ACID],[1,:EMBER],[1,:ACIDSPRAY],[1,:LEER],[1,:NOBLEROAR],[4,:EMBER],[8,:INCINERATE],[12,:SCARYFACE],[16,:TAUNT],[20,:VENOSHOCK],[24,:SCREECH],[28,:SWAGGER],[32,:TOXIC],[36,:LAVAPLUME],[40,:POISONJAB],[44,:OVERHEAT],[48,:BOOMBURST],[52,:SHIFTGEAR]]
      end

 

 

First is the PokemonEvolution.rb for fixing the evolution issue. You can either put it on the Mods folder or replace the existing one in the scripts forlder, is basically the same except that the evolve method of Toxtricity is added. (If you replace anything make always a backup of the original).

 

Second is the PokemonMultipleForms.rb. This is where all the alternate forms are defined with their differences compared to the original forms on the PBS. In Toxtricity's case, there are two level up moves that change between Amped Form and Low Key Form, so this will make that difference to happen. There is also a single difference on non-level learned moves, which is the same as one of the lvel-up ones, but I saw that the base Toxtricity (Amped Form) on the PBS can learn both as long as it isn't via level-up, so I left that part unchanged for Low Key as it may seem to be the intention of the devs that they can learn both Venom Dranch and Venomshock regardless of the form as long as it is not by level.

 

Please note that PokemonMultipleForms.rb must replace the original one on the Scripts folder (remember backing up original), it gives a stack error if put on the Mods folder.

PokemonEvolution.rb PokemonMultipleForms.rb

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On the Debug Mod thread, someone mentioned an issue with Galarian Darumaka not having its Ice Type, and then I also noticed other issues like wrong evolution item and a bug on Galarian Darmanitan that made it become and ordinary one after battle, so I made fixes for all the issues on this line too. One file is also the PokemonMultipleForms.rb, but it has applies the changes of Toxtricity's one, so it will fix both issues at once.

Here the original post

Regarding the original post, I also found a error where Mega Toxtricity would always become Amped Form after Mega Evolution, so I also fixed it. Here is a rar with all the fixes together, just copy to your game folder and replace everything it asks (the pokémonEvolution.rb now goes to scripts so everything goes together, if you got a version of it on Mods folder delete it or it will be used, not that this one changed from the original post though). This will apply:

  1. Fixed Toxtricity Egg group
  2. Fixed Toxtricity evolution method to get the correct form
  3. Fixed Toxtricity's Low Key moveset (only two moves differ though)
  4. Fixed Galarian Darumaka so it is shown with its sprite and the proper Ice typing and moveset.
  5. Fixed Galarian Darumaka evolution method, the item wa sset wrongly, so Ice stone didn0t work
  6. Fixed Galarian Darmanitan bug where it always became a normal Darmanitan after a battle.
  7. Fixed the bug that made it impossible for Galarian Darmanitan to have Zen Mode

Please note that Galarian Darumaka is not obteniable ingame yet without cheating using Debug Mode to cheat, but since someone pointed the error I decided to fix it anyway.

00.Fixes for Toxtricity Line and Darumaka Line.rar

Edited by a3xgf
Fixed typos on post
Link to comment
Share on other sites

  • 2 months later...
On 11/22/2021 at 1:00 AM, a3xgf said:

On the Debug Mod thread, someone mentioned an issue with Galarian Darumaka not having its Ice Type, and then I also noticed other issues like wrong evolution item and a bug on Galarian Darmanitan that made it become and ordinary one after battle, so I made fixes for all the issues on this line too. One file is also the PokemonMultipleForms.rb, but it has applies the changes of Toxtricity's one, so it will fix both issues at once.

Here the original post

Regarding the original post, I also found a error where Mega Toxtricity would always become Amped Form after Mega Evolution, so I also fixed it. Here is a rar with all the fixes together, just copy to your game folder and replace everything it asks (the pokémonEvolution.rb now goes to scripts so everything goes together, if you got a version of it on Mods folder delete it or it will be used, not that this one changed from the original post though). This will apply:

  1. Fixed Toxtricity Egg group
  2. Fixed Toxtricity evolution method to get the correct form
  3. Fixed Toxtricity's Low Key moveset (only two moves differ though)
  4. Fixed Galarian Darumaka so it is shown with its sprite and the proper Ice typing and moveset.
  5. Fixed Galarian Darumaka evolution method, the item wa sset wrongly, so Ice stone didn0t work
  6. Fixed Galarian Darmanitan bug where it always became a normal Darmanitan after a battle.
  7. Fixed the bug that made it impossible for Galarian Darmanitan to have Zen Mode

Please note that Galarian Darumaka is not obteniable ingame yet without cheating using Debug Mode to cheat, but since someone pointed the error I decided to fix it anyway.

00.Fixes for Toxtricity Line and Darumaka Line.rar 804.15 kB · 7 downloads

Excuse me, everything for Galarian darmanitan is good except its base speed in Zen Mode is suppose to be higher than its base form speed but when it transform to Zen mode the speed seems to decrease. Is this a bug as well?

Link to comment
Share on other sites

On 1/22/2022 at 5:33 PM, Rising Emperor said:

Excuse me, everything for Galarian darmanitan is good except its base speed in Zen Mode is suppose to be higher than its base form speed but when it transform to Zen mode the speed seems to decrease. Is this a bug as well?

I think the script has the wrong order in the stats:

These are the current ones [105,160,135,55,30,55] and I think the 55 and 135 should be switched to work properly because speed should go AFTER defense not before.

 

I think this file should fix it. I tested it and the speed now increases.

 

I also leave the whole package of files in a rar with the new version of the script, but if you already ave the rest, you only need the PokemonMultipleForms.rb

 

PD: I also noticed that Landorus Therian had 71 on speed instead of 91, so I also fixed it, but same as the Galarian Darmanitan line, it is not possible to obtain it by legit means, so I guess the devs will test it and fix it once it is released.

PokemonMultipleForms.rb 00.Fixes for Toxtricity Line and Darumaka Line.rar

Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...
On 3/26/2022 at 5:22 PM, JacobBasque said:

Will this work with version 13.0.4.? I can't update mine cause my computer can't run 13.0.5.

No idea, I never played that version nor I know what changed between the versions, but it may break something since it wasn't done for that version.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 4/3/2022 at 10:52 PM, a3xgf said:

No idea, I never played that version nor I know what changed between the versions, but it may break something since it wasn't done for that version.

Thanks for the reply. I'm considering trying it out. Would it be possible to fix things if it does somehow mess up my game? I reviewed the files in pokemonmultipleforms.rb & removed anything that isn't in 13.0.4. like mega garbodor; etc..

 

Edit: It works! Thanks!

Edited by JacobBasque
Update
Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...
  • 7 months later...
On 1/25/2022 at 9:09 PM, a3xgf said:

I think the script has the wrong order in the stats:

These are the current ones [105,160,135,55,30,55] and I think the 55 and 135 should be switched to work properly because speed should go AFTER defense not before.

 

I think this file should fix it. I tested it and the speed now increases.

 

I also leave the whole package of files in a rar with the new version of the script, but if you already ave the rest, you only need the PokemonMultipleForms.rb

 

PD: I also noticed that Landorus Therian had 71 on speed instead of 91, so I also fixed it, but same as the Galarian Darmanitan line, it is not possible to obtain it by legit means, so I guess the devs will test it and fix it once it is released.

PokemonMultipleForms.rb 300.75 kB · 16 downloads 00.Fixes for Toxtricity Line and Darumaka Line.rar 804.15 kB · 16 downloads

Hi would it be possible if you could make the darmanitan crest work for galarian darmanitan as well or even if you could give me a guide on how to edit the files myself 

Link to comment
Share on other sites

  • 3 weeks later...
On 3/7/2023 at 10:52 PM, Josh12997 said:

Hi would it be possible if you could make the darmanitan crest work for galarian darmanitan as well or even if you could give me a guide on how to edit the files myself 

I don't know where the crest items are defined to modify how they work. Edit the files is easy just open them with a text editor, then you need to know what to edit and that depends on what is there and what you need. The issue is to know where is each thing. I haven't found on which prokemon the crest work in any of the ones I remember are for items.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...