Pet Mod Iron Fist - Slate 4 Campaigning

The results are in! Here is a link to the spreadsheet, specifically the tab with all of Frag's decisions. Personally I am most excited to see the impending rise of Feebas as the fishing-related buffs start to accumulate. I am also curious to see how the addition of the Big Button affects the metagame.

I'll give a day of cooldown for people to discuss the changes. Fragmented has chosen PalpitoadChamp has her successor. I will select two other names to pick as his challengers, and the three campaigns will begin soon.

Thank you Fragmented for being a great first Supreme Leader of Iron Fistlandia!
 
Slate 2 Campaigning has begun!

PalpitoadChamp was chosen by Fragmented as the successor candidate, and I am excited to see where his policies differ from his predecessor's. Will he continue a national tradition of fishing, or forge his own path?

His two challengers are:
Double Iron Bash, a man with strong values and a clear commitment to his goals, most of which are Melmetal. Anyone looking for a politician who goes all in on a cause is looking at the right place.

Seito Chinchou, who worked his agenda to Fragmented's policy in slate 1, submitting three fishing-related pieces of legislation to her desk. Whether the voter bloc see this as a commitment to the goals of elected officials, or pandering to power, remains to be seen.

The candidates will have at least 24 hours to make their speeches before the election begins. DIB or Seito, if you do not want to be SL, let me know ASAP and I will substitute you out. I am satisfied with how the Slate 1 election went so everything there will remain the same for slate 2. Good luck, aspiring Supreme Leaders!
 
fish.jpg
 
All candidates have given their speeches, so the campaigning phase is over. Election time! This will last 24 hours. Good luck! As a reminder, only Like and Love reacts count. Fish reacts do not.
 
24 hours have passed (more like 40 but oh well), and the votes are in!
PalpitoadChamp - 8
Double Iron Bash - 6
Seito Chinchou - 7

As such, PalpitoadChamp defends the Melmetal-shaped office, and submissions are open!

Submissions will be open for about a week, will give 24h warning. As a reminder, you can submit up to 3 things. Templates have been stolen from vapemons added to the original post so you'll have an easier time with that now. Sorry for forgetting those! Good luck submitting!

Good luck, PalpitoadChamp, dearest leader of Iron Fistlandia!
 
smellmetal.png

Pokemon: Smelmetal
Typing: Steel
Base Stats: 97 / 99 / 144 / 77 / 107 / 37 | 561
Abilities: Iron Nose
Movepool: Melmetal's movepool + Probopass's movepool
Weight: 570 kg
Custom Elements:
Iron Nose: This Pokemon redirects Steel-type moves to raise its Atk by 1.
Competitive Role: the nose knows
Flavor / Description: the nose knows

Name: Fishes of Ruin
Effect: At the end of each turn, attempts to transform the opponent into Dondozo.
Permanent: No
Mold Breaker: N/A
Pokémon With This Ability: Feebas (over Oblivious), Ohmyrod, Big Crammer
Justification: fedd reference

