Advertisement
M3rein

Showdown Exporter v2

Jul 6th, 2017
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.87 KB | None | 0 0
  1. #=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=
  2. #
  3. #  Showdown Exporter v2 for Pokémon Essentials by Cilerba, rewritten by M3rein
  4. #
  5. #=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=
  6. SDWN_ALOLAN = { # What forms of what species are seen as Alolan.
  7.   :RATTATA   => 1,
  8.   :RATICATE  => 1,
  9.   :RAICHU    => 1,
  10.   :SANDSHREW => 1,
  11.   :SANDSLASH => 1,
  12.   :VULPIX    => 1,
  13.   :NINETALES => 1,
  14.   :DIGLETT   => 1,
  15.   :DUGTRIO   => 1,
  16.   :MEOWTH    => 1,
  17.   :PERSIAN   => 1,
  18.   :GEODUDE   => 1,
  19.   :GRAVELER  => 1,
  20.   :GOLEM     => 1,
  21.   :GRIMER    => 1,
  22.   :MUK       => 1,
  23.   :EXEGGUTOR => 1,
  24.   :MAROWAK   => 1
  25. }
  26.  
  27. SDWN_MOVES = { # Turns the left move into the right move. This for compatibility with custom moves.
  28.   :CUSTOM1 => :TACKLE,
  29.   :CUSTOM2 => :POUND,
  30.   :CUSTOM3 => :SLAM
  31. }
  32.  
  33.  
  34. def getShowdownName(p)
  35.   for key in SDWN_ALOLAN.keys
  36.     if p.species == getConst(PBSpecies,key) && p.form == SDWN_ALOLAN[key]
  37.       return "#{PBSpecies.getName(p.species)}-Alola"
  38.     end
  39.   end
  40.   return PBSpecies.getName(p.species)
  41. end
  42.  
  43. def getShowdownMove(m)
  44.   for key in SDWN_MOVES.keys
  45.     if m.id == getConst(PBMoves,key)
  46.       return PBMoves.getName(getConst(PBMoves,SDWN_MOVES[key]))
  47.     end
  48.   end
  49.   return PBMoves.getName(m.id)
  50. end
  51.  
  52. def pbShowdown
  53.   ret = ""
  54.   for i in 0...$Trainer.party.size
  55.     p = $Trainer.party[i]
  56.     next if !p || p.isEgg?
  57.     if p.name != "" && p.name != PBSpecies.getName(p.species)
  58.       ret += "#{p.name} (#{getShowdownName(p)}) "
  59.     else
  60.       ret += "#{getShowdownName(p)} "
  61.     end
  62.     ret += p.gender == 0 ? "(M) " : p.gender == 1 ? "(F) " : ""
  63.     ret += "@ #{PBItems.getName(p.item)}" if p.item > 0
  64.     ret += "\n"
  65.     ret += "Ability: #{PBAbilities.getName(p.ability)}\n"
  66.     ret += "Level: #{p.level}\n" if p.level < 100
  67.     ret += "Shiny: Yes\n" if p.isShiny?
  68.     ret += "Happiness: #{p.happiness}\n" if p.happiness < 255
  69.     evs = [p.ev[0],p.ev[1],p.ev[2],p.ev[4],p.ev[5],p.ev[3]]
  70.     stats = ["HP", "Atk", "Def", "SpA", "SpD", "Spe"]
  71.     if evs[0] > 0 || evs[1] > 0 || evs[2] > 0 || evs[3] > 0 || evs[4] > 0 || evs[5] > 0
  72.       ret += "EVs:"
  73.       for i in 0...6
  74.         ret += " #{evs[i]} #{stats[i]} /" if evs[i] > 0
  75.       end
  76.       ret = ret[0, ret.size - 2] + "\n"
  77.     end
  78.     ret += "#{PBNatures.getName(p.nature)} Nature\n"
  79.     ivs = [p.iv[0],p.iv[1],p.iv[2],p.iv[4],p.iv[5],p.iv[3]]
  80.     if ivs[0] < 31 || ivs[1] < 31 || ivs[2] < 31 || ivs[3] < 31 || ivs[4] < 31 || ivs[5] < 31
  81.       ret += "IVs:"
  82.       for i in 0...6
  83.         ret += " #{ivs[i]} #{stats[i]} /" if ivs[i] < 31
  84.       end
  85.       ret = ret[0, ret.size - 2] + "\n"
  86.     end
  87.     for j in 0...p.moves.size
  88.       next if !p.moves[j] || p.moves[j].id == 0
  89.       ret += "- #{getShowdownMove(p.moves[j])}\n"
  90.     end
  91.     ret += "\n"
  92.   end
  93.   file = File.new("showdown.txt", "w+")
  94.   file.write(ret)
  95.   file.close
  96. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement