I know this was pushed around the time HCC was introduced, but it still hasn't been done (as I saw in a recent match against the luckiest SOB to ever exist Diamondslight). I was wondering when/if it'd be possible to code out Wonder Guard from Hackmons Challenge Cup. I get that the tier is "expect the unexpected", but when matches can be decided just because of a Pokemon with Wonder Guard, it's flat-out ridiculous in my opinion. As such, I am motioning to remove it.
Getting Wonderguard is the same chance of a shiny. If you get it then you deserve the win that it probably brings.
It was never implemented to be that way. It was being discussed but no one actually coded it. Code (text): if (gen >= GEN_MIN_ABILITIES) { if (illegal) { p.ability() = true_rand()%(AbilityInfo::NumberOfAbilities(gen) - 1) + 1; } I could code it, but otherwise you still have the 1/192ish chance to get it.
Standart Hackmons is full of Wonderguard, HCC should atleast represent a tiny portion of it. Otherwisewise name it BHCC (BalancedHackmonsChallengeCup). Hackmons was created in Gen4 based of Wondertomb/Wondereye, cutting out Wonderguard is blasphemy.
Challenge Cup is random, if it's choices were based on a tier's usages then wouldn't it be named Battle Factory 6v6 Hackmons?
Challenge cup was never completely random, just so you know. There are many behind the scenes tweaks to make it a more enjoyable tier to play.
Can you post those "tweaks" ? I remember the first Challenge Cup in Pokemon stadium not being completly random aswell.
Not sure if Level Balancing counts, but there's 1. Then there's a bunch of things regarding moves (such as if you have Return, you have 255 Happiness automatically) and then it tries to get you a move you can kill the opponent with, but after a certain number of failed generations it just gives you the next moveset generated (at least, that's what i interpret this as) Code (text): for (int i = 0; i < 4; i++) { /* If there are no other moves possible, sets the remaining moves to 0 and exit the loop (like for weedle) */ if (moves.size() <= i) { for (int j = i; j < 4; j++) { p.move(j).num() = 0; p.move(j).load(gen); } break; } int count = 0; while(++count) { int movenum = moves[true_rand()%moves.size()]; if (movesTaken.contains(movenum)) { continue; } if (MoveInfo::Power(movenum, gen) > 0 && movenum != Move::NaturalGift && movenum != Move::Snore && movenum != Move::Fling && !MoveInfo::isOHKO(movenum, gen) && movenum != Move::DreamEater && movenum != Move::Synchronoise && movenum != Move::HoldBack && movenum != Move::FalseSwipe && movenum != Move::Feint) { if (count > 4 || MoveInfo::Power(movenum, gen) > 50) { off++; } } if (i == 3 && ((count <= 6 && off < 2) || (count > 6 && count < 10 && off == 0))) { continue; } movesTaken.push_back(movenum); p.move(i).num() = movenum; p.move(i).load(gen); break; } } if (movesTaken.contains(Move::Return)) p.happiness() = 255; else if (movesTaken.contains(Move::Frustration)) p.happiness() = 0;