Name: The Kitchen Sink
Power: 76.6977492
Accuracy: 93.81174699
PP: 13.41701681
Category: Physical
Type: ???
Effect: Power doubles if user is damaged by the target. Power doubles if user moves before the
target. Power doubles if the user moves after the target. Power doubles if user is burn/poison/
paralyzed. Power doubles if the target's HP is 50% or less. Power doubles if the target is poisoned.
Power doubles if target is burned. Power doubles if the target has a status ailment. More power the
more HP the target has left. Max 102 power at minimum Happiness. More power the heavier the
user than the target. +50 power for each time a party member fainted. More power the heavier the
target. + 20 power for each of the user's stat boosts. +20 for each of the target's stat boosts. If a
foe is switching out, hits it at 2x power. +50 power for each time user was hit. Max 6 hits. More
power the less HP the user has left. Power doubles if target is paralyzed. Power doubles if the user's
last move failed. Each hit can miss, but power rises. More power the fewer PP this move has left.
Power doubles if target is asleep. Breaks protect. High critical hit ratio. Heals 50% of the damage
dealt. Ignores the Abilities of other Pokemon. Ignores the target's stat stage changes. User loses
50% max HP. Hits adjacent Pokemon. Hits 10 times. Uses user's Def stat as Atk in damage
calculation. Uses target's Attack stat in damage calculation. Normal moves become Electric type
this turn. Steals target's boosts before dealing damage. Cannot be redirected. Traps and damages
the target for 4-5 turns. Always results in a critical hit. Burns on contact with the user before it
moves. Fails if the user takes damage before it hits. Removes item. Frees user from hazards/bind/
Leech Seed. If the user has no item, it steals the target's. Lasts 2-3 turns. Confuses the user
afterwards. The target is cured of its burn. Curly|Droopy|Stretchy eaten: +1 Atk|Def|Spe. Ends terrain. 2x power if the user had a stat lowered this turn. During Electric Terrain: 1.5x power. Power doubles if an ally fainted last turn. No charge in sunlight. Halved power in other weathers. Cannot be selected until the user eats a Berry. Grounds adjacent foes. First hit neutral on Flying. User steals and eats the target's Berry. If the target is an ally, heals 50% of its max HP. Summons Leech Seed. All healthy allies aid in damaging the target. Can't miss in rain. Power varies; 2x on Dig. Physical if user's Atk > Sp. Atk. 40, 80, 120 power, or heals target 1/4 max HP. Effect varies with terrain. (30% paralysis chance). If Terastallized: Phys. if Atk > SpA, type = Tera. User on terrain: power doubles, type varies. Power doubles and type varies in each weather. Type varies based on the held Memory. Type varies based on the user's primary type. Type varies based on the held Drive. User is hurt by 50% of its max HP if it misses. Fails if target is not attacking. Power increases when used on consecutive turns. Fails if user has no Stockpile. Fails if the target has no held item. Fails if there is no terrain active. Destroys screens, unless the target is immune. Active Pokemon cannot fall asleep. Hits adjacent Pokemon sharing the user's type. Summons Reflect. Lower's the user's Attack and Defense by 1. Lowers the user's Sp. Attack by 2. Lowers the user's Sp. Defense by 1. Lowers the user's Spe by 2. Cures the user's party of all status conditions.
Priority: 0
Flags: Protect, Mirror, Bullet, Punch, Bite, Contact, Wind, Sound, Slicing, Heal, Defrost, Fail Encore,
Fail Copycat, Fail Instruct, Fail Mimic, No Sleep Talk, No Assist, No Parental Bond, Reflectable,
Charge, Recharge, Gravity, Distance, Nonsky, Gravity
Distribution: Sentret
Justification: a needed buff to be on the level of feebas
JavaScript:
    thekitchensink: {
        num: -1,
        accuracy: 93.81174699,
        basePower: 76.6977492,
        basePowerCallback(pokemon, target, move) {
            let power = move.basePower;
            //avalanche
            const damagedByTarget = pokemon.attackedBy.some(
                p => p.pokemon === target && p.damage > 0 && p.thisTurn
            );
            if (damagedByTarget) {
                power *= 2;
            }
            
            if (target.newlySwitched || this.queue.willMove(target)) {
                //bolt beak
                power *= 2;
            } else {
                //payback
                power *= 2;
            }
            
            //frustration
            power = Math.floor((pokemon.happiness * 10) / 25) || 1;
            
            //heavyslam
            const targetWeight = target.getWeight();
            const pokemonWeight = pokemon.getWeight();
            if (pokemonWeight >= targetWeight * 5) {
                power = 120;
            } else if (pokemonWeight >= targetWeight * 4) {
                power = 100;
            } else if (pokemonWeight >= targetWeight * 3) {
                power = 80;
            } else if (pokemonWeight >= targetWeight * 2) {
                power = 60;
            } else {
                power = 40;
            }
            
            //last respects
            power += 50 * pokemon.side.totalFainted;
            
            //low kick
            if (targetWeight >= 2000) {
                power = 120;
            } else if (targetWeight >= 1000) {
                power = 100;
            } else if (targetWeight >= 500) {
                power = 80;
            } else if (targetWeight >= 250) {
                power = 60;
            } else if (targetWeight >= 100) {
                power = 40;
            } else {
                power = 20;
            }
            
            //power trip
            power = power + 20 * pokemon.positiveBoosts();
            
            //punishment
            power += 20 * target.positiveBoosts();
            if (power > 200) power = 200;
            
            //pursuit
            if (target.beingCalledBack || target.switchFlag) {
                this.debug('Pursuit damage boost');
                power *= 2;
            }
            
            //rage fist
            power = Math.min(350, power + 50 * pokemon.timesAttacked);
            
            //reversal
            const ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1);
            if (ratio < 2) {
                power = 200;
            } else if (ratio < 5) {
                power = 150;
            } else if (ratio < 10) {
                power = 100;
            } else if (ratio < 17) {
                power = 80;
            } else if (ratio < 33) {
                power = 40;
            } else {
                power = 20;
            }
            
            //smelling salts
            if (target.status === 'par') {
                power *= 2;
            }
            
            //stomping tantrum
            if (pokemon.moveLastTurnResult === false) {
                power *= 2;
            }
            
            //tera blast
            if (pokemon.terastallized === 'Stellar') {
                power = 100;
            } else power = 80;
            
            //triple axel
            power = 20 * move.hit;
            
            //trump card
            const callerMoveId = move.pokemonEffect || move.id;
            const moveSlot = callerMoveId === 'instruct' ? pokemon.getMoveData(move.id) : pokemon.getMoveData(callerMoveId);
            if (!moveSlot) {
                power = 40;
            } else {
                switch (moveSlot.pp) {
                case 0:
                    power = 200;
                    break;
                case 1:
                    power = 80;
                    break;
                case 2:
                    power = 60;
                    break;
                case 3:
                    power = 50;
                    break;
                default:
                    power = 40;
                    break;
                }
            }
            
            //wakeupslap
            if (target.status === 'slp' || target.hasAbility('comatose')) {
                power *= 2;
            }
            
            //wring out
            const hp = target.hp;
            const maxHP = target.maxhp;
            power = Math.floor(Math.floor((120 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1;
            
            return power;
        },
        category: "Physical",
        name: "The Kitchen Sink",
        shortDesc: "it does a lot",
        pp: 13.41701681,
        priority: 0,
        flags: {protect: 1, mirror: 1,
                bullet: 1, punch: 1, bite: 1, contact: 1, wind: 1, sound: 1, slicing: 1, heal: 1, defrost: 1,
                failencore: 1, failcopycat: 1, failinstruct: 1, failmimic: 1,
                nosleeptalk: 1, noassist: 1, noparentalbond: 1,
                reflectable: 1, charge: 1, recharge: 1, gravity: 1, distance: 1, nonsky: 1, bypasssub: 1},
        breaksProtect: true,
        critRatio: 2,
        drain: [1, 2],
        ignoreAbility: true,
        ignoreEvasion: true,
        ignoreDefensive: true, //darkest lariat
        mindBlownRecoil: true,
        multihit: 10,
        multiaccuracy: true,
        noSketch: true, //torques
        overrideDefensiveStat: 'def',
        overrideOffensiveStat: 'def', //body press
        overrideOffensivePokemon: 'target', //foul play
        pseudoWeather: 'iondeluge', //plasma fists
        recoil: [33, 100],
        //selfdestruct: "always",
        stealsBoosts: true,
        tracksTarget: true,
        volatileStatus: 'partiallytrapped',
        willCrit: true,
        priorityChargeCallback(pokemon) {
            //beak blast
            pokemon.addVolatile('thekitchensink');
        },
        beforeMoveCallback(pokemon) {
            //focus punch
            if (pokemon.volatiles['thekitchensink']?.lostFocus) {
                this.add('cant', pokemon, 'The Kitchen Sink', 'The Kitchen Sink');
                return true;
            }
            
            //pursuit
            for (const side of this.sides) {
                if (side.hasAlly(pokemon)) continue;
                side.addSideCondition('pursuit', pokemon);
                const data = side.getSideConditionData('pursuit');
                if (!data.pokemons) {
                    data.pokemons = [];
                }
                data.pokemons.push(pokemon);
            }
        },
        onAfterHit(target, source, move) {
            //knock off
            if (source.hp) {
                const item = target.takeItem();
                if (item) {
                    this.add('-enditem', target, item.name, '[from] move: The Kitchen Sink', '[of] ' + source);
                }
            }
            
            //mortal spin
            if (!move.hasSheerForce) {
                if (source.hp && source.removeVolatile('leechseed')) {
                    this.add('-end', source, 'Leech Seed', '[from] move: The Kitchen Sink', '[of] ' + source);
                }
                const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];
                for (const condition of sideConditions) {
                    if (source.hp && source.side.removeSideCondition(condition)) {
                        this.add('-sideend', source.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + source);
                    }
                }
                if (source.hp && source.volatiles['partiallytrapped']) {
                    source.removeVolatile('partiallytrapped');
                }
            }
        
            //thief
            if (source.item || source.volatiles['gem']) {
                return;
            }
            const yourItem = target.takeItem(source);
            if (!yourItem) {
                return;
            }
            if (!this.singleEvent('TakeItem', yourItem, target.itemState, source, target, move, yourItem) ||
                !source.setItem(yourItem)) {
                target.item = yourItem.id; // bypass setItem so we don't break choicelock or anything
                return;
            }
            this.add('-enditem', target, yourItem, '[silent]', '[from] move: Thief', '[of] ' + source);
            this.add('-item', source, yourItem, '[from] move: Thief', '[of] ' + target);
        },
        onAfterMove(pokemon, target, move) {
            //mind blown
            if (move.mindBlownRecoil && !move.multihit) {
                const hpBeforeRecoil = pokemon.hp;
                this.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Mind Blown'), true);
                if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) {
                    this.runEvent('EmergencyExit', pokemon, pokemon);
                }
            }
            
            //outrage
            if (pokemon.volatiles['lockedmove'] && pokemon.volatiles['lockedmove'].duration === 1) {
                pokemon.removeVolatile('lockedmove');
            }
            
            //sparkling aria
            for (const pokemon of this.getAllActive()) {
                if (pokemon !== target && pokemon.removeVolatile('sparklingaria') && pokemon.status === 'brn' && !source.fainted) {
                    pokemon.cureStatus();
                }
            }
        },
        onAfterMoveSecondarySelf(pokemon, target, move) {
            //order up
            if (!pokemon.volatiles['commanded']) return;
            const tatsugiri = pokemon.volatiles['commanded'].source;
            if (tatsugiri.baseSpecies.baseSpecies !== 'Tatsugiri') return; // Should never happen
            switch (tatsugiri.baseSpecies.forme) {
            case 'Droopy':
                this.boost({def: 1}, pokemon, pokemon);
                break;
            case 'Stretchy':
                this.boost({spe: 1}, pokemon, pokemon);
                break;
            default:
                this.boost({atk: 1}, pokemon, pokemon);
                break;
            }
        },
        onAfterSubDamage(damage, target, pokemon, move) {
            //mortal spin
            if (!move.hasSheerForce) {
                if (pokemon.hp && pokemon.removeVolatile('leechseed')) {
                    this.add('-end', pokemon, 'Leech Seed', '[from] move: The Kitchen Sink', '[of] ' + pokemon);
                }
                const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge'];
                for (const condition of sideConditions) {
                    if (pokemon.hp && pokemon.side.removeSideCondition(condition)) {
                        this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon);
                    }
                }
                if (pokemon.hp && pokemon.volatiles['partiallytrapped']) {
                    pokemon.removeVolatile('partiallytrapped');
                }
            }
            
            //shell side arm
            if (!pokemon.isAlly(target)) this.hint(move.category + " The Kitchen Sink");
            
            //steel roller
            this.field.clearTerrain();
        },
        onBasePower(basePower, pokemon, target) {
            //brine
            if (target.hp * 2 <= target.maxhp) {
                return this.chainModify(2);
            }
            
            //lashout
            if (pokemon.statsLoweredThisTurn) {
                this.debug('lashout buff');
                return this.chainModify(2);
            }
            
            //psyblade
            if (this.field.isTerrain('electricterrain')) {
                this.debug('psyblade electric terrain boost');
                return this.chainModify(1.5);
            }
            
            //retaliate
            if (pokemon.side.faintedLastTurn) {
                this.debug('Boosted for a faint last turn');
                return this.chainModify(2);
            }
            
            //solar beam
            const weakWeathers = ['raindance', 'primordialsea', 'sandstorm', 'hail', 'snow'];
            if (weakWeathers.includes(pokemon.effectiveWeather())) {
                this.debug('weakened by weather');
                return this.chainModify(0.5);
            }
        
            //venoshock
            if (target.status === 'psn' || target.status === 'tox') {
                return this.chainModify(2);
            }
        },
        onDisableMove(pokemon) {
            //belch
            if (!pokemon.ateBerry) pokemon.disableMove('thekitchensink');
        },
        onEffectiveness(typeMod, target, type, move) {
            //thousand arrows
            if (move.type !== 'Ground') return;
            if (!target) return; // avoid crashing when called from a chat plugin
            // ignore effectiveness if the target is Flying type and immune to Ground
            if (!target.runImmunity('Ground')) {
                if (target.hasType('Flying')) return 0;
            }
        },
        onHit(target, source, move) {
            //bug bite
            const item = target.getItem();
            if (source.hp && item.isBerry && target.takeItem(source)) {
                this.add('-enditem', target, item.name, '[from] stealeat', '[move] The Kitchen Sink', '[of] ' + source);
                if (this.singleEvent('Eat', item, null, source, null, null)) {
                    this.runEvent('EatItem', source, null, null, item);
                    if (item.id === 'leppaberry') target.staleness = 'external';
                }
                if (item.onEat) source.ateBerry = true;
            }
            
            //pollen puff
            if (source.isAlly(target)) {
                if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) {
                    if (target.volatiles['healblock'] && target.hp !== target.maxhp) {
                        this.attrLastMove('[still]');
                        // Wrong error message, correct one not supported yet
                        this.add('cant', source, 'move: Heal Block', move);
                    } else {
                        this.add('-immune', target);
                    }
                    return this.NOT_FAIL;
                }
            }
            
            //sappy seed
            if (target.hasType('Grass')) return null;
            target.addVolatile('leechseed', source);
            
            // Shell Side Arm
            if (!source.isAlly(target)) this.hint(move.category + " Shell Side Arm");
            
            //steel roller
            this.field.clearTerrain();
        },
        onModifyMove(move, pokemon, target) {
            //beat up
            move.allies = pokemon.side.pokemon.filter(ally => ally === pokemon || !ally.fainted && !ally.status);
            move.multihit = move.allies.length;
            
            //bleakwind storm
            if (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) {
                move.accuracy = true;
            }
            
            //magnitude
            const i = this.random(100);
            if (i < 5) {
                move.magnitude = 4;
                move.basePower = 10;
            } else if (i < 15) {
                move.magnitude = 5;
                move.basePower = 30;
            } else if (i < 35) {
                move.magnitude = 6;
                move.basePower = 50;
            } else if (i < 65) {
                move.magnitude = 7;
                move.basePower = 70;
            } else if (i < 85) {
                move.magnitude = 8;
                move.basePower = 90;
            } else if (i < 95) {
                move.magnitude = 9;
                move.basePower = 110;
            } else {
                move.magnitude = 10;
                move.basePower = 150;
            }
            
            //photon geyser
            if (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical';
            
            //present
            const rand = this.random(10);
            if (rand < 2) {
                move.heal = [1, 4];
                move.infiltrates = true;
            } else if (rand < 6) {
                move.basePower = 40;
            } else if (rand < 9) {
                move.basePower = 80;
            } else {
                move.basePower = 120;
            }
            
            //pursuit
            if (target?.beingCalledBack || target?.switchFlag) move.accuracy = true;
            
            //secret power
            if (this.field.isTerrain('')) return;
            move.secondaries = [];
            if (this.field.isTerrain('electricterrain')) {
                move.secondaries.push({
                    chance: 30,
                    status: 'par',
                });
            } else if (this.field.isTerrain('grassyterrain')) {
                move.secondaries.push({
                    chance: 30,
                    status: 'slp',
                });
            } else if (this.field.isTerrain('mistyterrain')) {
                move.secondaries.push({
                    chance: 30,
                    boosts: {
                        spa: -1,
                    },
                });
            } else if (this.field.isTerrain('psychicterrain')) {
                move.secondaries.push({
                    chance: 30,
                    boosts: {
                        spe: -1,
                    },
                });
            }
            
            //shell side arm
            if (!target) return;
            const atk = pokemon.getStat('atk', false, true);
            const spa = pokemon.getStat('spa', false, true);
            const def = target.getStat('def', false, true);
            const spd = target.getStat('spd', false, true);
            const physical = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * atk) / def) / 50);
            const special = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * spa) / spd) / 50);
            if (physical > special || (physical === special && this.random(2) === 0)) {
                move.category = 'Physical';
                move.flags.contact = 1;
            }
            
            //tera blast
            if (pokemon.terastallized && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) {
                move.category = 'Physical';
            }
            if (pokemon.terastallized === 'Stellar') {
                move.self = {boosts: {atk: -1, spa: -1}};
            }
        
            //terrain pulse
            if (this.field.terrain && pokemon.isGrounded()) {
                move.basePower *= 2;
                this.debug('BP doubled in Terrain');
            }
            
            //weather ball
            switch (pokemon.effectiveWeather()) {
            case 'sunnyday':
            case 'desolateland':
                move.basePower *= 2;
                break;
            case 'raindance':
            case 'primordialsea':
                move.basePower *= 2;
                break;
            case 'sandstorm':
                move.basePower *= 2;
                break;
            case 'hail':
            case 'snow':
                move.basePower *= 2;
                break;
            }
        },
        onModifyType(move, pokemon) {
            //multi attack
            if (pokemon.ignoringItem()) return;
            move.type = this.runEvent('Memory', pokemon, null, move, 'Normal');
        
            //revelation dance
            let type = pokemon.getTypes()[0];
            if (type === "Bird") type = "???";
            if (type === "Stellar") type = pokemon.getTypes(false, true)[0];
            move.type = type;
            
            //techno blast
            if (pokemon.ignoringItem()) return;
            move.type = this.runEvent('Drive', pokemon, null, move, 'Normal');
            
            //tera blast
            if (pokemon.terastallized) {
                move.type = pokemon.teraType;
            }
            
            //terrain pulse
            if (!pokemon.isGrounded()) return;
            switch (this.field.terrain) {
            case 'electricterrain':
                move.type = 'Electric';
                break;
            case 'grassyterrain':
                move.type = 'Grass';
                break;
            case 'mistyterrain':
                move.type = 'Fairy';
                break;
            case 'psychicterrain':
                move.type = 'Psychic';
                break;
            }
        
            //weather ball
            switch (pokemon.effectiveWeather()) {
            case 'sunnyday':
            case 'desolateland':
                move.type = 'Fire';
                break;
            case 'raindance':
            case 'primordialsea':
                move.type = 'Water';
                break;
            case 'sandstorm':
                move.type = 'Rock';
                break;
            case 'hail':
            case 'snow':
                move.type = 'Ice';
                break;
            }
        },
        onMoveFail(target, source, move) {
            this.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('The Kitchen Sink'));
        },
        onPrepareHit(target, source, move) {
            if (source.terastallized) {
                this.attrLastMove('[anim] Tera Blast ' + source.teraType);
            }
        },
        onTry(source, target) {
            //sucker punch
            const action = this.queue.willMove(target);
            const move = action?.choice === 'move' ? action.move : null;
            if (!move || (move.category === 'Status' && move.id !== 'mefirst') || target.volatiles['mustrecharge']) {
                return false;
            }
            
            //fake out
            if (source.activeMoveActions > 1) {
                this.hint("The Kitchen Sink only works on your first turn out.");
                //return false;
            }
            
            //echoed voice
            this.field.addPseudoWeather('echoedvoice');
            
            return !!source.volatiles['stockpile'] && //spit up
                   !!target.item && //poltergeist
                   !target.fainted && //sky drop
                   !this.field.isTerrain('') //steel roller
                   // && (source.status === 'slp' || source.hasAbility('comatose'))
                   ; //snore
        },
        onTryHit(target, pokemon) {
            //brick break
            pokemon.side.removeSideCondition('reflect');
            pokemon.side.removeSideCondition('lightscreen');
            pokemon.side.removeSideCondition('auroraveil');
            
            //pollen puff
            if (pokemon.isAlly(target)) {
                move.basePower = 0;
                move.infiltrates = true;
            }
            
            //poltergeist
            this.add('-activate', target, 'move: The Kitchen Sink', this.dex.items.get(target.item).name);
            
            //pursuit
            target.side.removeSideCondition('pursuit');
            
            //uproar
            const activeTeam = target.side.activeTeam();
            const foeActiveTeam = target.side.foe.activeTeam();
            for (const [i, allyActive] of activeTeam.entries()) {
                if (allyActive && allyActive.status === 'slp') allyActive.cureStatus();
                const foeActive = foeActiveTeam[i];
                if (foeActive && foeActive.status === 'slp') foeActive.cureStatus();
            }
        },
        onTryMove(source, target, move) {
            //pollen puff
            if (source.isAlly(target) && source.volatiles['healblock']) {
                this.attrLastMove('[still]');
                this.add('cant', source, 'move: Heal Block', move);
                return false;
            }
        },
        onTryImmunity(target, source) {
            return target.hasType(source.getTypes());
        },
        onUseMoveMessage(pokemon, target, move) {
            this.add('-activate', pokemon, 'move: Magnitude', move.magnitude);
        },
        condition: {
            duration: 1,
            onStart(pokemon) {
                this.add('-singleturn', pokemon, 'move: The Kitchen Sink');
            },
            onHit(target, source, move) {
                if (this.checkMoveMakesContact(move, source, target)) {
                    source.trySetStatus('brn', target);
                }
                if (move.category !== 'Status') {
                    this.effectState.lostFocus = true;
                }
            },
            onTryAddVolatile(status, pokemon) {
                if (status.id === 'flinch') return null;
            },
        },
        secondary: null,
        self: {
            volatileStatus: 'mustrecharge',
            
            //baddy bad
            sideCondition: 'reflect',
            
            boosts: {
                atk: -1,
                def: -1,
                spa: -2,
                spd: -1,
                spe: -2,
            },
            
            //sparkly swirl
            onHit(pokemon, source, move) {
                this.add('-activate', source, 'move: Aromatherapy');
                for (const ally of source.side.pokemon) {
                    if (ally !== source && (ally.volatiles['substitute'] && !move.infiltrates)) {
                        continue;
                    }
                    ally.cureStatus();
                }
            },
        },
        target: "allAdjacent",
        type: "???",
    },
 
