- 55
- Posts
- 5
- Years
- Seen May 1, 2025
This is a continuation of the script by mej71 found here.
Unlike that version, this is for the version 18.dev of pokemon essentials. (also known as the github version)
A lot of errors were cleaned up and it's possible to play through the contests without issue very often.
The most recent fix was for the 017 effect (moves like sing) where it would crash if used in second place.
I updated and renumbered the PBS as well to include the new moves up to gen7.
I used Bulbapedia's documentation to add the effects. Moves that didn't have an effect defined or that had an effect that didn't exist in the code were given an effect close to the nature of the move.
At the top of the PBS, an explanation was added that should help you add new moves if you deem it necessary.
The order in the first round is now based on the speed EV rather than the speed stat itself.
There are still bugs (maybe)!
This is still a work in progress but if you want to help out squashing the remaining bugs, feel free to help out.
I didn't originally write this script, just fixed it here and there.
One bug to be on the lookout for is the result yielding the incorrect winner. I've heard it was an issue in the original version but haven't been able to replicate it yet.
I will update this script as I patch it further as well.
Credits
Always credit the original author and whoever helped make the script.
Original script Credits:
Additional Credits:
Tastyredtomato
bo4p5687
How to install this
The code to change in messages has changed (see below)
Add the new pbs file to the load order for your compiler. (for instructions on that, see the original pokemon contest post)
Add the PBContestmove script from the original post above the PBmove script.
Make sure you have all the necessary graphics from the original post.
Copy the new Contest script below and paste it above your main.
Make a contestmoves.txt in your PBS and paste the data below in it.
Messages script
Paste the following snippet at the bottom of your messages script:
And update the following in your messages script:
in "def pbMessageDisplay":
below "controls=[]", we have:
change this to
Add below case control:
and add below break if !letterbyletter:
The new Contest Script
Note that these use game variables 48 and 49. If you have something else in these, you have to either change yours, or go through these scripts and search/replace them with your chosen number.
The contestmoves.txt PBS
Changelog
Unlike that version, this is for the version 18.dev of pokemon essentials. (also known as the github version)
A lot of errors were cleaned up and it's possible to play through the contests without issue very often.
The most recent fix was for the 017 effect (moves like sing) where it would crash if used in second place.
I updated and renumbered the PBS as well to include the new moves up to gen7.
I used Bulbapedia's documentation to add the effects. Moves that didn't have an effect defined or that had an effect that didn't exist in the code were given an effect close to the nature of the move.
At the top of the PBS, an explanation was added that should help you add new moves if you deem it necessary.
The order in the first round is now based on the speed EV rather than the speed stat itself.
There are still bugs (maybe)!
This is still a work in progress but if you want to help out squashing the remaining bugs, feel free to help out.
I didn't originally write this script, just fixed it here and there.
One bug to be on the lookout for is the result yielding the incorrect winner. I've heard it was an issue in the original version but haven't been able to replicate it yet.
I will update this script as I patch it further as well.
Credits
Always credit the original author and whoever helped make the script.
Original script Credits:
and mej71Maruno, FL, JV, and Umbreon/Hansiec for answering my questions
Fl-Species Intro script
Super Dedenne - help with Berry Mixer, explaining the intricacies of pokeblocks, and fixing up the ribbon summary page
DL Kurosh -initial help with the berry mixer
Deorro -for some of the berry mixer graphics
Saving Raven -Contest Hall tileset
The PokeCommunity in general
Additional Credits:
Tastyredtomato
bo4p5687
How to install this
The code to change in messages has changed (see below)
Add the new pbs file to the load order for your compiler. (for instructions on that, see the original pokemon contest post)
Add the PBContestmove script from the original post above the PBmove script.
Make sure you have all the necessary graphics from the original post.
Copy the new Contest script below and paste it above your main.
Make a contestmoves.txt in your PBS and paste the data below in it.
Messages script
Paste the following snippet at the bottom of your messages script:
Spoiler:
Code:
def pbCustomMessage(message,skin=nil,newx=nil,newwidth=nil,&block)
ret=0
msgwindow=Kernel.pbCreateMessageWindow(nil,skin)
msgwindow.x=newx if newx!=nil
if newwidth!=nil
msgwindow.width=newwidth
else
msgwindow.width=Graphics.width-msgwindow.x
end
Kernel.pbMessageDisplay(msgwindow,message,&block)
Kernel.pbDisposeMessageWindow(msgwindow)
Input.update
return ret
end
And update the following in your messages script:
in "def pbMessageDisplay":
below "controls=[]", we have:
Code:
while text[/(?:\\(w|f|ff|ts|cl|me|se|wt|wtnp|ch)\[([^\]]*)\]|\\(g|cn|wd|wm|op|cl|wu|\.|\||\!|\^))/i]
Code:
while text[/(?:\\(w|f|ff|ts|cl|me|se|wt|wtnp|ch|q)\[([^\]]*)\]|\\(g|cn|wd|wm|op|cl|wu|\.|\||\!|\^))/i]
Add below case control:
Code:
when "q"
yval=param.to_i
Code:
if yval
msgwindow.y=val
end
The new Contest Script
Spoiler:
Code:
################################################################################
# Pokemon Contest by mej71
# edit for v18.dev by Tastyredtomato
#---------------------------------------
# based on the original Contest script by mej71
# see the original thread for installation and use instructions
# please credit when used
#
################################################################################
class PokeContestScene
attr_reader :name
attr_accessor :selected
attr_reader :hearts
def initialize
@sprites={}
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@viewport2=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport2.z=99999+2
@sprites["background"]=IconSprite.new(0,0,@viewport)
@sprites["background"].setBitmap("Graphics/Pictures/Contest/contestbg")
end
#CONTESTCOMBOS are defined in the bottom of this script
def pbCheckforCombos
case @currentpoke
when @pkmn1
oldmove=@pkmn1lastmove
when @pkmn2
oldmove=@pkmn2lastmove
when @pkmn3
oldmove=@pkmn3lastmove
when @pkmn4
oldmove=@pkmn4lastmove
end
for j in 0..CONTESTCOMBOS.length-1
if oldmove==CONTESTCOMBOS[j][0]
for i in 1..CONTESTCOMBOS[j].length-1
if @currentmovename==CONTESTCOMBOS[j][i]
return true
end
end
end
end
return false
end
def update
pbUpdateSpriteHash(@sprites)
end
def pbStartContest(difficulty,opponent1,opponent1level,opponent2,opponent2level,opponent3,opponent3level,ribbonnum)
#pbBGMPlay("021-Field04") #Change this for different music
@contestover=false #ends when set to true
@difficulty=difficulty
@ribbonnum=ribbonnum #ribbon number given if won
case $game_variables[48]
when 1
@contestType="Cool"
when 2
@contestType="Beauty"
when 3
@contestType="Cute"
when 4
@contestType="Smart"
when 5
@contestType="Tough"
else
@contestType="Cool"
end
@pkmn1=$Trainer.party[$game_variables[49]]
@pkmn2=PokeBattle_Pokemon.new(opponent1,opponent1level,$Trainer)
@pkmn3=PokeBattle_Pokemon.new(opponent2,opponent2level,$Trainer)
@pkmn4=PokeBattle_Pokemon.new(opponent3,opponent3level,$Trainer)
#teach opponent pokemon new moves if defined
for i in 0...CONTESTMOVE2.length
@pkmn2.pbLearnMove(CONTESTMOVE2[i]) if CONTESTMOVE2[i]!=0
end
for i in 0...CONTESTMOVE3.length
@pkmn3.pbLearnMove(CONTESTMOVE3[i]) if CONTESTMOVE3[i]!=0
end
for i in 0...CONTESTMOVE4.length
@pkmn4.pbLearnMove(CONTESTMOVE4[i]) if CONTESTMOVE4[i]!=0
end
#nicknames for contest pokemon
@pkmn2.name=$CONTESTNAME2 if $CONTESTNAME2 !=""
@pkmn3.name=$CONTESTNAME3 if $CONTESTNAME3 !=""
@pkmn4.name=$CONTESTNAME4 if $CONTESTNAME4 !=""
@pkmn1total=0
@pkmn2total=0
@pkmn3total=0
@pkmn4total=0
@pkmn1DoubleNext=false
@pkmn2DoubleNext=false
@pkmn3DoubleNext=false
@pkmn4DoubleNext=false
@pkmn1MissTurn=false
@pkmn2MissTurn=false
@pkmn3MissTurn=false
@pkmn4MissTurn=false
@pkmn1nomoremoves=false
@pkmn2nomoremoves=false
@pkmn3nomoremoves=false
@pkmn4nomoremoves=false
@applause=0
@pkmn1stars=0
@pkmn2stars=0
@pkmn3stars=0
@pkmn4stars=0
@pkmn1hearts=0
@pkmn2hearts=0
@pkmn3hearts=0
@pkmn4hearts=0
@stars=[@pkmn1stars,@pkmn2stars,@pkmn3stars,@pkmn4stars]
pbPreliminaryScene #extra points for scarves, points gained by pokeblocks and such done here
#the "preliminary judging" seen before this starts is just for show, it doesn't do anything then
pbResetContestMoveEffects
pbResetHearts
@round=0
if !($DEBUG && Input.press?(Input::CTRL)) #Skip all rounds if pressing Control in Debug mode
@round=1
pbTurn(@round)
if !($DEBUG && Input.press?(Input::CTRL))
@round=2
pbTurn(@round)
@round=3
pbTurn(@round)
@round=4
pbTurn(@round)
@round=5
pbTurn(@round)
else
pbResetHearts
pbDebugTotals(1)
end
else
@prelim1+=90
pbResetHearts
pbDebugTotals(6)
end
pbDisposeSprite(@sprites,"overlay2") #clear overlay to prep for end scene
# End scene
@sprites["background"]=IconSprite.new(0,0,@viewport)
@sprites["background"].setBitmap("Graphics/Pictures/Contest/contestbg")
pbResultsScene
$game_variables[48]=0 #reset variables
$game_variables[49]=0
@contestover=true #allows scene to exit loop and end
return #edit
end
###############################################################################
# Main round processing function
###############################################################################
def pbTurn(turnnumber)
Graphics.update
@atself=false
@priorhearts=0
if @round==1
@sprites["Judge"]=IconSprite.new(0,0,@viewport)
@sprites["Judge"].setBitmap("Graphics/Characters/trainer017")
pbCustomMessage(_INTL("\\l[3]Judge: \\c[1]Welcome to today's {1} Type Pokemon Contest\nIt's heartwarming to see all these young trainers here to show off their Pokemon's skills!",@contestType),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbCustomMessage(_INTL("\\l[3]\\c[1]I'm going to be the judge for this competition, so let's get started!"),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisposeSprite(@sprites,"Judge")
sleep(1.0/3.0)
Graphics.update
end
if @round==1 #
pbFindFastestOrderRanking #
else #determine order
pbOrder #
end #
pbResetContestMoveEffects
pbDrawText
roundfile=(turnnumber==1)? "Graphics/Pictures/Contest/Roundone":(turnnumber==2)?"Graphics/Pictures/Contest/Roundtwo":(turnnumber==3)?"Graphics/Pictures/Contest/Roundthree":(turnnumber==4)?"Graphics/Pictures/Contest/Roundfour":"Graphics/Pictures/Contest/Roundfive"
@sprites["Round"]=IconSprite.new(0,0,@viewport)
@sprites["Round"].setBitmap(roundfile)
sleep(1.0/7.0)
Graphics.update
roundupdown=0
for i in 0...9
if roundupdown==0 or roundupdown==1 or roundupdown==4 or roundupdown==5 or roundupdown==8 or roundupdown==9
@sprites["Round"].y+=6
else
@sprites["Round"].y-=6
end
roundupdown+=1
Graphics.update
sleep(1.0/7.0)
end
sleep(1)
pbDisposeSprite(@sprites,"Round")
pbMoveButtons
@sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
pbSetSystemFont(@sprites["overlay"].bitmap)
pbDisplayFastest
@sprites["opponent"]=IconSprite.new(50,30,@viewport) #
@sprites["opponent"].setBitmap("Graphics/Battler/000") #invisible sprite to serve as target for animations
@sprites["opponent"].visible=false #
Graphics.update
pbCustomMessage(_INTL("\\l[3]Judge: \\c[1]Alright {1}, let's see what you can do!",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@currentpos=1
@currentpoke=@pokeorder[0]
if @currentpoke==@pkmn1 #
i=@moveselection #
else #Determine which move to use
i=pbAI(@pokeorder[0],@difficulty) # AI for opponents
end #
movedata=PBMoveData.new(@pokeorder[0].moves[i].id)
@currentmovename=PBMoves.getName(@pokeorder[0].moves[i].id)
sleep(1)
for i in 1..PBContestMoves.maxValue #
name=PBContestMoves.getName(i) #
if @currentmovename==name # Match the pokemon's move with the equivalent from contestmoves.txt
@currentmove=getID(PBContestMoves,i) #
@currentmove1=getID(PBMoves,i) # Get actual ID to display proper move animation
end
end
(movedata.target==PBTargets::User)? @atself=true :@atself=false
contestmovedata=PBContestMoveData.new(@currentmove) #Find the moves contest data
@currenthearts=contestmovedata.hearts
moveType=contestmovedata.contestType
pbmoveType(moveType)
if pbNoMore==false #skip the move processing if nomore moves is true
if pbMissTurn==false #skip move processing if it misses this turn
if pbDoubleNext==true #check for double hearts
@currenthearts*=2
pbReverseDoubleNext
end
if @nervous[@currentpos-1]==true
pbCustomMessage(_INTL("\\\l[3]{1} is nervous.",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if rand(100)<30 #check for nervousness, 30% chance
pbCustomMessage(_INTL("\\\l[3]{1} was too nervous to move!",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[0].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[0].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbReverseMissTurn #change miss turn variable back after missing turn
end
end
pbFunctionsAdjustHearts #
pbDisplayAddingPositiveHearts
if pbCheckLast && @currentfunction !=15 && @round !=1
@currenthearts-=1
pbCustomMessage(_INTL("\\l[3]The judge looked at {1} expectantly!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbJam(1,@pokeorder[@currentpos-1],@currentpos-1)
pbDecreaseHearts(@currentpoke,@currentpos,selfjam="notnil")
end
if @round !=1 && pbCheckforCombos==true
@currenthearts=5
pbCustomMessage(_INTL("\\l[3]{1} really caught the judges attention!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplayAddingPositiveHearts
pbDecreaseStarGraphics(@currentpos-1,1,decrease=false)
end
pbAssignLastMove
@lastmoveType=@moveType
pbCrowd
Graphics.update
sleep(1.0/10.0)
pbCustomMessage(_INTL("\\l[3]Judge: \\c[1]Good job {1}, now onto the next pokemon!",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
sleep(1.0/10.0)
pbDisposeSprite(@sprites,"pokemon1")
Graphics.update
sleep(1.0/10.0)
pbCustomMessage(_INTL("\\l[3]Judge: \\c[1]Next up we have {1}!",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplaySecondFastest
Graphics.update
sleep(1.0/10.0)
@currentpos=2
@currentpoke=@pokeorder[1]
if @currentpoke==@pkmn1
i=@moveselection
else
i=pbAI(@pokeorder[1],@difficulty)
end
movedata=PBMoveData.new(@pokeorder[1].moves[i].id)
@currentmovename=PBMoves.getName(@pokeorder[1].moves[i].id)
sleep(1)
for i in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(i)
if @currentmovename==name
@currentmove=getID(PBContestMoves,i)
@currentmove1=getID(PBMoves,i)
end
end
(movedata.target==PBTargets::User)? @atself=true :@atself=false
contestmovedata=PBContestMoveData.new(@currentmove)
@currenthearts=contestmovedata.hearts
moveType=contestmovedata.contestType
pbmoveType(moveType)
if pbNoMore==false #skip the move processing if nomore moves is true
if pbMissTurn==false #skip move processing if it misses this turn
if pbDoubleNext==true #check for double hearts
@currenthearts*=2
pbReverseDoubleNext
end
if @nervous[@currentpos-1]==true
pbCustomMessage(_INTL("\\l[3]{1} is nervous.",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if rand(100)<30 #check for nervousness, 30% chance
pbCustomMessage(_INTL("\\l[3]{1} was too nervous to move!",@pokeorder[1].name))
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[1].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[1].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbReverseMissTurn #change miss turn variable back after missing turn
end
end
pbFunctionsAdjustHearts
pbDisplayAddingPositiveHearts
if pbCheckLast && @currentfunction !=15 && @round !=1
@currenthearts-=1
pbCustomMessage(_INTL("\\l[3]The judge looked at {1} expectantly!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbJam(1,@pokeorder[@currentpos-1],@currentpos-1)
pbDecreaseHearts(@currentpoke,@currentpos,selfjam="notnil")
end
if @round !=1 && pbCheckforCombos==true
@currenthearts=5
pbCustomMessage(_INTL("\\l[3]{1} really caught the judges attention!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplayAddingPositiveHearts
pbDecreaseStarGraphics(@currentpos-1,1,decrease=false)
end
pbAssignLastMove
@lastmoveType=@moveType
pbCrowd
Graphics.update
sleep(1.0/10.0)
pbDisposeSprite(@sprites,"pokemon2")
Graphics.update
sleep(1.0/10.0)
pbCustomMessage(_INTL("\\l[3]Judge: \\c[1]Next up we have {1}!",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplayThirdFastest
Graphics.update
sleep(1.0/10.0)
@currentpos=3
@currentpoke=@pokeorder[2]
if @currentpoke==@pkmn1
i=@moveselection
else
i=pbAI(@pokeorder[2],@difficulty)
end
movedata=PBMoveData.new(@pokeorder[2].moves[i].id)
@currentmovename=PBMoves.getName(@pokeorder[2].moves[i].id)
sleep(1)
for i in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(i)
if @currentmovename==name
@currentmove=getID(PBContestMoves,i)
@currentmove1=getID(PBMoves,i)
end
end
(movedata.target==PBTargets::User)? @atself=true :@atself=false
contestmovedata=PBContestMoveData.new(@currentmove)
@currenthearts=contestmovedata.hearts
moveType=contestmovedata.contestType
pbmoveType(moveType)
if pbNoMore==false #skip the move processing if nomore moves is true
if pbMissTurn==false #skip move processing if it misses this turn
if pbDoubleNext==true #check for double hearts
@currenthearts*=2
pbReverseDoubleNext
end
if @nervous[@currentpos-1]==true
pbCustomMessage(_INTL("\\l[3]{1} is nervous.",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if rand(100)<30 #check for nervousness, 30% chance
pbCustomMessage(_INTL("\\l[3]{1} was too nervous to move!",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[2].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[2].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbReverseMissTurn #change miss turn variable back after missing turn
end
end
pbFunctionsAdjustHearts #
pbDisplayAddingPositiveHearts
if pbCheckLast && @currentfunction !=15 && @round !=1
@currenthearts-=1
pbCustomMessage(_INTL("\\l[3]The judge looked at {1} expectantly!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbJam(1,@pokeorder[@currentpos-1],@currentpos-1)
pbDecreaseHearts(@pokeorder[@currentpos-1],@currentpos,selfjam="notnil")
end
if @round !=1 && pbCheckforCombos==true
@currenthearts=5
pbCustomMessage(_INTL("\\l[3]{1} really caught the judges attention!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplayAddingPositiveHearts
pbDecreaseStarGraphics(@currentpos-1,1,decrease=false)
end
pbAssignLastMove
@lastmoveType=@moveType
pbCrowd
Graphics.update
sleep(1.0/10.0)
pbDisposeSprite(@sprites,"pokemon3")
Graphics.update
sleep(1.0/10.0)
pbCustomMessage(_INTL("\\l[3]Judge: \\c[1]Next up we have {1}!",@pokeorder[3].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplayFourthFastest
Graphics.update
sleep(1.0/10.0)
@currentpos=4
@currentpoke=@pokeorder[3]
if @currentpoke==@pkmn1
i=@moveselection
else
i=pbAI(@pokeorder[3],@difficulty)
end
movedata=PBMoveData.new(@pokeorder[3].moves[i].id)
@currentmovename=PBMoves.getName(@pokeorder[3].moves[i].id)
sleep(1)
for i in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(i)
if @currentmovename==name
@currentmove=getID(PBContestMoves,i)
@currentmove1=getID(PBMoves,i)
end
end
(movedata.target==PBTargets::User)? @atself=true :@atself=false
contestmovedata=PBContestMoveData.new(@currentmove)
@currenthearts=contestmovedata.hearts
moveType=contestmovedata.contestType
pbmoveType(moveType)
if pbNoMore==false #skip the move processing if nomore moves is true
if pbMissTurn==false #skip move processing if it misses this turn
if pbDoubleNext==true #check for double hearts
@currenthearts*=2
pbReverseDoubleNext
end
if @nervous[@currentpos-1]==true
pbCustomMessage(_INTL("\\l[3]{1} is nervous.",@pokeorder[3].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if rand(100)<30 #check for nervousness, 30% chance
pbCustomMessage(_INTL("\\l[3]{1} was too nervous to move!",@pokeorder[3].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[3].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbCustomMessage(_INTL("\\l[3]{1} used {2}!",@pokeorder[3].name,@currentmovename),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbAnimation(@currentmove1,0,1,hitnum=0)
end
else
pbReverseMissTurn #change miss turn variable back after missing turn
end
end
pbFunctionsAdjustHearts #
pbDisplayAddingPositiveHearts
if pbCheckLast && @currentfunction !=15 && @round !=1
@currenthearts-=1
pbCustomMessage(_INTL("\\l[3]The judge looked at {1} expectantly!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbJam(1,@pokeorder[@currentpos-1],@currentpos-1)
pbDecreaseHearts(@pokeorder[@currentpos-1],@currentpos,selfjam="notnil")
end
if @round !=1 && pbCheckforCombos==true
@currenthearts=5
pbCustomMessage(_INTL("\\l[3]{1} really caught the judges attention!",@pokeorder[@currentpos-1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
pbDisplayAddingPositiveHearts
pbDecreaseStarGraphics(@currentpos-1,1,decrease=false)
end
pbAssignLastMove
@lastmoveType=@moveType
pbCrowd
Graphics.update
sleep(1.0/10.0)
pbDisposeSprite(@sprites,"pokemon4")
pbDisposeSprite(@sprites,"opponent")
pbResetHearts
Graphics.update
end
###############################################################################
# Misc. Functions
###############################################################################
def pbAssignLastMove
case @currentpoke
when @pkmn1
@pkmn1lastmove=@currentmovename
when @pkmn2
@pkmn2lastmove=@currentmovename
when @pkmn3
@pkmn3lastmove=@currentmovename
else
@pkmn4lastmove=@currentmovename
end
end
def pbCheckLast
case @currentpoke
when @pkmn1
if @pkmn1lastmove
if @currentmovename==@pkmn1lastmove
return true
else
return false
end
end
when @pkmn2
if @pkmn2lastmove
if @currentmovename==@pkmn2lastmove
return true
else
return false
end
end
when @pkmn3
if @pkmn3lastmove
if @currentmovename==@pkmn3lastmove
return true
else
return false
end
end
when @pkmn4
if @pkmn4lastmove
if @currentmovename==@pkmn4lastmove
return true
else
return false
end
end
end
end
def pbmoveType(moveType)
case moveType
when 0
@moveType="Cool"
when 1
@moveType="Beauty"
when 2
@moveType="Cute"
when 3
@moveType="Smart"
when 4
@moveType="Tough"
end
end
def pbDrawText
@sprites["overlay2"].bitmap.clear if @sprites["overlay2"]
#change graphic indicating what position the player's pokemon is at
if !@sprites["playerspokebg"]
@sprites["playerspokebg"]=IconSprite.new(347,96,@viewport)
@sprites["playerspokebg"].setBitmap("Graphics/Pictures/Contest/playerspoke")
end
for i in 0..3
if @pokeorder[i]==@pkmn1
@sprites["playerspokebg"].y=96*i
end
end
@sprites["overlay2"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport) if !@sprites["overlay2"]
pbSetSystemFont(@sprites["overlay2"].bitmap)
overlay=@sprites["overlay2"].bitmap
overlay.clear
pokeone=_INTL("{1}",@pokeorder[0].name)
poketwo=_INTL("{1}",@pokeorder[1].name)
pokethree=_INTL("{1}",@pokeorder[2].name)
pokefour=_INTL("{1}",@pokeorder[3].name)
baseColor=Color.new(72,72,72)
shadowColor=Color.new(160,160,160)
textPositions=[
[pokeone,353,5,false,baseColor,shadowColor],
[poketwo,353,100,false,baseColor,shadowColor],
[pokethree,353,195,false,baseColor,shadowColor],
[pokefour,353,290,false,baseColor,shadowColor],
]
pbDrawTextPositions(overlay,textPositions)
end
def pbNoMore #checks if pokemon can use moves
case @currentpoke
when @pkmn1
if @pkmn1nomoremoves==true
return true
else
return false
end
when @pkmn2
if @pkmn2nomoremoves==true
return true
else
return false
end
when @pkmn3
if @pkmn3nomoremoves==true
return true
else
return false
end
when @pkmn4
if @pkmn4nomoremoves==true
return true
else
return false
end
else
return false
end
end
def pbMissTurn #Checks if pokemon misses this turn
case @currentpoke
when @pkmn1
if @pkmn1MissTurn==true
return true
else
return false
end
when @pkmn2
if @pkmn2MissTurn==true
return true
else
return false
end
when @pkmn3
if @pkmn3MissTurn==true
return true
else
return false
end
when @pkmn4
if @pkmn4MissTurn==true
return true
else
return false
end
else
return false
end
end
def pbDoubleNext #Check if it should double hearts
case @currentpoke
when @pkmn1
if @pkmn1DoubleNext==true
return true
else
return false
end
when @pkmn2
if @pkmn2DoubleNext==true
return true
else
return false
end
when @pkmn3
if @pkmn3DoubleNext==true
return true
else
return false
end
when @pkmn4
if @pkmn4DoubleNext==true
return true
else
return false
end
else
return false
end
end
def pbSetNoMoreMoves
case @currentpoke
when @pkmn1
@pkmn1nomoremoves=true
when @pkmn2
@pkmn2nomoremoves=true
when @pkmn3
@pkmn3nomoremoves=true
when @pkmn4
@pkmn4nomoremoves=true
end
end
def pbSetMissTurn
case @currentpoke
when @pkmn1
@pkmn1MissTurn=true
when @pkmn2
@pkmn2MissTurn=true
when @pkmn3
@pkmn3MissTurn=true
when @pkmn4
@pkmn4MissTurn=true
end
end
def pbSetDoubleNext
case @currentpoke
when @pkmn1
@pkmn1DoubleNext=true
when @pkmn2
@pkmn2DoubleNext=true
when @pkmn3
@pkmn3DoubleNext=true
when @pkmn4
@pkmn4DoubleNext=true
end
end
def pbReverseMissTurn
case @currentpoke
when @pkmn1
@pkmn1MissTurn=false
when @pkmn2
@pkmn2MissTurn=false
when @pkmn3
@pkmn3MissTurn=false
when @pkmn4
@pkmn4MissTurn=false
end
end
def pbReverseDoubleNext
case @currentpoke
when @pkmn1
@pkmn1DoubleNext=false
when @pkmn2
@pkmn2DoubleNext=false
when @pkmn3
@pkmn3DoubleNext=false
when @pkmn4
@pkmn4DoubleNext=false
end
end
###############################################################################
# Heart Graphic Functions
###############################################################################
def pbDisplayAddingPositiveHearts
case @currentpoke
when @pkmn1
for i in 0...@currenthearts
@pkmn1hearts+=1
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn1hearts)if @pkmn1hearts<21
Graphics.update
sleep(1.0/7.0)
@sprites["firstpokehearts"]=IconSprite.new(399,45+((@currentpos-1)*96),@viewport)
@sprites["firstpokehearts"].setBitmap(heartfile)
end
@priorhearts=@pkmn1hearts
when @pkmn2
for i in 0...@currenthearts
@pkmn2hearts+=1
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn2hearts)if @pkmn2hearts<21
Graphics.update
sleep(1.0/7.0)
@sprites["secondpokehearts"]=IconSprite.new(399,45+((@currentpos-1)*96),@viewport)
@sprites["secondpokehearts"].setBitmap(heartfile)
end
@priorhearts=@pkmn2hearts
when @pkmn3
for i in 0...@currenthearts
@pkmn3hearts+=1
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn3hearts)if @pkmn3hearts<21
Graphics.update
sleep(1.0/7.0)
@sprites["thirdpokehearts"]=IconSprite.new(399,45+((@currentpos-1)*96),@viewport)
@sprites["thirdpokehearts"].setBitmap(heartfile)
end
@priorhearts=@pkmn3hearts
when @pkmn4
for i in 0...@currenthearts
@pkmn4hearts+=1
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn4hearts)if @pkmn4hearts<21
Graphics.update
sleep(1.0/7.0)
@sprites["fourthpokehearts"]=IconSprite.new(399,45+((@currentpos-1)*96),@viewport)
@sprites["fourthpokehearts"].setBitmap(heartfile)
end
@priorhearts=@pkmn4hearts
end
end
def pbDecreaseHearts(target,position,selfjam=nil)
if selfjam==nil
if @currentjam==1
pbCustomMessage(_INTL("\\l[3]{1} looked down out of distraction!",target.name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
pbCustomMessage(_INTL("\\l[3]{1} couldn't help leaping up!",target.name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
end
end
case target
when @pkmn1
@pkmn1jam*=2 if @easilystartled[position-1]==true
for i in 0...@pkmn1jam
if !@sprites["firstpokehearts"]#edit
@sprites["firstpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)#edit
end#edit
@pkmn1hearts -= 1
if @pkmn1hearts == 0
pbDisposeSprite(@sprites,"firstpokehearts")
@sprites["firstpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)
end
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn1hearts) if @pkmn1hearts >= 0 && @pkmn1hearts<21
heartfile=sprintf("Graphics/Pictures/Contest/negaheart%d",@pkmn1hearts.abs) if @pkmn1hearts < 0 && @pkmn1hearts>-21
@sprites["firstpokehearts"].setBitmap(heartfile)
sleep(1.0/7.0)
Graphics.update
end
@priorhearts=@pkmn1hearts
when @pkmn2
@pkmn2jam*=2 if @easilystartled[position-1]==true
for i in 0...@pkmn2jam
if !@sprites["secondpokehearts"]#edit
@sprites["secondpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)#edit
end#edit
@pkmn2hearts -= 1
if @pkmn2hearts == 0
pbDisposeSprite(@sprites,"secondpokehearts")
@sprites["secondpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)
end
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn2hearts) if @pkmn2hearts >= 0 && @pkmn2hearts<21
heartfile=sprintf("Graphics/Pictures/Contest/negaheart%d",@pkmn2hearts.abs) if @pkmn2hearts < 0 && @pkmn2hearts>-21
@sprites["secondpokehearts"].setBitmap(heartfile)
sleep(1.0/7.0)
Graphics.update
end
@priorhearts=@pkmn2hearts
when @pkmn3
@pkmn3jam*=2 if @easilystartled[position-1]==true
for i in 0...@pkmn3jam
if !@sprites["thirdpokehearts"]#edit
@sprites["thirdpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)#edit
end#edit
@pkmn3hearts -= 1
if @pkmn3hearts == 0
pbDisposeSprite(@sprites,"thirdpokehearts")
@sprites["thirdpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)
end
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn3hearts) if @pkmn3hearts >= 0 && @pkmn3hearts<21
heartfile=sprintf("Graphics/Pictures/Contest/negaheart%d",@pkmn3hearts.abs) if @pkmn3hearts < 0 && @pkmn3hearts>-21
@sprites["thirdpokehearts"].setBitmap(heartfile)
sleep(1.0/7.0)
Graphics.update
end
@priorhearts=@pkmn3hearts
when @pkmn4
@pkmn4jam*=2 if @easilystartled[position-1]==true
for i in 0...@pkmn4jam
if !@sprites["fourthpokehearts"]#edit
@sprites["fourthpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)#edit
end#edit
@pkmn4hearts -= 1
if @pkmn4hearts == 0
pbDisposeSprite(@sprites,"fourthpokehearts")
@sprites["fourthpokehearts"]=IconSprite.new(399,45+((position-1)*96),@viewport)
end
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",@pkmn4hearts) if @pkmn4hearts >= 0 && @pkmn4hearts<21
heartfile=sprintf("Graphics/Pictures/Contest/negaheart%d",@pkmn4hearts.abs) if @pkmn4hearts < 0 && @pkmn4hearts>-21
@sprites["fourthpokehearts"].setBitmap(heartfile)
sleep(1.0/7.0)
Graphics.update
end
@priorhearts=@pkmn4hearts
end
end
###############################################################################
# Get rid of hearts graphics at end round, and add up heart totals
###############################################################################
def pbResetHearts
pbDisposeSprite(@sprites,"firstpokehearts")
pbDisposeSprite(@sprites,"secondpokehearts")
pbDisposeSprite(@sprites,"thirdpokehearts")
pbDisposeSprite(@sprites,"fourthpokehearts")
@pkmn1total+=@pkmn1hearts
@pkmn2total+=@pkmn2hearts
@pkmn3total+=@pkmn3hearts
@pkmn4total+=@pkmn4hearts
@roundonetotals=[@pkmn1total,@pkmn2total,@pkmn3total,@pkmn4total] if @round==1
@roundtwototals=[@pkmn1total,@pkmn2total,@pkmn3total,@pkmn4total] if @round==2
@roundthreetotals=[@pkmn1total,@pkmn2total,@pkmn3total,@pkmn4total] if @round==3
@roundfourtotals=[@pkmn1total,@pkmn2total,@pkmn3total,@pkmn4total] if @round==4
@roundfivetotals=[@pkmn1total,@pkmn2total,@pkmn3total,@pkmn4total] if @round==5
@pkmn1hearts=0
@pkmn2hearts=0
@pkmn3hearts=0
@pkmn4hearts=0
Graphics.update
sleep(1/2)
end
def pbDebugTotals(round) #random assortment of numbers, ensuring your pokemon wins. Intended to be used in debugging the end scene
@roundonetotals=[20,rand(10),rand(10),rand(10)] if round>0
@roundtwototals=[20,rand(10),rand(10),rand(10)]
@roundthreetotals=[20,rand(10),rand(10),rand(10)]
@roundfourtotals=[20,rand(10),rand(10),rand(10)]
@roundfivetotals=[20,rand(10),rand(10),rand(10)]
@pkmn1total=(@roundonetotals[0]+@roundtwototals[0]+@roundthreetotals[0]+@roundfourtotals[0]+@roundfivetotals[0])
@pkmn2total=(@roundonetotals[1]+@roundtwototals[1]+@roundthreetotals[1]+@roundfourtotals[1]+@roundfivetotals[1])
@pkmn3total=(@roundonetotals[2]+@roundtwototals[2]+@roundthreetotals[2]+@roundfourtotals[2]+@roundfivetotals[2])
@pkmn4total=(@roundonetotals[3]+@roundtwototals[3]+@roundthreetotals[3]+@roundfourtotals[3]+@roundfivetotals[3])
end
###############################################################################
# Determines order for first round, goes by base speed
###############################################################################
def pbFindFastestOrderRanking #Finds the fastest pokemon in the contest
#dexdata=pbOpenDexData
#pbDexDataOffset(dexdata,@pkmn1.species,13)
#basespeed1=dexdata.fgetb
#pokespeed1=basespeed1
#pbDexDataOffset(dexdata,@pkmn2.species,13)
#basespeed2=dexdata.fgetb
#pokespeed2=basespeed2
#pbDexDataOffset(dexdata,@pkmn3.species,13)
#basespeed3=dexdata.fgetb
#pokespeed3=basespeed3
#pbDexDataOffset(dexdata,@pkmn4.species,13)
#basespeed4=dexdata.fgetb
#pokespeed4=basespeed4
#dexdata.close
[email protected][PBStats::SPEED] #edit
pokespeed1=basespeed1 #edit
[email protected][PBStats::SPEED] #edit
pokespeed2=basespeed2 #edit
[email protected][PBStats::SPEED] #edit
pokespeed3=basespeed3 #edit
[email protected][PBStats::SPEED] #edit
pokespeed4=basespeed4 #edit
fastest = [basespeed1, basespeed2, basespeed3, basespeed4]
fastest=fastest.sort.reverse
neworder=[]
first=(fastest[0]==pokespeed1)? @pkmn1 : ((fastest[0]==pokespeed2) ? @pkmn2 : ((fastest[0]==pokespeed3)? @pkmn3 : @pkmn4))
neworder.push(first)
second =(fastest[1]==pokespeed1 && !(neworder.include?(@pkmn1)))? @pkmn1 : ((fastest[1]==pokespeed2 && !(neworder.include?(@pkmn2)))? @pkmn2 : ((fastest[1]==pokespeed3 && !(neworder.include?(@pkmn3)))? @pkmn3 : @pkmn4))
neworder.push(second)
third =(fastest[2]==pokespeed1 && !(neworder.include?(@pkmn1)))? @pkmn1 : ((fastest[2]==pokespeed2 && !(neworder.include?(@pkmn2)))? @pkmn2 : ((fastest[2]==pokespeed3 && !(neworder.include?(@pkmn3)))? @pkmn3 : @pkmn4))
neworder.push(third)
fourth=(fastest[3]==pokespeed1 && !(neworder.include?(@pkmn1)))? @pkmn1 : ((fastest[3]==pokespeed2 && !(neworder.include?(@pkmn2)))? @pkmn2 : ((fastest[3]==pokespeed3 && !(neworder.include?(@pkmn3)))? @pkmn3 : @pkmn4))
neworder.push(fourth)
@pokeorder=neworder
end
###############################################################################
# Determine order for next round
###############################################################################
def pbOrder
order=[]
@stars=[]
mosthearts=[@pkmn1total,@pkmn2total,@pkmn3total,@pkmn4total].sort.reverse
if @MoveUp.include?(true)
for i in [email protected]
if @MoveUp[i]==true && @MoveDown[i]==false
newpoke=(@pokeorder[i]==@pkmn1)? @pkmn1:(@pokeorder[i]==@pkmn2)? @pkmn2:(@pokeorder[i]==@pkmn3)? @pkmn3:@pkmn4
order.push(newpoke)
newstars=(newpoke==@pkmn1)? @pkmn1stars:(newpoke==@pkmn2)? @pkmn2stars:(newpoke==@pkmn3)? @pkmn3stars:@pkmn4stars
@stars.push(newstars)
end
end
end
if order.length<4
for i in [email protected]
newpoke=nil
if (mosthearts[i]==@pkmn1total && !(order.include?(@pkmn1)) && @MoveDown[pbCurrentPokeNum2(@pkmn1)]==false)
newpoke=@pkmn1
elsif (mosthearts[i]==@pkmn2total && !(order.include?(@pkmn2)) && @MoveDown[pbCurrentPokeNum2(@pkmn2)]==false)
newpoke=@pkmn2
elsif (mosthearts[i]==@pkmn3total && !(order.include?(@pkmn3)) && @MoveDown[pbCurrentPokeNum2(@pkmn3)]==false)
newpoke=@pkmn3
elsif (mosthearts[i]==@pkmn4total && !(order.include?(@pkmn4)) && @MoveDown[pbCurrentPokeNum2(@pkmn4)]==false)
newpoke=@pkmn4
end
if newpoke !=nil
order.push(newpoke)
newstars=(newpoke==@pkmn1)? @pkmn1stars:(newpoke==@pkmn2)? @pkmn2stars:(newpoke==@pkmn3)? @pkmn3stars:@pkmn4stars
@stars.push(newstars)
end
end
end
if @MoveDown.include?(true)
for i in [email protected]
if @MoveDown[i]==true && @MoveUp[i]==false
newpoke=(@pokeorder[i]==@pkmn1)? @pkmn1:(@pokeorder[i]==@pkmn2)? @pkmn2:(@pokeorder[i]==@pkmn3)? @pkmn3:@pkmn4
order.push(newpoke)
newstars=(newpoke==@pkmn1)? @pkmn1stars:(newpoke==@pkmn2)? @pkmn2stars:(newpoke==@pkmn3)? @pkmn3stars:@pkmn4stars
@stars.push(newstars)
end
end
end
if @Scramble==true #random order for Scramble
Kernel.srand
order.shuffle
Kernel.srand
@stars.shuffle
end
@pokeorder.clear
@pokeorder=order
end
###############################################################################
# Display Pokemon Graphics
###############################################################################
def pbPositionPokemonSprite(sprite,left,top) #edit
if sprite.bitmap && !sprite.bitmap.disposed? #edit
sprite.x=left+(128-sprite.bitmap.width)/2 #edit
sprite.y=top+(128-sprite.bitmap.height)/2 #edit
else #edit
sprite.x=left #edit
sprite.y=top #edit
end #edit
end #edit
def pbDisplayFastest #Displays the sprite of the fastest pokemon, as per FindFastest
@sprites["pokemon1"]=PokemonSprite.new(@viewport)
@sprites["pokemon1"].setPokemonBitmap(@pokeorder[0],true)
@sprites["pokemon1"].mirror=true
pokemony=Graphics.height/2-32
pokemonyadjust=pokemony-32
pbPositionPokemonSprite(@sprites["pokemon1"],178,112)
end
def pbDisplaySecondFastest
@sprites["pokemon2"]=PokemonSprite.new(@viewport)
@sprites["pokemon2"].setPokemonBitmap(@pokeorder[1],true)
@sprites["pokemon2"].mirror=true
pokemony=Graphics.height/2-32
pokemonyadjust=pokemony-32
pbPositionPokemonSprite(@sprites["pokemon2"],178,112)
end
def pbDisplayThirdFastest
@sprites["pokemon3"]=PokemonSprite.new(@viewport)
@sprites["pokemon3"].setPokemonBitmap(@pokeorder[2],true)
@sprites["pokemon3"].mirror=true
pokemony=Graphics.height/2-32
pokemonyadjust=pokemony-32
pbPositionPokemonSprite(@sprites["pokemon3"],178,112)
end
def pbDisplayFourthFastest
@sprites["pokemon4"]=PokemonSprite.new(@viewport)
@sprites["pokemon4"].setPokemonBitmap(@pokeorder[3],true)
@sprites["pokemon4"].mirror=true
pokemony=Graphics.height/2-32
pokemonyadjust=pokemony-32
pbPositionPokemonSprite(@sprites["pokemon4"],178,112)
end
#Didn't use this method
def pbCurrentPokeNum(currentpos) #find pokemon's number (i.e. 1 for @pkmn1)
case @pokeorder[currentpos-1]
when @pkmn1
return 1
when @pkmn2
return 2
when @pkmn3
return 3
else pkmn4
return 4
end
end
def pbCurrentPokeNum2(poke) #find pokemon's number (i.e. 1 for @pkmn1)
for i in 0..3
if @pokeorder[i]==poke
return i
end
end
end
def pbResetContestMoveEffects #End round reset
@Oblivious=[false,false,false,false]
@AvoidOnce=[0,0,0,0]
@Scramble=false
@MoveUp=[false,false,false,false]
@MoveDown=[false,false,false,false]
@UpCondition=[false,false,false,false]
@previoushearts=0
@crowdexcitment=true
@goodappeal=[false,false,false,false]
@easilystartled=[false,false,false,false]
@nervous=[false,false,false,false]
@jamaffected=[false,false,false,false]
@hasattention=[false,false,false,false]
pbNervousGraphic
pbObliviousGraphic
end
###############################################################################
# Adjusts hearts via movefunctions. New move functions go in case statement
###############################################################################
def pbFunctionsAdjustHearts
contestmovedata=PBContestMoveData.new(@currentmove)
@currentfunction=contestmovedata.contestfunction
@currentjam=contestmovedata.jam
i=@currentpos-1
case @currentfunction
when 1
@AvoidOnce[i]=1
pbObliviousGraphic
when 2
@Oblivious[i]=true
pbObliviousGraphic
when 3
@MoveUp[i]=true
when 4
@UpCondition[i]=true
when 5
pbCustomMessage(_INTL("\\l[3]It tried to startle the other Pokemon!"),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if @currentpos==4
if @Oblivious[2]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[2]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[2]=0
pbObliviousGraphic
else
pbStartleGraphic(2)
pbJam(@currentjam,@pokeorder[2],3)
pbDecreaseHearts(@pokeorder[2],3)
pbStartleGraphic(2,2)
end
if @Oblivious[1]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[1]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[1]=0
pbObliviousGraphic
else
pbStartleGraphic(1)
pbJam(@currentjam,@pokeorder[1],2)
pbDecreaseHearts(@pokeorder[1],2)
pbStartleGraphic(1,1)
end
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
elsif @currentpos==3
if @Oblivious[1]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[1]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[1]=0
pbObliviousGraphic
else
pbStartleGraphic(1)
pbJam(@currentjam,@pokeorder[1],2)
pbDecreaseHearts(@pokeorder[1],2)
pbStartleGraphic(1,1)
end
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
elsif @currentpos==2
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
else
pbCustomMessage(_INTL("\\l[3]But it failed.."),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
end
when 6
@currenthearts=@currentpos
@currenthearts=(@currentpos+1) if @currenpos==4
when 7
for j in 0...3
if @hasattention[j]==true && !(j==@currentpos-1)
if @Oblivious[j]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[j].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[j]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[j].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[j]=0
pbObliviousGraphic
else
pbStartleGraphic(j-1)
pbJam(@currentjam,@pokeorder[j],j+1)
pbDecreaseHearts(@pokeorder[j],j+1)
pbStartleGraphic(j-1,j-1)
end
end
end
when 8
pbCustomMessage(_INTL("\\l[3]It tried to startle the previous Pokemon!"),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if @currentpos==4
if @Oblivious[2]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[2]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[2]=0
pbObliviousGraphic
else
pbStartleGraphic(2)
pbJam(@currentjam,@pokeorder[2],3)
pbDecreaseHearts(@pokeorder[2],3)
pbStartleGraphic(2,2)
end
elsif @currentpos==3
if @Oblivious[1]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[1]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[1]=0
pbObliviousGraphic
else
pbStartleGraphic(1)
pbJam(@currentjam,@pokeorder[1],2)
pbDecreaseHearts(@pokeorder[1],2)
pbStartleGraphic(1,1)
end
elsif @currentpos==2
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
else
end
when 9
if @priorhearts[@currentpos-1]>=3
@currenthearts=(@currenthearts*2)
else
@currenthearts==1
end
when 10
@easilystartled[i]=true
when 11
@MoveDown[i]=true
when 12
for j in 0..3
if @priorhearts[j]>3
if @Oblivious[j]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[j].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[j]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[j].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[j]=0
pbObliviousGraphic
else
pbStartleGraphic(j-1)
pbJam(@currentjam,@pokeorder[j],j+1)
pbDecreaseHearts(@pokeorder[j],j+1)
pbStartleGraphic(j-1,j-1)
end
end
end
when 13
pbCustomMessage(_INTL("\\l[3]The crowd died down!"),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@crowdexcitment=false
when 14
if @currentpos==1
pbCustomMessage(_INTL("\\l[3]The standout {1} hustled even more!",@pokeorder[i].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@currenthearts=(@currenthearts*2)
end
when 16
pbSetMissTurn
pbCustomMessage(_INTL("\\l[3]It tried to startle the other Pokemon!"),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
if @currentpos==4
if @Oblivious[2]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[2]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[2].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[2]=0
pbObliviousGraphic
else
pbStartleGraphic(2)
pbJam(@currentjam,@pokeorder[2],3)
pbDecreaseHearts(@pokeorder[2],3)
pbStartleGraphic(2,2)
end
if @Oblivious[1]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[1]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[1]=0
pbObliviousGraphic
else
pbStartleGraphic(1)
pbJam(@currentjam,@pokeorder[1],2)
pbDecreaseHearts(@pokeorder[1],2)
pbStartleGraphic(1,1)
end
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
elsif @currentpos==3
if @Oblivious[1]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[1]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[1].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[1]=0
pbObliviousGraphic
else
pbStartleGraphic(1)
pbJam(@currentjam,@pokeorder[1],2)
pbDecreaseHearts(@pokeorder[1],2)
pbStartleGraphic(1,1)
end
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
elsif @currentpos==2
if @Oblivious[0]==true
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif @AvoidOnce[0]>0
pbCustomMessage(_INTL("\\l[3]{1} managed to avoid seeing it",@pokeorder[0].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@AvoidOnce[0]=0
pbObliviousGraphic
else
pbStartleGraphic(0)
pbJam(@currentjam,@pokeorder[0],1)
pbDecreaseHearts(@pokeorder[0],1)
pbStartleGraphic(0,0)
end
else
end
when 17
if @currentpos==1
for j in 1..3
pbCustomMessage(_INTL("\\l[3]{1} became nervous.",@pokeorder[j].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@nervous[j]=true
end
elsif @currentpos==2
for i in 2..3
pbCustomMessage(_INTL("\\l[3]{1} became nervous.",@pokeorder[i].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)#edit
@nervous[i]=true #edit
end
elsif @currentpos==3
pbCustomMessage(_INTL("\\l[3]{1} became nervous.",@pokeorder[3].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@nervous[3]=true
end
pbNervousGraphic
when 18
pbSetNoMoreMoves
when 19
@currenthearts=(@applause+1)
when 20
@currenthearts=(rand(5)+1)
when 21
if @currentpos==4
pbCustomMessage(_INTL("\\l[3]The standout {1} hustled even more!",@pokeorder[i].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@currenthearts=5
end
when 22
if @currentpos==0
pbCustomMessage(_INTL("\\l[3]But it failed."),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
for j in 0...@currentpos-1
pbDecreaseStarGraphics(j,1)
end
end
when 23
@currenthearts=@currentpos
@currenthearts=(@currentpos+1) if @currenpos==4
when 24
pbCustomMessage(_INTL("\\l[3]{1} scrambled up the order for the next turn!",@pokeorder[i].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@Scramble=true
when 25
if @moveType==@lastmoveType
@currenthearts=(@currenthearts*2)
end
when 26
@MoveDown[i]=true
when 27
pbSetDoubleNext
pbCustomMessage(_INTL("\\l[3]{1} is getting prepared.",@pokeorder[i].name),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@currenthearts=1
when 28
@currenthearts=(rand(5)+1)
when 29
if @currentpos==1
@currenthearts=1
else
if @priorhearts[@currentpos-1]<3
@currenthearts=(@currenthearts*2)
else
@currenthearts=1
end
end
when 30
if @currentpos==1
@currenthearts=1
else
@currenthearts=(@priorhearts[@currentpos-1]/2).floor
end
when 31
@applause=5
pbCrowd(move="notnil")
when 32
if @currentpos==0
pbCustomMessage(_INTL("\\l[3]But if failed."),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
elsif
for j in 0...@currentpos
if @stars[j]>0
pbDecreaseStarGraphics(j,1)
end
end
end
when 33
@currenthearts=@applause
when 34
@currenthearts=@priorhearts[@currentpos-1] #edit
when 35
@currenthearts=@stars[@currentpos-1]
when 36
if @movetype==@contestType
@currenthearts=(@currenthearts+1)
else
@currenthearts=@currenthearts
end
when 37
@currenthearts=(@currenthearts+@priorhearts[@currentpos-1])
when 38
currentApplause = @applause
currentApplause = 5 if currentApplause<0 || 5<currentApplause
@currenthearts=6-currentApplause
when 39
@currenthearts=(@round+1)
when 40
if @currentpos>1
if @priorhearts[@currentpos-1] >3
@currenthearts=(@currenthearts*2)
end
else
@currenthearts=1
end
when 41
@currenthearts=@applause
else
@currenthearts=@currenthearts
end
end
###############################################################################
# Controls Applause meter
###############################################################################
def pbCrowd(move=nil)
xPos=-172
@sprites["Applause Bar"]=IconSprite.new(xPos,0,@viewport)
@sprites["Applause Bar"].setBitmap("Graphics/Pictures/Contest/applause")
applausefile=sprintf("Graphics/Pictures/Contest/applause%d",@applause)
@sprites["applausemeter"]=IconSprite.new((xPos+19),50,@viewport)
@sprites["applausemeter"].setBitmap(applausefile)
43.times do |i|
xPos+=4
@sprites["applausemeter"].x=(xPos+19)
@sprites["Applause Bar"].x=xPos
Graphics.update
end
if move==nil
if @moveType==@contestType
@applause=(@applause+1)
applausefile=sprintf("Graphics/Pictures/Contest/applause%d",@applause)
@sprites["applausemeter"].setBitmap(applausefile)
Graphics.update
if @moveType=="Beauty"
pbCustomMessage(_INTL("\\l[3]{1}'s {2} went over great!",@pokeorder[@currentpos-1].name,@contestType),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
pbCustomMessage(_INTL("\\l[3]{1}'s {2}ness went over great!",@pokeorder[@currentpos-1].name,@contestType),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
end
@currenthearts=1
pbDisplayAddingPositiveHearts
else
if @moveType=="Beauty"
pbCustomMessage(_INTL("\\l[3]{1}'s {2} didn't go over very well!",@pokeorder[@currentpos-1].name,@moveType),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
else
pbCustomMessage(_INTL("\\l[3]{1}'s {2}ness didn't go over very well!",@pokeorder[@currentpos-1].name,@moveType),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
end
if @applause>0
@applause-=1
applausefile=sprintf("Graphics/Pictures/Contest/applause%d",@applause)
@sprites["applausemeter"].setBitmap(applausefile)
end
pbJam(1,@pokeorder[@currentpos-1],@currentpos)
pbDecreaseHearts(@pokeorder[@currentpos-1],@currentpos,"notnil")
Graphics.update
end
if @crowdexcitment==true && @applause==5
pbCustomMessage(_INTL("\\l[3]{1}'s {2} really got the crowd going!",@pokeorder[@currentpos-1].name,@moveType),"Graphics/Pictures/Contest/choice 29",newx=nil,340)
@currenthearts=5
pbDisplayAddingPositiveHearts
@applause=0
end
if @sprites["Applause Bar"]
43.times do |i|
xPos-=4
@sprites["Applause Bar"].x=xPos
@sprites["applausemeter"].x=xPos+19 if @sprites["applausemeter"]
Graphics.update
end
end
pbDisposeSprite(@sprites,"Applause Bar") if @sprites["Applause Bar"]
pbDisposeSprite(@sprites,"applausemeter") if @sprites["applausemeter"]
Graphics.update
end
end
def pbJam(jam,target,position)
case target
when @pkmn1
@pkmn1jam=jam
when @pkmn2
@pkmn2jam=jam
when @pkmn3
@pkmn3jam=jam
else
@pkmn4jam=jam
end
end
###############################################################################
# Miscellaneous Graphic functions
###############################################################################
def pbNervousGraphic
if @nervous[0]==true && !@sprites["nervousone"]
@sprites["nervousone"]=IconSprite.new(374,47,@viewport)
@sprites["nervousone"].setBitmap("Graphics/Pictures/Contest/nervous")
end
if @nervous[1]==true && !@sprites["nervoustwo"]
@sprites["nervoustwo"]=IconSprite.new(374,143,@viewport)
@sprites["nervoustwo"].setBitmap("Graphics/Pictures/Contest/nervous")
end
if @nervous[2]==true && !@sprites["nervousthree"]
@sprites["nervousthree"]=IconSprite.new(374,239,@viewport)
@sprites["nervousthree"].setBitmap("Graphics/Pictures/Contest/nervous")
end
if @nervous[3]==true && !@sprites["nervousfour"]
@sprites["nervousfour"]=IconSprite.new(374,335,@viewport)
@sprites["nervousfour"].setBitmap("Graphics/Pictures/Contest/nervous")
end
if @nervous[0]==false
pbDisposeSprite(@sprites,"nervousone") if @sprites["nervousone"]
end
if @nervous[1]==false
pbDisposeSprite(@sprites,"nervoustwo") if @sprites["nervoustwo"]
end
if @nervous[2]==false
pbDisposeSprite(@sprites,"nervousthree") if @sprites["nervousthree"]
end
if @nervous[3]==false
pbDisposeSprite(@sprites,"nervousfour") if @sprites["nervousfour"]
end
end
def pbObliviousGraphic
if (@Oblivious[0]==true || @AvoidOnce[0]>0) && !@sprites["obliviousone"]
@sprites["obliviousone"]=IconSprite.new(374,47+(96*(@currentpos-1)),@viewport)
@sprites["obliviousone"].setBitmap("Graphics/Pictures/Contest/oblivious")
end
if (@Oblivious[1]==true || @AvoidOnce[1]>0) && !@sprites["oblivioustwo"]
@sprites["oblivioustwo"]=IconSprite.new(374,47+(96*(@currentpos-1)),@viewport)
@sprites["oblivioustwo"].setBitmap("Graphics/Pictures/Contest/oblivious")
end
if (@Oblivious[2]==true || @AvoidOnce[2]>0) && !@sprites["obliviousthree"]
@sprites["obliviousthree"]=IconSprite.new(374,47+(96*(@currentpos-1)),@viewport)
@sprites["obliviousthree"].setBitmap("Graphics/Pictures/Contest/oblivious")
end
if (@Oblivious[3]==true || @AvoidOnce[3]>0) && !@sprites["obliviousfour"]
@sprites["obliviousfour"]=IconSprite.new(374,47+(96*(@currentpos-1)),@viewport)
@sprites["obliviousfour"].setBitmap("Graphics/Pictures/Contest/oblivious")
end
if @Oblivious[0]==false && @AvoidOnce[0]==0
pbDisposeSprite(@sprites,"obliviousone") if @sprites["obliviousone"]
end
if @Oblivious[1]==false && @AvoidOnce[1]==0
pbDisposeSprite(@sprites,"oblivioustwo") if @sprites["oblivioustwo"]
end
if @Oblivious[2]==false && @AvoidOnce[2]==0
pbDisposeSprite(@sprites,"obliviousthree") if @sprites["obliviousthree"]
end
if @Oblivious[3]==false && @AvoidOnce[3]==0
pbDisposeSprite(@sprites,"obliviousfour") if @sprites["obliviousfour"]
end
end
def pbStartleGraphic(position,deletepos=5)
if position==0 && !@sprites["startleone"]
@sprites["startleone"]=IconSprite.new(374,47,@viewport)
@sprites["startleone"].setBitmap("Graphics/Pictures/Contest/startle")
end
if position==1 && !@sprites["startletwo"]
@sprites["startletwo"]=IconSprite.new(374,143,@viewport)
@sprites["startletwo"].setBitmap("Graphics/Pictures/Contest/startle")
end
if position==2 && !@sprites["startlethree"]
@sprites["startlethree"]=IconSprite.new(374,239,@viewport)
@sprites["startlethree"].setBitmap("Graphics/Pictures/Contest/startle")
end
if position==3 && !@sprites["startlefour"]
@sprites["startlefour"]=IconSprite.new(374,335,@viewport)
@sprites["startlefour"].setBitmap("Graphics/Pictures/Contest/startle")
end
if deletepos<5
if deletepos==0
pbDisposeSprite(@sprites,"startleone") if @sprites["startleone"]
end
if deletepos==1
pbDisposeSprite(@sprites,"startletwo") if @sprites["startletwo"]
end
if deletepos==2
pbDisposeSprite(@sprites,"startlethree") if @sprites["startlethree"]
end
if deletepos==3
pbDisposeSprite(@sprites,"startlefour") if @sprites["startlefour"]
end
end
Graphics.update
end
def pbDecreaseStarGraphics(position,change,decrease=true)
case @stars[position]
when @pkmn1stars
for i in 0..change
@pkmn1stars -= 1 if decrease==true && @pkmn1stars>0
@pkmn1stars += 1 if decrease==false
@sprites["firstpokestars"]=IconSprite.new(350,78+(94*position),@viewport) unless @sprites["firstpokestars"]
starfile=sprintf("Graphics/Pictures/Contest/stars%d",@pkmn1stars) if @pkmn1stars<=6
@sprites["firstpokestars"].setBitmap(starfile)
sleep(1.0/7.0)
Graphics.update
break if @pkmn1stars==0
end
when @pkmn2stars
for i in 0..change
@pkmn2stars -= 1 if decrease==true && @pkmn2stars>0
@pkmn2stars += 1 if decrease==false
@sprites["secondpokestars"]=IconSprite.new(350,78+(96*position),@viewport) unless @sprites["secondpokestars"]
starfile=sprintf("Graphics/Pictures/Contest/stars%d",@pkmn2stars) if @pkmn2stars<=6
@sprites["secondpokestars"].setBitmap(starfile)
sleep(1.0/7.0)
Graphics.update
break if @pkmn2stars==0
end
when @pkmn3stars
for i in 0..change
@pkmn3stars -= 1 if decrease==true && @pkmn3stars>0
@pkmn3stars += 1 if decrease==false
@sprites["thirdpokestars"]=IconSprite.new(350,78+(96*position),@viewport) unless @sprites["thirdpokestars"]
starfile=sprintf("Graphics/Pictures/Contest/stars%d",@pkmn3stars) if @pkmn3stars<=6
@sprites["thirdpokestars"].setBitmap(starfile)
sleep(1.0/7.0)
Graphics.update
break if @pkmn3stars==0
end
when @pkmn4stars
for i in 0..change
@pkmn4stars -= 1 if decrease==true && @pkmn4stars>0
@pkmn4stars += 1 if decrease==false
@sprites["fourthpokestars"]=IconSprite.new(350,78+(96*position),@viewport) unless @sprites["fourthpokestars"]
starfile=sprintf("Graphics/Pictures/Contest/stars%d",@pkmn4stars) if @pkmn4stars<=6
@sprites["fourthpokestars"].setBitmap(starfile)
sleep(1.0/7.0)
Graphics.update
break if @pkmn4stars==0
end
end
end
################################################################################
# Move Buttons
################################################################################
def pbMoveButtons
pokemon=@pkmn1
pokename=pokemon.name
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@sprites["moves"]=IconSprite.new(0,187,@viewport)
@sprites["moves"].setBitmap("Graphics/Pictures/Contest/moves")
base=Color.new(64,64,64)
shadow=Color.new(0,0,0)
@sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
@sprites["overlay1"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
overlay=@sprites["overlay"].bitmap
overlay1=@sprites["overlay1"].bitmap
pbSetSmallFont(overlay)
textpos=[
[_INTL("Please select a move."),12,165,0,Color.new(256,256,256),shadow]]
imagepos=[]
textpos1=[]
yPos=195
xPos=10
selectYPos=191
@sprites["selectbar"]=IconSprite.new(6,selectYPos,@viewport)
@sprites["selectbar"].setBitmap("Graphics/Pictures/Contest/contestselect1")
selection=0
selectedmove=PBMoves.getName(@pkmn1.moves[selection].id)
for i in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(i)
if selectedmove==name
selectedmove=getID(PBContestMoves,i)
end
end
selecteddescription=pbGetMessage(MessageTypes::ContestMoveDescriptions,selectedmove)
contestmovedata=PBContestMoveData.new(selectedmove)
selectedhearts=contestmovedata.hearts
selectedjam=contestmovedata.jam
jamfile=sprintf("Graphics/Pictures/Contest/negaheart%d",selectedjam)
@sprites["selectjam"]=IconSprite.new(400,235,@viewport)
@sprites["selectjam"].setBitmap(jamfile)
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",selectedhearts)
@sprites["selecthearts"]=IconSprite.new(400,200,@viewport)
@sprites["selecthearts"].setBitmap(heartfile)
textpos1.push([PBMoves.getName(@pkmn1.moves[selection].id),245,200,0,
Color.new(256,256,256),Color.new(0,0,0)])
pbDrawTextPositions(overlay1,textpos1)
drawTextEx(overlay1,245,250,255,2,selecteddescription,Color.new(256,256,256),Color.new(0,0,0))
for i in 0...pokemon.moves.length
if pokemon.moves[i].id>0
selectedmove=PBMoves.getName(@pkmn1.moves[i].id)
for j in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(j)
if selectedmove==name
selectedmove=getID(PBContestMoves,j)
end
end
contestmovedata=PBContestMoveData.new(selectedmove)
moveType=contestmovedata.contestType
imagepos.push(["Graphics/Pictures/Contest/contesttype",xPos,yPos,0,
moveType*28,64,28])
if @pkmn1lastmove && PBMoves.getName(pokemon.moves[i].id)==@pkmn1lastmove
textpos.push([PBMoves.getName(pokemon.moves[i].id),xPos+68,yPos+10,0,Color.new(175,175,175),Color.new(0,0,0)])
else
textpos.push([PBMoves.getName(pokemon.moves[i].id),xPos+68,yPos+10,0,Color.new(256,256,256),Color.new(0,0,0)])
end
else
textpos.push(["-",316,yPos,0,Color.new(256,256,256),Color.new(0,0,0)])
end
yPos+=44
end
pbDrawTextPositions(overlay,textpos)
pbDrawImagePositions(overlay,imagepos)
loop do
Graphics.update
Input.update
self.update
if Input.trigger?(Input::DOWN)
if selection<3
selection+=1
else
selection=0
end
selectYPos=(selection*45 + 192)
selectYPos=(selection*45+191) if selection==0
selectYPos=(selection*45+190) if selection==1
@sprites["selectbar"].y=selectYPos
@sprites["selectbar"].setBitmap("Graphics/Pictures/Contest/contestselect1") if selection==0
@sprites["selectbar"].setBitmap("Graphics/Pictures/Contest/contestselect") if selection!=0
selectedmove=PBMoves.getName(@pkmn1.moves[selection].id)
for i in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(i)
if selectedmove==name
selectedmove=getID(PBContestMoves,i)
end
end
contestmovedata=PBContestMoveData.new(selectedmove)
selectedhearts=contestmovedata.hearts
selecteddescription=pbGetMessage(MessageTypes::ContestMoveDescriptions,selectedmove)
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",selectedhearts)
selectedjam=contestmovedata.jam
jamfile=sprintf("Graphics/Pictures/Contest/negaheart%d",selectedjam)
@sprites["selectjam"].setBitmap(jamfile)
@sprites["selecthearts"].setBitmap(heartfile)
overlay1.clear
textpos1.clear
@sprites["overlay1"].bitmap
textpos1.push([PBMoves.getName(@pkmn1.moves[selection].id),245,200,0,
Color.new(256,256,256),Color.new(0,0,0)])
drawTextEx(overlay1,245,250,255,2,selecteddescription,Color.new(256,256,256),Color.new(0,0,0))
pbDrawTextPositions(overlay1,textpos1)
end
if Input.trigger?(Input::UP)
if selection>0
selection-=1
else
selection=3
end
selectYPos=(selection*45 + 192)
selectYPos=(selection*45+191) if selection==0
selectYPos=(selection*45+190) if selection==1
@sprites["selectbar"].y=selectYPos
@sprites["selectbar"].setBitmap("Graphics/Pictures/Contest/contestselect1") if selection==0
@sprites["selectbar"].setBitmap("Graphics/Pictures/Contest/contestselect") if selection!=0
selectedmove=PBMoves.getName(@pkmn1.moves[selection].id)
for i in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(i)
if selectedmove==name
selectedmove=getID(PBContestMoves,i)
end
end
contestmovedata=PBContestMoveData.new(selectedmove)
selectedhearts=contestmovedata.hearts
selecteddescription=pbGetMessage(MessageTypes::ContestMoveDescriptions,selectedmove)
selectedjam=contestmovedata.jam
jamfile=sprintf("Graphics/Pictures/Contest/negaheart%d",selectedjam)
@sprites["selectjam"].setBitmap(jamfile)
heartfile=sprintf("Graphics/Pictures/Contest/heart%d",selectedhearts)
@sprites["selecthearts"].setBitmap(heartfile)
overlay1.clear
textpos1.clear
@sprites["overlay1"].bitmap
textpos1.push([PBMoves.getName(@pkmn1.moves[selection].id),245,200,0,
Color.new(256,256,256),Color.new(0,0,0)])
drawTextEx(overlay1,245,250,255,2,selecteddescription,Color.new(256,256,256),Color.new(0,0,0))
pbDrawTextPositions(overlay1,textpos1)
end
if Input.trigger?(Input::C)
@moveselection=selection
overlay.clear
overlay1.clear
textpos.clear
imagepos.clear
textpos1.clear
pbDisposeSprite(@sprites,"selecthearts")
pbDisposeSprite(@sprites,"moves")
pbDisposeSprite(@sprites,"selectbar")
pbDisposeSprite(@sprites,"selectjam")
pbDisposeSprite(@sprites,"overlay")
pbDisposeSprite(@sprites,"overlay1")
Graphics.update
break
end
end
end
def pbEndScene #Ends everything
for i in 0..3
CONTESTMOVE2[i]=0 #reset these global variables for next use
CONTESTMOVE3[i]=0
CONTESTMOVE4[i]=0
end
$CONTESTNAME2="" #reset these global variables for next use
$CONTESTNAME3=""
$CONTESTNAME4=""
$game_map.autoplay
pbFadeOutAndHide(@sprites) { update }
pbDisposeSpriteHash(@sprites)
@viewport.dispose
#$scene = Scene_Map.new #bug here
end
def middleScene #processes scene after startScene
loop do
if @contestover
return
end
Graphics.update
Input.update
self.update
end
end
###############################################################################
#################### Animation Stuff Below ###################################
############## Don't change unless you know what you're doing #################
###############################################################################
def pbFindAnimation(moveid,userIndex,hitnum)
begin
move2anim=load_data("Data/move2anim.dat")
noflip=false
if (userIndex&1)==0 # On player's side
anim=move2anim[0][moveid]
else # On opposing side
anim=move2anim[1][moveid]
noflip=true if anim
anim=move2anim[0][moveid] if !anim
end
return [anim+hitnum,noflip] if anim
if hasConst?(PBMoves,:TACKLE)
anim=move2anim[0][getConst(PBMoves,:TACKLE)]
return [anim,false] if anim
end
rescue
return nil
end
return nil
end
def pbAnimation(moveid,user,target,hitnum=0)
animid=pbFindAnimation(moveid,0,hitnum)
return if !animid
anim=animid[0]
animations=load_data("Data/PkmnAnimations.rxdata")
pbSaveShadows {
if animid[1] # On opposing side and using OppMove animation
pbAnimationCore(animations[anim],target,user)
else # On player's side, and/or using Move animation
pbAnimationCore(animations[anim],user,target)
end
}
end
def pbSaveShadows
shadows=[]
for i in 0...4
s=@sprites["shadow#{i}"]
shadows[i]=s ? s.visible : false
s.visible=false if s
end
yield
for i in 0...4
s=@sprites["shadow#{i}"]
s.visible=shadows[i] if s
end
end
def pbAnimationCore(animation,user,target)
return if !animation
@briefmessage=false
case @currentpos
when 1
usersprite=@sprites["pokemon1"]
when 2
usersprite=@sprites["pokemon2"]
when 3
usersprite=@sprites["pokemon3"]
when 4
usersprite=@sprites["pokemon4"]
end
targetsprite=(@atself==false)? @sprites["opponent"]:usersprite
olduserx=usersprite ? usersprite.x : 0
oldusery=usersprite ? usersprite.y : 0
oldtargetx=targetsprite ? targetsprite.x : 0
oldtargety=targetsprite ? targetsprite.y : 0
#Start animation player
animplayer=PBAnimationPlayerContest.new(animation,user,target,usersprite,targetsprite,self)
userwidth=(!usersprite || !usersprite.bitmap || usersprite.bitmap.disposed?) ? 128 : usersprite.bitmap.width
userheight=(!usersprite || !usersprite.bitmap || usersprite.bitmap.disposed?) ? 128 : usersprite.bitmap.height
targetwidth=(!targetsprite.bitmap || targetsprite.bitmap.disposed?) ? 128 : targetsprite.bitmap.width
targetheight=(!targetsprite.bitmap || targetsprite.bitmap.disposed?) ? 128 : targetsprite.bitmap.height
animplayer.setLineTransform(
PokeBattle_SceneConstants::FOCUSUSER_X,PokeBattle_SceneConstants::FOCUSUSER_Y,
PokeBattle_SceneConstants::FOCUSTARGET_X,PokeBattle_SceneConstants::FOCUSTARGET_Y,
olduserx+(userwidth/2),oldusery+(userheight/2),
oldtargetx+(targetwidth/2),oldtargety+(targetheight/2))
animplayer.start
while animplayer.playing?
animplayer.update
Graphics.update
end
usersprite.ox=0 if usersprite
usersprite.oy=0 if usersprite
usersprite.x=olduserx if usersprite
usersprite.y=oldusery if usersprite
targetsprite.ox=0 if targetsprite
targetsprite.oy=0 if targetsprite
targetsprite.x=oldtargetx if targetsprite
targetsprite.y=oldtargety if targetsprite
animplayer.dispose
end
# End of Animation Stuff
###############################################################################
###############################################################################
# AI
###############################################################################
def pbAI(pokemon,difficulty)
movescores=[]
nummoves=pokemon.moves.length
for i in 0...nummoves
score=100
move=PBMoves.getName(pokemon.moves[i].id)
currentmovename=PBMoves.getName(pokemon.moves[i].id)
if pokemon.moves[i].id>0
for j in 1..PBContestMoves.maxValue
name=PBContestMoves.getName(j)
if move==name
move=getID(PBContestMoves,j)
end
end
contestmovedata=PBContestMoveData.new(move)
hearts=contestmovedata.hearts
jam=contestmovedata.jam
function=contestmovedata.contestfunction
type=contestmovedata.contestType
case function
when 0 #No function
score+=60 if hearts>3
score+=30 if hearts<=3
when 1,2 #gains oblivious. Increase score for earlier position
case @currentpos
when 1
score+=60
when 2
score+=40
when 4
score-=20
end
when 3 #Move Up in order
if @currentpos==4
score+=30
else
score+=10
end
when 4 #Ups condition
score+=30
when 5 #Tries to startle previous pokemons
case @currentpos
when 4
score+=70
when 3
score+=40
when 1
score-=20
end
when 6,23 #works better later
case @currentpos
when 4
score+=70
when 3
score+=40
when 1
score-=20
end
when 7 #deducts from pokemon that has judges attention
for k in 0...@currentpos
score+=30 if @hasattention[k]==true
end
when 8 #startles pokemon in front
case @currentpos
when 4
score+=40
when 3
score+=20
when 1
score-=20
end
when 9,40 #better if previous move was better
if @priorhearts>=3
score+=60
else
score-=20
end
when 10 #easily startled
case @currentpos
when 4
score+=60
when 3
score+=40
when 1
score-=20
end
when 11 #move down in order
if @currentpos==4
score-=20
else
score+=20
end
when 12 #startles pokemon with good appeals
case @currentpos
when 4
score+=20
score+=30 if @priorhearts>3
when 3
score+=10
score+=30 if @priorhearts>3
when 1
score-=20
end
when 13 #stops crowd excitement
score -=20 if @applause>3
score +=20 if @applause<=3
when 14 #works best if performed first
if @currentpos==1
score+=60
end
when 15 #can be used multiple times without boring judge
score+=20
when 16 #jams pokemon and misses turn
case @currentpos
when 4
score+=30
when 3
score+=20
end
if @round==5
score+=60
elsif @round==1
score-=10
end
when 17 #makes all pokemon after nervous
case @currentpos
when 1
score+=60
when 2
score+=40
when 4
score-=20
end
when 18 #no more moves
if @round==5
score+=90
else
score-=60
end
when 19 #depends on applause level
score+=20 if @applause>2
when 20 #depends on random
score+=20
when 21 #best if performed last
if @currentpos==4
score+=60
end
when 22,32 #removes a star
if @currentpos==4 && @stars.max>1 && @stars.index(@stars.max)!=@currentpos-1
score+=40
end
when 24 #Scramble
if @round !=5
score+=30
end
when 25 #works better if last move type is the same
if @lastmoveType && type==@lastmoveType
score+=40
else
score-=10
end
when 26 #appeal later next turn
if @currentpos==4
score-=20
else
score+=20
end
when 27 #double next turn
if @round !=5
score+=40
else
score-=60
end
when 28 #random amounts
score+=20
when 29 #better if last pokemon's wasn't
if @priorhearts<3
score+=60
else
score-=20
end
when 30 #half as much as previous pokemon
score+=(@priorhearts/2.floor)*10 if @priorhearts
when 31 #gets crowd going
score+=40
when 33,41 #better based on crowd excitement
score+=(@applause*10).floor
when 34,37 #same amount as last appearl
score+=(@priorhearts.floor)*10 if @priorhearts
when 35 #equals the pokemon's stars
if @stars[@currentpos-1]>0
score+=@stars[@currentpos-1]*10
else
score-=30
end
when 36
if type==@contestType
score+=40
else
score-=10
end
when 38 #better for lower applause
case @applause
when 1
score+=60
when 2
score+=40
when 3
score+=20
when 4
score-=20
end
when 39 #better for later rounds
case @round
when 5
score+=60
when 3
score+=40
when 2
score+=20
when 1
score-=20
end
end
score+=60 if type==@contestType #better if it's the same type as the contest
@currentmovename=currentmovename
score+=60 if @round>1 && pbCheckforCombos==true #better if it will result in a combo
score-=40 if @round>1 && function !=15 && pbCheckLast
end
movescores.push(score) if pokemon.moves[i].id>0
end
#movescores have been added up. Now find highest value, with a bit of variation
stdev=pbStdDev(movescores)
choice=movescores.index(movescores.max) #finds highest scoring move
notchoice=movescores.index(movescores.min)
return choice if stdev>=100 && rand(10)!=0 #use the highest scoring move if it's clearly better (stdev of 100 or more)
newmovescores=movescores.clone
newmovescores.sort
secondlowest=movescores.index(newmovescores[1])
r=rand(movescores.length)
movescores[notchoice]=nil if difficulty>25
movescores[secondlowest]=nil if difficulty>75
if difficulty>25 #lowest difficulty
return r if movescores[r]!=nil && rand(10)>4
elsif difficulty>50
return r if movescores[r]!=nil && rand(10)>2
elsif difficulty>75
2.times do
return r if movescores[r]!=nil && rand(10)>2
end
else
return r
end
return r
end
def pbStdDev(scores) #from PokeBattle_AI
n=0
sum=0
scores.each{|s| sum+=s; n+=1 }
return 0 if n==0
mean=sum.to_f/n.to_f
varianceTimesN=0
for i in 0...scores.length
if scores[i]>0
deviation=scores[i].to_f-mean
varianceTimesN+=deviation*deviation
end
end
# Using population standard deviation
# [(n-1) makes it a sample std dev, would be 0 with only 1 sample]
return Math.sqrt(varianceTimesN/n)
end
# End of AI
###############################################################################
###############################################################################
# Preliminary Results. No graphics used
###############################################################################
def pbPreliminaryScene
@prelim1=0
@prelim2=0
@prelim3=0
@prelim4=0
#points for players pokemon below
case @contestType
when "Cool"
@prelim1+=20 if isConst?($Trainer.party[$game_variables[49]].item,PBItems,:REDSCARF)
@prelim1+=($Trainer.party[$game_variables[49]].cool/8).floor
when "Beauty"
@prelim1+=20 if isConst?($Trainer.party[$game_variables[49]].item,PBItems,:BLUESCARF)
@prelim1+=($Trainer.party[$game_variables[49]].beauty/8).floor
when "Smart"
@prelim1+=20 if isConst?($Trainer.party[$game_variables[49]].item,PBItems,:GREENSCARF)
@prelim1+=($Trainer.party[$game_variables[49]].smart/8).floor
when "Tough"
@prelim1+=20 if isConst?($Trainer.party[$game_variables[49]].item,PBItems,:YELLOWSCARF)
@prelim1+=($Trainer.party[$game_variables[49]].tough/8).floor
when "Cute"
@prelim1+=20 if isConst?($Trainer.party[$game_variables[49]].item,PBItems,:PINKSCARF)
@prelim1+=($Trainer.party[$game_variables[49]].cute/8).floor
end
@prelim1+=25 if $Trainer.party[$game_variables[49]].isShiny? #extra points if it's shiny
#points for other pokemon below
#points for coolness, beauty, etc. Pokemon are created with 0, so they won't have any, given by difficulty
@prelim2+=(@difficulty==100)?31:(@difficulty>=75)?24:(@difficulty>=50)?19:(@difficulty>=25)?12:7
@prelim3+=(@difficulty==100)?31:(@difficulty>=75)?24:(@difficulty>=50)?19:(@difficulty>=25)?12:7
@prelim4+=(@difficulty==100)?31:(@difficulty>=75)?24:(@difficulty>=50)?19:(@difficulty>=25)?12:7
#gives points for "scarves". Pokemon won't actually have any. Less likely to
@prelim2+=20 if (@difficulty>=75 || (@difficulty>=50 && rand(2)==0))
@prelim3+=20 if (@difficulty>=75 || (@difficulty>=50 && rand(2)==0))
@prelim4+=20 if (@difficulty>=75 || (@difficulty>=50 && rand(2)==0))
#points for shiny
@prelim2+=25 if @pkmn2.isShiny?
@prelim3+=25 if @pkmn3.isShiny?
@prelim4+=25 if @pkmn4.isShiny?
#add some randomness for opponents
@prelim2+=rand(10)
@prelim2-=rand(10)
@prelim3+=rand(10)
@prelim3-=rand(10)
@prelim4+=rand(10)
@prelim4-=rand(10)
end
###############################################################################
# Results Scene
###############################################################################
def pbResultsScene
@sprites["results"]=IconSprite.new(0,0,@viewport2)
@sprites["results"].setBitmap("Graphics/Pictures/Contest/resultsbg")
#draw poke icons
@pkmn1sprite=PokemonIconSprite.new(@pkmn1,@viewport2)
@pkmn2sprite=PokemonIconSprite.new(@pkmn2,@viewport2)
@pkmn3sprite=PokemonIconSprite.new(@pkmn3,@viewport2)
@pkmn4sprite=PokemonIconSprite.new(@pkmn4,@viewport2)
#positions poke icons
@pkmn1sprite.x=86
@pkmn2sprite.x=86
@pkmn3sprite.x=86
@pkmn4sprite.x=86
@pkmn1sprite.y=93
@[email protected]+50
@[email protected]+50
@[email protected]+50
@sprites["textbitmap"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport2) #bitmap to draw text on, instead of Kernel.pbMessage
@sprites["textbitmap"][email protected]
#Color for rectangles, determined by contest type
rectcolor=(@contestType=="Cool")?Color.new(178,34,34):(@contestType=="Beauty")?Color.new(0,0,255):(@contestType=="Smart")?Color.new(0,100,0):(@contestType=="Tough")?Color.new(255,215,0):Color.new(255,0,255)
#array of the scores to use
@results=[@prelim1*1.5.floor,@prelim2*1.5.floor,@prelim3*1.5.floor,@prelim4*1.5.floor]
@newstars=[@pkmn1stars,@pkmn2stars,@pkmn3stars,@pkmn4stars]
#Draw rectangles, using the prelims as the initial
textpos=[]
textpos.push([_INTL("Preliminary Results"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
@sprites["overlay2"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport2)
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
#Draw first round
#this could probably be reduced to one loop, but it'll do more calculations in the long run
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([_INTL("First Round"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
3.times do
for i in 0..3
@results[i]+=@roundonetotals[i]*1.5/3
end
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
end
#Draw second round
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([_INTL("Second Round"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
3.times do
for i in 0..3
@results[i]+=@roundtwototals[i]*1.5/3
end
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
end
#Draw third round
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([_INTL("Third Round"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
3.times do
for i in 0..3
@results[i]+=@roundthreetotals[i]*1.5/3
end
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
end
#Draw fourth round
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([_INTL("Fourth Round"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
3.times do
for i in 0..3
@results[i]+=@roundfourtotals[i]*1.5/3
end
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
end
#Draw fifth round
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([_INTL("Fifth Round"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
3.times do
for i in 0..3
@results[i]+=@roundfivetotals[i]*1.5/3
end
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
end
#draw Stars
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([_INTL("Stars Earned"),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
3.times do
for i in 0..3
@results[i]+=@newstars[i]*10/3
end
@sprites["overlay2"].bitmap.fill_rect(167,128,@results[0],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,178,@results[1],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,228,@results[2],20,rectcolor)
@sprites["overlay2"].bitmap.fill_rect(167,278,@results[3],20,rectcolor)
Graphics.update
sleep(1)
end
winner=[@pkmn1total*1.5+@prelim1+@pkmn1stars*10,@pkmn2total*1.5+@prelim2+@pkmn2stars*10,@pkmn3total*1.5+@prelim3+@pkmn3stars*10,@pkmn4total*1.5+@prelim4+@pkmn4stars*10].sort.reverse
win=(winner[0]==(@pkmn1total*1.5+@prelim1+@pkmn1stars*10))? @pkmn1:(winner[0]==(@pkmn2total*1.5+@prelim2+@pkmn2stars*10))? @pkmn2:(winner[0]==(@pkmn3total*1.5+@prelim3+@pkmn3stars*10))? @pkmn3:@pkmn4
textpos.clear
@sprites["textbitmap"].bitmap.clear
textpos.push([(_INTL("{1} is the winner!",win.name)),Graphics.width/3,309,0,rectcolor,Color.new(136,168,208)])
pbDrawTextPositions(@sprites["textbitmap"].bitmap,textpos)
if win==@pkmn1
$Trainer.party[$game_variables[49]].giveRibbon(@ribbonnum) if !($Trainer.party[$game_variables[49]].hasRibbon?(@ribbonnum))
end
Graphics.update
sleep(1)
@pkmn1sprite.dispose
@pkmn2sprite.dispose
@pkmn3sprite.dispose
@pkmn4sprite.dispose
@sprites["overlay2"].bitmap.clear
end
################################################################################
end
class PokeContest
def initialize(scene)
@scene=scene
end
def pbStartContest(difficulty,opponent1,opponent1level,opponent2,opponent2level,opponent3,opponent3level,ribbonnum)
@scene.pbStartContest(difficulty,opponent1,opponent1level,opponent2,opponent2level,opponent3,opponent3level,ribbonnum)
@scene.middleScene
@scene.pbEndScene
end
end
def pbContest(difficulty,opponent1,opponent1level,opponent2,opponent2level,opponent3,opponent3level,ribbonnum)
scene=PokeContestScene.new
screen=PokeContest.new(scene)
return screen.pbStartContest(difficulty,opponent1,opponent1level,opponent2,opponent2level,opponent3,opponent3level,ribbonnum)
end
################################################################################
# Define Contest Combos here
################################################################################
#define all combos here. first entry in array starts the combo, the rest are the options to follow it
#name them by their name used in the game, not the internal name
combo1=["Belly Drum","Rest"]
combo2=["Calm Mind","Confusion","Dream Eater","Future Sight","Light Screen","Luster Purge","Meditate","Mist Ball","Psybeam","Psychic","Psycho Boost","Psywave","Reflect"]
combo3=["Charge","Shock Wave","Spark","Thunder","Thunderbolt","Thunder Punch","Thunder Shock","Thunder Wave","Volt Tackle","Zap Cannon"]
combo4=["Charm","Flatter","Growl","Rest","Tail Whip"]
combo5=["Confusion","Future Sight","Kinesis","Psychic","Teleport"]
combo6=["Curse","Destiny Bond","Grudge","Mean Look","Spite"]
combo7=["Defense Curl","Rollout","Tackle"]
combo8=["Dive","Surf"]
combo9=["Double Team","Agility","Quick Attack","Teleport"]
combo10=["Dragon Breath","Dragon Claw","Dragon Dance","Dragon Rage"]
combo11=["Dragon Dance","Dragon Breath","Dragon Claw","Dragon Rage"]
combo12=["Dragon Rage","Dragon Breath","Dragon Claw","Dragon Dance"]
combo13=["Earthquake","Eruption","Fissure"]
combo14=["Endure","Flail","Reversal"]
combo15=["Fake Out","Arm Thrust","Feint Attack","Knock Off","Seismic Toss","Vital Throw"]
combo16=["Fire Punch","Ice Punch","Thunder Punch"]
combo17=["Focus Energy","Arm Thrust","Brick Break","Cross Chop","Double Edge","DynamicPunch","Focus Punch","Headbutt","Karate Chop","Sky Uppercut","Take Down"]
combo18=["Growth","Absorb","Bullet Seed","Frenzy Plant","Giga Drain","Leech Seed","Magical Leaf","Mega Drain","Petal Dance","Razor Leaf","SolarBeam","Vine Whip"]
combo19=["Hail","Aurora Beam","Blizzard","Haze","Ice Ball","Ice Beam","Icicle Spear","Icy Wind","Powder Snow","Sheer Cold","Weather Ball"]
combo20=["Harden","Double Edge","Protect","Rollout","Tackle","Take Down"]
combo21=["Horn Attack","Horn Drill","Fury Attack"]
combo22=["Hypnosis","Dream Eater"]
combo23=["Ice Punch","Fire Punch","Thunder Punch"]
combo24=["Kinesis","Confusion","Future Sight","Psychic","Teleport"]
combo25=["Leer","Bite","Feint Attack","Glare","Horn Attack","Scary Face","Scratch","Stomp","Tackle"]
combo26=["Lock-On","Superpower","Thunder","Tri Attack","Zap Cannon"]
combo27=["Mean Look","Destiny Bond","Perish Song"]
combo28=["Metal Sound","Metal Claw"]
combo29=["Mind Reader","DynamicPunch","Hi Jump Kick","Sheer Cold","Submission","Superpower"]
combo30=["Mud Sport","Mud-Slap","Water Gun","Water Sport"]
combo31=["Peck","Drill Peck","Fury Attack"]
combo32=["Pound","Double Slap","Feint Attack","Slam"]
combo33=["Powder Snow","Blizzard"]
combo34=["Psychic","Confusion","Teleport","Future Sight","Kinesis"]
combo35=["Rage","Leer","Scary Face","Thrash"]
combo36=["Rain Dance","Bubble","Bubblebeam","Clamp","Crabhammer","Dive","Hydro Cannon","Hydro Pump","Muddy Water","Octazooka","Surf","Thunder","Water Gun","Water Pulse","Water Sport","Water Spout","Waterfall","Weather Ball","Whirlpool"]
combo37=["Rest","Sleep Talk","Snore"]
combo38=["Rock Throw","Rock Slide","Rock Tomb"]
combo39=["Sand-Attack","Mud-Slap"]
combo40=["Sandstorm","Mud Shot","Mud-Slap","Mud Sport","Sand Tomb","Sand-Attack","Weather Ball"]
combo41=["Scary Face","Bite","Crunch","Leer"]
combo42=["Scratch","Fury Swipes","Slash"]
combo43=["Sing","Perish Song","Refresh"]
combo44=["Sludge","Sludge Bomb"]
combo45=["Sludge Bomb","Sludge"]
combo46=["Smog","Smokescreen"]
combo47=["Stockpile","Spit Up","Swallow"]
combo48=["Sunny Day","Blast Burn","Blaze Kick","Ember","Eruption","Fire Blast","Fire Punch","Fire Spin","Flame Wheel","Flamethrower","Heat Wave","Moonlight","Morning Sun","Overheat","Sacred Fire","SolarBeam","Synthesis","Weather Ball","Will-o-Wisp"]
combo49=["Surf","Dive"]
combo50=["Sweet Scene","Poison Powder","Sleep Powder","Stun Spore"]
combo51=["Swords Dance","Crabhammer","Crush Claw","Cut","False Swipe","Fury Cutter","Slash"]
combo52=["Taunt","Counter","Detect","Mirror Coat"]
combo53=["Thunder Punch","Fire Punch","Ice Punch"]
combo54=["Vice Grip","Bind","Guillotine"]
combo55=["Water Sport","Mud Sport","Refresh","Water Gun"]
combo56=["Yawn","Rest","Slack Off"]
#add more combos here
#then add them to this array below
CONTESTCOMBOS=[combo1,combo2,combo3,combo4,combo5,combo6,combo7,combo8,combo9,combo10,combo11,combo12,combo13,combo14,combo15,combo16,combo17,combo18,combo19,combo20,combo21,combo22,combo23,combo24,combo25,combo26,combo27,combo28,combo29,combo30,
combo31,combo32,combo33,combo34,combo35,combo36,combo37,combo38,combo39,combo40,combo41,combo42,combo43,combo44,combo45,combo46,combo47,combo48,combo49,combo50,combo51,combo52,combo53,combo54,combo55,combo56]
################################################################################
# blank array to store moves to teach contest pokemon
################################################################################
CONTESTMOVE2=[0,0,0,0]
CONTESTMOVE3=[0,0,0,0]
CONTESTMOVE4=[0,0,0,0]
def pbAddContestMove(poke,move1=0,move2=0,move3=0,move4=0)
poketochange=[0,0,0,0]
poketochange[0]=move1
poketochange[1]=move2
poketochange[2]=move3
poketochange[3]=move4
case poke
when 2
for i in 0..3
CONTESTMOVE2[i]=poketochange[i]
end
when 3
for i in 0..3
CONTESTMOVE3[i]=poketochange[i]
end
when 4
for i in 0..3
CONTESTMOVE4[i]=poketochange[i]
end
end
end
################################################################################
# nicknaming contest pokemon
################################################################################
$CONTESTNAME2=""
$CONTESTNAME3=""
$CONTESTNAME4=""
def pbChangeContestName(poke,name="")
if name !="" && name.length<16
case poke
when 2
$CONTESTNAME2=name
when 3
$CONTESTNAME3=name
when 4
$CONTESTNAME4=name
end
end
end
################################################################################
# Animation player for contest
################################################################################
class PBAnimationPlayerContest
attr_accessor :looping
MAXSPRITES=30
def initialize(animation,user,target,usersprite,targetsprite,scene=nil,ineditor=false)
@animation=animation
@user=user
@usersprite=usersprite
@targetsprite=targetsprite
@userbitmap=(@usersprite && @usersprite.bitmap) ? @usersprite.bitmap : nil # not to be disposed
@targetbitmap=(@targetsprite && @targetsprite.bitmap) ? @targetsprite.bitmap : nil # not to be disposed
@scene=scene
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@ineditor=ineditor
@looping=false
@animbitmap=nil # Animation sheet graphic
@frame=-1
@srcLine=nil
@dstLine=nil
@userOrig=getSpriteCenter(@usersprite)
@targetOrig=getSpriteCenter(@targetsprite)
@animsprites=[]
@animsprites[0]=@usersprite
@animsprites[1]=@targetsprite
for i in 2...MAXSPRITES
@animsprites[i]=Sprite.new(@viewport)
@animsprites[i].bitmap=nil
@animsprites[i].visible=false
end
@bgColor=ColoredPlane.new(Color.new(0,0,0),@viewport)
@bgColor.borderX=64 if ineditor
@bgColor.borderY=64 if ineditor
@bgColor.z=2
@bgColor.opacity=0
@bgColor.refresh
@bgGraphic=AnimatedPlane.new(@viewport)
@bgGraphic.setBitmap(nil)
@bgGraphic.borderX=64 if ineditor
@bgGraphic.borderY=64 if ineditor
@bgGraphic.z=2
@bgGraphic.opacity=0
@bgGraphic.refresh
@oldbg=[]
@foColor=ColoredPlane.new(Color.new(0,0,0),@viewport)
@foColor.borderX=64 if ineditor
@foColor.borderY=64 if ineditor
@foColor.z=38
@foColor.opacity=0
@foColor.refresh
@foGraphic=AnimatedPlane.new(@viewport)
@foGraphic.setBitmap(nil)
@foGraphic.borderX=64 if ineditor
@foGraphic.borderY=64 if ineditor
@foGraphic.z=38
@foGraphic.opacity=0
@foGraphic.refresh
@oldfo=[]
end
def dispose
@animbitmap.dispose if @animbitmap
for i in 2...MAXSPRITES
@animsprites[i].dispose if @animsprites[i]
end
@bgGraphic.dispose
@bgColor.dispose
@foGraphic.dispose
@foColor.dispose
end
def start
@frame=0
end
def playing?
return @frame>=0
end
def setLineTransform(x1,y1,x2,y2,x3,y3,x4,y4)
@srcLine=[x1,y1,x2,y2]
@dstLine=[x3,y3,x4,y4]
end
def update
return if @frame<0
if (@frame>>1) >= @animation.length
@frame=(@looping) ? 0 : -1
if @frame<0
@animbitmap.dispose if @animbitmap
@animbitmap=nil
return
end
end
if !@animbitmap || @animbitmap.disposed?
@animbitmap=AnimatedBitmap.new("Graphics/Animations/"[email protected],
@animation.hue).deanimate
for i in 0...MAXSPRITES
@animsprites[i].bitmap=@animbitmap if @animsprites[i]
end
end
@bgGraphic.update
@bgColor.update
@foGraphic.update
@foColor.update
if (@frame&1)==0
thisframe=@animation[@frame>>1]
# Make all cel sprites invisible
for i in 0...MAXSPRITES
@animsprites[i].visible=false if @animsprites[i]
end
# Set each cel sprite acoordingly
for i in 0...thisframe.length
cel=thisframe[i]
next if !cel
sprite=@animsprites[i]
next if !sprite
# Set cel sprite's graphic
if cel[AnimFrame::PATTERN]==-1
sprite.bitmap=@userbitmap
elsif cel[AnimFrame::PATTERN]==-2
sprite.bitmap=@targetbitmap
else
sprite.bitmap=@animbitmap
end
cel[AnimFrame::MIRROR]=1
# Apply settings to the cel sprite
pbSpriteSetAnimFrame(sprite,cel,@usersprite,@targetsprite)
case cel[AnimFrame::FOCUS]
when 1 # Focused on target
sprite.x=cel[AnimFrame::X]+@targetOrig[0]-PokeBattle_SceneConstants::FOCUSTARGET_X
sprite.y=cel[AnimFrame::Y]+@targetOrig[1]-PokeBattle_SceneConstants::FOCUSTARGET_Y
when 2 # Focused on user
sprite.x=cel[AnimFrame::X]+@userOrig[0]-PokeBattle_SceneConstants::FOCUSUSER_X
sprite.y=cel[AnimFrame::Y]+@userOrig[1]-PokeBattle_SceneConstants::FOCUSUSER_Y
when 3 # Focused on user and target
if @srcLine && @dstLine
point=transformPoint(
@srcLine[0],@srcLine[1],@srcLine[2],@srcLine[3],
@dstLine[0],@dstLine[1],@dstLine[2],@dstLine[3],
sprite.x,sprite.y)
sprite.x=point[0]
sprite.y=point[1]
end
end
sprite.x+=64 if @ineditor
sprite.y+=64 if @ineditor
end
# Play timings
@animation.playTiming(@frame>>1,@bgGraphic,@bgColor,@foGraphic,@foColor,@oldbg,@oldfo,@user)
end
@frame+=1
end
end
Note that these use game variables 48 and 49. If you have something else in these, you have to either change yours, or go through these scripts and search/replace them with your chosen number.
The contestmoves.txt PBS
Spoiler:
Code:
#ID,INTERNALNAME,Name,Type,Appeal,Jamming,Effect,"description"
1,MEGAHORN,Megahorn,Cool,6,0,018,"Makes a great appeal, but allows no more to the end."
2,ATTACKORDER,Attack Order,Cute,2,0,036,"Increases if crowd excitement increases."
3,BUGBUZZ,Bug Buzz,Cute,2,0,036,"Increases if crowd excitement increases."
8,XSCISSOR,X-Scissor,Beauty,2,0,014,"The appeal works great if performed first."
9,SIGNALBEAM,Signal Beam,Beauty,3,0,024,"Scrambles the order of appeals on the next turn."
10,UTURN,U-turn,Cute,4,0,001,"Can avoid being startled by others once."
11,STEAMROLLER,Steamroller,Tough,1,4,008,"Badly startles the Pokemon in front."
12,BUGBITE,Bug Bite,Cute,2,0,036,"Increases if crowd excitement increases."
13,SILVERWIND,Silver Wind,Beauty,1,0,004,"Ups the user's condition. Helps prevent nervousness."
15,STRUGGLEBUG,Struggle Bug,Cool,2,0,001,"Can avoid being startled by others once."
18,TWINEEDLE,Twineedle,Cool,2,0,015,"Can be repeatedly used without boring the judge."
16,FURYCUTTER,Fury Cutter,Cool,3,0,015,"Can be repeatedly used without boring the judge."
6,LEECHLIFE,Leech Life,Smart,2,3,008,"Badly startles the Pokemon in front."
17,PINMISSILE,Pin Missile,Cool,2,1,007,"Startles the Pokemon that has the judges attention."
20,DEFENDORDER,Defend Order,Smart,0,0,027,"User earns double the score in it's next appeal."
21,HEALORDER,Heal Order,Smart,1,0,033,"Does better based on crowd excitement."
23,QUIVERDANCE,Quiver Dance,Beauty,4,0,003,"The next appeal can be made earlier next turn."
24,RAGEPOWDER,Rage Powder,Smart,2,0,017,"Makes all Pokemon after the user nervous."
25,SPIDERWEB,Spider Web,Smart,2,0,013,"Temporarily stops the crowd from growing excited."
27,STRINGSHOT,String Shot,Smart,2,3,008,"Badly startles the Pokemon in front."
28,TAILGLOW,Tail Glow,Beauty,1,0,004,"Ups the user's condition. Helps prevent nervousness."
30,FOULPLAY,Foul Play,Smart,2,3,005,"Badly startles those that have made appeals."
32,NIGHTDAZE,Night Daze,Smart,1,2,005,"Badly startles those that have made appeals."
33,CRUNCH,Crunch,Tough,1,4,008,"Badly startles the Pokemon in front."
34,DARKPULSE,Dark Pulse,Cool,2,0,014,"The appeal works great if performed first."
37,SUCKERPUNCH,Sucker Punch,Smart,2,0,003,"The next appeal can be made earlier next turn."
36,NIGHTSLASH,Night Slash,Beauty,3,0,000,"A highly appealing move."
40,BITE,Bite,Tough,1,3,005,"Badly startles those that have made appeals."
42,FEINTATTACK,Feint Attack,Smart,2,0,014,"The appeal works great if performed first."
44,SNARL,Snarl,Tough,1,3,008,"Badly startles the Pokemon in front."
39,ASSURANCE,Assurance,Beauty,2,0,021,"The appeal works great if performed last."
45,PAYBACK,Payback,Cool,1,0,014,"The appeal works great if performed first."
46,PURSUIT,Pursuit,Smart,2,1,005,"Badly startles those that have made appeals."
43,THIEF,Thief,Tough,1,0,034,"Earns the same amount as the last appeal."
38,KNOCKOFF,Knock Off,Smart,1,4,008,"Badly startles the Pokemon in front."
47,BEATUP,Beat Up,Smart,2,0,015,"Can be repeatedly used without boring the judge."
48,FLING,Fling,Tough,2,3,005,"Badly startles those that have made appeals."
50,PUNISHMENT,Punishment,Smart,1,0,005,"Badly startles those that have made appeals."
51,DARKVOID,Dark Void,Smart,2,0,013,"Temporarily stops the crowd from growing excited."
52,EMBARGO,Embargo,Cute,2,0,013,"Temporarily stops the crowd from growing excited."
53,FAKETEARS,Fake Tears,Smart,2,0,021,"The appeal works great if performed last."
54,FLATTER,Flatter,Smart,2,0,017,"Makes all Pokemon after the user nervous."
55,HONECLAWS,Hone Claws,Tough,0,0,027,"User earns double the score in it's next appeal."
56,MEMENTO,Memento,Tough,8,0,018,"Makes a great appeal, but allows no more to the end."
57,NASTYPLOT,Nasty Plot,Cute,0,0,027,"User earns double the score in it's next appeal."
59,QUASH,Quash,Smart,4,0,003,"The next appeal can be made earlier next turn."
60,SNATCH,Snatch,Smart,2,1,005,"Badly startles those that have made appeals."
61,SWITCHEROO,Switcheroo,Cool,1,0,034,"Earns the same amount as the last appeal."
62,TAUNT,Taunt,Smart,2,0,017,"Makes all Pokemon after the user nervous."
64,TORMENT,Torment,Tough,2,0,017,"Makes all Pokemon after the user nervous."
65,ROAROFTIME,Roar of Time,Cool,3,0,037,"Add the score of the last appeal to yours."
66,DRACOMETEOR,Draco Meteor,Smart,6,0,010,"After this move, the user is more easily startled."
67,OUTRAGE,Outrage,Cool,4,4,005,"Badly startles those that have made appeals."
70,DRAGONRUSH,Dragon Rush,Cool,2,0,021,"The appeal works great if performed last."
71,SPACIALREND,Spacial Rend,Tough,2,0,036,"Increases if crowd excitement increases."
73,DRAGONPULSE,Dragon Pulse,Smart,2,0,036,"Increases if crowd excitement increases."
74,DRAGONCLAW,Dragon Claw,Cool,2,1,006,"Startles Pokemon that made the same type appeal."
76,DRAGONTAIL,Dragon Tail,Cool,1,4,008,"Badly startles the Pokemon in front."
75,DRAGONBREATH,DragonBreath,Cool,1,3,005,"Badly startles those that have made appeals."
77,DUALCHOP,Dual Chop,Cool,4,0,000,"A highly appealing move."
78,TWISTER,Twister,Cool,3,0,024,"Scrambles the order of appeals on the next turn."
79,DRAGONRAGE,Dragon Rage,Cool,1,0,006,"The appeal works better the later it is performed."
80,DRAGONDANCE,Dragon Dance,Cool,1,0,004,"Ups the user's condition. Helps prevent nervousness."
81,BOLTSTRIKE,Bolt Strike,Cool,7,0,010,"After this move, the user is more easily startled."
84,THUNDER,Thunder,Cool,2,2,005,"Badly startles those that have made appeals."
82,VOLTTACKLE,Volt Tackle,Cool,2,2,007,"Startles the Pokemon that have the judges attention."
83,ZAPCANNON,Zap Cannon,Cool,4,0,000,"A highly appealing move."
85,FUSIONBOLT,Fusion Bolt,Cool,7,0,010,"After this move, the user is more easily startled."
87,THUNDERBOLT,Thunderbolt,Cool,4,0,000,"A highly appealing move."
88,WILDCHARGE,Wild Charge,Cool,2,0,014,"The appeal works great if performed first."
89,DISCHARGE,Discharge,Cool,2,0,014,"The appeal works great if performed first."
91,THUNDERPUNCH,ThunderPunch,Cool,4,0,000,"A highly appealing move."
92,VOLTSWITCH,Volt Switch,Cool,3,0,011,"The user will appeal later in the next turn."
94,SPARK,Spark,Cool,1,4,008,"Badly startles the Pokemon in front."
95,THUNDERFANG,Thunder Fang,Smart,3,0,000,"A highly appealing move."
96,SHOCKWAVE,Shock Wave,Cool,2,0,014,"The appeal works great if performed first."
97,ELECTROWEB,Electroweb,Smart,3,0,011,"The user will appeal later in the next turn."
98,CHARGEBEAM,Charge Beam,Beauty,2,0,014,"The appeal works great if performed first."
99,THUNDERSHOCK,ThunderShock,Cool,4,0,000,"A highly appealing move."
101,ELECTROBALL,Electro Ball,Cool,4,0,000,"A highly appealing move."
102,CHARGE,Charge,Smart,2,0,025,"Works well if its the same type as the one before."
107,MAGNETRISE,Magnet Rise,Cool,3,0,000,"A highly appealing move."
109,THUNDERWAVE,Thunder Wave,Cool,2,1,012,"Badly startles all Pokemon that made good appeals."
130,FOCUSPUNCH,Focus Punch,Tough,3,0,011,"The user will appeal later in the next turn."
131,HIGHJUMPKICK,High Jump Kick,Cool,6,0,010,"After this move, the user is more easily startled."
132,CLOSECOMBAT,Close Combat,Cool,6,0,010,"After this move, the user is more easily startled."
133,FOCUSBLAST,Focus Blast,Cool,2,0,014,"The appeal works great if performed first."
134,SUPERPOWER,Superpower,Tough,6,0,010,"After this move, the user is more easily startled."
135,CROSSCHOP,Cross Chop,Cool,3,0,009,"Affected by how well the appeal in front goes."
136,DYNAMICPUNCH,DynamicPunch,Cool,2,1,007,"Startles the Pokemon that has the judges attention."
138,HAMMERARM,Hammer Arm,Cool,2,0,011,"The user will appeal later in the next turn."
139,JUMPKICK,Jump Kick,Cool,6,0,010,"After this move, the user is more easily startled."
143,AURASPHERE,Aura Sphere,Beauty,2,0,014,"The appeal works great if performed first."
140,SACREDSWORD,Sacred Sword,Tough,4,0,001,"Can avoid being startled by others once."
141,SECRETSWORD,Secret Sword,Tough,4,0,000,"A highly appealing move."
142,SKYUPPERCUT,Sky Uppercut,Cool,2,1,006,"Startles the Pokemon that made a same-type appeal."
144,SUBMISSION,Submission,Cool,6,0,010,"After this move, the user is more easily startled."
145,BRICKBREAK,Brick Break,Cool,1,4,008,"Badly startles the Pokemon in front."
146,DRAINPUNCH,Drain Punch,Beauty,1,0,036,"Increases if crowd excitement increases."
147,VITALTHROW,Vital Throw,Cool,3,0,011,"The user will appeal later in the next turn."
150,CIRCLETHROW,Circle Throw,Tough,1,0,014,"The appeal works great if performed first."
151,FORCEPALM,Force Palm,Cool,2,0,021,"The appeal works great if performed last."
149,LOWSWEEP,Low Sweep,Tough,1,4,008,"Badly startles the Pokemon in front."
152,REVENGE,Revenge,Tough,3,0,026,"The next appeal can be made later next turn."
153,ROLLINGKICK,Rolling Kick,Cool,3,0,000,"A highly appealing move."
148,WAKEUPSLAP,Wake-Up Slap,Smart,1,0,014,"The appeal works great if performed first."
155,KARATECHOP,Karate Chop,Tough,3,0,009,"Affected by how well the appeal in front goes."
156,MACHPUNCH,Mach Punch,Cool,3,0,003,"The next appeal can be made earlier next turn."
158,ROCKSMASH,Rock Smash,Tough,2,0,025,"Works well if its the same type as the one before."
154,STORMTHROW,Storm Throw,Tough,1,0,014,"The appeal works great if performed first."
159,VACUUMWAVE,Vacuum Wave,Smart,2,0,003,"The next appeal can be made earlier next turn."
160,DOUBLEKICK,Double Kick,Cool,2,0,025,"Works well if its the same type as the one before."
161,ARMTHRUST,Arm Thrust,Tough,2,1,007,"Startles the Pokemon that has the judges attention."
162,TRIPLEKICK,Triple Kick,Cool,3,0,025,"Works well if its the same type as the one before."
163,COUNTER,Counter,Tough,2,0,001,"Can avoid being startled by others once."
164,FINALGAMBIT,Final Gambit,Cool,2,0,021,"The appeal works great if performed last."
165,LOWKICK,Low Kick,Tough,1,4,008,"Badly startles the Pokemon in front."
166,REVERSAL,Reversal,Cool,2,0,021,"The appeal works great if performed last."
167,SEISMICTOSS,Seismic Toss,Tough,2,1,006,"Startles the Pokemon that made a same-type appeal."
168,BULKUP,Bulk Up,Beauty,1,0,004,"Ups the user's condition. Helps prevent nervousness."
169,DETECT,Detect,Cool,2,0,001,"Can avoid being startled by others once."
171,QUICKGUARD,Quick Guard,Cool,2,0,001,"Can avoid being startled by others once."
172,VCREATE,V-create,Beauty,6,0,010,"After this move, the user is more easily startled."
173,BLASTBURN,Blast Burn,Cool,4,4,005,"Badly startles those that have made appeals."
174,ERUPTION,Eruption,Beauty,1,0,006,"The appeal works better the later it is performed."
179,OVERHEAT,Overheat,Beauty,6,0,010,"After this move, the user is more easily startled."
177,BLUEFLARE,Blue Flare,Cool,3,4,005,"Badly startles those that have made appeals."
181,FIREBLAST,Fire Blast,Beauty,4,0,000,"A highly appealing move."
180,FLAREBLITZ,Flare Blitz,Smart,2,3,008,"Badly startles the Pokemon in front."
184,MAGMASTORM,Magma Storm,Tough,5,4,016,"Jams the others, and misses one turn of appeals."
182,FUSIONFLARE,Fusion Flare,Beauty,5,0,000,"A highly appealing move."
187,HEATWAVE,Heat Wave,Beauty,4,0,000,"A highly appealing move."
183,INFERNO,Inferno,Beauty,2,0,017,"Makes all Pokemon after the user nervous."
185,SACREDFIRE,Sacred Fire,Beauty,3,1,007,"Startles the Pokemon that has the judges attention."
186,SEARINGSHOT,Searing Shot,Tough,2,3,008,"Badly startles the Pokemon in front."
188,FLAMETHROWER,Flamethrower,Beauty,4,0,000,"A highly appealing move."
189,BLAZEKICK,Blaze Kick,Beauty,4,0,000,"A highly appealing move."
190,FIERYDANCE,Fiery Dance,Beauty,2,0,003,"The next appeal can be made earlier next turn."
193,LAVAPLUME,Lava Plume,Tough,2,0,014,"The appeal works great if performed first."
194,FIREPUNCH,Fire Punch,Beauty,4,0,000,"A highly appealing move."
196,FLAMEBURST,Flame Burst,Cool,4,0,000,"A highly appealing move."
197,FIREFANG,Fire Fang,Beauty,3,0,000,"A highly appealing move."
198,FLAMEWHEEL,Flame Wheel,Beauty,4,0,000,"A highly appealing move."
192,FIREPLEDGE,Fire Pledge,Tough,2,0,014,"The appeal works great if performed first."
200,FLAMECHARGE,Flame Charge,Beauty,2,0,003,"The next appeal can be made earlier next turn."
201,EMBER,Ember,Beauty,4,0,000,"A highly appealing move."
202,FIRESPIN,Fire Spin,Beauty,3,0,013,"Temporarily stops the crowd from growing excited."
199,INCINERATE,Incinerate,Beauty,2,0,014,"The appeal works great if performed first."
203,HEATCRASH,Heat Crash,Beauty,3,2,005,"Badly startles those that have made appeals."
204,SUNNYDAY,Sunny Day,Beauty,1,0,019,"The appeal works the best the more the crowd is excited."
205,WILLOWISP,Will-O-Wisp,Beauty,1,4,008,"Badly startles the Pokemon in front."
206,SKYATTACK,Sky Attack,Cool,3,0,029,"The appeal performs well if the last Pokemon's didn't."
207,BRAVEBIRD,Brave Bird,Cute,2,0,021,"The appeal works great if performed last."
209,HURRICANE,Hurricane,Cool,2,1,005,"Badly startles those that have made appeals."
210,AEROBLAST,Aeroblast,Cool,2,0,008,"Badly startles the Pokemon in front."
212,FLY,Fly,Smart,1,0,002,"Can avoid being startled by others."
213,BOUNCE,Bounce,Smart,1,0,002,"Can avoid being startled by others."
214,DRILLPECK,Drill Peck,Cool,4,0,000,"A highly appealing move."
216,AIRSLASH,Air Slash,Cool,2,0,014,"The appeal works great if performed first."
218,AERIALACE,Aerial Ace,Cool,2,0,014,"The appeal works great if performed first."
217,CHATTER,Chatter,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
220,PLUCK,Pluck,Cute,1,0,034,"Earns the same amount as the last appeal."
221,SKYDROP,Sky Drop,Cool,5,3,016,"Jams the others, and misses one turn of appeals."
222,WINGATTACK,Wing Attack,Cool,2,0,025,"Works well if its the same type as the one before."
223,ACROBATICS,Acrobatics,Cool,2,1,007,"Startles the Pokemon that has the judges attention."
219,AIRCUTTER,Air Cutter,Cool,3,0,000,"An appealing move"
224,GUST,Gust,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
225,PECK,Peck,Cool,4,0,000,"A highly appealing move."
226,DEFOG,Defog,Beauty,2,0,013,"Temporarily stops the crowd from growing excited."
227,FEATHERDANCE,FeatherDance,Beauty,2,0,013,"Temporarily stops the crowd from growing excited."
228,MIRRORMOVE,Mirror Move,Smart,1,0,034,"Earns the same amount as the last appeal."
229,ROOST,Roost,Cool,1,0,034,"Earns the same amount as the last appeal."
230,TAILWIND,Tailwind,Smart,2,0,003,"The next appeal can be made earlier next turn."
231,SHADOWFORCE,Shadow Force,Smart,2,0,023,"It works better the later it is performed."
236,SHADOWBALL,Shadow Ball,Smart,3,0,032,"Removes a star from Pokemon that have appealed already."
238,SHADOWCLAW,Shadow Claw,Smart,2,0,014,"The appeal works great if performed first."
240,OMINOUSWIND,Ominous Wind,Smart,0,0,027,"User earns double the score in it's next appeal."
241,SHADOWPUNCH,Shadow Punch,Smart,2,0,014,"The appeal works great if performed first."
239,HEX,Hex,Smart,3,0,017,"Makes all Pokemon after the user nervous."
242,SHADOWSNEAK,Shadow Sneak,Smart,2,0,003,"The next appeal can be made earlier next turn."
243,ASTONISH,Astonish,Smart,2,3,008,"Badly startles the Pokemon in front."
244,LICK,Lick,Tough,1,4,008,"Badly startles the Pokemon in front."
245,NIGHTSHADE,Night Shade,Smart,2,1,032,"Startles the Pokemon who used the same move type."
246,CONFUSERAY,Confuse Ray,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
247,CURSE,Curse,Tough,3,0,026,"The next appeal can be made later next turn."
248,DESTINYBOND,Destiny Bond,Smart,8,0,018,"Makes a great appeal, but allows no more to the end.
249,GRUDGE,Grudge,Tough,1,0,023,"It works better the later it is performed."
250,NIGHTMARE,Nightmare,Smart,2,0,013,"Temporarily stops the crowd from growing excited."
251,SPITE,Spite,Tough,1,0,023,"It works better the later it is performed."
253,FRENZYPLANT,Frenzy Plant,Cool,2,1,005,"Startles the Pokemon that appealed before the user."
254,LEAFSTORM,Leaf Storm,Cool,2,2,005,"Startles the Pokemon that appealed before the user."
256,PETALDANCE,Petal Dance,Beauty,4,4,016,"Jams the others, and misses one turn of appeals."
257,POWERWHIP,Power Whip,Beauty,4,0,000,"A highly appealing move."
258,SEEDFLARE,Seed Flare,Smart,2,1,007,"Startles the Pokemon that has the judges attention."
259,SOLARBEAM,SolarBeam,Cool,4,0,000,"A highly appealing move."
260,WOODHAMMER,Wood Hammer,Tough,2,0,021,"The appeal works great if performed last."
262,LEAFBLADE,Leaf Blade,Cool,3,0,013,"Temporarily stops the crowd from growing excited."
261,ENERGYBALL,Energy Ball,Beauty,2,0,014,"The appeal works great if performed first."
265,SEEDBOMB,Seed Bomb,Smart,3,0,000,"No extra effect"
266,GIGADRAIN,Giga Drain,Smart,2,1,007,"Startles the Pokemon that has the judges attention."
267,HORNLEECH,Horn Leech,Smart,2,1,007,"Startles the Pokemon that has the judges attention."
269,LEAFTORNADO,Leaf Tornado,Smart,5,0,010,"After this move, the user is more easily startled."
270,MAGICALLEAF,Magical Leaf,Beauty,2,0,014,"The appeal works great if performed first."
271,NEEDLEARM,Needle Arm,Smart,1,4,008,"Badly startles the Pokemon in front."
272,RAZORLEAF,Razor Leaf,Cool,3,0,029,"The appeal performs well if the last Pokemon's didn't."
264,GRASSPLEDGE,Grass Pledge,Smart,3,0,002,"Can avoid being startled by others."
275,MEGADRAIN,Mega Drain,Smart,1,4,008,"Badly startles the Pokemon in front."
273,VINEWHIP,Vine Whip,Cool,3,0,000,"No extra effect"
276,BULLETSEED,Bullet Seed,Cool,2,1,012,"Badly startles all Pokemon that made good appeals."
277,ABSORB,Absorb,Smart,2,3,005,"Startles the Pokemon that appealed before the user."
278,GRASSKNOT,Grass Knot,Smart,2,0,036,"Increases if crowd excitement increases."
279,AROMATHERAPY,Aromatherapy,Smart,2,0,000,"No extra effect"
280,COTTONGUARD,Cotton Guard,Smart,2,0,002,"Can avoid being startled by others."
281,COTTONSPORE,Cotton Spore,Beauty,2,1,007,"Startles the Pokemon that has the judges attention."
283,GRASSWHISTLE,GrassWhistle,Smart,1,3,005,"Badly startles those that have made appeals."
285,INGRAIN,Ingrain,Smart,1,0,002,"Can avoid being startled by others."
286,LEECHSEED,Leech Seed,Smart,2,2,005,"Badly startles those that have made appeals."
287,SLEEPPOWDER,Sleep Powder,Smart,1,3,005,"Badly startles those that have made appeals."
289,SPORE,Spore,Beauty,1,3,005,"Badly startles those that have made appeals."
291,STUNSPORE,Stun Spore,Smart,2,1,012,"Badly startles all Pokemon that made good appeals."
292,SYNTHESIS,Synthesis,Beauty,1,0,020,"The appeals quality depends on its timing."
293,WORRYSEED,Worry Seed,Beauty,2,0,017,"Makes all Pokemon after the user nervous."
295,EARTHQUAKE,Earthquake,Tough,1,0,005,"Badly startles those that have made appeals."
297,EARTHPOWER,Earth Power,Smart,2,0,021,"The appeal works great if performed last."
301,DIG,Dig,Smart,1,0,002,"Can avoid being startled by others."
302,DRILLRUN,Drill Run,Tough,1,3,005,"Badly startles those that have made appeals."
304,BONECLUB,Bone Club,Tough,4,0,000,"A highly appealing move."
305,MUDBOMB,Mud Bomb,Smart,2,0,021,"The appeal works great if performed last."
306,BULLDOZE,Bulldoze,Tough,1,3,005,"Badly startles those that have made appeals."
307,MUDSHOT,Mud Shot,Tough,1,3,005,"Badly startles those that have made appeals."
308,BONEMERANG,Bonemerang,Tough,2,0,015,"Can be repeatedly used without boring the judge."
309,SANDTOMB,Sand Tomb,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
310,BONERUSH,Bone Rush,Tough,2,0,015,"Can be repeatedly used without boring the judge."
311,MUDSLAP,Mud-Slap,Cute,2,1,007,"Startles the Pokemon that has the judges attention."
312,FISSURE,Fissure,Tough,2,1,012,"Badly startles all Pokemon that made good appeals."
313,MAGNITUDE,Magnitude,Tough,1,0,033,"Does better based on crowd excitement."
314,MUDSPORT,Mud Sport,Cute,4,0,000,"A highly appealing move."
316,SANDATTACK,Sand-Attack,Cute,2,1,007,"Startles the Pokemon that have the judges attention."
318,SPIKES,Spikes,Smart,2,0,017,"Makes all Pokemon after the user nervous."
319,FREEZESHOCK,Freeze Shock,Cool,2,0,017,"Makes all Pokemon after the user nervous."
320,ICEBURN,Ice Burn,Cool,2,0,017,"Makes all Pokemon after the user nervous."
321,BLIZZARD,Blizzard,Beauty,4,0,000,"A highly appealing move."
323,ICEBEAM,Ice Beam,Beauty,2,1,032,"Startles the Pokemon who used the same move type."
324,ICICLECRASH,Icicle Crash,Cool,2,0,021,"The appeal works great if performed last."
325,ICEPUNCH,Ice Punch,Beauty,4,0,000,"A highly appealing move."
327,AURORABEAM,Aurora Beam,Beauty,2,1,007,"Startles the Pokemon that has the judges attention."
328,GLACIATE,Glaciate,Beauty,4,0,000,"A highly appealing move."
329,ICEFANG,Ice Fang,Cool,4,0,000,"A highly appealing move."
330,AVALANCHE,Avalanche,Cool,2,0,021,"The appeal works great if performed last."
332,ICYWIND,Icy Wind,Beauty,2,0,011,"The user will appeal later in the next turn."
331,FROSTBREATH,Frost Breath,Beauty,2,0,014,"The appeal works great if performed first."
333,ICESHARD,Ice Shard,Beauty,2,0,003,"The next appeal can be made earlier next turn."
334,POWDERSNOW,Powder Snow,Beauty,4,0,000,"A highly appealing move."
335,ICEBALL,Ice Ball,Beauty,2,1,032,"Startles the Pokemon who used the same move type."
336,ICICLESPEAR,Icicle Spear,Beauty,2,0,015,"Can be repeatedly used without boring the judge."
337,SHEERCOLD,Sheer Cold,Beauty,2,1,005,"Startles those that have made appeals."
339,HAIL,Hail,Beauty,1,3,005,"Badly startles those that have made appeals."
340,HAZE,Haze,Beauty,3,0,032,"Removes a star from Pokemon that have appealed already."
341,MIST,Mist,Beauty,1,0,002,"Can avoid being startled by others."
342,EXPLOSION,Explosion,Beauty,8,0,018,"Makes a great appeal, but allows no more to the end."
343,SELFDESTRUCT,Selfdestruct,Beauty,8,0,018,"Makes a great appeal, but allows no more to the end."
344,GIGAIMPACT,Giga Impact,Tough,,4,4,005,"Badly startles those that have made appeals."
345,HYPERBEAM,Hyper Beam,Cool,4,4,005,"Badly startles those that have made appeals."
347,LASTRESORT,Last Resort,Tough,8,0,018,"Makes a great appeal, but allows no more to the end."
349,DOUBLEEDGE,Double-Edge,Tough,6,0,010,"After this appeal, the user is more easily startled."
350,HEADCHARGE,Head Charge,Tough,6,0,010,"After this appeal, the user is more easily startled."
351,MEGAKICK,Mega Kick,Cool,2,0,021,"The appeal works great if performed last."
353,THRASH,Thrash,Tough,4,4,016,"Jams the others, and misses one turn of appeals."
354,EGGBOMB,Egg Bomb,Tough,4,0,000,"A highly appealing move."
355,JUDGMENT,Judgment,Smart,2,0,024,"Scrambles the order of appeals on the next turn."
348,SKULLBASH,Skull Bash,Tough,1,4,008,"Badly startles the Pokemon in front."
356,HYPERVOICE,Hyper Voice,Cool,1,3,005,"Badly startles those that have made appeals."
359,ROCKCLIMB,Rock Climb,Cool,2,0,021,"The appeal works great if performed last."
360,TAKEDOWN,Take Down,Tough,6,0,10,"After this move, the user is more easily startled."
361,UPROAR,Uproar,Cute,3,0,024,"Scrambles the order of appeals on the next turn."
362,BODYSLAM,Body Slam,Tough,1,4,008,"Badly startles the Pokemon in front."
352,TECHNOBLAST,Techno Blast,Tough,2,1,032,"Startles the Pokemon who used the same move type."
363,EXTREMESPEED,ExtremeSpeed,Cool,3,0,003,"The next appeal can be made earlier next turn."
364,HYPERFANG,Hyper Fang,Cool,2,0,021,"The appeal works great if performed last."
365,MEGAPUNCH,Mega Punch,Tough,2,0,021,"The appeal works great if performed last."
366,RAZORWIND,Razor Wind,Cool,3,0,029,"The appeal performs well if the last Pokemon's didn't."
367,SLAM,Slam,Tough,2,1,006,"Startles Pokemon that made the same type appeal."
368,STRENGTH,Strength,Tough,2,1,032,"Startles the Pokemon who used the same move type."
369,TRIATTACK,Tri Attack,Beauty,2,2,005,"Badly startles those that have made appeals."
370,CRUSHCLAW,Crush Claw,Cool,1,4,008,"Badly startles the Pokemon in front."
371,RELICSONG,Relic Song,Beauty,1,4,008,"Badly startles the Pokemon in front."
372,CHIPAWAY,Chip Away,Tough,1,4,008,"Badly startles the Pokemon in front."
373,DIZZYPUNCH,Dizzy Punch,Cool,1,4,008,"Badly startles the Pokemon in front."
374,FACADE,Facade,Cute,2,0,021,"The appeal works great if performed last."
375,HEADBUTT,Headbutt,Tough,2,3,005,"Startles the Pokemon that appealed before the user."
376,RETALIATE,Retaliate,Cool,1,4,021,"The appeal works great if performed last."
377,SECRETPOWER,Secret Power,Smart,1,0,035,"Success based on how many stars it has."
378,SLASH,Slash,Cool,3,0,009,"Affected by how well the appeal in front goes."
380,HORNATTACK,Horn Attack,Cool,4,0,000,"A highly appealing move."
381,STOMP,Stomp,Tough,1,4,008,"Badly startles the Pokemon in front."
382,COVET,Covet,Cute,1,0,030,"Earns half as much as the previous Pokemon's appeal."
384,ROUND,Round,Beauty,2,0,014,"The appeal works great if performed first."
379,SMELLINGSALTS,Smelling Salts,Smart,2,3,008,"Badly startles the Pokemon in front."
385,SWIFT,Swift,Cool,2,0,014,"The appeal works great if performed first."
386,VICEGRIP,ViceGrip,Tough,4,0,000,"A highly appealing move."
387,CUT,Cut,Cool,2,1,012,"Badly startles all Pokemon that made good appeals."
389,STRUGGLE,Struggle,Tough,4,0,000,"A highly appealing move."
399,TACKLE,Tackle,Tough,4,0,000,"A highly appealing move."
390,WEATHERBALL,Weather Ball,Smart,4,0,000,"A highly appealing move."
391,ECHOEDVOICE,Echoed Voice,Cool,2,0,014,021,"The appeal works great if performed last."
392,FAKEOUT,Fake Out,Cute,2,1,006,"Startles Pokemon that made the same type appeal."
393,FALSESWIPE,False Swipe,Cool,1,3,005,"Badly startles those that have made appeals."
395,PAYDAY,Pay Day,Smart,3,0,015,"Can be repeatedly used without boring the judge."
396,POUND,Pound,Tough,4,0,000,"A highly appealing move."
397,QUICKATTACK,Quick Attack,Cool,3,0,003,"The next appeal can be made earlier next turn."
398,SCRATCH,Scratch,Tough,4,0,000,"A highly appealing move."
388,SNORE,Snore,Cute,4,0,000,"A highly appealing move."
400,DOUBLEHIT,Double Hit,Tough,2,1,007,"Startles the Pokemon that has the judges attention."
401,FEINT,Feint,Beauty,4,0,038,"Works better the less the crowd is excited."
402,TAILSLAP,Tail Slap,Tough,3,0,012,"Badly startles all Pokemon that made good appeals."
403,RAGE,Rage,Cool,3,0,015,"Can be repeatedly used without boring the judge."
404,RAPIDSPIN,Rapid Spin,Cool,2,0,001,"Can avoid being startled by others once."
405,SPIKECANNON,Spike Cannon,Cool,2,1,007,"Startles the Pokemon that has the judges attention."
406,COMETPUNCH,Comet Punch,Tough,2,0,015,"Can be repeatedly used without boring the judge."
407,FURYSWIPES,Fury Swipes,Tough,2,1,007,"Startles the Pokemon that has the judges attention."
408,BARRAGE,Barrage,Tough,2,0,015,"Can be repeatedly used without boring the judge."
409,BIND,Bind,Tough,3,0,013,"Temporarily stops the crowd from growing excited."
410,DOUBLESLAP,DoubleSlap,Tough,2,1,007,"Startles the Pokemon that has the judges attention."
411,FURYATTACK,Fury Attack,Cool,2,1,007,"Startles the Pokemon that has the judges attention."
412,WRAP,Wrap,Tough,3,0,013,"Temporarily stops the crowd from growing excited."
413,CONSTRICT,Constrict,Tough,2,3,008,"Badly startles the Pokemon in front."
414,BIDE,Bide,Tough,1,0,002,"Can avoid being startled by others."
415,CRUSHGRIP,Crush Grip,Tough,2,0,021,"The appeal works great if performed last."
416,ENDEAVOR,Endeavor,Tough,2,0,021,"The appeal works great if performed last."
417,FLAIL,Flail,Cute,1,0,023,"It works better the later it is performed."
418,FRUSTRATION,Frustration,Cute,1,0,031,"Gets the crowd going!"
419,GUILLOTINE,Guillotine,Cool,2,1,012,"Badly startles all Pokemon that made good appeals."
383,HIDDENPOWER,Hidden Power,Smart,3,0,015,"Can be repeatedly used without boring the judge."
420,HORNDRILL,Horn Drill,Cool,2,1,012,"Badly startles all Pokemon that made good appeals."
421,NATURALGIFT,Natural Gift,Cool,2,0,021,"The appeal works great if performed last."
422,PRESENT,Present,Cute,4,0,038,"Works better the less the crowd is excited."
423,RETURN,Return,Cute,1,0,031,"Gets the crowd going!"
424,SONICBOOM,SonicBoom,Cool,2,0,025,"Works well if its the same type as the one before."
425,SPITUP,Spit Up,Tough,4,0,000,"A highly appealing move."
426,SUPERFANG,Super Fang,Tough,3,0,000,"A highly appealing move."
427,TRUMPCARD,Trump Card,Cool,1,0,039,"Appeal is better the later the round."
428,WRINGOUT,Wring Out,Smart,2,0,040,"Works better if the last appeal was good."
429,ACUPRESSURE,Acupressure,Cool,0,0,027,"User earns double the score in it's next appeal."
430,AFTERYOU,After You,Cute,2,0,011,"The user will appeal later in the next turn."
431,ASSIST,Assist,Cute,1,0,028,"Increases the users appeal by varying amounts."
432,ATTRACT,Attract,Cute,2,0,017,"Makes all Pokemon after the user nervous."
433,BATONPASS,Baton Pass,Cute,2,0,017,"Makes all Pokemon after the user nervous."
434,BELLYDRUM,Belly Drum,Cute,1,0,004,"Ups the user's condition. Helps prevent nervousness."
435,BESTOW,Bestow,Cute,2,0,036,"Increases if crowd excitement increases."
436,BLOCK,Block,Cute,2,0,017,"Makes all Pokemon after the user nervous."
437,CAMOUFLAGE,Camouflage,Smart,3,0,029,"The appeal performs well if the last Pokemon's didn't."
438,CAPTIVATE,Captivate,Beauty,2,0,013,"Temporarily stops the crowd from growing excited."
121,CHARM,Charm,Cute,2,1,006,"Startles the Pokemon that made a same-type appeal."
441,CONVERSION,Conversion,Beauty,2,0,001,"Can avoid being startled by others once."
442,CONVERSION2,Conversion 2,Beauty,2,0,001,"Can avoid being startled by others once."
443,COPYCAT,Copycat,Cool,1,0,034,"Earns the same amount as the last appeal."
444,DEFENSECURL,Defense Curl,Cute,2,0,001,"Can avoid being startled by others once."
445,DISABLE,Disable,Smart,2,0,017,"Makes all Pokemon after the user nervous."
446,DOUBLETEAM,Double Team,Cool,2,0,001,"Can avoid being startled by others once."
447,ENCORE,Encore,Cute,2,0,017,"Makes all Pokemon after the user nervous."
448,ENDURE,Endure,Tough,2,0,001,"Can avoid being startled by others once."
449,ENTRAINMENT,Entrainment,Cute,2,0,036,"Increases if crowd excitement increases."
450,FLASH,Flash,Beauty,3,0,017,"Makes all Pokemon after the user nervous."
451,FOCUSENERGY,Focus Energy,Cool,1,3,005,"Badly startles those that have made appeals."
452,FOLLOWME,Follow Me,Cute,2,0,024,"Scrambles the order of appeals on the next turn."
453,FORESIGHT,Foresight,Tough,3,0,026,"The next appeal can be made later next turn."
454,GLARE,Glare,Tough,1,3,005,"Badly startles those that have made appeals."
455,GROWL,Growl,Cute,2,0,021,"The appeal works great if performed last."
456,GROWTH,Growth,Beauty,1,0,004,"Ups the user condition. Helps prevent nervousness."
458,HARDEN,Harden,Tough,2,0,001,"Can avoid being startled by others once,"
459,HEALBELL,Heal Bell,Beauty,2,0,021,"The appeal works great if performed last."
460,HELPINGHAND,Helping Hand,Smart,2,0,017,"Makes all Pokemon after the user nervous."
462,HOWL,Howl,Cool,1,0,004,"Ups the user's condition. Helps prevent nervousness."
464,LEER,Leer,Cool,3,0,13,"Temporarily stops the crowd from growing excited."
465,LOCKON,Lock-On,Smart,3,0,13,"Temporarily stops the crowd from growing excited."
466,LOVELYKISS,Lovely Kiss,Beauty,2,0,13,"Temporarily stops the crowd from growing excited."
467,LUCKYCHANT,Lucky Chant,Cute,2,0,001,"Can avoid being startled by others once,"
468,MEFIRST,Me First,Cute,2,0,003,"The next appeal can be made earlier next turn."
469,MEANLOOK,Mean Look,Beauty,2,0,017,"Makes all Pokemon after the user nervous."
470,METRONOME,Metronome,Cute,2,0,024,"Scrambles the order of appeals on the next turn."
471,MILKDRINK,Milk Drink,Cute,1,0,033,"Does better based on crowd excitement."
472,MIMIC,Mimic,Cute,1,0,034,"Earns the same amount as the last appeal."
473,MINDREADER,Mind Reader,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
474,MINIMIZE,Minimize,Cute,2,0,001,"Can avoid being startled by others once."
128,MOONLIGHT,Moonlight,Beauty,1,0,020,"The appeals quality depends on its timing."
475,MORNINGSUN,Morning Sun,Beauty,1,0,020,"The appeals quality depends on its timing."
476,NATUREPOWER,Nature Power,Beauty,1,0,033,"Does better based on crowd excitement."
478,ODORSLEUTH,Odor Sleuth,Smart,3,0,032,"Removes a star from Pokemon that have appealed already."
479,PAINSPLIT,Pain Split,Smart,2,1,005,"Startles those that have made appeals."
480,PERISHSONG,Perish Song,Beauty,2,1,012,"Badly startles all Pokemon that made good appeals."
482,PROTECT,Protect,Cute,1,0,002,"Can avoid being startled by others."
483,PSYCHUP,Psych Up,Smart,0,0,027,"User earns double the score in it's next appeal."
484,RECOVER,Recover,Smart,1,0,041,"Appeal equals the crowd excitement."
485,RECYCLE,Recycle,Smart,1,0,034,"Earns the same amount as the last appeal."
486,REFLECTTYPE,Reflect Type,Smart,2,2,032,"Startles the Pokemon who used the same move type."
487,REFRESH,Refresh,Cute,1,0,004,"Ups the user's condition. Helps prevent nervousness."
488,ROAR,Roar,Cool,2,0,017,"Makes all Pokemon after the user nervous."
489,SAFEGUARD,Safeguard,Beauty,2,0,002,"Can avoid being startled by others."
490,SCARYFACE,Scary Face,Tough,2,1,007,"Startles the Pokemon that has the judge's attention."
491,SCREECH,Screech,Smart,2,1,005,"Badly startles those that have made appeals."
492,SHARPEN,Sharpen,Cute,0,0,027,"User earns double the score in it's next appeal."
493,SHELLSMASH,Shell Smash,Cool,2,0,027,"User earns double the score in it's next appeal."
494,SIMPLEBEAM,Simple Beam,Cool,4,0,000,"A highly appealing move."
495,SING,Sing,Cute,2,0,017,"Makes all Pokemon after the user nervous."
496,SKETCH,Sketch,Smart,1,0,034,"Earns the same amount as the last appeal."
497,SLACKOFF,Slack Off,Cute,1,0,023,"It works better the later it is performed."
498,SLEEPTALK,Sleep Talk,Cute,3,0,015,"Can be repeatedly used without boring the judge."
499,SMOKESCREEN,SmokeScreen,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
500,SOFTBOILED,Softboiled,Beauty,1,0,041,"Appeal equals the crowd excitement."
501,SPLASH,Splash,Cute,2,0,021,"The appeal works great if performed last."
503,STOCKPILE,Stockpile,Tough,2,0,001,"Can avoid being startled by others once."
504,SUBSTITUTE,Substitute,Smart,2,0,002,"Can avoid being startled by others."
505,SUPERSONIC,Supersonic,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
506,SWAGGER,Swagger,Cute,2,0,014,"The appeal works great if performed first."
507,SWALLOW,Swallow,Tough,1,0,004,"Ups the user's condition. Helps prevent nervousness."
129,SWEETKISS,Sweet Kiss,Cute,2,0,001,"Can avoid being startled by others once."
508,SWEETSCENT,Sweet Scent,Cute,1,3,005,"Badly startles those that have made appeals."
509,SWORDSDANCE,Swords Dance,Beauty,1,0,004,"Ups the user condition. Helps prevent nervousness."
510,TAILWHIP,Tail Whip,Cute,2,0,021,"The appeal works great if performed last."
512,TEETERDANCE,Teeter Dance,Cute,4,4,005,"Badly startles those that have made appeals."
513,TICKLE,Tickle,Cute,3,0,032,"Removes a star from Pokemon that have appealed already."
514,TRANSFORM,Transform,Smart,1,0,034,"Earns the same amount as the last appeal."
515,WHIRLWIND,Whirlwind,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
516,WISH,Wish,Cute,3,0,013,"Temporarily stops the crowd from growing excited."
517,WORKUP,Work Up,Tough,2,0,003,"The next appeal can be made earlier next turn."
518,YAWN,Yawn,Cute,2,0,017,"Makes all Pokemon after the user nervous."
520,GUNKSHOT,Gunk Shot,Cool,4,0,000,"A highly appealing move."
521,SLUDGEWAVE,Sludge Wave,Tough,1,4,008,"Badly startles the Pokemon in front."
522,SLUDGEBOMB,Sludge Bomb,Tough,2,1,007,"Startles the Pokemon that has the judge's attention."
523,POISONJAB,Poison Jab,Smart,2,3,008,"Badly startles the Pokemon in front."
524,CROSSPOISON,Cross Poison,Smart,2,4,005,"Badly startles the Pokemon that have made appeals."
525,SLUDGE,Sludge,Tough,1,4,008,"Badly startles the Pokemon in front."
526,VENOSHOCK,Venoshock,Smart,3,1,005,"Badly startles those that have made appeals."
527,CLEARSMOG,Clear Smog,Tough,1,3,005,"Badly startles those that have made appeals."
529,POISONTAIL,Poison Tail,Smart,3,0,032,"Removes a star from Pokemon that have appealed already."
530,ACID,Acid,Smart,2,3,005,"Badly startles those that have made appeals."
531,ACIDSPRAY,Acid Spray,Smart,3,1,005,"Badly startles those that have made appeals."
532,SMOG,Smog,Tough,1,3,005,"Badly startles those that have made appeals."
533,POISONSTING,Poison Sting,Smart,2,3,008,"Badly startles the Pokemon in front."
534,ACIDARMOR,Acid Armor,Tough,1,0,004,"Ups the user's condition. Helps prevent nervousness."
536,COIL,Coil,Smart,2,0,001,"Can avoid being startled by others once."
537,GASTROACID,Gastro Acid,Beauty,2,0,013,"Temporarily stops the crowd from growing excited."
538,POISONGAS,Poison Gas,Smart,3,0,032,"Removes a star from Pokemon that have appealed already."
539,POISONPOWDER,PoisonPowder,Smart,3,0,022,"Worsens the condition of those that made appeals."
541,TOXIC,Toxic,Smart,3,0,032,"Removes a star from Pokemon that have appealed already."
542,TOXICSPIKES,Toxic Spikes,Smart,2,0,017,"Makes all Pokemon after the user nervous."
546,PSYCHOBOOST,Psycho Boost,Smart,6,0,010,"After this move, the user is more easily startled."
549,DREAMEATER,Dream Eater,Smart,2,2,005,"Badly startles those that have made appeals."
547,FUTURESIGHT,Future Sight,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
551,PSYSTRIKE,Psystrike,Smart,1,3,005,"Badly startles those that have made appeals."
552,PSYCHIC,Psychic,Smart,1,3,005,"Badly startles those that have made appeals."
554,EXTRASENSORY,Extrasensory,Cool,1,4,005,"Badly startles those that have made appeals."
556,PSYSHOCK,Psyshock,Smart,3,0,017,"Makes all Pokemon after the user nervous."
557,ZENHEADBUTT,Zen Headbutt,Beauty,2,0,021,"The appeal works great if performed last."
558,LUSTERPURGE,Luster Purge,Smart,2,3,005,"Badly startles those that have made appeals."
559,MISTBALL,Mist Ball,Smart,1,4,008,"Badly startles the Pokemon in front."
560,PSYCHOCUT,Psycho Cut,Smart,2,0,014,"The appeal works great if performed first."
548,SYNCHRONOISE,Synchronoise,Smart,1,0,041,"Appeal equals the crowd excitement."
561,PSYBEAM,Psybeam,Beauty,3,0,024,"Scrambles the order of appeals on the next turn."
562,HEARTSTAMP,Heart Stamp,Smart,2,0,014,"The appeal works great if performed first."
563,CONFUSION,Confusion,Smart,2,3,005,"Badly startles those that have made appeals."
565,MIRRORCOAT,Mirror Coat,Beauty,2,0,001,"Can avoid being startled by others once."
566,PSYWAVE,Psywave,Smart,2,1,012,"Badly startles all Pokemon that made good appeals."
564,STOREDPOWER,Stored Power,Smart,3,1,005,"Startles those that have made appeals."
567,AGILITY,Agility,Cool,3,0,003,"The appeal can be made earlier next turn."
568,ALLYSWITCH,Ally Switch,Smart,2,0,001,"Can avoid being startled by others once."
569,AMNESIA,Amnesia,Cute,1,0,004,"Ups the user's condition. Helps prevent nervousness."
570,BARRIER,Barrier,Cool,1,0,002,"Can avoid being startled by others."
571,CALMMIND,Calm Mind,Smart,2,0,001,"Can avoid being startled by others once."
572,COSMICPOWER,Cosmic Power,Cool,1,0,004,"Ups the user's condition. Helps prevent nervousness."
573,GRAVITY,Gravity,Beauty,2,0,013,"Temporarily stops the crowd from growing excited."
574,GUARDSPLIT,Guard Split,Cool,2,0,001,"Can avoid being startled by others once."
575,GUARDSWAP,Guard Swap,Cute,4,0,038,"Works better the less the crowd is excited."
576,HEALBLOCK,Heal Block,Cute,2,0,013,"Temporarily stops the crowd from growing excited."
577,HEALPULSE,Heal Pulse,Cute,4,0,000,"A highly appealing move."
578,HEALINGWISH,Healing Wish,Cute,1,0,041,"Appeal equals the crowd excitement."
579,HEARTSWAP,Heart Swap,Cool,4,0,038,"Works better the less the crowd is excited."
580,HYPNOSIS,Hypnosis,Smart,1,3,005,"Badly startles those that have made appeals."
581,IMPRISON,Imprison,Smart,3,0,032,"Removes a star from Pokemon that have appealed already."
583,KINESIS,Kinesis,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
584,LIGHTSCREEN,Light Screen,Beauty,1,0,002,"Can avoid being startled by others."
585,LUNARDANCE,Lunar Dance,Beauty,1,0,041,"Appeal equals the crowd excitement."
586,MAGICCOAT,Magic Coat,Beauty,1,0,002,"Can avoid being startled by others."
587,MAGICROOM,Magic Room,Smart,3,0,002,"Can avoid being startled by others."
588,MEDITATE,Meditate,Beauty,1,0,004,"Ups the user's condition. Helps prevent nervousness."
589,MIRACLEEYE,Miracle Eye,Cute,1,0,040,"Works better if the last appeal was good."
590,POWERSPLIT,Power Split,Cool,1,0,034,"Earns the same amount as the last appeal."
591,POWERSWAP,Power Swap,Beauty,4,0,038,"Works better the less the crowd is excited."
592,POWERTRICK,Power Trick,Cool,4,0,038,"Works better the less the crowd is excited."
594,PSYCHOSHIFT,Psycho Shift,Cool,2,0,040,"Works better if the last appeal was good."
595,REFLECT,Reflect,Smart,1,0,002,"Can avoid being startled by others."
596,REST,Rest,Cute,2,0,001,"Can avoid being startled by others once."
597,ROLEPLAY,Role Play,Cute,1,0,030,"Earns half as much as the previous Pokemon's appeal."
598,SKILLSWAP,Skill Swap,Smart,1,0,030,"Earns half as much as the previous Pokemon's appeal."
600,TELEKINESIS,Telekinesis,Smart,2,0,034,"Earns the same amount as the last appeal."
601,TELEPORT,Teleport,Cool,1,0,002,"Can avoid being startled by others."
602,TRICK,Trick,Smart,2,0,025,"Works well if its the same type as the one before."
603,TRICKROOM,Trick Room,Cute,2,0,024,"Scrambles the order of appeals on the next turn."
604,WONDERROOM,Wonder Room,Smart,3,0,003,"The next appeal can be made earlier next turn."
605,HEADSMASH,Head Smash,Tough,6,0,010,"After this move, the user is more easily startled."
606,ROCKWRECKER,Rock Wrecker,Tough,6,0,010,"After this move, the user is more easily startled."
608,STONEEDGE,Stone Edge,Tough,2,0,036,"Increases if crowd excitement increases."
610,ROCKSLIDE,Rock Slide,Tough,1,3,005,"Badly startles those that have made appeals."
609,POWERGEM,Power Gem,Beauty,4,0,000,"An appealing move."
611,ANCIENTPOWER,AncientPower,Tough,1,0,004,"Ups the user's condition. Helps prevent nervousness."
613,ROCKTHROW,Rock Throw,Tough,2,0,025,"Works well if its the same type as the one before."
612,ROCKTOMB,Rock Tomb,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
614,SMACKDOWN,Smack Down,Tough,3,1,007,"Startles the Pokemon that has the judges attention."
616,ROLLOUT,Rollout,Tough,3,0,013,"Temporarily stops the crowd from growing excited."
617,ROCKBLAST,Rock Blast,Tough,2,0,015,"Can be repeatedly used without boring the judge."
618,ROCKPOLISH,Rock Polish,Tough,2,0,003,"The next appeal can be made earlier next turn."
619,SANDSTORM,Sandstorm,Tough,3,0,024,"Scrambles the order of appeals on the next turn."
620,STEALTHROCK,Stealth Rock,Cool,2,0,013,"Temporarily stops the crowd from growing excited."
621,WIDEGUARD,Wide Guard,Cool,2,0,001,"Can avoid being startled by others once."
622,DOOMDESIRE,Doom Desire,Cool,2,0,014,"The appeal works great if performed first."
623,IRONTAIL,Iron Tail,Cool,1,4,008,"Badly startles the Pokemon in front."
625,METEORMASH,Meteor Mash,Cool,2,0,025,"Works well if its the same type as the one before."
627,FLASHCANNON,Flash Cannon,Smart,2,0,014,"The appeal works great if performed first."
628,IRONHEAD,Iron Head,Cool,1,4,008,"Badly startles the Pokemon in front."
630,STEELWING,Steel Wing,Cool,2,0,025,"Works well if its the same type as the one before."
632,MIRRORSHOT,Mirror Shot,Cute,2,0,014,"The appeal works great if performed first."
633,MAGNETBOMB,Magnet Bomb,Cool,4,0,000,"A highly appealing move."
634,GEARGRIND,Gear Grind,Smart,2,0,003,"The next appeal can be made earlier next turn."
635,METALCLAW,Metal Claw,Cool,4,0,000,"A highly appealing move."
636,BULLETPUNCH,Bullet Punch,Smart,2,0,003,"The next appeal can be made earlier next turn."
637,GYROBALL,Gyro Ball,Beauty,2,0,021,"The appeal works great if performed last."
638,HEAVYSLAM,Heavy Slam,Tough,4,0,000,"A highly appealing move."
639,METALBURST,Metal Burst,Beauty,2,0,003,"The next appeal can be made earlier next turn."
640,AUTOTOMIZE,Autotomize,Cool,3,0,003,"The next appeal can be made earlier next turn."
642,IRONDEFENSE,Iron Defense,Tough,1,0,002,"Can avoid being startled by others."
644,METALSOUND,Metal Sound,Smart,1,3,005,"Badly startles those that have made appeals."
645,SHIFTGEAR,Shift Gear,Cool,3,0,003,"The next appeal can be made earlier next turn."
646,HYDROCANNON,Hydro Cannon,Beauty,2,0,040,"Works better if the last appeal was good."
647,WATERSPOUT,Water Spout,Beauty,1,0,023,"It works better the later it is performed."
648,HYDROPUMP,Hydro Pump,Beauty,4,0,000,"A highly appealing move."
653,MUDDYWATER,Muddy Water,Tough,2,0,007,"Startles the Pokemon that has the judges attention."
655,SURF,Surf,Beauty,3,0,009,"Affected by how well the appeal in front goes."
652,AQUATAIL,Aqua Tail,Cute,3,0,000,"An appealing move."
651,CRABHAMMER,Crabhammer,Tough,3,0,009,"Affected by how well the appeal in front goes."
657,DIVE,Dive,Beauty,2,0,001,"Can avoid being startled by others once."
658,SCALD,Scald,Beauty,3,1,005,"Badly startles those that have made appeals."
660,WATERFALL,Waterfall,Tough,2,0,021,"The appeal works great if performed last."
661,RAZORSHELL,Razor Shell,Beauty,3,1,005,"Badly startles those that have made appeals."
662,BRINE,Brine,Smart,2,0,036,"Increases if crowd excitement increases."
663,BUBBLEBEAM,BubbleBeam,Beauty,1,3,005,"Badly startles those that have made appeals."
664,OCTAZOOKA,Octazooka,Tough,2,0,036,"Increases if crowd excitement increases."
665,WATERPULSE,Water Pulse,Beauty,3,0,024,"Scrambles the order of appeals on the next turn."
659,WATERPLEDGE,Water Pledge,Cute,4,0,000,"A highly appealing move."
666,AQUAJET,Aqua Jet,Beauty,2,0,003,"The next appeal can be made earlier next turn."
668,WATERGUN,Water Gun,Cute,4,0,000,"A highly appealing move."
669,CLAMP,Clamp,Tough,3,0,013,"Temporarily stops the crowd from growing excited."
670,WHIRLPOOL,Whirlpool,Beauty,3,0,013,"Temporarily stops the crowd from growing excited."
667,BUBBLE,Bubble,Cute,2,2,005,"Badly startles those that have made appeals."
672,AQUARING,Aqua Ring,Beauty,1,0,033,"Does better based on crowd excitement."
673,RAINDANCE,Rain Dance,Tough,1,0,019,"The appeal works the best the more the crowd is excited."
674,SOAK,Soak,Beauty,2,0,025,"Works well if its the same type as the one before."
675,WATERSPORT,Water Sport,Cute,4,0,000,"A highly appealing move."
676,WITHDRAW,Withdraw,Cute,2,0,013,"Temporarily stops the crowd from growing excited."
677,SHADOWBOLT,Shadow Bolt,Cool,4,0,000,"A highly appealing move."
678,SHADOWBREAK,Shadow Break,Cool,4,0,000,"A highly appealing move."
679,SHADOWCHILL,Shadow Chill,Cool,4,0,000,"A highly appealing move."
680,SHADOWFIRE,Shadow Fire,Cool,4,0,000,"A highly appealing move."
681,SHADOWRAVE,Shadow Rave,Cool,4,0,000,"A highly appealing move."
682,SHADOWRUSH,Shadow Rush,Cool,4,0,000,"A highly appealing move."
683,SHADOWWAVE,Shadow Wave,Cool,4,0,000,"A highly appealing move."
684,SHADOWBLITZ,Shadow Blitz,Cool,4,0,000,"A highly appealing move."
685,SHADOWDOWN,Shadow Down,Cool,4,0,000,"A highly appealing move."
686,SHADOWHALF,Shadow Half,Cool,4,0,000,"A highly appealing move."
687,SHADOWHOLD,Shadow Hold,Cool,4,0,000,"A highly appealing move."
688,SHADOWMIST,Shadow Mist,Cool,4,0,000,"A highly appealing move."
689,SHADOWPANIC,Shadow Panic,Cool,4,0,000,"A highly appealing move."
690,SHADOWSHED,Shadow Shed,Cool,4,0,000,"A highly appealing move."
691,SHADOWSKY,Shadow Sky,Cool,4,0,000,"A highly appealing move."
692,SHADOWEND,Shadow End,Cool,4,0,000,"A highly appealing move."
693,SHADOWSTORM,Shadow Storm,Cool,4,0,000,"A highly appealing move."
694,SHADOWBLAST,Shadow Blast,Cool,4,0,000,"A highly appealing move."
#-------------------------------
#Adding missing moves#
#-------------------------------
14,FELLSTINGER,Fell Stinger,Cool,1,0,019,"The appeal works the best the more the crowd is excited."
19,INFESTATION,Infestation,Cute,3,0,013,"Temporarily stops the crowd from growing excited."
22,POWDER,Powder,Smart,4,0,013,"Temporarily stops the crowd from growing excited."
26,STICKYWEB,Sticky Web,Tough,2,1,007,"Startles the Pokemon that has the judges attention."
#------------------------------
29,HYPERSPACEFURY,Hyperspace Fury,Tough,3,0,014,"The appeal works great if performed first."
31,DARKESTLARIAT,Darkest Lariat,Tough,2,2,007,"Startles the Pokemon that has the judges attention."
35,THROATCHOP,Throat Chop,Tough,1,3,005,"Badly startles those that have made appeals."
41,BRUTALSWING,Brutal Swing,Cool,3,0,024,"Scrambles the order of appeals on the next turn."
49,POWERTRIP,Power Trip,Smart,0,0,027,"User earns double the score in it's next appeal."
58,PARTINGSHOT,Parting Shot,Cool,3,0,021,"The appeal works great if performed last."
63,TOPSYTURVY,Topsy-Turvy,Smart,3,0,024,"Scrambles the order of appeals on the next turn."
#-----------------------------
68,CLANGINGSCALES,Clanging Scales,Tough,2,0,017,"Makes all Pokemon after the user nervous."
69,COREENFORCER,Core Enforcer,Tough,2,2,007,"Startles the Pokemon that has the judges attention."
72,DRAGONHAMMER,Dragon Hammer,Cool,2,0,014,"The appeal works great if performed first."
#-----------------------------
86,PLASMAFISTS,Plasma Fists,Smart,2,0,025,"Works well if its the same type as the one before."
90,ZINGZAP,Zing Zap,Cool,1,3,005,"Badly startles those that have made appeals."
93,PARABOLICCHARGE,Parabolic Charge,Smart,1,0,034,"Earns the same amount as the last appeal."
100,NUZZLE,Nuzzle,Cute,2,1,006,"Startles Pokemon that made the same type appeal."
103,EERIEIMPULSE,Eerie Impulse,Smart,1,3,005,"Startles the Pokemon that appealed before the user."
104,ELECTRICTERRAIN,Electric Terrain,Smart,3,0,014,"The appeal works great if performed first."
105,ELECTRIFY,Electrify,Smart,2,1,006,"Startles Pokemon that made the same type appeal."
106,IONDELUGE,Ion Deluge,Beauty,3,0,013,"Temporarily stops the crowd from growing excited."
108,MAGNETICFLUX,Magnetic Flux,Smart,1,0,004,"Ups the user's condition. Helps prevent nervousness."
#-----------------------------
110,LIGHTOFRUIN,Light of Ruin,Beauty,6,0,010,"After this move, the user is more easily startled."
111,FLEURCANNON,Fleur Cannon,Beauty,2,3,005,"Badly startles those that have made appeals."
112,MOONBLAST,Moonblast,Beauty,1,4,005,"Startles the Pokemon that appealed before the user."
113,PLAYROUGH,Play Rough,Cute,3,0,032,"Removes a star from Pokemon that have appealed already."
114,DAZZLINGGLEAM,Dazzling Gleam,Beauty,4,0,000,"A highly appealing move."
115,DRAININGKISS,Draining Kiss,Cute,1,0,034,"Earns the same amount as the last appeal."
116,DISARMINGVOICE,Disarming Voice,Cute,2,0,014,"The appeal works great if performed first."
117,FAIRYWIND,Fairy Wind,Beauty,4,0,000,"A highly appealing move."
118,NATURESMADNESS,Nature's Madness,Beauty,3,0,024,"Scrambles the order of appeals on the next turn."
119,AROMATICMIST,Aromatic Mist,Beauty,1,0,004,"Ups the user's condition. Helps prevent nervousness."
120,BABYDOLLEYES,Baby-Doll Eyes,Cute,3,0,003,"The next appeal can be made earlier next turn."
122,CRAFTYSHIELD,Crafty Shield,Smart,3,0,014,"The appeal works great if performed first."
123,FAIRYLOCK,Fairy Lock,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
124,FLORALHEALING,Floral Healing,Beauty,2,0,001,"Can avoid being startled by others once."
125,FLOWERSHIELD,Flower Shield,Beauty,1,0,002,"Can avoid being startled by others."
126,GEOMANCY,Geomancy,Beauty,1,0,004,"Ups the user's condition. Helps prevent nervousness."
127,MISTYTERRAIN,Misty Terrain,Beauty,3,0,014,"The appeal works great if performed first."
#-------------------------------
137,FLYINGPRESS,Flying Press,Tough,2,0,015,"Can be repeatedly used without boring the judge."
157,POWERUPPUNCH,Power-Up Punch,Tough,1,0,025,"Works well if its the same type as the one before."
170,MATBLOCK,Mat Block,Cool,1,3,005,"Badly startles those that have made appeals."
#-------------------------------
175,MINDBLOWN,Mind Blown,Smart,6,0,010,"After this move, the user is more easily startled."
176,SHELLTRAP,Shell Trap,Smart,1,4,008,"Badly startles the Pokemon in front."
178,BURNUP,Burn up,Smart,6,0,010,"After this move, the user is more easily startled."
191,FIRELASH,Fire Lash,Cool,3,0,003,"The next appeal can be made earlier next turn."
195,MYSTICALFIRE,Mystical Fire,Beauty,3,0,015,"Can be repeatedly used without boring the judge."
#--------------------------------
208,DRAGONASCENT,Dragon Ascent,Beauty,6,0,010,"After this move, the user is more easily startled."
211,BEAKBLAST,Beak Blast,Smart,0,0,027,"User earns double the score in it's next appeal."
215,OBLIVIONWING,Oblivion Wing,Cool,1,0,034,"Earns the same amount as the last appeal."
#--------------------------------
232,MOONGEISTBEAM,Moongeist Beam,Beauty,6,0,010,"After this move, the user is more easily startled."
233,PHANTOMFORCE,Phantom Force,Cool,1,0,002,"Can avoid being startled by others."
234,SPECTRALTHIEF,Spectral Thief,Tough,1,0,034,"Earns the same amount as the last appeal."
235,SHADOWBONE,Shadow Bone,Tough,3,0,021,"The appeal works great if performed last."
237,SPIRITSHACKLE,Spirit Shackle,Smart,1,4,008,"Badly startles the Pokemon in front."
252,TRICKORTREAT,Trick-Or-Treat,Cute,2,1,005,"Startles the Pokemon that appealed before the user."
#---------------------------------
255,SOLARBLADE,Solar Blade,Tough,4,0,001,"Can avoid being startled by others once."
263,PETALBLIZZARD,Petal Blizzard,Beauty,2,2,005,"Badly startles those that have made appeals."
268,TROPKICK,Trop Kick,Tough,1,4,008,"Badly startles the Pokemon in front."
274,LEAHAGE,Leahage,Smart,3,0,013,"Temporarily stops the crowd from growing excited."
282,FORESTSCURSE,Forest's Curse,Smart,2,1,005,"Badly startles those that have made appeals."
284,GRASSYTERRAIN,Grassy Terrain,Beauty,3,0,014,"The appeal works great if performed first."
288,SPIKYSHIELD,Spiky Shield,Tough,1,0,002,"Can avoid being startled by others."
290,STRENGTHSAP,Strength Sap,Smart,2,3,005,"Startles the Pokemon that appealed before the user."
#---------------------------------
294,PRECIPICEBLADES,Precipice Blades,Cool,3,0,021,"The appeal works great if performed last."
296,HIGHHORSEPOWER,High Horsepower,Tough,1,4,008,"Badly startles the Pokemon in front."
298,LANDSWRATH,Land's Wrath,Beauty,2,2,005,"Startles the Pokemon that appealed before the user."
299,THOUSANDARROWS,Thousand Arrows,Beauty,2,1,005,"Startles the Pokemon that appealed before the user."
300,THOUSANDWAVES,Thousand Waves,Tough,3,0,005,"Startles the Pokemon that appealed before the user."
303,STOMPINGTANTRUM,Stomping Tantrum,Tough,1,0,025,"Works well if its the same type as the one before."
315,ROTOTILLER,Rototiller,Tough,1,0,004,"Ups the user's condition. Helps prevent nervousness."
317,SHOREUP,Shore Up,Tough,1,0,002,"Can avoid being startled by others."
#---------------------------------
322,ICEHAMMER,Ice Hammer,Cool,2,0,014,"The appeal works great if performed first."
326,FREEZEDRY,Freeze-Dry,Beauty,3,0,015,"Can be repeatedly used without boring the judge."
338,AURORAVEIL,Aurora Veil,Beauty,1,0,002,"Can avoid being startled by others."
#---------------------------------
346,BOOMBURST,Boomburst,Tough,4,4,018,"Makes a great appeal, but allows no more to the end."
357,MULTIATTACK,Multi-Attack,Cool,3,0,025,"Works well if its the same type as the one before."
358,REVELATIONDANCE,Revelation Dance,Beauty,4,0,003,"The next appeal can be made earlier next turn."
394,HOLDBACK,Hold Back,Cool,4,0,013,"Temporarily stops the crowd from growing excited."
439,CELEBRATE,Celebrate,Cute,2,0,015,"Can be repeatedly used without boring the judge."
440,CONFIDE,Confide,Cute,3,0,005,"Startles the Pokemon that appealed before the user."
457,HAPPYHOUR,Happy Hour,Cute,2,0,015,"Can be repeatedly used without boring the judge."
461,HOLDHANDS,Hold Hands,Cute,1,0,002,"Can avoid being startled by others."
463,LASERFOCUS,Laser Focus,Smart,0,0,027,"User earns double the score in it's next appeal."
477,NOBLEROAR,Noble Roar,Tough,2,0,014,"The appeal works great if performed first."
481,PLAYNICE,Play Nice,Cute,1,0,036,"Increases if crowd excitement increases."
502,SPOTLIGHT,Spotlight,Beauty,0,0,027,"User earns double the score in it's next appeal."
511,TEARFULLOOK,Tearful Look,Cute,1,0,002,"Can avoid being startled by others."
#---------------------------------
519,BELCH,Belch,Tough,1,3,005,"Badly startles those that have made appeals."
528,POISONFANG,Poison Fang,Smart,3,0,005,"Badly startles those that have made appeals."
535,BANEFULBUNKER,Baneful Bunker,Smart,1,0,002,"Can avoid being startled by others."
540,PURIFY,Purify,Smart,2,0,001,"Can avoid being startled by others once."
543,TOXICTHREAD,Toxic Thread,Smart,2,3,008,"Badly startles the Pokemon in front."
544,VENOMDRENCH,Venom Drench,Smart,3,0,005,"Badly startles those that have made appeals."
#----------------------------------
545,PRISMATICLASER,Prismatic Laser,Beauty,4,0,000,"A highly appealing move."
550,PHOTONGEYSER,Photon Geyser,Smart,2,0,014,"The appeal works great if performed first."
553,PSYCHICFANGS,Psychic Fangs,Tough,3,0,000,"A highly appealing move."
555,HYPERSPACEHOLE,Hyperspace Hole,Tough,3,0,014,"The appeal works great if performed first."
582,INSTRUCT,Instruct,Smart,0,0,027,"User earns double the score in it's next appeal."
593,PSYCHICTERRAIN,Psychic Terrain,Beauty,3,0,014,"The appeal works great if performed first."
599,SPEEDSWAP,Speed Swap,Smart,3,0,003,"The next appeal can be made earlier next turn."
#---------------------------------
607,DIAMONDSTORM,Diamond Storm,Beauty,3,0,021,"The appeal works great if performed last."
615,ACCELEROCK,Accelerock,Smart,3,0,003,"The next appeal can be made earlier next turn."
#---------------------------------
624,SUNSTEELSTRIKE,Sunsteel Strike,Beauty,4,0,000,"A highly appealing move."
626,ANCHORSHOT,Anchor Shot,Tough,4,0,013,"Temporarily stops the crowd from growing excited."
629,SMARTSTRIKE,Smart Strike,Smart,2,3,008,"Badly startles the Pokemon in front."
631,DOUBLEIRONBASH,Double Iron Bash,Cool,2,0,025,"Works well if its the same type as the one before."
641,GEARUP,Gear Up,Smart,0,0,027,"User earns double the score in it's next appeal."
643,KINGSSHIELD,King's Shield,Cool,1,0,002,"Can avoid being startled by others."
#---------------------------------
649,ORIGINPULSE,Origin Pulse,Beauty,3,0,014,"The appeal works great if performed first."
650,STEAMERUPTION,Steam Eruption,Beauty,3,0,021,"The appeal works great if performed last."
654,SPARKLINGARIA,Sparkling Aria,Beauty,3,0,005,"Badly startles those that have made appeals."
656,LIQUIDATION,Liquidation,Smart,2,3,008,"Badly startles the Pokemon in front."
671,WATERSHURIKEN,Water Shuriken,Cool,3,0,003,"The next appeal can be made earlier next turn."
Changelog
Spoiler:
Fixed effect 017 when used in second place.
Edited Messages to be in line with the rest of v18
Added a failsafe to pbdecreasehearts because it sometimes tried to draw non-existent things
Edited Messages to be in line with the rest of v18
Added a failsafe to pbdecreasehearts because it sometimes tried to draw non-existent things
Last edited: