{ "version": 3, "sources": ["../../../../../data/mods/ssb/conditions.ts"], "sourcesContent": ["import {FS} from '../../../lib';\r\nimport {toID} from '../../../sim/dex-data';\r\n\r\n// Similar to User.usergroups. Cannot import here due to users.ts requiring Chat\r\n// This also acts as a cache, meaning ranks will only update when a hotpatch/restart occurs\r\nconst usergroups: {[userid: string]: string} = {};\r\nconst usergroupData = FS('config/usergroups.csv').readIfExistsSync().split('\\n');\r\nfor (const row of usergroupData) {\r\n\tif (!toID(row)) continue;\r\n\r\n\tconst cells = row.split(',');\r\n\tif (cells.length > 3) throw new Error(`Invalid entry when parsing usergroups.csv`);\r\n\tusergroups[toID(cells[0])] = cells[1].trim() || ' ';\r\n}\r\n\r\nexport function getName(name: string): string {\r\n\tconst userid = toID(name);\r\n\tif (!userid) throw new Error('No/Invalid name passed to getSymbol');\r\n\r\n\tconst group = usergroups[userid] || ' ';\r\n\treturn group + name;\r\n}\r\n\r\nexport const Conditions: {[k: string]: ModdedConditionData & {innateName?: string}} = {\r\n\t/*\r\n\t// Example:\r\n\tuserid: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Username')}|Switch In Message`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Username')}|Switch Out Message`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Username')}|Faint Message`);\r\n\t\t},\r\n\t\t// Innate effects go here\r\n\t},\r\n\tIMPORTANT: Obtain the username from getName\r\n\t*/\r\n\t// Please keep statuses organized alphabetically based on staff member name!\r\n\tabdelrahman: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Abdelrahman')}|good morning, i'm town`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Abdelrahman')}|brb gonna go lynch scum`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Abdelrahman')}|I CC COP TOWN FAILED`);\r\n\t\t},\r\n\t},\r\n\tadri: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Adri')}|This time will definitely be the one !`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Adri')}|//afk`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Adri')}|Until next time...`);\r\n\t\t},\r\n\t},\r\n\taelita: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aelita')}|The Scyphozoa's absorbing Aelita's memories!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aelita')}|We scared it away but it will be back. We can't let it get ahold of Aelita's memories.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aelita')}|X.A.N.A. is finally finished for good.`);\r\n\t\t},\r\n\t},\r\n\taegii: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('aegii')}|shoot! take a pano~rama~ https://youtu.be/G8GaQdW2wHc`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('aegii')}|${this.sample([`brb, buying albums`, `brb, downloading fancams`, `brb, streaming mvs`, `brb, learning choreos`])}`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('aegii')}|i forgot to stan loona...`);\r\n\t\t},\r\n\t},\r\n\taeonic: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|What's bonkin?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|I am thou, thou art I`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|Guys the emoji movie wasn't __that bad__`);\r\n\t\t},\r\n\t},\r\n\taethernum: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aethernum')}|Hlelo ^_^ Lotad is so cute, don't you think? But don't underestimate him!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aethernum')}|Sinking in this sea of possibilities for now...but i'll float back once again!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aethernum')}|Ok, ok, i have procrastinated enough here, time to go ^_^' See ya around!`);\r\n\t\t},\r\n\t},\r\n\takir: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Akir')}|hey whats up`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Akir')}|let me get back to you`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Akir')}|ah well maybe next time`);\r\n\t\t},\r\n\t},\r\n\talpha: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Alpha')}|eccomi dimmi`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Alpha')}|FRATM FACI FRIDDU`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Alpha')}|caio`);\r\n\t\t},\r\n\t},\r\n\tandrew: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Andrew')}|/me vents in`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Andrew')}|purple sus`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Andrew')}|tidal otter is impostor! He vented in front of me in admin! Vote him out next!`);\r\n\t\t},\r\n\t},\r\n\tannika: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Annika')}|The circumstances of one's birth are irrelevant; it is what you do with the gift of life that determines who you are.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Annika')}|I'll be stronger when I'm back ^_^`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Annika')}|oh, I crashed the server again...`);\r\n\t\t},\r\n\t},\r\n\taquagtothepast: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('A Quag To The Past')}|Whatever happens, happens.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('A Quag To The Past')}|See you space cowboy...`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('A Quag To The Past')}|You're gonna carry that weight.`);\r\n\t\t},\r\n\t},\r\n\tarby: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arby')}|Time to win this :)`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arby')}|MSU need a sub`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arby')}|Authhate is real.`);\r\n\t\t},\r\n\t},\r\n\tarchas: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|Ready the main batteries, gentlemen! Hit \u2018em hard and fast!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|Helmsman, full reverse at speed!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|They say the captain always goes down with the ship...`);\r\n\t\t},\r\n\t},\r\n\tarcticblast: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|words are difficult`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|oh no`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tif (this.randomChance(1, 100)) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|get **mished** kid`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|single battles are bad anyway, why am I here?`);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tawauser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|awa!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|well, at least i didn't lose the game`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|or did i?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|awawa?! awa awawawa awawa >:(`);\r\n\t\t},\r\n\t},\r\n\tbeowulf: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|:^)`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|/me buzzes`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|time for my own isekai`);\r\n\t\t},\r\n\t\tonSourceFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|another one reincarnating into an isekai`);\r\n\t\t},\r\n\t},\r\n\tbiggie: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('biggie')}|gonna take you for a ride`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('biggie')}|mahvel baybee!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('biggie')}|it was all a dream`);\r\n\t\t},\r\n\t},\r\n\tbillo: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tlet activeMon = source.side.foe.active[0].species.name;\r\n\t\t\tif (!activeMon) activeMon = \"Pokemon\";\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Billo')}|Your ${activeMon} looks hacked.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Billo')}|Let me inspect your Pokemon, brb`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Billo')}|Yep, definitely hacked.`);\r\n\t\t},\r\n\t\tinnateName: \"Unaware\",\r\n\t\tshortDesc: \"This Pokemon ignores other Pokemon's stat stages when taking or doing damage.\",\r\n\t\t// Unaware innate\r\n\t\tonAnyModifyBoost(boosts, pokemon) {\r\n\t\t\tconst unawareUser = this.effectState.target;\r\n\t\t\tif (unawareUser.illusion) return;\r\n\t\t\tif (unawareUser === pokemon) return;\r\n\t\t\tif (unawareUser === this.activePokemon && pokemon === this.activeTarget) {\r\n\t\t\t\tboosts['def'] = 0;\r\n\t\t\t\tboosts['spd'] = 0;\r\n\t\t\t\tboosts['evasion'] = 0;\r\n\t\t\t}\r\n\t\t\tif (pokemon === this.activePokemon && unawareUser === this.activeTarget) {\r\n\t\t\t\tboosts['atk'] = 0;\r\n\t\t\t\tboosts['def'] = 0;\r\n\t\t\t\tboosts['spa'] = 0;\r\n\t\t\t\tboosts['accuracy'] = 0;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tblaz: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Blaz')}|Give me, give me, give me the truth now oh oh oh oh`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Blaz')}|Tell me... why? Please tell me why do we worry? Why? Why do we worry at all?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Blaz')}|the game (lol u lost)`);\r\n\t\t},\r\n\t},\r\n\tbrandon: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Brandon')}|I didn't come here to play. I came here to slay!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Brandon')}|${this.sample([`I need to catch my breath`, `brb getting a snack`])}`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tconst foeName = pokemon.side.foe.active[0].illusion ?\r\n\t\t\t\tpokemon.side.foe.active[0].illusion.name : pokemon.side.foe.active[0].name;\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Brandon')}|${this.sample([`This battle was rigga morris!`, `At least I'll snag Miss Congeniality...`, `This battle was rigged for ${foeName} anyway >:(`])}`);\r\n\t\t},\r\n\t},\r\n\tbrouha: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('brouha')}|lmf`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('brouha')}|....`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('brouha')}|sobL`);\r\n\t\t},\r\n\t},\r\n\tbuffy: {\r\n\t\tnoCopy: true,\r\n\t\t// No quotes requested\r\n\t},\r\n\tcake: {\r\n\t\tnoCopy: true,\r\n\t\tinnateName: \"h\",\r\n\t\tshortDesc: \"On switch-in and at the end of every turn, this Pokemon changes type randomly.\",\r\n\t\tonStart(target, pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Cake')}|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`);\r\n\t\t\t// h innate\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\tconst typeList = [...this.dex.types.names()];\r\n\t\t\tthis.prng.shuffle(typeList);\r\n\t\t\tconst firstType = typeList[0];\r\n\t\t\tthis.prng.shuffle(typeList);\r\n\t\t\tconst secondType = typeList[0];\r\n\t\t\tconst newTypes = [firstType];\r\n\t\t\tif (firstType !== secondType) newTypes.push(secondType);\r\n\t\t\tthis.add('html|h');\r\n\t\t\tthis.add('-start', pokemon, 'typechange', newTypes.join('/'), '[silent]');\r\n\t\t\tpokemon.setType(newTypes);\r\n\t\t},\r\n\t\tonSwitchOut(pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Cake')}|${pokemon.side.name} is a nerd`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Cake')}|Chowder was a good show`);\r\n\t\t},\r\n\t\tonResidualOrder: 26,\r\n\t\tonResidualSubOrder: 1,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\tif (pokemon.activeTurns) {\r\n\t\t\t\tconst typeList = [...this.dex.types.names()];\r\n\t\t\t\tthis.prng.shuffle(typeList);\r\n\t\t\t\tconst firstType = typeList[0];\r\n\t\t\t\tthis.prng.shuffle(typeList);\r\n\t\t\t\tconst secondType = typeList[0];\r\n\t\t\t\tconst newTypes = [firstType];\r\n\t\t\t\tif (firstType !== secondType) newTypes.push(secondType);\r\n\t\t\t\tthis.add('html|h');\r\n\t\t\t\tthis.add('-start', pokemon, 'typechange', newTypes.join('/'), '[silent]');\r\n\t\t\t\tpokemon.setType(newTypes);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tcantsay: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('cant say')}|haha volc go brrrr`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('cant say')}|lol CTed`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('cant say')}|${this.sample(['imagine taking pokemon seriously when you can just get haxed', '/me plays curb your enthusiasm theme', 'bad players always get lucky'])}`);\r\n\t\t},\r\n\t\tinnateName: \"Magic Guard\",\r\n\t\tshortDesc: \"This Pokemon can only be damaged by direct attacks.\",\r\n\t\t// Magic Guard Innate\r\n\t\tonDamage(damage, target, source, effect) {\r\n\t\t\tif (target.illusion) return;\r\n\t\t\tif (effect.effectType !== 'Move') {\r\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tceline: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Celine')}|Support has arrived!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Celine')}|Brb writing`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Celine')}|'Tis only a flesh wound!`);\r\n\t\t},\r\n\t},\r\n\tckilgannon: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('c.kilgannon')}|Take a look to the sky just before you die`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('c.kilgannon')}|Death does wait; there's no debate.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('c.kilgannon')}|Memento mori.`);\r\n\t\t},\r\n\t},\r\n\tcoconut: {\r\n\t\tnoCopy: true,\r\n\t\t// no quotes\r\n\t},\r\n\tdogknees: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dogknees')}|Your opinion is wrong if you think cats are better than dogs \u0AEE\u30FB\uFECC\u30FB\u10D0`);\r\n\t\t\tif (source.illusion) return;\r\n\t\t\tthis.add('-start', source, 'typechange', source.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dogknees')}|Yes, dogs do have knees. Stop asking me.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dogknees')}|Nap time!`);\r\n\t\t},\r\n\t},\r\n\tdragonwhale: {\r\n\t\tnoCopy: true,\r\n\t\t// No quotes\r\n\t},\r\n\tdrampasgrandpa: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\\'s grandpa')}|Where are my glasses?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\\'s grandpa')}|Darn kids...`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\\'s grandpa')}|Bah humbug!`);\r\n\t\t},\r\n\t},\r\n\tdream: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dream')}|It's Prime Time`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dream')}|oh no please god tell me we're dreaming`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dream')}|perdemos`);\r\n\t\t},\r\n\t},\r\n\telgino: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(target, pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Elgino')}|Time to save Hyrule!`);\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Elgino')}|Hold on I need to stock up on ${this.sample(['Bombs', 'Arrows', 'Magic', 'Seeds'])}`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Elgino')}|I'm out of fairies D:!`);\r\n\t\t},\r\n\t},\r\n\temeri: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Emeri')}|hey !`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Emeri')}|//busy`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Emeri')}|don't forget to chall SFG or Agarica in gen8ou`);\r\n\t\t},\r\n\t},\r\n\tepicnikolai: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('EpicNikolai')}|I never give up until I get something right, which means destroying you \u261C(\uFF9F\u30EE\uFF9F\u261C)`);\r\n\t\t\tif (source.species.id !== 'garchompmega' || source.illusion) return;\r\n\t\t\tthis.add('-start', source, 'typechange', source.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('EpicNikolai')}|This wasn't as fun as I thought it would be, I'm out \u00AF_( \u0361~\u202F\u035C\u0296 \u0361\u00B0)_/\u00AF`); // eslint-disable-line no-irregular-whitespace\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('EpicNikolai')}|I like to keep a positive attitude even though it is hard sometimes <('o'<)~*/`);\r\n\t\t},\r\n\t},\r\n\testarossa: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('estarossa')}|honestly best pairing for hazard coverage wtih molt is like molt + tsareena/dhelmise`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('estarossa')}|sand balance <333`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('estarossa')}|*eurgh*`);\r\n\t\t},\r\n\t},\r\n\texplodingdaisies: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|Turn and run now, and I will mercifully pretend this never happened.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|You are beneath me, and it shows.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|Unacceptable!`);\r\n\t\t},\r\n\t},\r\n\tfart: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tlet activeMon;\r\n\t\t\tactiveMon = source.side.foe.active[0];\r\n\t\t\tactiveMon = activeMon.illusion ? activeMon.illusion.name : activeMon.name;\r\n\t\t\tconst family = ['aethernum', 'trickster', 'celestial', 'gimmick', 'zalm', 'aelita', 'biggie'];\r\n\t\t\tif (this.toID(activeMon) === 'hoeenhero') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|\uD83C\uDFB5 it's friday, friday, gotta get down on friday \uD83C\uDFB5`);\r\n\t\t\t} else if (this.toID(activeMon) === 'grimauxiliatrix') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|howdy ho, neighbor`);\r\n\t\t\t} else if (this.toID(activeMon) === 'fart') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|How Can Mirrors Be Real If Our Eyes Aren't Real`);\r\n\t\t\t} else if (family.includes(this.toID(activeMon))) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|hey, hey, hey. ${activeMon} is OK`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|rats, rats, we are the rats`);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|if I can't win this game, then I'll make it boring for everyone.`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tlet activeMon;\r\n\t\t\tactiveMon = pokemon.side.foe.active[0];\r\n\t\t\tactiveMon = this.toID(activeMon.illusion ? activeMon.illusion.name : activeMon.name);\r\n\t\t\tconst family = ['aethernum', 'trickster', 'celestial', 'gimmick', 'zalm', 'aelita', 'biggie'];\r\n\t\t\tif (family.includes(activeMon)) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|at least I wasn't boring, right?`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|oy, I die`);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tfelucia: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Felucia')}|battlesignup! I dropped my dice somewhere and now all I can do is make you play with them (join using %join one)`);\r\n\t\t\tif (source.illusion) return;\r\n\t\t\tthis.add('-start', source, 'typechange', source.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Felucia')}|battlesignup: I lost connection to a player so I guess I'll get a new one (/me in to sub)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Felucia')}|%remp Felucia`);\r\n\t\t},\r\n\t},\r\n\tfinland: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tconst roll = this.random(100);\r\n\t\t\tlet message: string;\r\n\t\t\tif (roll < 70) {\r\n\t\t\t\tmessage = 'pog';\r\n\t\t\t} else if (roll < 80) {\r\n\t\t\t\tmessage = 'very pog';\r\n\t\t\t} else if (roll < 90) {\r\n\t\t\t\tmessage = 'poggaroo';\r\n\t\t\t} else if (roll < 95) {\r\n\t\t\t\tmessage = 'PogU';\r\n\t\t\t} else {\r\n\t\t\t\tmessage = 'poog';\r\n\t\t\t}\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|${message}`);\r\n\t\t\tif (source.illusion) return;\r\n\t\t\tthis.boost({spa: 1, spd: 1}, source);\r\n\t\t},\r\n\t\tonBeforeMovePriority: 0.5,\r\n\t\tonBeforeMove(attacker, defender, move) {\r\n\t\t\tif (attacker.illusion) return;\r\n\t\t\tattacker.clearBoosts();\r\n\t\t\tthis.add('-clearboost', attacker);\r\n\t\t\tif (move.category === 'Status') {\r\n\t\t\t\tthis.boost({def: 1, spd: 1}, attacker);\r\n\t\t\t} else {\r\n\t\t\t\tthis.boost({spa: 1, spe: 1}, attacker);\r\n\t\t\t}\r\n\t\t},\r\n\t\tinnateName: \"Fickle Decorator\",\r\n\t\tshortDesc: \"Calm Mind on switch-in. Changes boosts depending on move used.\",\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|i hope running away is safe on shield?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tif (this.randomChance(99, 100)) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|FINLAND!!!`);\r\n\t\t\t} else {\r\n\t\t\t\t// personally i like young link from oot3d and mm3d - sp\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|i hate young link. i hate you i hate you i hate you. i hate you. young link i hate you. i despise you. i loathe you. your existence is an affront to my person. to my own existence. it's an offense. a despicable crime. a wretched abomination. even worse than mega man. a cruel barbarity. an awful curse from capricious, pernicious fate. oh do i hate young link. i scorn you. i cast you away to ignominy and hatred even worse than mega man. you are shameful young link, and you should never show your face again`);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tfrostyicelad: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('frostyicelad \u2746')}|Oh i guess its my turn now! Time to sweep!`);\r\n\t\t},\r\n\t\tonSwitchOut(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('frostyicelad \u2746')}|Hey! ${source.side.name} why dont you keep me in and let me sweep? Mean.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('frostyicelad \u2746')}|So c-c-cold`);\r\n\t\t},\r\n\t},\r\n\tgallantspear: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('gallant\\'s pear')}|**Rejoice! The one to inherit all Rider powers, the time king who will rule over the past and the future.**`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('gallant\\'s pear')}|My Overlord..`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('gallant\\'s pear')}|Damn you, Decade!!!`);\r\n\t\t},\r\n\t},\r\n\tgimmick: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Mama, they say I'm a TRRST`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Ic3peak to you later`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|I did nothing wrong (but I got on the blacklist)`);\r\n\t\t},\r\n\t\t// Unburden Innate\r\n\t\tonAfterUseItem(item, pokemon) {\r\n\t\t\tif (pokemon !== this.effectState.target) return;\r\n\t\t\tpokemon.addVolatile('unburden');\r\n\t\t},\r\n\t\tonTakeItem(item, pokemon) {\r\n\t\t\tpokemon.addVolatile('unburden');\r\n\t\t},\r\n\t\tonEnd(pokemon) {\r\n\t\t\tpokemon.removeVolatile('unburden');\r\n\t\t},\r\n\t\tinnateName: \"Unburden\",\r\n\t\tdesc: \"If this Pokemon loses its held item for any reason, its Speed is doubled. This boost is lost if it switches out or gains a new item.\",\r\n\t\tshortDesc: \"Speed is doubled on held item loss; boost is lost if it switches or gets new item.\",\r\n\t},\r\n\tgmars: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|It's ya boy GEEEEEEEEMARS`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|Who switches out a Minior in prime position?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|Follow me on bandcamp`);\r\n\t\t},\r\n\t},\r\n\tgrimauxiliatrix: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('grimAuxiliatrix')}|${this.sample(['THE JUICE IS LOOSE', 'TOOTHPASTE\\'S OUT OF THE TUBE', 'PREPARE TO DISCORPORATE'])}`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('grimAuxiliatrix')}|${this.sample(['NOT LIKE THIS', 'HALT - MODULE CORE HEMORRHAGE', 'AAAAAAAAAAAAAAAAAAA', 'Change da world... my final message. Goodb ye.'])}`);\r\n\t\t},\r\n\t},\r\n\thoeenhero: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('HoeenHero')}|A storm is brewing...`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('HoeenHero')}|The eye of the hurricane provides a brief respite from the storm.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('HoeenHero')}|All storms eventually disipate.`);\r\n\t\t},\r\n\t},\r\n\thubriz: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hubriz')}|Free hugs!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hubriz')}|The soil's pH level is too high. I'm out!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hubriz')}|Delicate Flower Quest failed...`);\r\n\t\t},\r\n\t},\r\n\thydro: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|Person reading this is a qt nerd and there is absolutely NOTHING u can do about it :)`);\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\tthis.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|brb, taking a break from ur nerdiness`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|RUUUUUDEEE`);\r\n\t\t},\r\n\t},\r\n\tinactive: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Inactive')}|Are you my nightmare? Or am I yours?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Inactive')}|This is not the end...`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Inactive')}|/me turns to stone and crumbles`);\r\n\t\t},\r\n\t},\r\n\tinstructuser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|lets drink to a great time!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Swagn')}|Hey, instruct. Here's those 15,000 walls of text you ordered. :3`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|ya know, why __do__ you always flood my dms?`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|whatever im just gonna go get some more coke`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|wait did we run out of coca-cola?`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|laaaaaaaaaaame`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|yall suck im going home`);\r\n\t\t},\r\n\t\tinnateName: \"Last Laugh\",\r\n\t\tdesc: \"Upon fainting to an opponent's direct attack, this Pokemon deals damage to all Pokemon that have made contact with it equal to 50% of their max HP. This damage cannot KO Pokemon.\",\r\n\t\tshortDesc: \"Upon foe KOing user, deal 50% of their max HP to all foes that this Pokemon contacted.\",\r\n\t\t// Innate\r\n\t\tonSourceHit(target, source, move) {\r\n\t\t\tif (source.illusion) return;\r\n\t\t\tif (!move || !target) return;\r\n\t\t\tif (target !== source && move.category !== 'Status') {\r\n\t\t\t\tif (move.flags['contact']) {\r\n\t\t\t\t\tif (!target.m.marked) this.add('-message', `${target.name} was marked by an unknown being...`);\r\n\t\t\t\t\ttarget.m.marked = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDamagingHit(damage, target, source, move) {\r\n\t\t\tif (target.illusion) return;\r\n\t\t\tif (this.checkMoveMakesContact(move, source, target)) {\r\n\t\t\t\tif (!source.m.marked) this.add('-message', `${source.name} was marked by an unknown being...`);\r\n\t\t\t\tsource.m.marked = true;\r\n\t\t\t}\r\n\t\t\tif (!target.hp) {\r\n\t\t\t\tfor (const foe of source.side.pokemon) {\r\n\t\t\t\t\tif (foe.fainted || !foe.hp) continue;\r\n\t\t\t\t\tif (!foe.m.marked) continue;\r\n\t\t\t\t\tthis.add('-activate', target, 'ability: Last Laugh');\r\n\t\t\t\t\tlet collateral = this.clampIntRange(foe.baseMaxhp / 2, 1);\r\n\t\t\t\t\tthis.add('-message', `${foe.name} became insane and attacked themselves!`);\r\n\t\t\t\t\tif (collateral >= foe.hp) collateral = foe.hp - 1;\r\n\t\t\t\t\tfoe.hp = foe.hp - collateral;\r\n\t\t\t\t\tif (foe === source) {\r\n\t\t\t\t\t\tthis.add('-damage', foe, foe.getHealth);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tiyarito: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Iyarito')}|Madre de Dios, \u00A1es el Pollo Diablo!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Iyarito')}|Well, you're not taking me without a fight!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Iyarito')}|RIP Patrona`);\r\n\t\t},\r\n\t},\r\n\tjett: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|It's a good day for a hunt.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|I'll be back for more.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|They got lucky.`);\r\n\t\t},\r\n\t},\r\n\tjho: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jho')}|Hey there party people`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jho')}|The Terminator(1984), 00:57:10`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jho')}|Unfortunately, CAP no longer accepts custom elements`);\r\n\t\t},\r\n\t},\r\n\tjordy: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jordy')}|I heard there's a badge here. Please give it to me immediately.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jordy')}|Au Revoir. Was that right?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jordy')}|hjb`);\r\n\t\t},\r\n\t},\r\n\tkaijubunny: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kaiju Bunny')}|I heard SOMEONE wasn't getting enough affection! \uFFE3( \u00D2\u3145\u00D3)\uFFE3`);\r\n\t\t\tif (source.species.id !== 'lopunnymega' || source.illusion) return;\r\n\t\t\tthis.add('-start', source, 'typechange', source.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kaiju Bunny')}|Brb, need more coffee \uFFE3( =\u3145=)\uFFE3`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kaiju Bunny')}|Wow, okay, r00d \uFFE3(\u0CA5\u3145\u0CA5)\uFFE3`);\r\n\t\t},\r\n\t},\r\n\tkalalokki: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(\u2022_\u2022)`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|( \u2022_\u2022)>\u2310\u25A0-\u25A0`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(\u2310\u25A0_\u25A0)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(\u2310\u25A0_\u25A0)`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|( \u2022_\u2022)>\u2310\u25A0-\u25A0`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(x_x)`);\r\n\t\t},\r\n\t\tinnateName: \"Sturdy\",\r\n\t\tshortDesc: \"If this Pokemon is at full HP, it survives one hit with at least 1 HP. Immune to OHKO.\",\r\n\t\t// Sturdy Innate\r\n\t\tonTryHit(pokemon, target, move) {\r\n\t\t\tif (target.illusion) return;\r\n\t\t\tif (move.ohko) {\r\n\t\t\t\tthis.add('-immune', pokemon, '[from] ability: Sturdy');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDamagePriority: -100,\r\n\t\tonDamage(damage, target, source, effect) {\r\n\t\t\tif (target.illusion) return;\r\n\t\t\tif (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') {\r\n\t\t\t\tthis.add('-ability', target, 'Sturdy');\r\n\t\t\t\treturn target.hp - 1;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tkennedy: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kennedy')}|up the reds`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kennedy')}|brb Jayi is PMing me (again) -_-`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kennedy')}|I'm not meant to score goals anyway, I'm a defensive striker.`);\r\n\t\t},\r\n\t},\r\n\tkev: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kev')}|Sorry for raining on your parade`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kev')}|Rain, rain, go away, come again another day`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kev')}|I guess I'm all washed up...`);\r\n\t\t},\r\n\t},\r\n\tkingbaruk: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kingbaruk')}|:cute:`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kingbaruk')}|//none`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kingbaruk')}|Fijne avond nog`);\r\n\t\t},\r\n\t},\r\n\tkingswordyt: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('KingSwordYT')}|Mucho texto`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('KingSwordYT')}|Hasta la pr\u00F3ximaaaa`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('KingSwordYT')}|**__Se anula el host__**`);\r\n\t\t},\r\n\t},\r\n\tkipkluif: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kipkluif')}|Please play LCUU, it's fun`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kipkluif')}| /teleport`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kipkluif')}|I've failed you.. I pray you hurry.. with those reinforcments.. you promised..`);\r\n\t\t},\r\n\t},\r\n\tkris: {\r\n\t\tinnateName: \"phuck\",\r\n\t\tdesc: \"If this Pokemon is an Unown forme, it is immune to indirect damage and transforms into a different Unown letter forme, aside from ! and ?, at the end of each turn.\",\r\n\t\tshortDesc: \"Unown: Magic Guard + change letter every turn.\",\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tconst foeName = source.side.foe.active[0].illusion ?\r\n\t\t\t\tsource.side.foe.active[0].illusion.name : source.side.foe.active[0].name;\r\n\t\t\tif (foeName === 'Aeonic' || source.side.foe.name === 'Aeonic') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|HAPPY BIRTHDAY AEONIC!!!!`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|hi ${foeName}`);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSwitchOut(source) {\r\n\t\t\tconst foeName = source.side.foe.active[0].illusion ?\r\n\t\t\t\tsource.side.foe.active[0].illusion.name : source.side.foe.active[0].name;\r\n\t\t\tif (foeName === 'Aeonic' || source.side.foe.name === 'Aeonic') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|HAPPY BIRTHDAY AEONIC!!!!`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|bye ${foeName}`);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFaint(target) {\r\n\t\t\tconst foeName = target.illusion ?\r\n\t\t\t\ttarget.illusion.name : target.name;\r\n\t\t\tif (foeName === 'Aeonic' || target.side.name === 'Aeonic') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|HAPPY BIRTHDAY AEONIC!!!!`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|Fortnite Battle Royale`);\r\n\t\t\t}\r\n\t\t},\r\n\t\t// phuck innate\r\n\t\tonDamage(damage, target, source, effect) { // Magic Guard\r\n\t\t\tif (effect.id === 'heavyhailstorm') return;\r\n\t\t\tif (target.illusion) return;\r\n\t\t\tif (!target.species.id.includes('unown')) return;\r\n\t\t\tif (effect.effectType !== 'Move') {\r\n\t\t\t\tif (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonResidual(pokemon) {\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\tif (!pokemon.species.id.includes('unown')) return;\r\n\t\t\t// So this doesn't activate upon switching in\r\n\t\t\tif (pokemon.activeTurns < 1) return;\r\n\t\t\tconst unownLetters = 'abcdefghijklmnopgrstuvwxyz'.split('');\r\n\t\t\tconst currentFormeID = this.toID(pokemon.set.species);\r\n\t\t\tconst currentLetter = currentFormeID.charAt(5) || 'a';\r\n\t\t\tconst chosenLetter = this.sample(unownLetters.filter(letter => letter !== currentLetter));\r\n\t\t\t// Change is permanent so when you switch out you keep the letter\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|watch this`);\r\n\t\t\tif (chosenLetter === 'w') {\r\n\t\t\t\tthis.add('-activate', pokemon, 'ability: phuck');\r\n\t\t\t\tpokemon.formeChange(`unownw`, this.effect, true);\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|W? More like L`);\r\n\t\t\t\tthis.add('-activate', pokemon, 'ability: phuck');\r\n\t\t\t\tpokemon.formeChange(`unownl`, this.effect, true);\r\n\t\t\t\tthis.hint(`There are no W Pokemon that work with Kris's signature move, so we're counting this as a loss`);\r\n\t\t\t} else if (chosenLetter === 'u') {\r\n\t\t\t\tthis.add('-activate', pokemon, 'ability: phuck');\r\n\t\t\t\tpokemon.formeChange(`unownu`, this.effect, true);\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|U? I'm already an Unown, no`);\r\n\t\t\t\tthis.add('-activate', pokemon, 'ability: phuck');\r\n\t\t\t\tconst chosenLetter2 = this.sample(unownLetters.filter(letter => letter !== 'u' && letter !== 'w'));\r\n\t\t\t\tpokemon.formeChange(`unown${chosenLetter2}`, this.effect, true);\r\n\t\t\t\tthis.hint(`There are no U Pokemon that work with Kris's signature move, so we're counting this as a loss`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-activate', pokemon, 'ability: phuck');\r\n\t\t\t\tpokemon.formeChange(`unown${chosenLetter === 'a' ? '' : chosenLetter}`, this.effect, true);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tlamp: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lamp')}|DUDE HI ${pokemon.side.foe.name} (:`);\r\n\t\t},\r\n\t\tonSwitchOut(pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lamp')}|bye ${pokemon.side.foe.name} :)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lamp')}|no u`);\r\n\t\t},\r\n\t},\r\n\tlionyx: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lionyx')}|Hi, this is ps-chan, how may I help you, user-kun? (\uFF61\u25D5\u203F\u203F\u25D5\uFF61)`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lionyx')}|Teclis au secours`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lionyx')}|The cold never bothered me anyway...`);\r\n\t\t},\r\n\t},\r\n\tlitteleven: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Litt\u2665Eleven')}|The coin is flipped, what follows is destiny alone.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Litt\u2665Eleven')}|Looks like my business is finished here... for now.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Litt\u2665Eleven')}|Perhaps, coin tossing isn't the optimal way to win a war...`);\r\n\t\t},\r\n\t},\r\n\tlunalauser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lunala')}|o bella`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lunala')}|Condivido schermo cosi' guardiamo i tre porcellini?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lunala')}|BE... Ok mejo chiudere gioco... vedo documentario su Bibbia`);\r\n\t\t},\r\n\t},\r\n\tmadmonty: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mad Monty \u00BE\u00B0')}|Ah, the sweet smell of rain... Oh! Hi there!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mad Monty \u00BE\u00B0')}|Hey, I was enjoying the weather! Awww...`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mad Monty \u00BE\u00B0')}|Nooo, if I go, who will stop the llamas?`);\r\n\t\t},\r\n\t},\r\n\tmajorbowman: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('MajorBowman')}|Aaaand Cracktion!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('MajorBowman')}|This isn't Maury Povich!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('MajorBowman')}|Never loved ya.`);\r\n\t\t},\r\n\t},\r\n\tmarshmallon: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Marshmallon')}|I'm hungry. Are you edible? c:`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Marshmallon')}|RAWWWR`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Marshmallon')}|I'm still hungry. rawr. :c`);\r\n\t\t},\r\n\t},\r\n\tmeicoo: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|cool quiz`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|/leavehunt`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|/endhunt`);\r\n\t\t},\r\n\t},\r\n\tmitsuki: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mitsuki')}|alguem quer batalha?????`);\r\n\t\t},\r\n\t\tonSwitchOut(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mitsuki')}|You're weak, ${source.side.foe.name}. Why? Because you lack... hatred.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mitsuki')}|THIS WORLD SHALL KNOW P A I N`);\r\n\t\t},\r\n\t},\r\n\tn10sit: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('n10siT')}|Heheheh... were you surprised?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('n10siT')}|Heheheh... did I scare you?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('n10siT')}|Hoopa never saw one of those!`);\r\n\t\t},\r\n\t},\r\n\tnaziel: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Naziel')}|ay ola soy nasieeeeeeel`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Naziel')}|YAY, I WILL NOT DIE THIS TIME`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Naziel')}|Toy xikito no puedo ;-;`);\r\n\t\t},\r\n\t},\r\n\tnol: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Nol')}|What's up nerds`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Nol')}|cya nerds later`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Nol')}|nerd`);\r\n\t\t},\r\n\t\tinnateName: \"RSUA\",\r\n\t\tshortDesc: \"+1 priority to status moves. 1.5x Defense and Special Defense.\",\r\n\t\t// Innate Prankster and Eviolite\r\n\t\tonModifyPriority(priority, pokemon, target, move) {\r\n\t\t\tif (move?.category === 'Status') {\r\n\t\t\t\tmove.pranksterBoosted = true;\r\n\t\t\t\treturn priority + 1;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifyDefPriority: 2,\r\n\t\tonModifyDef(def, pokemon) {\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t\tonModifySpDPriority: 2,\r\n\t\tonModifySpD(spd, pokemon) {\r\n\t\t\tif (pokemon.illusion) return;\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t},\r\n\tnotater517: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|nyaa~... I mean, 'tis a swell day to twirl one's mustache, isn't it?!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|/me corrupt trivia noises`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|This is probably a good time to fix my sleep schedule`);\r\n\t\t},\r\n\t},\r\n\tnui: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('nui')}|/html `);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('nui')}|/html `);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('nui')}|/html `);\r\n\t\t},\r\n\t},\r\n\toverneat: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Overneat')}|Lets end this ${source.side.foe.name}!!`);\r\n\t\t\tif (source.species.id !== 'absolmega' || source.illusion) return;\r\n\t\t\tthis.add('-start', source, 'typechange', source.types.join('/'), '[silent]');\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Overneat')}|I can do better!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Overneat')}|I was to cocky...`);\r\n\t\t},\r\n\t},\r\n\tom: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|What's Up Gamers`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|Let me just ${this.sample(['host murder for the 100th time', 'clean out scum zzz', 'ladder mnm rq'])}`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|ugh, I ${this.sample(['rolled a 1, damnit.', 'got killed night 1, seriously?', 'got v-create\\'d by fucking dragapult lmaoo'])}`);\r\n\t\t},\r\n\t},\r\n\tpants: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|neat`);\r\n\t\t},\r\n\t\tonSwitchOut(source) {\r\n\t\t\tif (source.side.sideConditions.givewistfulthinking) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|brb contemplating things`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|brb dying a little`);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|how do you even knock out something that's already dead? i call bs`);\r\n\t\t},\r\n\t},\r\n\tparadise: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Paradise \u2571\u2572\u263C')}|You ever notice that the first thing a PS tryhard does is put their PS auth in their smogon signature?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Paradise \u2571\u2572\u263C')}|Pokemon Showdown copypastas have to be among the worst I've seen on any website. People spam garbage over and over until eventually the mods get fed up and clamp down on spam. I don't blame them for it. Have you ever seen a copypasta fail as hard as the dead memes on this website? There are mods on here who still think that \"Harambe\" and \"Damn Daniel\" are the peak of comedy. Not to mention that there are rooms on here that don't even talk about pokemon lol. Yeah, I don't see this website lasting more than 2 years, I'd suggest becoming a mod somewhere else.`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Paradise \u2571\u2572\u263C')}|Paradise has been kicked, not banned, therefore you could still potentially invite them back. However, do not do this @${pokemon.side.name}, unless of course, you want to be banned too, because if you invite them back you and Paradise will both be banned.`);\r\n\t\t},\r\n\t},\r\n\tpartman: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|${this.sample([`OMA HI ${source.side.name.toUpperCase()} BIG FAN`, `HYDRO IS A NERD`, `Greetings, today we are all gathered here to pay respects to - wait, this is only ${source.side.foe.name}'s funeral. Never mind.`, `__I'm on fiiiiiiiiiiire__`, `/me hugs`, `A SACRIFICE FOR SNOM`, `${source.side.name} more like nerd`, `NER`])}`);\r\n\t\t},\r\n\t\tonSwitchOut(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|Hi ${source.side.name}, I'm PartMan!`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|Hi PartMan, I'm PartMan!`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|Hi PartMan, I'm PartMan!`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|/log PartMan was muted by Hydro for 7 minutes. (flood)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|${this.sample(['B-booli. >.<', 'Remember to dab on iph', 'Excuse me what', 'RUDE', ':pout:', '/html '])}`);\r\n\t\t},\r\n\t},\r\n\tpeapodc: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('peapod c')}|/me sprints into the room`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('peapod c')}|Must maintain m o m e n t u m`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('peapod c')}|They say sleep is the cousin of death \u2014 but even ghosts need to sleep!`);\r\n\t\t},\r\n\t},\r\n\tperishsonguser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\uFE35 \u253B\u2501\u253B`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|\u252C\u2500\u2500\u252C\u25E1\uFF89(\u00B0 -\u00B0\uFF89)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|Thanks for coming to my TED talk.`);\r\n\t\t},\r\n\t},\r\n\tphiwings99: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('phiwings99')}|Pick.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('phiwings99')}|I'm boated.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('phiwings99')}|God, Nalei is fucking terrible at this game.`);\r\n\t\t},\r\n\t},\r\n\tpiloswinegripado: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('piloswine gripado')}|Suave?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('piloswine gripado')}|cya frend :)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('piloswine gripado')}|This was lame :/`);\r\n\t\t},\r\n\t},\r\n\tpirateprincess: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|Ahoy! o/`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|brb making tea`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|I failed my death save`);\r\n\t\t},\r\n\t\tonHit(target, source, move) {\r\n\t\t\tif (move?.effectType === 'Move' && target.getMoveHitData(move).crit) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|NATURAL 20!!!`);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tpsynergy: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Psynergy')}|Will you survive?`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Psynergy')}|yadon moment`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Psynergy')}|oh`);\r\n\t\t},\r\n\t},\r\n\tptoad: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('ptoad')}|I'm ptoad.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('ptoad')}|Bye, ribbitch!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('ptoad')}|OKKKK DUUUDE`);\r\n\t\t},\r\n\t\tinnateName: \"Sticky Hold\",\r\n\t\tshortDesc: \"This Pokemon cannot lose its held item due to another Pokemon's attack.\",\r\n\t\t// Sticky Hold Innate\r\n\t\tonTakeItem(item, pokemon, source) {\r\n\t\t\tif (this.suppressingAbility(pokemon) || !pokemon.hp || pokemon.item === 'stickybarb') return;\r\n\t\t\tif (!this.activeMove) throw new Error(\"Battle.activeMove is null\");\r\n\t\t\tif ((source && source !== pokemon) || this.activeMove.id === 'knockoff') {\r\n\t\t\t\tthis.add('-activate', pokemon, 'ability: Sticky Hold');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\trabia: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rabia')}|eternally`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rabia')}|rabia`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rabia')}|im top 500 in relevant tiers and lead gp, i have 8 badges, im fine, gg`);\r\n\t\t},\r\n\t},\r\n\trach: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rach')}|Hel-lo`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rach')}|I was doing better alone`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rach')}|I'm all good already, so moved on, it's scary`);\r\n\t\t},\r\n\t},\r\n\trageuser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rage')}|/html `);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rage')}|im off, cya lads`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rage')}|/me quits`);\r\n\t\t},\r\n\t},\r\n\traihankibana: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Hi gm`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Ight Imma head out`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Grr bork bork :(`);\r\n\t\t},\r\n\t},\r\n\trajshoot: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raj.Shoot')}|Plaza Power!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raj.Shoot')}|We'll be back!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raj.Shoot')}|You'll join me in the shadow realm soon....`);\r\n\t\t},\r\n\t},\r\n\transei: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Ransei')}|Sup! This is Gen 8 so imma run an Eternamax set. Best of luck. You\u2019ll need it :^)`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tconst target = pokemon.side.foe.active[0];\r\n\t\t\tif (!target || target.fainted || target.hp <= 0) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Ransei')}|Ahah yes you got rekt! Welcome to Hackmons! gg m8!`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Ransei')}|ripsei... Ok look you might\u2019ve won this time but I kid you not you\u2019re losing next game!`);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\travioliqueen: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('RavioliQueen')}|The Noodle Noble has Arrived!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('RavioliQueen')}|Time to spaghett out of here!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('RavioliQueen')}|This is impastable!`);\r\n\t\t},\r\n\t\tinnateName: \"Pitch Black Witch\",\r\n\t\tdesc: \"When this Pokemon sets or switches into Pitch Black errain, its Special Attack and Special Defense are boosted by 1 stage. If this Pokemon gets hit while Pitch Black Terrain is up, it gets +1 speed\",\r\n\t\tshortDesc: \"Pitch Black Terrain: Calm Mind on switch-in, +1 Spe when attacked.\",\r\n\t\t// Coded in the terrain itself\r\n\t},\r\n\trobb576: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(target, pokemon) {\r\n\t\t\tif (pokemon.side.pokemonLeft === 1) {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|This is our last stand. Give it everything you got ${pokemon.side.name}!`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|1, 2, 3, 4, dunno how to count no more!`);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|5, 7, 6, I will be right back into the mix!`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tif (pokemon.species.name === \"Necrozma-Ultra\") {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|gg better luck next time. Sorry I couldn't handle them all :^(`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|8, 9, 10, it has been a pleasure man!`);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tsectonia: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|I love one (1) queen bee`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|My search for my lost queen continues....`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|NOOOOOO NOT THE JELLY BABY`);\r\n\t\t},\r\n\t},\r\n\tsegmr: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|*awakens conquerors haki* Greetings.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|Lemme show you this`);\r\n\t\t\tthis.add(`l|Segmr`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tconst name = pokemon.side.foe.active[0].illusion ?\r\n\t\t\t\tpokemon.side.foe.active[0].illusion.name : pokemon.side.foe.active[0].name;\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|I'm sorry ${name} but could you please stop talking to me?`);\r\n\t\t},\r\n\t},\r\n\tsejesensei: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|yoyo, what\u2019ve you been reading lately`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|bbl, gonna go read some manga`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|B-but, this didn\u2019t happen in the manga\u2026`);\r\n\t\t},\r\n\t},\r\n\tseso: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|I have good spacial awareness, and I'm pretty comfortable with a sword.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|In the blink of an eye.`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|I feel just, you know, defeated.`);\r\n\t\t},\r\n\t},\r\n\tshadecession: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Shadecession')}|Better put on my Shadecessions`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Shadecession')}|\u2310\u25A0_\u25A0`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Shadecession')}|ah, gg fam`);\r\n\t\t},\r\n\t},\r\n\tsoftflex: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Soft Flex')}|:]`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Soft Flex')}|:[`);\r\n\t\t},\r\n\t},\r\n\tspandan: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Spandan')}|Mareanie!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Spandan')}|You can't end this toxic relationship just like that!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Spandan')}|You didnt do shit. I coded myself to faint.`);\r\n\t\t},\r\n\t},\r\n\tstruchni: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|~tt newgame`);\r\n\t\t},\r\n\t\tonSwitchOut(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|~tt endgame`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|**selfveto**`);\r\n\t\t},\r\n\t},\r\n\tteclis: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Teclis')}|Fire at will!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Teclis')}|A spark remains...`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Teclis')}|You set my soul on fire!`);\r\n\t\t},\r\n\t},\r\n\ttemp: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('temp')}|hi, i'm here to drop dracos`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('temp')}|how did I not win yet`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('temp')}|oh I died`);\r\n\t\t},\r\n\t},\r\n\ttheimmortal: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tconst foe = source.side.foe.active[0];\r\n\t\t\tconst foeName = foe.illusion ? foe.illusion.name : foe.name;\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('The Immortal')}|${!foe || foe.fainted || foe.hp <= 0 ? 'hi' : foeName}`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('The Immortal')}|ok`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('The Immortal')}|ban stall`);\r\n\t\t},\r\n\t},\r\n\tthewaffleman: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('thewaffleman')}|Whats Good Youtube its your boy thewaffleman`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('thewaffleman')}|Never Gonna Give You Up`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('thewaffleman')}|coyg`);\r\n\t\t},\r\n\t},\r\n\ttiki: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|just tiki.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|/html `);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|aksfgkjag o k`);\r\n\t\t},\r\n\t},\r\n\ttraceuser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('trace')}|Daishouri!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('trace')}|\u00AF\\\\_(\u30C4)_/\u00AF`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('trace')}|sucks to sucks`);\r\n\t\t},\r\n\t},\r\n\ttrickster: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Trickster')}|(\u00A4\uFE4F\u00A4)`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Trickster')}|(\uFE36\uFE39\uFE3A)`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Trickster')}|(\u0CA5\uFE4F\u0CA5)`);\r\n\t\t},\r\n\t},\r\n\tvexen: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Vexen')}|Most unlucky for you!`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Vexen')}|brb reading Bleach`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Vexen')}|Wait this wasn't supposed to happen`);\r\n\t\t},\r\n\t},\r\n\tvivalospride: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vivalospride')}|hola mi amore`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vivalospride')}|no hablo espa\u00F1ol`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vivalospride')}|classic honestly`);\r\n\t\t},\r\n\t},\r\n\tvolco: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|/me loud controller noises`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|/me controller clicking fades`);\r\n\t\t},\r\n\t\tonFaint(source, target, effect) {\r\n\t\t\tif (effect?.id === 'glitchexploiting') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|Dammit, time for a reset.`);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|Looks like the game fro-`);\r\n\t\t\tthis.add(`raw|
This Pokemon Showdown battle has frozen!
Don't worry, we're working on fixing it, so just carry on like you never saw this.
(Do not report this, this is intended.)
`);\r\n\t\t},\r\n\t},\r\n\tvooper: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vooper')}|${this.sample(['Paws out, claws out!', 'Ready for the prowl!'])}`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vooper')}|Must... eat... bamboo...`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vooper')}|I guess Kung Fu isn't for everyone...`);\r\n\t\t},\r\n\t},\r\n\tyuki: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(target, pokemon) {\r\n\t\t\tlet bst = 0;\r\n\t\t\tfor (const stat of Object.values(pokemon.species.baseStats)) {\r\n\t\t\t\tbst += stat;\r\n\t\t\t}\r\n\t\t\tlet targetBst = 0;\r\n\t\t\tfor (const stat of Object.values(target.species.baseStats)) {\r\n\t\t\t\ttargetBst += stat;\r\n\t\t\t}\r\n\t\t\tlet message: string;\r\n\t\t\tif (bst > targetBst) {\r\n\t\t\t\tmessage = 'You dare challenge me!?';\r\n\t\t\t} else {\r\n\t\t\t\tmessage = 'Sometimes, you go for it';\r\n\t\t\t}\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('yuki')}|${message}`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('yuki')}|Catch me if you can!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('yuki')}|You'll never extinguish our hopes!`);\r\n\t\t},\r\n\t},\r\n\tzalm: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|<(:O)000>`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|Run for the hills!`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|Woah`);\r\n\t\t},\r\n\t},\r\n\tzarel: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zarel')}|the melo-p represents PS's battles, and the melo-a represents PS's chatrooms`);\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zarel')}|THIS melo-a represents kicking your ass, though`);\r\n\t\t},\r\n\t},\r\n\tzodiax: {\r\n\t\tnoCopy: true,\r\n\t\tonStart(source) {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|Zodiax is here to Zodihax`);\r\n\r\n\t\t\t// Easter Egg\r\n\t\t\tconst activeMon = this.toID(\r\n\t\t\t\tsource.side.foe.active[0].illusion ? source.side.foe.active[0].illusion.name : source.side.foe.active[0].name\r\n\t\t\t);\r\n\t\t\tif (activeMon === 'aeonic') {\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|Happy Birthday Aeonic`);\r\n\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|THIS JOKE IS AS BORING AS YOU ARE`);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|Don't worry I'll be back again`);\r\n\t\t},\r\n\t\tonFaint(pokemon) {\r\n\t\t\tconst name = pokemon.side.foe.name;\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|${name}, Why would you hurt this poor little pompombirb :(`);\r\n\t\t},\r\n\t},\r\n\tzyguser: {\r\n\t\tnoCopy: true,\r\n\t\tonStart() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zyg')}|Free Swirlyder.`);\r\n\t\t},\r\n\t\tonSwitchOut() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zyg')}|/me sighs... what is there to say?`);\r\n\t\t},\r\n\t\tonFaint() {\r\n\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zyg')}|At least I have a tier.`);\r\n\t\t},\r\n\t},\r\n\t// Heavy Hailstorm status support for Alpha\r\n\theavyhailstorm: {\r\n\t\tname: 'HeavyHailstorm',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 0,\r\n\t\tonTryMovePriority: 1,\r\n\t\tonTryMove(attacker, defender, move) {\r\n\t\t\tif (move.type === 'Steel' && move.category !== 'Status') {\r\n\t\t\t\tthis.debug('Heavy Hailstorm Steel suppress');\r\n\t\t\t\tthis.add('-message', 'The hail suppressed the move!');\r\n\t\t\t\tthis.add('-fail', attacker, move, '[from] Heavy Hailstorm');\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonWeatherModifyDamage(damage, attacker, defender, move) {\r\n\t\t\tif (move.type === 'Ice') {\r\n\t\t\t\tthis.debug('Heavy Hailstorm ice boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tthis.add('-weather', 'Hail', '[from] ability: ' + effect, '[of] ' + source);\r\n\t\t\tthis.add('-message', 'The hail became extremely chilling!');\r\n\t\t},\r\n\t\tonModifyMove(move, pokemon, target) {\r\n\t\t\tif (!this.field.isWeather('heavyhailstorm')) return;\r\n\t\t\tif (move.category !== \"Status\") {\r\n\t\t\t\tthis.debug('Adding Heavy Hailstorm freeze');\r\n\t\t\t\tif (!move.secondaries) move.secondaries = [];\r\n\t\t\t\tfor (const secondary of move.secondaries) {\r\n\t\t\t\t\tif (secondary.status === 'frz') return;\r\n\t\t\t\t}\r\n\t\t\t\tmove.secondaries.push({\r\n\t\t\t\t\tchance: 10,\r\n\t\t\t\t\tstatus: 'frz',\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'Hail', '[upkeep]');\r\n\t\t\tif (this.field.isWeather('heavyhailstorm')) this.eachEvent('Weather');\r\n\t\t},\r\n\t\tonWeather(target, source, effect) {\r\n\t\t\tif (target.isAlly(this.effectState.source)) return;\r\n\t\t\t// Hail is stronger from Heavy Hailstorm\r\n\t\t\tif (!target.hasType('Ice')) this.damage(target.baseMaxhp / 8);\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\t// Forever Winter Hail support for piloswine gripado\r\n\twinterhail: {\r\n\t\tname: 'Winter Hail',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 0,\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tthis.add('-weather', 'Hail', '[from] ability: ' + effect, '[of] ' + source);\r\n\t\t\tthis.add('-message', 'It became winter!');\r\n\t\t},\r\n\t\tonModifySpe(spe, pokemon) {\r\n\t\t\tif (!pokemon.hasType('Ice')) return this.chainModify(0.5);\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'Hail', '[upkeep]');\r\n\t\t\tif (this.field.isWeather('winterhail')) this.eachEvent('Weather');\r\n\t\t},\r\n\t\tonWeather(target) {\r\n\t\t\tif (target.hasType('Ice')) return;\r\n\t\t\tthis.damage(target.baseMaxhp / 8);\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\traindrop: {\r\n\t\tname: 'Raindrop',\r\n\t\tnoCopy: true,\r\n\t\tonStart(target) {\r\n\t\t\tthis.effectState.layers = 1;\r\n\t\t\tthis.effectState.def = 0;\r\n\t\t\tthis.effectState.spd = 0;\r\n\t\t\tthis.add('-start', target, 'Raindrop');\r\n\t\t\tthis.add('-message', `${target.name} has ${this.effectState.layers} raindrop(s)!`);\r\n\t\t\tconst [curDef, curSpD] = [target.boosts.def, target.boosts.spd];\r\n\t\t\tthis.boost({def: 1, spd: 1}, target, target);\r\n\t\t\tif (curDef !== target.boosts.def) this.effectState.def--;\r\n\t\t\tif (curSpD !== target.boosts.spd) this.effectState.spd--;\r\n\t\t},\r\n\t\tonRestart(target) {\r\n\t\t\tthis.effectState.layers++;\r\n\t\t\tthis.add('-start', target, 'Raindrop');\r\n\t\t\tthis.add('-message', `${target.name} has ${this.effectState.layers} raindrop(s)!`);\r\n\t\t\tconst curDef = target.boosts.def;\r\n\t\t\tconst curSpD = target.boosts.spd;\r\n\t\t\tthis.boost({def: 1, spd: 1}, target, target);\r\n\t\t\tif (curDef !== target.boosts.def) this.effectState.def--;\r\n\t\t\tif (curSpD !== target.boosts.spd) this.effectState.spd--;\r\n\t\t},\r\n\t\tonEnd(target) {\r\n\t\t\tif (this.effectState.def || this.effectState.spd) {\r\n\t\t\t\tconst boosts: SparseBoostsTable = {};\r\n\t\t\t\tif (this.effectState.def) boosts.def = this.effectState.def;\r\n\t\t\t\tif (this.effectState.spd) boosts.spd = this.effectState.spd;\r\n\t\t\t\tthis.boost(boosts, target, target);\r\n\t\t\t}\r\n\t\t\tthis.add('-end', target, 'Raindrop');\r\n\t\t\tif (this.effectState.def !== this.effectState.layers * -1 || this.effectState.spd !== this.effectState.layers * -1) {\r\n\t\t\t\tthis.hint(\"Raindrop keeps track of how many times it successfully altered each stat individually.\");\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\t// Brilliant Condition for Arcticblast\r\n\tbrilliant: {\r\n\t\tname: 'Brilliant',\r\n\t\tduration: 5,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.add('-start', pokemon, 'Brilliant');\r\n\t\t},\r\n\t\tonModifyAtk() {\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t\tonModifyDef() {\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t\tonModifySpA() {\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t\tonModifySpD() {\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t\tonModifySpe() {\r\n\t\t\treturn this.chainModify(1.5);\r\n\t\t},\r\n\t\tonUpdate(pokemon) {\r\n\t\t\tif (pokemon.volatiles['perishsong']) pokemon.removeVolatile('perishsong');\r\n\t\t},\r\n\t\tonTryAddVolatile(status) {\r\n\t\t\tif (status.id === 'perishsong') return null;\r\n\t\t},\r\n\t\tonResidualOrder: 7,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tthis.heal(pokemon.baseMaxhp / 16);\r\n\t\t},\r\n\t\tonTrapPokemon(pokemon) {\r\n\t\t\tpokemon.tryTrap();\r\n\t\t},\r\n\t\tonDragOut(pokemon) {\r\n\t\t\tthis.add('-activate', pokemon, 'move: Ingrain');\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tonEnd(pokemon) {\r\n\t\t\tthis.add('-end', pokemon, 'Brilliant');\r\n\t\t},\r\n\t},\r\n\t// Custom status for HoeenHero's move\r\n\tstormsurge: {\r\n\t\tname: \"Storm Surge\",\r\n\t\tduration: 2,\r\n\t\tdurationCallback(target, source, effect) {\r\n\t\t\tconst windSpeeds = [65, 85, 95, 115, 140];\r\n\t\t\treturn windSpeeds.indexOf((effect as ActiveMove).basePower) + 2;\r\n\t\t},\r\n\t\tonSideStart(targetSide) {\r\n\t\t\tthis.add('-sidestart', targetSide, 'Storm Surge');\r\n\t\t\tthis.add('-message', `Storm Surge flooded the afflicted side of the battlefield!`);\r\n\t\t},\r\n\t\tonEnd(targetSide) {\r\n\t\t\tthis.add('-sideend', targetSide, 'Storm Surge');\r\n\t\t\tthis.add('-message', 'The Storm Surge receded.');\r\n\t\t},\r\n\t\tonModifySpe() {\r\n\t\t\treturn this.chainModify(0.75);\r\n\t\t},\r\n\t},\r\n\t// Kipkluif, needs to end in mod to not trigger aelita/andrew's effect\r\n\tdegeneratormod: {\r\n\t\tonBeforeSwitchOut(pokemon) {\r\n\t\t\tlet alreadyAdded = false;\r\n\t\t\tfor (const source of this.effectState.sources) {\r\n\t\t\t\tif (!source.hp || source.volatiles['gastroacid']) continue;\r\n\t\t\t\tif (!alreadyAdded) {\r\n\t\t\t\t\tconst foe = pokemon.side.foe.active[0];\r\n\t\t\t\t\tif (foe) this.add('-activate', foe, 'ability: Degenerator');\r\n\t\t\t\t\talreadyAdded = true;\r\n\t\t\t\t}\r\n\t\t\t\tthis.damage((pokemon.baseMaxhp * 33) / 100, pokemon);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\t// For ravioliqueen\r\n\thaunting: {\r\n\t\tname: 'Haunting',\r\n\t\tonTrapPokemon(pokemon) {\r\n\t\t\tpokemon.tryTrap();\r\n\t\t},\r\n\t\tonStart(target) {\r\n\t\t\tthis.add('-start', target, 'Haunting');\r\n\t\t},\r\n\t\tonResidualOrder: 11,\r\n\t\tonResidual(pokemon) {\r\n\t\t\tthis.damage(pokemon.baseMaxhp / 8);\r\n\t\t},\r\n\t\tonEnd(pokemon) {\r\n\t\t\tthis.add('-end', pokemon, 'Haunting');\r\n\t\t},\r\n\t},\r\n\t// for pants' move\r\n\tgivewistfulthinking: {\r\n\t\tduration: 1,\r\n\t\tonSwitchInPriority: 1,\r\n\t\tonSwitchIn(pokemon) {\r\n\t\t\tpokemon.addVolatile('wistfulthinking');\r\n\t\t},\r\n\t},\r\n\t// focus punch effect for litt's move\r\n\tnexthuntcheck: {\r\n\t\tduration: 1,\r\n\t\tonStart(pokemon) {\r\n\t\t\tthis.add('-singleturn', pokemon, 'move: /nexthunt');\r\n\t\t},\r\n\t\tonHit(pokemon, source, move) {\r\n\t\t\tif (move.category !== 'Status') {\r\n\t\t\t\tpokemon.volatiles['nexthuntcheck'].lostFocus = true;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\t// For Gmars' Effects\r\n\tminior: {\r\n\t\tnoCopy: true,\r\n\t\tname: 'Minior',\r\n\t\t// Special Forme Effects\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tif (pokemon.set.shiny) return;\r\n\t\t\tif (pokemon.species.id === \"miniorviolet\") {\r\n\t\t\t\tthis.add(`${getName(\"GMars\")} is thinking...`);\r\n\t\t\t\tif (this.randomChance(1, 3)) {\r\n\t\t\t\t\tthis.add('cant', pokemon, 'ability: Truant');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSwitchIn(pokemon) {\r\n\t\t\tif (pokemon.set.shiny) return;\r\n\t\t\tif (pokemon.species.id === 'miniorindigo') {\r\n\t\t\t\tthis.boost({atk: 1, spa: 1}, pokemon.side.foe.active[0]);\r\n\t\t\t} else if (pokemon.species.id === 'miniorgreen') {\r\n\t\t\t\tthis.boost({atk: 1}, pokemon);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonTryBoost(boost, target, source, effect) {\r\n\t\t\tif (target.set.shiny) return;\r\n\t\t\tif (source && target === source) return;\r\n\t\t\tif (target.species.id !== 'miniorblue') return;\r\n\t\t\tlet showMsg = false;\r\n\t\t\tlet i: BoostID;\r\n\t\t\tfor (i in boost) {\r\n\t\t\t\tif (boost[i]! < 0) {\r\n\t\t\t\t\tdelete boost[i];\r\n\t\t\t\t\tshowMsg = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (showMsg && !(effect as ActiveMove).secondaries && effect.id !== 'octolock') {\r\n\t\t\t\tthis.add('message', 'Minior is translucent!');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFoeTryMove(target, source, move) {\r\n\t\t\tif (move.id === 'haze' && target.species.id === 'miniorblue' && !target.set.shiny) {\r\n\t\t\t\tmove.onHitField = function (this: Battle) {\r\n\t\t\t\t\tthis.add('-clearallboost');\r\n\t\t\t\t\tfor (const pokemon of this.getAllActive()) {\r\n\t\t\t\t\t\tif (pokemon.species.id === 'miniorblue') continue;\r\n\t\t\t\t\t\tpokemon.clearBoosts();\r\n\t\t\t\t\t}\r\n\t\t\t\t}.bind(this);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst dazzlingHolder = this.effectState.target;\r\n\t\t\tif (!dazzlingHolder.set.shiny) return;\r\n\t\t\tif (dazzlingHolder.species.id !== 'minior') return;\r\n\t\t\tconst targetAllExceptions = ['perishsong', 'flowershield', 'rototiller'];\r\n\t\t\tif (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) {\r\n\t\t\t\tthis.attrLastMove('[still]');\r\n\t\t\t\tthis.add('message', 'Minior dazzles!');\r\n\t\t\t\tthis.add('cant', target, move, '[of] ' + dazzlingHolder);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\t// modified paralysis for Inversion Terrain\r\n\tpar: {\r\n\t\tname: 'par',\r\n\t\teffectType: 'Status',\r\n\t\tonStart(target, source, sourceEffect) {\r\n\t\t\tif (sourceEffect && sourceEffect.effectType === 'Ability') {\r\n\t\t\t\tthis.add('-status', target, 'par', '[from] ability: ' + sourceEffect.name, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-status', target, 'par');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonModifySpe(spe, pokemon) {\r\n\t\t\tif (pokemon.hasAbility('quickfeet')) return;\r\n\t\t\tif (this.field.isTerrain('inversionterrain') && pokemon.isGrounded()) {\r\n\t\t\t\treturn this.chainModify(2);\r\n\t\t\t}\r\n\t\t\treturn this.chainModify(0.5);\r\n\t\t},\r\n\t\tonBeforeMovePriority: 1,\r\n\t\tonBeforeMove(pokemon) {\r\n\t\t\tif (this.randomChance(1, 4)) {\r\n\t\t\t\tthis.add('cant', pokemon, 'par');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tbigstormcomingmod: {\r\n\t\tname: \"Big Storm Coming Mod\",\r\n\t\tduration: 1,\r\n\t\tonBasePower() {\r\n\t\t\treturn this.chainModify([1229, 4096]);\r\n\t\t},\r\n\t},\r\n\r\n\t// condition used for brouha's ability\r\n\tturbulence: {\r\n\t\tname: 'Turbulence',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 0,\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tthis.add('-weather', 'DeltaStream', '[from] ability: ' + effect, '[of] ' + source);\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'DeltaStream', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonWeather(target) {\r\n\t\t\tif (!target.hasType('Flying')) this.damage(target.baseMaxhp * 0.06);\r\n\t\t\tif (this.sides.some(side => Object.keys(side.sideConditions).length)) {\r\n\t\t\t\tthis.add(`-message`, 'The Turbulence blew away the hazards on both sides!');\r\n\t\t\t}\r\n\t\t\tif (this.field.terrain) {\r\n\t\t\t\tthis.add(`-message`, 'The Turbulence blew away the terrain!');\r\n\t\t\t}\r\n\t\t\tconst silentRemove = ['reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist'];\r\n\t\t\tfor (const side of this.sides) {\r\n\t\t\t\tconst keys = Object.keys(side.sideConditions);\r\n\t\t\t\tfor (const key of keys) {\r\n\t\t\t\t\tif (key.endsWith('mod') || key.endsWith('clause')) continue;\r\n\t\t\t\t\tside.removeSideCondition(key);\r\n\t\t\t\t\tif (!silentRemove.includes(key)) {\r\n\t\t\t\t\t\tthis.add('-sideend', side, this.dex.conditions.get(key).name, '[from] ability: Turbulence');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.field.clearTerrain();\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\t// Modded rain dance for Kev's ability\r\n\traindance: {\r\n\t\tname: 'RainDance',\r\n\t\teffectType: 'Weather',\r\n\t\tduration: 5,\r\n\t\tdurationCallback(source) {\r\n\t\t\tlet newDuration = 5;\r\n\t\t\tlet boostNum = 0;\r\n\t\t\tif (source?.hasItem('damprock')) {\r\n\t\t\t\tnewDuration = 8;\r\n\t\t\t}\r\n\t\t\tif (source?.hasAbility('kingofatlantis')) {\r\n\t\t\t\tfor (const teammate of source.side.pokemon) {\r\n\t\t\t\t\tif (teammate.hasType('Water') && teammate !== source) {\r\n\t\t\t\t\t\tboostNum++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn newDuration + boostNum;\r\n\t\t},\r\n\t\tonWeatherModifyDamage(damage, attacker, defender, move) {\r\n\t\t\tif (defender.hasItem('utilityumbrella')) return;\r\n\t\t\tif (move.type === 'Water') {\r\n\t\t\t\tthis.debug('rain water boost');\r\n\t\t\t\treturn this.chainModify(1.5);\r\n\t\t\t}\r\n\t\t\tif (move.type === 'Fire') {\r\n\t\t\t\tthis.debug('rain fire suppress');\r\n\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldStart(field, source, effect) {\r\n\t\t\tif (effect?.effectType === 'Ability') {\r\n\t\t\t\tif (this.gen <= 5) this.effectState.duration = 0;\r\n\t\t\t\tthis.add('-weather', 'RainDance', '[from] ability: ' + effect, '[of] ' + source);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add('-weather', 'RainDance');\r\n\t\t\t}\r\n\t\t},\r\n\t\tonFieldResidualOrder: 1,\r\n\t\tonFieldResidual() {\r\n\t\t\tthis.add('-weather', 'RainDance', '[upkeep]');\r\n\t\t\tthis.eachEvent('Weather');\r\n\t\t},\r\n\t\tonFieldEnd() {\r\n\t\t\tthis.add('-weather', 'none');\r\n\t\t},\r\n\t},\r\n\t// Modded hazard moves to fail when Wave terrain is active\r\n\tauroraveil: {\r\n\t\tname: \"Aurora Veil\",\r\n\t\tduration: 5,\r\n\t\tdurationCallback(target, source) {\r\n\t\t\tif (source?.hasItem('lightclay')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonAnyModifyDamage(damage, source, target, move) {\r\n\t\t\tif (target !== source && this.effectState.target.hasAlly(target)) {\r\n\t\t\t\tif ((target.side.getSideCondition('reflect') && this.getCategory(move) === 'Physical') ||\r\n\t\t\t\t\t\t(target.side.getSideCondition('lightscreen') && this.getCategory(move) === 'Special')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\r\n\t\t\t\t\tthis.debug('Aurora Veil weaken');\r\n\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\r\n\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Aurora Veil from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Aurora Veil');\r\n\t\t},\r\n\t\tonSideResidualOrder: 21,\r\n\t\tonSideResidualSubOrder: 1,\r\n\t\tonSideEnd(side) {\r\n\t\t\tthis.add('-sideend', side, 'move: Aurora Veil');\r\n\t\t},\r\n\t},\r\n\tlightscreen: {\r\n\t\tname: \"Light Screen\",\r\n\t\tduration: 5,\r\n\t\tdurationCallback(target, source) {\r\n\t\t\tif (source?.hasItem('lightclay')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonAnyModifyDamage(damage, source, target, move) {\r\n\t\t\tif (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Special') {\r\n\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\r\n\t\t\t\t\tthis.debug('Light Screen weaken');\r\n\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\r\n\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Light Screen from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Light Screen');\r\n\t\t},\r\n\t\tonSideResidualOrder: 21,\r\n\t\tonSideResidualSubOrder: 1,\r\n\t\tonSideEnd(side) {\r\n\t\t\tthis.add('-sideend', side, 'move: Light Screen');\r\n\t\t},\r\n\t},\r\n\tmist: {\r\n\t\tname: \"Mist\",\r\n\t\tduration: 5,\r\n\t\tonTryBoost(boost, target, source, effect) {\r\n\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\tif (source && target !== source) {\r\n\t\t\t\tlet showMsg = false;\r\n\t\t\t\tlet i: BoostID;\r\n\t\t\t\tfor (i in boost) {\r\n\t\t\t\t\tif (boost[i]! < 0) {\r\n\t\t\t\t\t\tdelete boost[i];\r\n\t\t\t\t\t\tshowMsg = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (showMsg && !(effect as ActiveMove).secondaries) {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Mist');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Mist from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Mist');\r\n\t\t},\r\n\t\tonSideResidualOrder: 21,\r\n\t\tonSideResidualSubOrder: 3,\r\n\t\tonSideEnd(side) {\r\n\t\t\tthis.add('-sideend', side, 'Mist');\r\n\t\t},\r\n\t},\r\n\treflect: {\r\n\t\tname: \"Reflect\",\r\n\t\tduration: 5,\r\n\t\tdurationCallback(target, source) {\r\n\t\t\tif (source?.hasItem('lightclay')) {\r\n\t\t\t\treturn 8;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonAnyModifyDamage(damage, source, target, move) {\r\n\t\t\tif (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Physical') {\r\n\t\t\t\tif (!target.getMoveHitData(move).crit && !move.infiltrates) {\r\n\t\t\t\t\tthis.debug('Reflect weaken');\r\n\t\t\t\t\tif (this.activePerHalf > 1) return this.chainModify([2732, 4096]);\r\n\t\t\t\t\treturn this.chainModify(0.5);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Reflect from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'Reflect');\r\n\t\t},\r\n\t\tonSideResidualOrder: 21,\r\n\t\tonSideEnd(side) {\r\n\t\t\tthis.add('-sideend', side, 'Reflect');\r\n\t\t},\r\n\t},\r\n\tsafeguard: {\r\n\t\tname: \"Safeguard\",\r\n\t\tduration: 5,\r\n\t\tdurationCallback(target, source, effect) {\r\n\t\t\tif (source?.hasAbility('persistent')) {\r\n\t\t\t\tthis.add('-activate', source, 'ability: Persistent', effect);\r\n\t\t\t\treturn 7;\r\n\t\t\t}\r\n\t\t\treturn 5;\r\n\t\t},\r\n\t\tonSetStatus(status, target, source, effect) {\r\n\t\t\tif (!effect || !source) return;\r\n\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\tif (target !== source) {\r\n\t\t\t\tthis.debug('interrupting setStatus');\r\n\t\t\t\tif (effect.id === 'synchronize' || (effect.effectType === 'Move' && !effect.secondaries)) {\r\n\t\t\t\t\tthis.add('-activate', target, 'move: Safeguard');\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonTryAddVolatile(status, target, source, effect) {\r\n\t\t\tif (!effect || !source) return;\r\n\t\t\tif (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return;\r\n\t\t\tif ((status.id === 'confusion' || status.id === 'yawn') && target !== source) {\r\n\t\t\t\tif (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Safeguard');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Safeguard from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Safeguard');\r\n\t\t},\r\n\t\tonSideResidualOrder: 21,\r\n\t\tonSideResidualSubOrder: 2,\r\n\t\tonSideEnd(side) {\r\n\t\t\tthis.add('-sideend', side, 'Safeguard');\r\n\t\t},\r\n\t},\r\n\tgmaxsteelsurge: {\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Steel Spikes from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: G-Max Steelsurge');\r\n\t\t},\r\n\t\tonEntryHazard(pokemon) {\r\n\t\t\tif (pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\t// Ice Face and Disguise correctly get typed damage from Stealth Rock\r\n\t\t\t// because Stealth Rock bypasses Substitute.\r\n\t\t\t// They don't get typed damage from Steelsurge because Steelsurge doesn't,\r\n\t\t\t// so we're going to test the damage of a Steel-type Stealth Rock instead.\r\n\t\t\tconst steelHazard = this.dex.getActiveMove('Stealth Rock');\r\n\t\t\tsteelHazard.type = 'Steel';\r\n\t\t\tconst typeMod = this.clampIntRange(pokemon.runEffectiveness(steelHazard), -6, 6);\r\n\t\t\tthis.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8);\r\n\t\t},\r\n\t},\r\n\tspikes: {\r\n\t\tname: \"Spikes\",\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Spikes from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.effectState.layers = 1;\r\n\t\t\tthis.add('-sidestart', side, 'move: Spikes');\r\n\t\t},\r\n\t\tonSideRestart(side) {\r\n\t\t\tif (this.effectState.layers >= 3) return false;\r\n\t\t\tthis.add('-sidestart', side, 'Spikes');\r\n\t\t\tthis.effectState.layers++;\r\n\t\t},\r\n\t\tonEntryHazard(pokemon) {\r\n\t\t\tif (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\tconst damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4\r\n\t\t\tthis.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24);\r\n\t\t},\r\n\t},\r\n\tstealthrock: {\r\n\t\tname: \"Stealth Rock\",\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Stealth Rock from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Stealth Rock');\r\n\t\t},\r\n\t\tonEntryHazard(pokemon) {\r\n\t\t\tif (pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\tconst typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6);\r\n\t\t\tthis.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8);\r\n\t\t},\r\n\t},\r\n\tstickyweb: {\r\n\t\tname: \"Sticky Web\",\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Sticky Web from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Sticky Web');\r\n\t\t},\r\n\t\tonEntryHazard(pokemon) {\r\n\t\t\tif (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return;\r\n\t\t\tthis.add('-activate', pokemon, 'move: Sticky Web');\r\n\t\t\tthis.boost({spe: -1}, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb'));\r\n\t\t},\r\n\t},\r\n\ttoxicspikes: {\r\n\t\tname: \"Toxic Spikes\",\r\n\t\tonSideStart(side) {\r\n\t\t\tif (this.field.isTerrain('waveterrain')) {\r\n\t\t\t\tthis.add('-message', `Wave Terrain prevented Toxic Spikes from starting!`);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tthis.add('-sidestart', side, 'move: Toxic Spikes');\r\n\t\t\tthis.effectState.layers = 1;\r\n\t\t},\r\n\t\tonSideRestart(side) {\r\n\t\t\tif (this.effectState.layers >= 2) return false;\r\n\t\t\tthis.add('-sidestart', side, 'move: Toxic Spikes');\r\n\t\t\tthis.effectState.layers++;\r\n\t\t},\r\n\t\tonEntryHazard(pokemon) {\r\n\t\t\tif (!pokemon.isGrounded()) return;\r\n\t\t\tif (pokemon.hasType('Poison')) {\r\n\t\t\t\tthis.add('-sideend', pokemon.side, 'move: Toxic Spikes', '[of] ' + pokemon);\r\n\t\t\t\tpokemon.side.removeSideCondition('toxicspikes');\r\n\t\t\t} else if (pokemon.hasType('Steel') || pokemon.hasItem('heavydutyboots')) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (this.effectState.layers >= 2) {\r\n\t\t\t\tpokemon.trySetStatus('tox', pokemon.side.foe.active[0]);\r\n\t\t\t} else {\r\n\t\t\t\tpokemon.trySetStatus('psn', pokemon.side.foe.active[0]);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tfrz: {\r\n\t\tinherit: true,\r\n\t\tonHit(target, source, move) {\r\n\t\t\tif (move.thawsTarget || move.type === 'Fire' && move.category !== 'Status') {\r\n\t\t\t\ttarget.cureStatus();\r\n\t\t\t\tif (move.id === 'randomscreaming') {\r\n\t\t\t\t\tthis.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Give me some more paaain, baaaby`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\t// No, you're not dynamaxing.\r\n\tdynamax: {\r\n\t\tinherit: true,\r\n\t\tonStart(pokemon) {\r\n\t\t\tpokemon.removeVolatile('minimize');\r\n\t\t\tpokemon.removeVolatile('substitute');\r\n\t\t\tif (pokemon.volatiles['torment']) {\r\n\t\t\t\tdelete pokemon.volatiles['torment'];\r\n\t\t\t\tthis.add('-end', pokemon, 'Torment', '[silent]');\r\n\t\t\t}\r\n\t\t\tif (['cramorantgulping', 'cramorantgorging'].includes(pokemon.species.id) && !pokemon.transformed) {\r\n\t\t\t\tpokemon.formeChange('cramorant');\r\n\t\t\t}\r\n\t\t\tthis.add('-start', pokemon, 'Dynamax');\r\n\t\t\tif (pokemon.gigantamax) this.add('-formechange', pokemon, pokemon.species.name + '-Gmax');\r\n\t\t\tif (pokemon.baseSpecies.name !== 'Shedinja') {\r\n\t\t\t\t// Changes based on dynamax level, 2 is max (at LVL 10)\r\n\t\t\t\tconst ratio = this.format.id.startsWith('gen8doublesou') ? 1.5 : 2;\r\n\r\n\t\t\t\tpokemon.maxhp = Math.floor(pokemon.maxhp * ratio);\r\n\t\t\t\tpokemon.hp = Math.floor(pokemon.hp * ratio);\r\n\r\n\t\t\t\tthis.add('-heal', pokemon, pokemon.getHealth, '[silent]');\r\n\t\t\t}\r\n\t\t\tthis.add('-message', 'Ok. sure. Dynamax. Just abuse it and win the game already.');\r\n\t\t\t// This is just for fun, as dynamax cannot be in a rated battle.\r\n\t\t\tthis.win(pokemon.side);\r\n\t\t},\r\n\t},\r\n\techoedvoiceclone: {\r\n\t\tduration: 2,\r\n\t\tonFieldStart() {\r\n\t\t\tthis.effectState.multiplier = 1;\r\n\t\t},\r\n\t\tonFieldRestart() {\r\n\t\t\tif (this.effectState.duration !== 2) {\r\n\t\t\t\tthis.effectState.duration = 2;\r\n\t\t\t\tif (this.effectState.multiplier < 5) {\r\n\t\t\t\t\tthis.effectState.multiplier++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n};\r\n"], "mappings": "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", "names": [] }