Last edited:
Name: Feebas Moment
Power: -
Accuracy: 100
PP: 5
Category: Status
Type: Water
Effect: Transforms the target into Feebas.
Priority: 3
Flags (ex: Contact, Sound): -
Distribution: Feebas
Justification: If there are no better mons, surely it would be the best, right?

Name: Heavenly King's Super Awesome Unblockable Sure-Hit Insta-Kill Thousand-Slash Sentret Attack
Power: -
Accuracy: -
PP: 10
Category: Physical
Type: Normal
Effect: 90% chance to turn the opponent into a Sentret, 10% chance of OHKOing them. Does nothing otherwise. Can hit Ghost-types.
Priority: 1
Flags: Pride
Distribution: Sentret
Justification: :sentret:️‍

Adjustment
Pokemon:
Silvally
Typing:
Normal
Base Stats:
95/95/95/95/95/95
Abilities:
RKS System
Movepool:
+ Nasty Plot, Roost, Trailblaze, High Horsepower, Brick Break, Aerial Ace, Defog
Flavor / Description:
just padding the movepool a bit, for now
 
Last edited:
:sv/kingler-gmax:
Pokemon: Kingler-Mega (Mega-Evolves using Kinglerite)
Type:
Water.png
Steel.png

Ability: Shell Armor
Stats: 70 / 130 / 210 (+80) / 60 (+10) / 100 (+30) / 30 (-20)
Movepool: + Earthquake, Stealth Rock
Weight: 140kg
Competitive Role: I'm a big fan of Megas with ultra-high bulk but no instant recovery, I find they do well in keeping big offensive threats in check without being unreasonable to bring down in the long-term. Anyway, here's something that switches into Ohmyrod.
Flavour: this mon is so shellfish

