• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Custom Feature Question] Slightly Different Pokemon Contests

  • 4
    Posts
    5
    Years
    • Seen Sep 17, 2019
    Hello there, I have an idea for a script for Pokemon Essentials, but I don't have any experience scripting. So I though I'd describe what I'd like to implement, and people who are good at this stuff can advise of how easy or hard it would be for me to learn how to do so.

    So my idea is as follows: Pokemon Contests, but more than slightly different than the ones from RSE

    The First Half is a Judging round, and all that happens is you choose a Pokemon to be judged and a script checks for various things about your Pokemon, if it matches for the Contest Type, you get points added to your point total. Highest Point total wins the Contest. Things to be checked are things like:

    Does the Pokemon have a High Affection?
    Does the Pokemon's Nature mesh with the Contest Type? ie Beauty Contest - Modest, Mild, Quiet, Rash
    Does the Pokemon's Ability mesh with the Contest Type? ie Cute Contest - Cute Charm etc (and I'd make my own list for which ones count as which)
    Does the Pokemon have High Contest Stats? ie Cool Contest - High Cool Stat
    Does the Pokemon's Held Item match the Contest Type? ie Cool Contest - Black Glasses (again, I'd make my own list and sort which goes where) a basic sort of dressup/accessorizing idea based on held items essentially
    Does the Pokemon have Overall Good IVs? ie All IV's are 20 or higher (Good IV's = Good Contest Breeding, a mark of that Pokemon reaching it's species potential overall, rather than favoring a certain stat like how EV's are used for Battle Training)

    Also things like:
    Does the Pokemon know a Rare Move? ie Egg Moves, Special Tutor Moves, Event Moves
    Is the Pokemon Shiny colored?
    Is the Pokemon in a Rare Pokeball? ie Cherish, Master, Luxury etc
    Does the Pokemon have a special Ribbon? ie National, Champion
    Does the Pokemon have it's Hidden Ability? ie so even a Pokemon that has no matching ability for the contest can still get points from having it's hidden ability

    Each check would add points to the total and then it moves to the Second Half:

    So essentially the core mechanic is that 2 moves are chosen to showcase, and the synergy between those moves and the Pokemon itself is calculated together and added to the point total
    But again, the check's would be basic things like:

    Do the two moves match each other's types? ie Water Move+Water Move
    Does at least one move match one of the user's type? ie Water move for Water Pokemon
    Does it match the contest stat? ie Beauty move for Beauty contest
    Do the two moves match each other's contest stat? ie Beauty Move + Beauty Move

    Each thing again gives some points, the point total is added up, and the Pokemon with the highest points wins the Contest.

    That's the core idea anyway. And none of this needs to take place in any special arena or need any special graphics, that would all be cherries on the top. If this implemented in literally a talking to an NPC sort of way and explained all through Text that'd be all I need really. Like, whatever moves are chosen is just shown by an NPC going "Wow! VAPOREON just used SURF expertly mixed with BUBBLEBEAM! Very Nice."

    I had the idea as well that essentially during the second Moves phase that your Pokemon is essentially up on stage itself trying to remember the routine you taught it, with the player not directly interacting, just observing
    And the moves chosen are based on the Affection rates, So the higher the affection the more likely that the Pokemon will simply choose Move1 and Move2 in that order, lower affection = more random choice.

    If you want multiple move rounds then between each round you can interact with the Pokemon to switch moves around on it's list/pet it/feed a berry etc.

    (Extra things I could think of though is slight variations between the contest types, like Cute involving the Size of the Pokemon Smaller = Better. Beauty giving more points for Bred traits like Ability, Nature, Shininess. Cool giving more points towards good Move Combos/Having Egg moves. Smart focusing on Item points like Accessories/Ribbons/Pokeball. Tough MAYBE involving a shortened battle system where in choosing the two moves, its in a battle arena versus your opponent and theres bonus points based on if you survived or got your opponent to also faint in two moves.)

    This system feels to me a lot closer to what's shown in the anime about contests (which I always liked better than the games anyway) and makes it closer to a kind of Pokemon Breeding event kinda like a Dog Show irl
    Where it focuses more on traits that would have to be specifically bred for, and sort of gives Contests a genuine leg to stand on as an alternative to just battling because you could put the same amount of effort into.


    Finally, a sort of related unrelated idea I had is that I'd want to extend the Contest Types to include one based around HP, and from that, add more Natures that either enhance or lower the Base HP, so making 11 new natures.
    (and then also some extra berries now that I think about it)

    My contest types then being (with some slight changes)
    COOL - Attack - Spicy - Red
    BEAUTY - Sp Attack - Minty - Blue
    TOUGH - Defense - Salty - Yellow
    SMART - Sp Defense - Bitter - Green
    CUTE - Speed - Sweet - Pink
    WEIRD - HP - Sour - Orange

    "Opposite" Types/Flavors being:
    Cool(Spicy) VS Beauty(Minty)
    Tough(Salty) VS Smart(Bitter)
    Cute(Sweet) VS Weird(Sour)

    The idea for WEIRD stemmed from me not being able to choose between a "Scary/Spooky/Eerie" type (Because it feels like a category of Pokemon that people would want to enhance/related to HP because Constitution/how much scary you can take without being phased) and a "Goofy/Silly/Funny" Type (Also Because feels like a category that people might want to enhance, and because most Pokemon with High HP tend to be thick, bulky, solid, fat, and kind of goofy or silly looking in nature but in an endearing way)

    And then realizing the definition of Weird can encompass all of those things and others, so it seemed like a good fit for a diverse catchall umbrella term for other niche categories that people would want to focus on. A spooky scary horror ghost type would be equally distant from the norm as the fattest Dunsparce in the world.

    *EDIT*
    I was thinking also of the easiest way to implement Contest Conditions and then figured, just using the same variable that stores the regular stat EV's is probably okay.
    I mean, the max amount of EV's you can have in a single stat is 255, the max condition you could have for contest stats was also 255.
    EV's are limited by only allowing a total of 510 over any stat, condition stats were limited by "Sheen" basically a maximum amount of pokeblocks you could eat, not exactly the same but similar.
    As far as I can see, there's no overlap between EV's and contest conditions, so it doesn't look like it'd mess anything up to just call the amount of EV's a Pokemon has in any Stat it's Contest Stat.
    Just like Battling, All EV's and Contest Conditions don't need to be maxed out, just the relevant ones
    and, EV's are easy to reset and regain using the EV lowering berries and rebattling pokemon, and since they raise affection, wouldn't hurt contest conditions either.
    And then if you wanted to implement a Pokeblock system, that would just be an effective way to increase EV's however you want.
     
    Last edited:
    There's a lot of thoughts here. It all sounds straightforward, although obviously the first half of the contest is (slightly) simpler to program than the second half so I'd recommend you start with that.

    I guess the question is, do you know how to implement those checks you're suggesting? I think it's just a matter of having a big ol' function per contest type with loads of checks that increase the score if they match.
     
    Last edited:
    I have no idea how to do anything lol i asked and gave a description to get a gauge for how hard it would be to learn from people who actually do know how to do this stuff, ive got if i can learn how to make functions and checks I got basically what I want (the stuff about it using the battle system is just extra spice but not really needed, core functionally is just the checks = assigning points = win = basic contest) which sounds like it shouldn't be too hard then
     
    Right!

    So I'd expect to see something a biiit like this to start with:

    Code:
    def evaluateCoolness(pkmn)
      score = 0
    
      # Does it have high affection?
      score += 1 if pkmn.happiness >= 200
    
      # Does it have a matching nature?
      score += 1 if [PBNatures::LONELY, PBNatures::BRAVE, PBNatures::ADAMANT, PBNatures::NAUGHTY].include?(pkmn.nature)
    
      # Does the Pokémon ability match the contest type?
      score += 1 if [PBAbilities::SNOWCLOAK].include?(pkmn.ability)
    
      # Does it have high contest stats?
      score += 1 if pkmn.attack >= 200
    
      # Does it have good overall IVs?
      score += 1 if pkmn.iv.all? {|iv| iv > 20}
    
      # Is it holding a matching item?
      score += 1 if [PBItems::CHARCOAL, PBItems::BLACKGLASSES].includs?(pkmn.item)
    
      return score
    end

    Note that this is completely untested and will probably have syntax errors and/or bugs.
     
    Last edited:
    Back
    Top