exports.BattleAbilities = {
          "stancechange": {
                desc: "The Pokemon changes form depending on how it battles. Defense form for King's Shield, and Offense form for attacking moves.",
                shortDesc: "The Pokemon changes form depending on how it battles.",
                onBeforeMove: function(attacker, defender, move) {
                        if (attacker.template.baseSpecies !== 'Aegislash') return;
                        if (move.category === 'Status' && move.id !== 'kingsshield') return;
                        var targetSpecies = (move.id === 'kingsshield'?'Aegislash':'Aegislash-Blade');
                        if (attacker.template.species !== targetSpecies && attacker.formeChange(targetSpecies)) {
                                this.add('-formechange', attacker, targetSpecies);
                        if (attacker.template.baseSpecies !== 'Meloetta') return;
                        if (move.category === 'Status' && move.category === 'Special') return;
                        var targetSpecies = (move.category === 'Status' && move.category === 'Special'?'Meloetta':'Meloetta-Pirouette');
                        if (attacker.template.species !== targetSpecies && attacker.formeChange(targetSpecies)) {
                                this.add('-formechange', attacker, targetSpecies);        
                        }
                },
                id: "stancechange",
                name: "Stance Change",
                rating: 4.5,
                num: -6,
                gen: 6
        },
};

@@ -1550,13 +1550,829 @@
        %7D
-,
+%0A        %22protean%22: %7B%0A                desc: %22Changes user's type to match the user's current move before it attacks.%22,%0A                shortDesc: %22Changes user's type to match its move.%22,%0A                onBeforeMove: function(pokemon, target, move) %7B%0A                        if (!move) return;%0A                        var moveType = (move.id === 'hiddenpower' ? pokemon.hpType : move.type);%0A                        if (pokemon.types.join() !== moveType) %7B%0A                                this.add('-start', pokemon, moveType, 'typechange', '%5Bfrom%5D Protean');%0A                                pokemon.types = %5BmoveType%5D;%0A                        %7D%0A                %7D,%0A                id: %22protean%22,%0A                name: %22Protean%22,%0A                rating: 1.5,%0A                num: -6,%0A                gen: 6%0A        %7D, 
 %0A%7D;%0A

add protean nerf