:sv/cramorant-gorging:
Pokemon: Big Crammer
Ability: Protostasis*
Custom Elements:
Protostasis: Snowscape active or Booster Energy used: highest stat is 1.3x, or 1.5x if Speed.
Justification: Lets Crammer benefit from Ohmyrod and Fridgile's snow. Epic Vape reference.

Move: Silcoon Blast
PP: 32
Justification: 266 PP is really funny until you load into Silcoon stall.
 
Last edited:
945B26AE-397D-423E-A92A-B5AA8A31E19B.png

Balance Board
Type: Normal
Ability: Balance Board (This Pokemon will deal additional damage to heavier targets (a maximum of 1.5x).)
Stats: 70/85/100/100/85/70
Moves: Coaching, Work Up, Bulk Up, Calm Mind, Morning Sun, Moonlight, Coil, Hyper Voice, Headbutt, High Jump Kick, Ice Spinner, Bounce, Rollout, Hydro Pump, Spotlight, Decorate, Ice Beam, Acrobatics, Flame Burst, Icicle Crash, Bubble Beam, Dive, Fly, Rock Climb, Hyperspace Hole, Brick Break, Stomp, Close Combat, Foresight, Shift Gear, Smart Strike, Liquidation, Revelation Dance, Teeter Dance, Fiery Dance, Goomba Stomp, Balance Board
Justification: Balance Board

