diff --git a/data/abilities.ts b/data/abilities.ts index 73765b24966e..3a3d5c48bb3f 100644 --- a/data/abilities.ts +++ b/data/abilities.ts @@ -5654,7 +5654,7 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { // GAY triplethreat: { - onModifyMovePriority: -2, + onModifyMovePriority: 0, onModifyMove(move) { if (move.secondaries) { this.debug('halving secondary chance'); @@ -5663,9 +5663,11 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { } } if (move.self?.chance) move.self.chance *= 0.5; - if (!move.multihit && move.basePower > 0) { + if (move.basePower > 0) { + if (!move.multihit) { + move.basePower = this.modify(move.basePower, 1366, 4096); + } move.multihit = 3; - move.basePower = move.basePower * 0.4; } }, name: "Triple Threat", @@ -6552,8 +6554,21 @@ export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { rating: 3, num: -57, }, - hyperbolictime: { - name: "Hyperbolic Time", + timelord: { + onFoeTryMove(target, source, move) { + const targetAllExceptions = ['perishsong', 'flowershield', 'rototiller']; + if (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) { + return; + } + const dazzlingHolder = this.effectState.target; + if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) { + this.attrLastMove('[still]'); + this.add('cant', dazzlingHolder, 'ability: Time Lord', move, '[of] ' + target); + return false; + } + }, + flags: {breakable: 1}, + name: "Time Lord", isNonstandard: "CAP", rating: 4, num: -58, diff --git a/data/mods/gen9vgcgay/learnsets.ts b/data/mods/gen9vgcgay/learnsets.ts index 77fbc6ce5589..a7db076ffed0 100644 --- a/data/mods/gen9vgcgay/learnsets.ts +++ b/data/mods/gen9vgcgay/learnsets.ts @@ -10774,6 +10774,18 @@ export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTab ], "workup": [ "9M" + ], + "thunderouskick": [ + "9M" + ], + "triplekick": [ + "9M" + ], + "tripleaxel": [ + "9M" + ], + "dig": [ + "9M" ] } }, @@ -47248,6 +47260,9 @@ export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTab ], "wonderroom": [ "9M" + ], + "tidyup": [ + "9M" ] } }, @@ -150612,9 +150627,6 @@ export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTab "facade": [ "9M" ], - "fakeout": [ - "9M" - ], "falseswipe": [ "9M" ], diff --git a/data/mods/gen9vgcgay/pokedex.ts b/data/mods/gen9vgcgay/pokedex.ts index 0d9abcd0db34..9873ea87cb0d 100644 --- a/data/mods/gen9vgcgay/pokedex.ts +++ b/data/mods/gen9vgcgay/pokedex.ts @@ -417,11 +417,11 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable ], "baseStats": { "hp": 65, - "atk": 100, - "def": 80, + "atk": 110, + "def": 75, "spa": 50, - "spd": 90, - "spe": 120 + "spd": 85, + "spe": 135 }, "abilities": { "0": "Triple Threat", @@ -672,12 +672,12 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable "Flying" ], "baseStats": { - "hp": 65, - "atk": 110, + "hp": 75, + "atk": 125, "def": 70, "spa": 60, "spd": 60, - "spe": 110 + "spe": 125 }, "abilities": { "0": "Run Away", @@ -10175,9 +10175,9 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable ], "baseStats": { "hp": 75, - "atk": 125, + "atk": 120, "def": 80, - "spa": 60, + "spa": 65, "spd": 100, "spe": 85 }, @@ -11480,11 +11480,11 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable "Dragon" ], "baseStats": { - "hp": 125, - "atk": 73, - "def": 91, + "hp": 115, + "atk": 79, + "def": 93, "spa": 137, - "spd": 89, + "spd": 91, "spe": 75 }, "abilities": { @@ -11818,7 +11818,7 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable }, "abilities": { "0": "Pressure", - "1": "Hyperbolic Time", + "1": "Time Lord", "H": "Telepathy" }, "inherit": true @@ -11838,7 +11838,7 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable }, "abilities": { "0": "Pressure", - "1": "Hyperbolic Time", + "1": "Time Lord", "H": "Telepathy" }, "inherit": true, @@ -12795,11 +12795,11 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable ], "baseStats": { "hp": 78, - "atk": 102, + "atk": 107, "def": 70, - "spa": 92, + "spa": 97, "spd": 75, - "spe": 138 + "spe": 143 }, "abilities": { "0": "Volt Absorb" diff --git a/data/text/abilities.ts b/data/text/abilities.ts index c2ea84258dcf..b84f0cea2618 100644 --- a/data/text/abilities.ts +++ b/data/text/abilities.ts @@ -2271,8 +2271,8 @@ export const AbilitiesText: {[id: IDEntry]: AbilityText} = { // GAY triplethreat: { name: "Triple Threat", - desc: "Moves hit 3 times at 40% power and halved effects.", - shortDesc: "Moves hit 3 times at 40% power and halved effects.", + desc: "Moves hit exactly 3 times at 1/3 power and halved effects.", + shortDesc: "Moves hit exactly 3 times at 1/3 power and halved effects.", }, mindsurfer: { name: "Mind Surfer", @@ -2507,10 +2507,11 @@ export const AbilitiesText: {[id: IDEntry]: AbilityText} = { desc: "User uses Spikes on switch in.", shortDesc: "User uses Spikes on switch in.", }, - hyperbolictime: { - name: "Hyperbolic Time", - desc: "End-of-turn effects happen twice while user is on the field. Does not stack.", - shortDesc: "End-of-turn effects happen twice while user is on the field.", + timelord: { + name: "Time Lord", + desc: "Priority moves used by opposing Pokemon targeting this Pokemon or its allies are prevented from having an effect.", + shortDesc: "This Pokemon and its allies are protected from opposing priority moves.", + block: "#damp", }, megashiftx: { name: "Mega Shift X", diff --git a/sim/battle.ts b/sim/battle.ts index c7d9b5ca997e..c730ab619b58 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -489,14 +489,6 @@ export class Battle { } } this.speedSort(handlers); - let hyperbolicTimeEnabled = false; - for (const side of this.sides) { - for (const active of side.active) { - if (active.hasAbility("Hyperbolic Time")) { - hyperbolicTimeEnabled = true; - } - } - } while (handlers.length) { const handler = handlers[0]; handlers.shift(); @@ -518,12 +510,6 @@ export class Battle { if (handler.callback) { this.singleEvent(handlerEventid, effect, handler.state, handler.effectHolder, null, null, relayVar, handler.callback); } - if (hyperbolicTimeEnabled) { - if (handler.callback) { - this.singleEvent(handlerEventid, effect, handler.state, handler.effectHolder, null, null, relayVar, handler.callback); - } - } - this.faintMessages(); if (this.ended) return; }