diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 32b3d54f302..e9e02ce1876 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -850,9 +850,10 @@ export class FrenzyTag extends BattlerTag { onRemove(pokemon: Pokemon): void { super.onRemove(pokemon); - - if (this.turnCount < 2) { // Only add CONFUSED tag if a disruption occurs on the final confusion-inducing turn of FRENZY - pokemon.addTag(BattlerTagType.CONFUSED, pokemon.randSeedIntRange(2, 4)); + if ([Moves.OUTRAGE, Moves.PETAL_DANCE, Moves.THRASH].includes(this.sourceMove)) { + if (this.turnCount < 2) { // Only add CONFUSED tag if a disruption occurs on the final confusion-inducing turn of FRENZY + pokemon.addTag(BattlerTagType.CONFUSED, pokemon.randSeedIntRange(2, 4)); + } } } } diff --git a/src/data/move.ts b/src/data/move.ts index 3ca672b0a69..1f130798114 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4441,8 +4441,12 @@ export class TypelessAttr extends MoveAttr { } export class BypassRedirectAttr extends MoveAttr { } export class FrenzyAttr extends MoveEffectAttr { - constructor() { + private min: number; + private max: number; + constructor(min: number = 2, max: number = 3) { super(true, MoveEffectTrigger.HIT, false, true); + this.min = min-1; + this.max = max-1; } canApply(user: Pokemon, target: Pokemon, move: Move, args: any[]) { @@ -4455,7 +4459,7 @@ export class FrenzyAttr extends MoveEffectAttr { } if (!user.getTag(BattlerTagType.FRENZY) && !user.getMoveQueue().length) { - const turnCount = user.randSeedIntRange(1, 2); + const turnCount = user.randSeedIntRange(this.min, this.max); new Array(turnCount).fill(null).map(() => user.getMoveQueue().push({ move: move.id, targets: [ target.getBattlerIndex() ], ignorePP: true })); user.addTag(BattlerTagType.FRENZY, turnCount, move.id, user.id); } else { @@ -4476,6 +4480,18 @@ export const frenzyMissFunc: UserMoveConditionFunc = (user: Pokemon, move: Move) return true; }; +export class UproarMessage extends MoveEffectAttr { + constructor() { + super(); + } + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + user.scene.queueMessage(i18next.t("battlerTags:uproarOnAdd", { + pokemonNameWithAffix: getPokemonNameWithAffix(user), + })); + return true; + } +} + export class AddBattlerTagAttr extends MoveEffectAttr { public tagType: BattlerTagType; public turnCountMin: integer; @@ -7442,6 +7458,10 @@ export function initMoves() { .attr(FlinchAttr) .condition(new FirstMoveCondition()), new AttackMove(Moves.UPROAR, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 10, -1, 0, 3) + .attr(UproarMessage) + .attr(FrenzyAttr, 3, 3) + .attr(NoEffectAttr, frenzyMissFunc) + .attr(MissEffectAttr, frenzyMissFunc) .ignoresVirtual() .soundBased() .target(MoveTarget.RANDOM_NEAR_ENEMY) diff --git a/src/locales/de/battler-tags.json b/src/locales/de/battler-tags.json index 2f8a8d0c438..fc604e49e2b 100644 --- a/src/locales/de/battler-tags.json +++ b/src/locales/de/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}} ist nun schwach gegenüber Feuer-Attacken!", "substituteOnAdd": "Ein Delegator von {{pokemonNameWithAffix}} ist erschienen!", "substituteOnHit": "Der Delegator steckt den Schlag für {{pokemonNameWithAffix}} ein!", - "substituteOnRemove": "Der Delegator von {{pokemonNameWithAffix}} hört auf zu wirken!" + "substituteOnRemove": "Der Delegator von {{pokemonNameWithAffix}} hört auf zu wirken!", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/en/battler-tags.json b/src/locales/en/battler-tags.json index b31826b0244..706d7486891 100644 --- a/src/locales/en/battler-tags.json +++ b/src/locales/en/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}} became weaker to fire!", "substituteOnAdd": "{{pokemonNameWithAffix}} put in a substitute!", "substituteOnHit": "The substitute took damage for {{pokemonNameWithAffix}}!", - "substituteOnRemove": "{{pokemonNameWithAffix}}'s substitute faded!" + "substituteOnRemove": "{{pokemonNameWithAffix}}'s substitute faded!", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/es/battler-tags.json b/src/locales/es/battler-tags.json index bb4f0fe6c8a..c0b99470ed8 100644 --- a/src/locales/es/battler-tags.json +++ b/src/locales/es/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "¡{{pokemonNameWithAffix}} se ha vuelto débil ante el fuego!", "substituteOnAdd": "¡{{pokemonNameWithAffix}} creó un sustituto!", "substituteOnHit": "¡El sustituto recibe daño en lugar del {{pokemonNameWithAffix}}!", - "substituteOnRemove": "¡El sustituto del {{pokemonNameWithAffix}} se debilitó!" + "substituteOnRemove": "¡El sustituto del {{pokemonNameWithAffix}} se debilitó!", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/fr/battler-tags.json b/src/locales/fr/battler-tags.json index 4c5c7ea0df6..90213be2fec 100644 --- a/src/locales/fr/battler-tags.json +++ b/src/locales/fr/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}} est maintenant\nvulnérable au feu !", "substituteOnAdd": "{{pokemonNameWithAffix}}\ncrée un clone !", "substituteOnHit": "Le clone subit les dégâts à la place\nde {{pokemonNameWithAffix}} !", - "substituteOnRemove": "Le clone de {{pokemonNameWithAffix}}\ndisparait…" + "substituteOnRemove": "Le clone de {{pokemonNameWithAffix}}\ndisparait…", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/it/battler-tags.json b/src/locales/it/battler-tags.json index 6ab69f4efa2..a268cb0b58d 100644 --- a/src/locales/it/battler-tags.json +++ b/src/locales/it/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}} è diventato vulnerabile\nal tipo Fuoco!", "substituteOnAdd": "Appare un sostituto di {{pokemonNameWithAffix}}!", "substituteOnHit": "Il sostituto viene colpito al posto di {{pokemonNameWithAffix}}!", - "substituteOnRemove": "Il sostituto di {{pokemonNameWithAffix}} svanisce!" + "substituteOnRemove": "Il sostituto di {{pokemonNameWithAffix}} svanisce!", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/ja/battler-tags.json b/src/locales/ja/battler-tags.json index f8c6d44c0b4..dbdcd0a1dd5 100644 --- a/src/locales/ja/battler-tags.json +++ b/src/locales/ja/battler-tags.json @@ -70,5 +70,6 @@ "stockpilingOnAdd": "{{pokemonNameWithAffix}}は {{stockpiledCount}}つ たくわえた!", "disabledOnAdd": "{{pokemonNameWithAffix}}の\n{{moveName}}\nを 封じこめた!", "disabledLapse": "{{pokemonNameWithAffix}}の\nかなしばりが 解けた!", - "tarShotOnAdd": "{{pokemonNameWithAffix}}は ほのおに 弱くなった!" + "tarShotOnAdd": "{{pokemonNameWithAffix}}は ほのおに 弱くなった!", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/ko/battler-tags.json b/src/locales/ko/battler-tags.json index 1cd6c86377e..87cd3d4fa93 100644 --- a/src/locales/ko/battler-tags.json +++ b/src/locales/ko/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}}[[는]] 불꽃에 약해졌다!", "substituteOnAdd": "{{pokemonNameWithAffix}}의\n대타가 나타났다!", "substituteOnHit": "{{pokemonNameWithAffix}}[[를]] 대신하여\n대타가 공격을 받았다!", - "substituteOnRemove": "{{pokemonNameWithAffix}}의\n대타는 사라져 버렸다..." + "substituteOnRemove": "{{pokemonNameWithAffix}}의\n대타는 사라져 버렸다...", + "uproarOnAdd": "{{pokemonNameWithAffix}}[[는]]\n소란을 피우기 시작했다!" } diff --git a/src/locales/pt_BR/battler-tags.json b/src/locales/pt_BR/battler-tags.json index ce645a3d24f..e57171b196b 100644 --- a/src/locales/pt_BR/battler-tags.json +++ b/src/locales/pt_BR/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}} tornou-se mais fraco ao fogo!", "substituteOnAdd": "{{pokemonNameWithAffix}} colocou um substituto!", "substituteOnHit": "O substituto tomou o dano pelo {{pokemonNameWithAffix}}!", - "substituteOnRemove": "O substituto de {{pokemonNameWithAffix}} desbotou!" + "substituteOnRemove": "O substituto de {{pokemonNameWithAffix}} desbotou!", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/zh_CN/battler-tags.json b/src/locales/zh_CN/battler-tags.json index a7859380b7a..4d95fcf7e12 100644 --- a/src/locales/zh_CN/battler-tags.json +++ b/src/locales/zh_CN/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}}\n变得怕火了!", "substituteOnAdd": "{{pokemonNameWithAffix}}的\n替身出现了!", "substituteOnHit": "替身代替{{pokemonNameWithAffix}}\n承受了攻击!", - "substituteOnRemove": "{{pokemonNameWithAffix}}的\n替身消失了……" + "substituteOnRemove": "{{pokemonNameWithAffix}}的\n替身消失了……", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" } diff --git a/src/locales/zh_TW/battler-tags.json b/src/locales/zh_TW/battler-tags.json index 49b19f5efdc..7b9360919d6 100644 --- a/src/locales/zh_TW/battler-tags.json +++ b/src/locales/zh_TW/battler-tags.json @@ -73,5 +73,6 @@ "tarShotOnAdd": "{{pokemonNameWithAffix}}\n變得怕火了!", "substituteOnAdd": "{{pokemonNameWithAffix}}的\n替身出現了!", "substituteOnHit": "替身代替{{pokemonNameWithAffix}}承受了攻擊!", - "substituteOnRemove": "{{pokemonNameWithAffix}}的\n替身消失了……" + "substituteOnRemove": "{{pokemonNameWithAffix}}的\n替身消失了……", + "uproarOnAdd": "{{pokemonNameWithAffix}} caused\nan uproar!" }