Move: Balance Board
Type: Normal
Classification: Status
Accuracy: --
PP: 20 (max 32)
Effect: Copies the stat changes of the target, then copies screens from either side onto both sides.
Distribution: Balance Board, Melmetal, Melmetal 2

704E075E-7DBA-4267-8C14-619741B96237.png

Item: Balance Board
Effect: When this Pokemon boosts Attack, Defense, Special Attack, or Special Defense, boost the opposite category an equivalent amount of stages, then this item is consumed; does nothing if the boost already applied evenly to both relevant categories, such as with Work Up or Cosmic Power.
Justification: Balance Board @ Balance Board
Ability: Balance Board
- Balance Board
 
:ss/toxapex:
Pokemon: Toxapex (Adjustment)
Typing: Poison/Water (Reverse of what it currently is)
Base Stats: Unchanged
Abilities: Merciless/Limber (Degenerator)
Movepool: Unchanged
Custom Elements: Degenerator: When the user switches out, damage active opponents by 30% of their max HP
Justification: Surely Toxapex will be balanced now!
:ss/Starmie:
Pokemon: Starmie
Typing: Water/Psychic
Base Stats: 60/75/85/100/110/115
Abilities: Illuminate*/Natural Cure (Analytic)
Movepool: NatDex Movepool

