From 2ae5722362ebbf6d64d133fbe50c188dce7eec02 Mon Sep 17 00:00:00 2001 From: Luc Date: Tue, 16 Apr 2024 23:16:39 -0400 Subject: [PATCH 1/9] implemented Revelation Dance --- src/data/move.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index 938a911f057..541e8820f61 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2174,6 +2174,22 @@ export class HiddenPowerTypeAttr extends VariableMoveTypeAttr { } } +export class MatchUserTypeAttr extends VariableMoveTypeAttr { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + const type = (args[0] as Utils.IntegerHolder); + + const userTypes = user.getTypes(); + + if (userTypes && userTypes.length > 0) { + type.value = userTypes[0]; + return true; + } + else + return false; + + } +} + export class VariableMoveTypeMultiplierAttr extends MoveAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { return false; @@ -5322,7 +5338,7 @@ export function initMoves() { .unimplemented(), new AttackMove(Moves.REVELATION_DANCE, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 7) .danceMove() - .partial(), + .attr(MatchUserTypeAttr), new AttackMove(Moves.CORE_ENFORCER, Type.DRAGON, MoveCategory.SPECIAL, 100, 100, 10, -1, 0, 7) .target(MoveTarget.ALL_NEAR_ENEMIES) .unimplemented(), From fbbd2ed045fd7665dfe9d494208c89475b226e06 Mon Sep 17 00:00:00 2001 From: Luc Date: Tue, 16 Apr 2024 23:17:47 -0400 Subject: [PATCH 2/9] fixed steam engine activating on all water moves --- src/data/ability.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index e130af716a4..0e06a28e394 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2764,7 +2764,7 @@ export function initAbilities() { .attr(NoTransformAbilityAbAttr), new Ability(Abilities.STALWART, "Stalwart (N)", "Ignores the effects of opposing Pokémon's Abilities and moves that draw in moves.", 8), new Ability(Abilities.STEAM_ENGINE, "Steam Engine", "Boosts the Pokémon's Speed stat drastically if hit by a Fire- or Water-type move.", 8) - .attr(PostDefendStatChangeAbAttr, (target, user, move) => move.type === Type.FIRE || move.type === Type.WATER, BattleStat.SPD, 6), + .attr(PostDefendStatChangeAbAttr, (target, user, move) => (move.type === Type.FIRE || move.type === Type.WATER) && move.category !== MoveCategory.STATUS, BattleStat.SPD, 6), new Ability(Abilities.PUNK_ROCK, "Punk Rock", "Boosts the power of sound-based moves. The Pokémon also takes half the damage from these kinds of moves.", 8) .attr(MovePowerBoostAbAttr, (user, target, move) => move.hasFlag(MoveFlags.SOUND_BASED), 1.3) .attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.hasFlag(MoveFlags.SOUND_BASED), 0.5) From 3766dce68e1ec8e0ee1cc06336b6e54c92a34dda Mon Sep 17 00:00:00 2001 From: Luc Date: Wed, 17 Apr 2024 00:57:18 -0400 Subject: [PATCH 3/9] implemented typeless --- src/data/type.ts | 25 ++++++++++++++++++++++++- src/field/pokemon.ts | 16 ++++++++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/data/type.ts b/src/data/type.ts index fa2b41673cd..f4f86a69f5b 100644 --- a/src/data/type.ts +++ b/src/data/type.ts @@ -18,7 +18,8 @@ export enum Type { DRAGON, DARK, FAIRY, - STELLAR + STELLAR, + TYPELESS }; export type TypeDamageMultiplier = 0 | 0.25 | 0.5 | 1 | 2 | 4; @@ -45,6 +46,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.GHOST: default: @@ -68,6 +70,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ELECTRIC: case Type.ICE: case Type.DRAGON: + case Type.TYPELESS: return 1; case Type.ROCK: case Type.BUG: @@ -93,6 +96,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.BUG: @@ -118,6 +122,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ICE: case Type.DRAGON: case Type.DARK: + case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.POISON: @@ -146,6 +151,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.POISON: case Type.ROCK: @@ -171,6 +177,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.NORMAL: case Type.FLYING: @@ -198,6 +205,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.GROUND: @@ -223,6 +231,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ICE: case Type.DRAGON: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.POISON: case Type.BUG: @@ -242,6 +251,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.WATER: case Type.ELECTRIC: case Type.DARK: + case Type.TYPELESS: return 1; case Type.NORMAL: case Type.FLYING: @@ -273,6 +283,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.PSYCHIC: case Type.DRAGON: case Type.DARK: + case Type.TYPELESS: return 1; case Type.BUG: case Type.STEEL: @@ -301,6 +312,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.STEEL: case Type.FIRE: @@ -327,6 +339,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.GROUND: case Type.WATER: @@ -354,6 +367,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.FLYING: case Type.STEEL: @@ -381,6 +395,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ICE: case Type.DRAGON: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.PSYCHIC: @@ -408,6 +423,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.ICE: return 0.5; @@ -431,6 +447,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.STEEL: case Type.PSYCHIC: case Type.DARK: + case Type.TYPELESS: return 1; case Type.FIRE: case Type.WATER: @@ -458,6 +475,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ELECTRIC: case Type.ICE: case Type.DRAGON: + case Type.TYPELESS: return 1; case Type.GHOST: case Type.DARK: @@ -483,6 +501,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.PSYCHIC: case Type.ICE: case Type.FAIRY: + case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.BUG: @@ -494,6 +513,8 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): } case Type.STELLAR: return 1; + case Type.TYPELESS: + return 1; } } @@ -537,6 +558,8 @@ export function getTypeRgb(type: Type): [ integer, integer, integer ] { return [ 232, 136, 200 ]; case Type.STELLAR: return [ 255, 255, 255 ]; + case Type.TYPELESS: + return [ 104, 160, 144 ]; default: return [ 0, 0, 0 ]; } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 61f1db67243..55245da20fa 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1,5 +1,5 @@ import Phaser from 'phaser'; -import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene'; +import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE,MOVE_OVERRIDE2, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene'; import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info'; import { Moves } from "../data/enums/moves"; import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr } from "../data/move"; @@ -652,8 +652,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { ? this.summonData.moveset : this.moveset; - if (MOVE_OVERRIDE && this.isPlayer()) + if (MOVE_OVERRIDE && this.isPlayer()){ this.moveset[0] = new PokemonMove(MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[MOVE_OVERRIDE].pp)); + this.moveset[1] = new PokemonMove(MOVE_OVERRIDE2, Math.min(this.moveset[1].ppUsed, allMoves[MOVE_OVERRIDE2].pp));} else if (OPP_MOVE_OVERRIDE && !this.isPlayer()) this.moveset[0] = new PokemonMove(OPP_MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[OPP_MOVE_OVERRIDE].pp)); @@ -700,8 +701,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { types.splice(flyingIndex, 1); } - if (!types.length) - types.push(Type.NORMAL); + if (!types.length) // become typeless if no types are present + types.push(Type.TYPELESS); + + if (types.length > 1 && types.includes(Type.TYPELESS)) { // remove typeless if other types are present + const index = types.indexOf(Type.TYPELESS); + if (index !== -1) { + types.splice(index, 1); + } + } return types; } From 1ba35b5c20bfdac808344f5af8805127d46543ad Mon Sep 17 00:00:00 2001 From: Luc Date: Wed, 17 Apr 2024 01:32:02 -0400 Subject: [PATCH 4/9] stellar handling for revelation dance --- src/data/move.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 541e8820f61..ea168618375 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2178,9 +2178,15 @@ export class MatchUserTypeAttr extends VariableMoveTypeAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { const type = (args[0] as Utils.IntegerHolder); - const userTypes = user.getTypes(); + const userTypes = user.getTypes(true); + console.log(userTypes) - if (userTypes && userTypes.length > 0) { + if(userTypes && userTypes.length > 0 && userTypes.includes(Type.STELLAR)) { // will not change to stellar type + const nonTeraTypes = user.getTypes(); + type.value = nonTeraTypes[0]; + return true; + } + else if (userTypes && userTypes.length > 0) { type.value = userTypes[0]; return true; } From 7a449e6d574291a14a3d596241aeda663a2d3078 Mon Sep 17 00:00:00 2001 From: lucfd <83493765+lucfd@users.noreply.github.com> Date: Wed, 17 Apr 2024 01:36:19 -0400 Subject: [PATCH 5/9] removed testing lines --- src/field/pokemon.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 55245da20fa..52197aa6ac5 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1,5 +1,5 @@ import Phaser from 'phaser'; -import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE,MOVE_OVERRIDE2, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene'; +import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene'; import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info'; import { Moves } from "../data/enums/moves"; import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr } from "../data/move"; @@ -652,9 +652,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { ? this.summonData.moveset : this.moveset; - if (MOVE_OVERRIDE && this.isPlayer()){ + if (MOVE_OVERRIDE && this.isPlayer()) this.moveset[0] = new PokemonMove(MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[MOVE_OVERRIDE].pp)); - this.moveset[1] = new PokemonMove(MOVE_OVERRIDE2, Math.min(this.moveset[1].ppUsed, allMoves[MOVE_OVERRIDE2].pp));} else if (OPP_MOVE_OVERRIDE && !this.isPlayer()) this.moveset[0] = new PokemonMove(OPP_MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[OPP_MOVE_OVERRIDE].pp)); From 2e0cd6faa781c740963afe61d52d7680587bddb2 Mon Sep 17 00:00:00 2001 From: Luc Date: Wed, 24 Apr 2024 16:59:42 -0400 Subject: [PATCH 6/9] changed to UNKNOWN implementation --- src/data/type.ts | 25 ++----------------------- src/field/pokemon.ts | 6 +++--- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/src/data/type.ts b/src/data/type.ts index f4f86a69f5b..0fb34774f59 100644 --- a/src/data/type.ts +++ b/src/data/type.ts @@ -18,8 +18,7 @@ export enum Type { DRAGON, DARK, FAIRY, - STELLAR, - TYPELESS + STELLAR }; export type TypeDamageMultiplier = 0 | 0.25 | 0.5 | 1 | 2 | 4; @@ -46,7 +45,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.GHOST: default: @@ -70,7 +68,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ELECTRIC: case Type.ICE: case Type.DRAGON: - case Type.TYPELESS: return 1; case Type.ROCK: case Type.BUG: @@ -96,7 +93,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.BUG: @@ -122,7 +118,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ICE: case Type.DRAGON: case Type.DARK: - case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.POISON: @@ -151,7 +146,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.POISON: case Type.ROCK: @@ -177,7 +171,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.NORMAL: case Type.FLYING: @@ -205,7 +198,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.GROUND: @@ -231,7 +223,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ICE: case Type.DRAGON: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.POISON: case Type.BUG: @@ -251,7 +242,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.WATER: case Type.ELECTRIC: case Type.DARK: - case Type.TYPELESS: return 1; case Type.NORMAL: case Type.FLYING: @@ -283,7 +273,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.PSYCHIC: case Type.DRAGON: case Type.DARK: - case Type.TYPELESS: return 1; case Type.BUG: case Type.STEEL: @@ -312,7 +301,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.STEEL: case Type.FIRE: @@ -339,7 +327,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.GROUND: case Type.WATER: @@ -367,7 +354,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.FLYING: case Type.STEEL: @@ -395,7 +381,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ICE: case Type.DRAGON: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.PSYCHIC: @@ -423,7 +408,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.DARK: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.ICE: return 0.5; @@ -447,7 +431,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.STEEL: case Type.PSYCHIC: case Type.DARK: - case Type.TYPELESS: return 1; case Type.FIRE: case Type.WATER: @@ -475,7 +458,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ELECTRIC: case Type.ICE: case Type.DRAGON: - case Type.TYPELESS: return 1; case Type.GHOST: case Type.DARK: @@ -501,7 +483,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.PSYCHIC: case Type.ICE: case Type.FAIRY: - case Type.TYPELESS: return 1; case Type.FIGHTING: case Type.BUG: @@ -513,8 +494,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): } case Type.STELLAR: return 1; - case Type.TYPELESS: - return 1; } } @@ -558,7 +537,7 @@ export function getTypeRgb(type: Type): [ integer, integer, integer ] { return [ 232, 136, 200 ]; case Type.STELLAR: return [ 255, 255, 255 ]; - case Type.TYPELESS: + case Type.UNKNOWN: return [ 104, 160, 144 ]; default: return [ 0, 0, 0 ]; diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 52197aa6ac5..ed6ef2b017d 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -701,10 +701,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } if (!types.length) // become typeless if no types are present - types.push(Type.TYPELESS); + types.push(Type.UNKNOWN); - if (types.length > 1 && types.includes(Type.TYPELESS)) { // remove typeless if other types are present - const index = types.indexOf(Type.TYPELESS); + if (types.length > 1 && types.includes(Type.UNKNOWN)) { // remove UNKNOWN if other types are present + const index = types.indexOf(Type.UNKNOWN); if (index !== -1) { types.splice(index, 1); } From 5a3b1657b812a729f45584113252c4cf46510219 Mon Sep 17 00:00:00 2001 From: lucfd <83493765+lucfd@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:13:46 -0400 Subject: [PATCH 7/9] removed UNKNOWN RGB --- src/data/type.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/data/type.ts b/src/data/type.ts index 0fb34774f59..cbc3aa15c18 100644 --- a/src/data/type.ts +++ b/src/data/type.ts @@ -537,9 +537,7 @@ export function getTypeRgb(type: Type): [ integer, integer, integer ] { return [ 232, 136, 200 ]; case Type.STELLAR: return [ 255, 255, 255 ]; - case Type.UNKNOWN: - return [ 104, 160, 144 ]; default: return [ 0, 0, 0 ]; } -} \ No newline at end of file +} From e68044436f6d9753e7f5ea598f187ccc812928f9 Mon Sep 17 00:00:00 2001 From: Luc Date: Fri, 26 Apr 2024 15:21:00 -0400 Subject: [PATCH 8/9] removed print debug + unnecessary logic --- src/data/move.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 0fd2bd082d8..5cef8519916 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2273,14 +2273,13 @@ export class MatchUserTypeAttr extends VariableMoveTypeAttr { const type = (args[0] as Utils.IntegerHolder); const userTypes = user.getTypes(true); - console.log(userTypes) - if(userTypes && userTypes.length > 0 && userTypes.includes(Type.STELLAR)) { // will not change to stellar type + if(userTypes.length > 0 && userTypes.includes(Type.STELLAR)) { // will not change to stellar type const nonTeraTypes = user.getTypes(); type.value = nonTeraTypes[0]; return true; } - else if (userTypes && userTypes.length > 0) { + else if (userTypes.length > 0) { type.value = userTypes[0]; return true; } From 65183d6eb9447282686a448c559d617982564a5f Mon Sep 17 00:00:00 2001 From: Luc Date: Fri, 26 Apr 2024 15:22:31 -0400 Subject: [PATCH 9/9] simplified test condition further --- src/data/move.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index 5cef8519916..18b064aa954 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2274,7 +2274,7 @@ export class MatchUserTypeAttr extends VariableMoveTypeAttr { const userTypes = user.getTypes(true); - if(userTypes.length > 0 && userTypes.includes(Type.STELLAR)) { // will not change to stellar type + if(userTypes.includes(Type.STELLAR)) { // will not change to stellar type const nonTeraTypes = user.getTypes(); type.value = nonTeraTypes[0]; return true;