Weight: 80 kg
Custom Elements: Illuminate: On switch-in, raises the user's Accuracy by one stage
Competitive Role: Can act as a defensive spinner with Natural Cure being handy for curing status, or an offensive Mon using Illuminate to make moves like Blizzard, Thunder, and Hydro Pump hit consistently.
:ss/victreebel:
Pokemon: Victreebel
Typing: Grass/Poison
Base Stats: 80/105/105/100/70/70
Abilities: Fly Eater (Gluttony)
Movepool: NatDex Movepool
+Toxic Spikes
-Strength Sap
Weight: 15.5 kg
Custom Elements: Fly Eater: This Pokemon heals 1/4 of its max HP when hit by Bug moves; Bug immunity
Competitive Role: Defensive Mon that can deny U-Turn
 
Last edited:
All hail supreme overlord Palpitoad!

Pokemon: Bondra
Typing: Grass/Fire
Base Stats: 103/113/93/43/93/113 (558)
Abilities: Strong Jaw/Hustle/Chlorophyll
Movepool:
Physical.png
Beat Up, Body Slam, Brutal Swing, Close Combat, Explosion, Fire Fang, Headlong Rush, Power Whip, Stone Edge, Super Fang, U-turn
Special.png
Energy Ball, Fire Blast, Overheat, Syrup Bomb, Tri Attack
Status.png
Glare, Synthesis, Work Up

Using this mod as an excuse to work on MG1 Crossover lol....
 
New Move: DOOR STUCK
Normal.png
Status.png
100 Acc, 20/32 PP
Effect: Applies the 'DOOR STUCK' volatile status to the target for 5 turns. Affected Pokemon cannot use moves that switch the user out (e.g. U-turn; if the user is inflicted with 'DOOR STUCK' having already selected a pivoting move it will fail, a la Taunt rules), and if they execute a non-Status move, they will be unable to switch out on the following turn. Pokemon with the abilities Oblivious or Alpha Sigma Rizz cannot be given 'DOOR STUCK'.
Priority: 0
Flags: Protect, Mirror
Distribution: Fridgile, Hitmontop, Lytlegai, microwave, Pidown, Runerigus, Sentret, Silvally, Zacian-Crowned
Description:

New Item: Bucket Hat
Effect: When switching in, if the holder has less than full HP and at least one Fishing Token on their side of the field, remove a Fishing Token and restore up to 1/4 max HP.
Can Be Knocked Off (Yes or No): Yes
Ignored by Klutz (Yes or No): Yes
Fling Power & Effect: 30 BP, puts a Fishing Token on the user's field
Description: Women fear me, fish fear me, men turn their eyes away from me. As I walk, no beast dares make a sound in my presence; I am alone on this barren earth.
 
Last edited:
Name: I want your hat
Power: 60
Accuracy: 100
PP: 10 (16)
Category: Special
Type: Ice
Effect: Takes an opponents hat and make it your own, by stealing a hat you are now full of pride of having a hat you didnt own before, if you steal a hat from an opponent you now recover 1/12 of hp per turn (lasts until you switch out). If you hit a diff opponent you gain a new hat increasing to 2/12 of ur max hp, then 3/12, 4/12, 5/12, until you got all 6 hats from your opponent and you recover 6/12 of ur max hp.
Priority: 0
Pokémon With This Move: Delibird, Diancie, Honchkrow, Nosepass, Keldeo, Minun, Lurantis, Teddiursa, Suicune, Abra, Beedrill, Chandelure, Haxorus, Arcanine, Ribombe, Kirlia, Chingling, Snorunt, Litwick, Porygon2, Cosmog, Noibat, Deino, Stantler, Cradily, Sceptile, Minior, Meloetta, Zekrom, Hippopotas, Cubchoo, Iron Bundle, Iron Moth, Umbreon, Klefki, Chikorita, Jynx, Eevee, Tinkaton, Gengar, Jellicent, Cyndaquil, Chandelure, Absol, Growlithe, Mareanie, Mismagius, Glaceon, Piplup, Noctowl, Canea, Buneary
Justification: hats are nice, stealing them is the spirit of christmas
 
:swsh/tangrowth::swsh/floette-eternal:
Forbidden Fusion
DNA Donors: Tangrowth / Floette-Eternal
Fusion Name: Tangette-Eternal
New Types:
Grass.png
Fairy.png

Base Stats: 90 / 85 / 100 / 120 / 90 / 75 [BST: 560]
New Ability: Growth Veil = (Regenerator + Flower Veil)
Ability Description: Effect of both abilities
Moves: Both of Tangrowth and Floette-Eternal (NatDex)
Role Justification: Should be allowed as this is explicitly not allowed in FE, acts as a good pivot that mitigates recoil from Light of Ruin with its ability.

:swsh/donphan::swsh/flamigo:
Working Gimmick
DNA Donors: Donphan / Flamigo
Fusion Name: Donmigo
New Types:
Ground.png
Flying.png

Base Stats: 90 / 120 / 100 / 70 / 70 / 70 [BST: 520]
New Ability: Bravery = (Sturdy + Scrappy)
Ability Description: Effect of both abilities
Moves: Both of Donphan and Flamigo (NatDex)
Role Justification: Sturdy Endeavor + Scrappy Feint sure is a way to ensure that FEAR is a legitimate strategy for once!

:swsh/kyurem-black::swsh/sandshrew-alola:
Never forgotten
DNA Donors: Kyurem-Black / Sandshrew-Alola
Fusion Name: Alolan Black Shrek
New Types:
Dragon.png
Steel.png

Base Stats: 90 / 125 / 95 / 65 / 65 / 75 [BST: 515] (+3 HP / +3 Atk / +0 Def / +0 SpA / +3 SpD / +8 Spe)
New Ability: Volt Rush = (Teravolt + Slush Rush)
Ability Description: Effect of both abilities
Moves: Kyurem-Black's + Alolan Sandshrew's (NatDex)
Role Justification: Haha funny name
 
Back
Top