From c3eaa0506fed10bfffcc99fc1a2c19b184b0ebc6 Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Sun, 21 Apr 2024 14:10:16 +1000 Subject: [PATCH 01/18] Make it so you can't freeze in sun --- src/field/pokemon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index a7c383d9818..d3d657742e8 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1828,7 +1828,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return false; break; case StatusEffect.FREEZE: - if (this.isOfType(Type.ICE)) + if (this.isOfType(Type.ICE) || [WeatherType.SUNNY, WeatherType.HARSH_SUN].includes(this.scene?.arena.weather?.weatherType)) return false; break; case StatusEffect.BURN: From 1acc082080a40e3780223f496374acf53be47930 Mon Sep 17 00:00:00 2001 From: lucfd <83493765+lucfd@users.noreply.github.com> Date: Sun, 21 Apr 2024 01:04:51 -0400 Subject: [PATCH 02/18] Fixed Freeze Shock (#216) * added charge turn to freeze shock * fixed freeze shock animation --- src/data/move.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/data/move.ts b/src/data/move.ts index c19c822a5d2..d5bd71ad2e1 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -5132,6 +5132,7 @@ export function initMoves() { .attr(StatChangeAttr, BattleStat.SPATK, 1, true) .danceMove(), new AttackMove(Moves.FREEZE_SHOCK, Type.ICE, MoveCategory.PHYSICAL, 140, 90, 5, 30, 0, 5) + .attr(ChargeAttr, ChargeAnim.FREEZE_SHOCK_CHARGING, 'became cloaked\nin a freezing light!') .attr(StatusEffectAttr, StatusEffect.PARALYSIS) .makesContact(false), new AttackMove(Moves.ICE_BURN, Type.ICE, MoveCategory.SPECIAL, 140, 90, 5, 30, 0, 5) From 5b34e7f873c64769f5d3f46dc8b4625a4d5fb31d Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Sun, 21 Apr 2024 15:26:30 +1000 Subject: [PATCH 03/18] Implement No Guard --- src/data/ability.ts | 7 ++++++- src/phases.ts | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index 0ff17d021d5..16eb729e1db 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2092,6 +2092,9 @@ export class SuppressFieldAbilitiesAbAttr extends AbAttr { } } + +export class AlwaysHitAbAttr extends AbAttr { } + export class UncopiableAbilityAbAttr extends AbAttr { constructor() { super(false); @@ -2573,7 +2576,9 @@ export function initAbilities() { new Ability(Abilities.SNIPER, "Sniper (N)", "Powers up moves if they become critical hits when attacking.", 4), new Ability(Abilities.MAGIC_GUARD, "Magic Guard", "The Pokémon only takes damage from attacks.", 4) .attr(BlockNonDirectDamageAbAttr), - new Ability(Abilities.NO_GUARD, "No Guard (N)", "The Pokémon employs no-guard tactics to ensure incoming and outgoing attacks always land.", 4), + new Ability(Abilities.NO_GUARD, "No Guard", "The Pokémon employs no-guard tactics to ensure incoming and outgoing attacks always land.", 4) + .attr(AlwaysHitAbAttr) + .attr(DoubleBattleChanceAbAttr), new Ability(Abilities.STALL, "Stall (N)", "The Pokémon moves after all other Pokémon do.", 4), new Ability(Abilities.TECHNICIAN, "Technician", "Powers up the Pokémon's weaker moves.", 4) .attr(MovePowerBoostAbAttr, (user, target, move) => move.power <= 60, 1.5), diff --git a/src/phases.ts b/src/phases.ts index 98d474390b7..a3ea81e8bc7 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -30,7 +30,7 @@ import { Weather, WeatherType, getRandomWeatherType, getTerrainBlockMessage, get import { TempBattleStat } from "./data/temp-battle-stat"; import { ArenaTagSide, ArenaTrapTag, MistTag, TrickRoomTag } from "./data/arena-tag"; import { ArenaTagType } from "./data/enums/arena-tag-type"; -import { CheckTrappedAbAttr, MoveAbilityBypassAbAttr, IgnoreOpponentStatChangesAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, applyPostBattleInitAbAttrs, PostBattleInitAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs } from "./data/ability"; +import { CheckTrappedAbAttr, MoveAbilityBypassAbAttr, IgnoreOpponentStatChangesAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, applyPostBattleInitAbAttrs, PostBattleInitAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr } from "./data/ability"; import { Unlockables, getUnlockableName } from "./system/unlockables"; import { getBiomeKey } from "./field/arena"; import { BattleType, BattlerIndex, TurnCommand } from "./battle"; @@ -2173,7 +2173,7 @@ export class MovePhase extends BattlePhase { const targets = this.scene.getField(true).filter(p => { if (this.targets.indexOf(p.getBattlerIndex()) > -1) { const hiddenTag = p.getTag(HiddenTag); - if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length) + if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length && !p.hasAbilityWithAttr(AlwaysHitAbAttr) && !this.pokemon.hasAbilityWithAttr(AlwaysHitAbAttr)) return false; return true; } @@ -2467,6 +2467,9 @@ export class MoveEffectPhase extends PokemonPhase { if (user.turnData.hitsLeft < user.turnData.hitCount) return true; + if (user.hasAbilityWithAttr(AlwaysHitAbAttr) || target.hasAbilityWithAttr(AlwaysHitAbAttr)) + return true; + const hiddenTag = target.getTag(HiddenTag); if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length) return false; From c2136a6df138db8952713fc8509b45e13e7a66dd Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Sun, 21 Apr 2024 00:47:55 -0500 Subject: [PATCH 04/18] Miscellaneous minor changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • The volume of Pikachu's cry has been lowered by 10 dB. • Tarountula's starter value has been lowered to 1. • Altered Whitney and Chuck's signature Pokémon (swapped Whitney's Clefairy for Girafarig, and gave Chuck Mankey). • The alternate forms in Flabébé's evolution line can now be encountered. --- public/audio/cry/25-gigantamax.m4a | Bin 25914 -> 27058 bytes public/audio/cry/25.m4a | Bin 25914 -> 27058 bytes src/battle-scene.ts | 3 +++ src/data/pokemon-level-moves.ts | 4 ++-- src/data/pokemon-species.ts | 2 +- src/data/trainer-config.ts | 4 ++-- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/public/audio/cry/25-gigantamax.m4a b/public/audio/cry/25-gigantamax.m4a index ea4becab5b808c44b255c36aed7393d01f646b87..2cf38814bceae7dcda822db118ee3cf1a7a38c58 100644 GIT binary patch literal 27058 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

M+t7KA5s_N~8J1_8hup=@1aD(^aMqsdRo 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 literal 25914 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

M+t7KA5s_N~8J1_8hup=@1aD(^aMqsdRo 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 literal 25914 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 Date: Sun, 21 Apr 2024 01:55:00 -0500 Subject: [PATCH 05/18] =?UTF-8?q?Fix=20White=20Flab=C3=A9b=C3=A9=20line=20?= =?UTF-8?q?crashing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is not the most elegant solution, as it's *only* the White form causing issues, but it does solve the problem. --- public/audio/cry/669-white.m4a | Bin 0 -> 10166 bytes public/audio/cry/670-white.m4a | Bin 0 -> 14122 bytes public/audio/cry/671-white.m4a | Bin 0 -> 15820 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/audio/cry/669-white.m4a create mode 100644 public/audio/cry/670-white.m4a create mode 100644 public/audio/cry/671-white.m4a diff --git a/public/audio/cry/669-white.m4a b/public/audio/cry/669-white.m4a new file mode 100644 index 0000000000000000000000000000000000000000..773241dac0f8a558a1f92c1f19bd7614dc518335 GIT binary patch literal 10166 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 literal 0 HcmV?d00001 diff --git a/public/audio/cry/670-white.m4a b/public/audio/cry/670-white.m4a new file mode 100644 index 0000000000000000000000000000000000000000..45e83e386afbf61f9406b6ba4b1d0379018f9ba4 GIT binary patch literal 14122 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 Y1%2rDZsgtI`}c09pzqyS-oJPIKk7>D;Q#;t literal 0 HcmV?d00001 diff --git a/public/audio/cry/671-white.m4a b/public/audio/cry/671-white.m4a new file mode 100644 index 0000000000000000000000000000000000000000..e604dea4064d7ffb0b77c7b73def2d53b4b39cdf GIT binary patch literal 15820 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

  • jG4d)OQhtK*aMMuD(a)IV2g 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%0Dv;g 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 Tfe?iJBij`Gk8BReKeGQ1t3IM0 literal 0 HcmV?d00001 From c8a9069e8b5773ea568a1b2b3f1eb109aaacfebf Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 21 Apr 2024 10:59:50 -0400 Subject: [PATCH 06/18] Add outdated session support and fix older migrations --- src/phases.ts | 27 +++++++++++++ src/system/game-data.ts | 15 ++++++-- src/ui/session-reload-modal-ui-handler.ts | 47 +++++++++++++++++++++++ src/ui/ui.ts | 4 ++ 4 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 src/ui/session-reload-modal-ui-handler.ts diff --git a/src/phases.ts b/src/phases.ts index a3ea81e8bc7..ccb83cc2976 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -379,6 +379,33 @@ export class UnavailablePhase extends Phase { } } +export class ReloadSessionPhase extends Phase { + constructor(scene: BattleScene) { + super(scene); + } + + start(): void { + this.scene.ui.setMode(Mode.SESSION_RELOAD); + + let delayElapsed = false; + let loaded = false; + + this.scene.time.delayedCall(Utils.fixedInt(1500), () => { + if (loaded) + this.end(); + else + delayElapsed = true; + }); + + this.scene.gameData.loadSystem().then(() => { + if (delayElapsed) + this.end(); + else + loaded = true; + }); + } +} + export class OutdatedPhase extends Phase { constructor(scene: BattleScene) { super(scene); diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 88fcb2ce736..491042777b7 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -27,7 +27,7 @@ import { Moves } from "../data/enums/moves"; import { speciesEggMoves } from "../data/egg-moves"; import { allMoves } from "../data/move"; import { TrainerVariant } from "../field/trainer"; -import { OutdatedPhase, UnavailablePhase } from "#app/phases"; +import { OutdatedPhase, ReloadSessionPhase, UnavailablePhase } from "#app/phases"; import { Variant, variantData } from "#app/data/variant"; const saveKey = 'x0i2O7WRiANTqPmZ'; // Temporary; secure encryption is not yet necessary @@ -280,6 +280,9 @@ export class GameData { if (error.startsWith('client version out of date')) { this.scene.clearPhaseQueue(); this.scene.unshiftPhase(new OutdatedPhase(this.scene)); + } else if (error.startsWith('session out of date')) { + this.scene.clearPhaseQueue(); + this.scene.unshiftPhase(new ReloadSessionPhase(this.scene)); } console.error(error); return resolve(false); @@ -340,7 +343,7 @@ export class GameData { this.starterData[s].eggMoves = starterEggMoveData[s]; } - this.migrateStarterAbilities(systemData); + this.migrateStarterAbilities(systemData, this.starterData); } else { if ([ '1.0.0', '1.0.1' ].includes(systemData.gameVersion)) this.migrateStarterAbilities(systemData); @@ -551,6 +554,10 @@ export class GameData { .then(response => response.text()) .then(error => { if (error) { + if (error.startsWith('session out of date')) { + this.scene.clearPhaseQueue(); + this.scene.unshiftPhase(new ReloadSessionPhase(this.scene)); + } console.error(error); return resolve(false); } @@ -1207,9 +1214,9 @@ export class GameData { } } - migrateStarterAbilities(systemData: SystemSaveData): void { + migrateStarterAbilities(systemData: SystemSaveData, initialStarterData?: StarterData): void { const starterIds = Object.keys(this.starterData).map(s => parseInt(s) as Species); - const starterData = systemData.starterData; + const starterData = initialStarterData || systemData.starterData; const dexData = systemData.dexData; for (let s of starterIds) { const dexAttr = dexData[s].caughtAttr; diff --git a/src/ui/session-reload-modal-ui-handler.ts b/src/ui/session-reload-modal-ui-handler.ts new file mode 100644 index 00000000000..fdcd9b2c206 --- /dev/null +++ b/src/ui/session-reload-modal-ui-handler.ts @@ -0,0 +1,47 @@ +import BattleScene from "../battle-scene"; +import { ModalConfig, ModalUiHandler } from "./modal-ui-handler"; +import { addTextObject, TextStyle } from "./text"; +import { Mode } from "./ui"; + +export default class SessionReloadModalUiHandler extends ModalUiHandler { + constructor(scene: BattleScene, mode?: Mode) { + super(scene, mode); + } + + getModalTitle(): string { + return ''; + } + + getWidth(): number { + return 160; + } + + getHeight(): number { + return 32; + } + + getMargin(): [number, number, number, number] { + return [ 0, 0, 48, 0 ]; + } + + getButtonLabels(): string[] { + return [ ]; + } + + setup(): void { + super.setup(); + + const label = addTextObject(this.scene, this.getWidth() / 2, this.getHeight() / 2, 'Your session is out of date.\nYour data will be reloaded…', TextStyle.WINDOW, { fontSize: '48px', align: 'center' }); + label.setOrigin(0.5, 0.5); + + this.modalContainer.add(label); + } + + show(args: any[]): boolean { + const config: ModalConfig = { + buttonActions: [] + }; + + return super.show([ config ]); + } +} \ No newline at end of file diff --git a/src/ui/ui.ts b/src/ui/ui.ts index f1fe29d9035..6e20b2cb8b8 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -34,6 +34,7 @@ import TitleUiHandler from './title-ui-handler'; import SavingIconHandler from './saving-icon-handler'; import UnavailableModalUiHandler from './unavailable-modal-ui-handler'; import OutdatedModalUiHandler from './outdated-modal-ui-handler'; +import SessionReloadModalUiHandler from './session-reload-modal-ui-handler'; export enum Mode { MESSAGE, @@ -62,6 +63,7 @@ export enum Mode { LOGIN_FORM, REGISTRATION_FORM, LOADING, + SESSION_RELOAD, UNAVAILABLE, OUTDATED }; @@ -90,6 +92,7 @@ const noTransitionModes = [ Mode.LOGIN_FORM, Mode.REGISTRATION_FORM, Mode.LOADING, + Mode.SESSION_RELOAD, Mode.UNAVAILABLE, Mode.OUTDATED ]; @@ -141,6 +144,7 @@ export default class UI extends Phaser.GameObjects.Container { new LoginFormUiHandler(scene), new RegistrationFormUiHandler(scene), new LoadingModalUiHandler(scene), + new SessionReloadModalUiHandler(scene), new UnavailableModalUiHandler(scene), new OutdatedModalUiHandler(scene) ]; From 3c90427361499913bc12b428d93de6ae1b10a1e4 Mon Sep 17 00:00:00 2001 From: Juan-Lucas Date: Sun, 21 Apr 2024 12:18:09 +0200 Subject: [PATCH 07/18] pokeball: implement i18n on pokeball name and add french i18n --- src/data/pokeball.ts | 13 +++++++------ src/locales/en/pokeball.ts | 8 ++++++++ src/locales/fr/pokeball.ts | 8 ++++++++ src/plugins/i18n.ts | 6 ++++++ 4 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 src/locales/en/pokeball.ts create mode 100644 src/locales/fr/pokeball.ts diff --git a/src/data/pokeball.ts b/src/data/pokeball.ts index 45775f33d65..f5e39ba38ab 100644 --- a/src/data/pokeball.ts +++ b/src/data/pokeball.ts @@ -1,4 +1,5 @@ import BattleScene from "../battle-scene"; +import i18next from '../plugins/i18n'; export enum PokeballType { POKEBALL, @@ -30,22 +31,22 @@ export function getPokeballName(type: PokeballType): string { let ret: string; switch (type) { case PokeballType.POKEBALL: - ret = 'Poké Ball'; + ret = i18next.t('pokeball:pokeBall'); break; case PokeballType.GREAT_BALL: - ret = 'Great Ball'; + ret = i18next.t('pokeball:greatBall'); break; case PokeballType.ULTRA_BALL: - ret = 'Ultra Ball'; + ret = i18next.t('pokeball:ultraBall'); break; case PokeballType.ROGUE_BALL: - ret = 'Rogue Ball'; + ret = i18next.t('pokeball:rogueBall'); break; case PokeballType.MASTER_BALL: - ret = 'Master Ball'; + ret = i18next.t('pokeball:masterBall'); break; case PokeballType.LUXURY_BALL: - ret = 'Luxury Ball'; + ret = i18next.t('pokeball:luxuryBall'); break; } return ret; diff --git a/src/locales/en/pokeball.ts b/src/locales/en/pokeball.ts new file mode 100644 index 00000000000..6f774d416b9 --- /dev/null +++ b/src/locales/en/pokeball.ts @@ -0,0 +1,8 @@ +export const pokeball = { + "pokeBall": "Poké Ball", + "greatBall": "Great Ball", + "ultraBall": "Ultra Ball", + "rogueBall": "Rogue Ball", + "masterBall": "Master Ball", + "luxuryBall": "Luxury Ball", +} as const; \ No newline at end of file diff --git a/src/locales/fr/pokeball.ts b/src/locales/fr/pokeball.ts new file mode 100644 index 00000000000..0244550c5b2 --- /dev/null +++ b/src/locales/fr/pokeball.ts @@ -0,0 +1,8 @@ +export const pokeball = { + "pokeBall": "Poké Ball", + "greatBall": "Super Ball", + "ultraBall": "Hyper Ball", + "rogueBall": "Rogue Ball", + "masterBall": "Master Ball", + "luxuryBall": "Luxe Ball", +} as const; \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 9a72ff55f9d..eabafd82c76 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -6,6 +6,9 @@ import { menu as frMenu } from '../locales/fr/menu'; import { move as enMove } from '../locales/en/move'; import { move as frMove } from '../locales/fr/move'; +import { pokeball as enPokeball } from '../locales/en/pokeball'; +import { pokeball as frPokeball } from '../locales/fr/pokeball'; + export interface MoveTranslationEntry { name: string, effect: string @@ -50,6 +53,7 @@ export function initI18n(): void { en: { menu: enMenu, move: enMove, + pokeball: enPokeball, }, it: { menu: itMenu, @@ -57,6 +61,7 @@ export function initI18n(): void { fr: { menu: frMenu, move: frMove, + pokeball: frPokeball, } }, }); @@ -68,6 +73,7 @@ declare module 'i18next' { resources: { menu: typeof enMenu; move: typeof enMove; + pokeball: typeof enPokeball; }; } } From 87c1f5e50fa4e042b09fd5ebe12afc8fa9573a70 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 21 Apr 2024 11:50:50 -0400 Subject: [PATCH 08/18] Fix Poke Ball localization --- src/battle-scene.ts | 7 +++++-- src/modifier/modifier-type.ts | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index f462f50e17e..26fbe1b2fb6 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -17,7 +17,7 @@ import { TextStyle, addTextObject } from './ui/text'; import { Moves } from "./data/enums/moves"; import { allMoves } from "./data/move"; import { initMoves } from './data/move'; -import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave } from './modifier/modifier-type'; +import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getModifierPoolForType } from './modifier/modifier-type'; import AbilityBar from './ui/ability-bar'; import { BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, IncrementMovePriorityAbAttr, applyAbAttrs, initAbilities } from './data/ability'; import { Abilities } from "./data/enums/abilities"; @@ -795,7 +795,10 @@ export default class BattleScene extends SceneBase { this.trainer.setVisible(true); if (reloadI18n) { - const localizable: Localizable[] = [ ...allMoves ]; + const localizable: Localizable[] = [ + ...allMoves, + ...Utils.getEnumValues(ModifierPoolType).map(mpt => getModifierPoolForType(mpt)).map(mp => Object.values(mp).flat().map(mt => mt.modifierType).filter(mt => 'localize' in mt).map(lpb => lpb as unknown as Localizable)).flat() + ]; for (let item of localizable) item.localize(); } diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 77d70954768..6197db23790 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -19,6 +19,7 @@ import { VoucherType, getVoucherTypeIcon, getVoucherTypeName } from '../system/v import { FormChangeItem, SpeciesFormChangeItemTrigger, pokemonFormChanges } from '../data/pokemon-forms'; import { ModifierTier } from './modifier-tier'; import { Nature, getNatureName, getNatureStatMultiplier } from '#app/data/nature'; +import { Localizable } from '#app/plugins/i18n'; const outputModifierData = false; const useMaxWeightForOutput = false; @@ -131,10 +132,19 @@ export interface GeneratedPersistentModifierType { getPregenArgs(): any[]; } -class AddPokeballModifierType extends ModifierType { +class AddPokeballModifierType extends ModifierType implements Localizable { + private pokeballType: PokeballType; + private count: integer; + constructor(pokeballType: PokeballType, count: integer, iconImage?: string) { - super(`${count}x ${getPokeballName(pokeballType)}`, `Receive ${getPokeballName(pokeballType)} x${count}\nCatch Rate: ${getPokeballCatchMultiplier(pokeballType) > -1 ? `${getPokeballCatchMultiplier(pokeballType)}x` : 'Certain'}`, - (_type, _args) => new Modifiers.AddPokeballModifier(this, pokeballType, count), iconImage, 'pb', 'pb_bounce_1'); + super('', '', (_type, _args) => new Modifiers.AddPokeballModifier(this, pokeballType, count), iconImage, 'pb', 'pb_bounce_1'); + this.pokeballType = pokeballType; + this.count = count; + } + + localize() { + this.name = `${this.count}x ${getPokeballName(this.pokeballType)}`; + this.description = `Receive ${getPokeballName(this.pokeballType)} x${this.count}\nCatch Rate: ${getPokeballCatchMultiplier(this.pokeballType) > -1 ? `${getPokeballCatchMultiplier(this.pokeballType)}x` : 'Certain'}`; } } From 0e9881e351d432a42b825b3ffecf6f3eb1b9deac Mon Sep 17 00:00:00 2001 From: Miguel S <62101239+sl-miguel@users.noreply.github.com> Date: Sun, 21 Apr 2024 18:08:43 +0200 Subject: [PATCH 09/18] Fixed issue #224: Healing Wish description (french) --- src/locales/fr/move.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr/move.ts b/src/locales/fr/move.ts index 3a7eca94275..c75c5448f53 100644 --- a/src/locales/fr/move.ts +++ b/src/locales/fr/move.ts @@ -1443,7 +1443,7 @@ export const move: MoveTranslations = { }, "healingWish": { name: "Voeu Soin", - effect: "Un soin qui permet au lanceur de récupérer jusqu’à la moitié de ses PV max." + effect: "Le lanceur tombe K.O. pour soigner les altérations de statut et les PV du Pokémon qui viendra le remplacer sur le terrain." }, "brine": { name: "Saumure", From 24c2e18ed794816af1336cd8f2d979629c2f3a58 Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Mon, 22 Apr 2024 02:43:50 +1000 Subject: [PATCH 10/18] Stop weather being regenerated on save load --- src/phases.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/phases.ts b/src/phases.ts index ccb83cc2976..3399838cb63 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -794,7 +794,8 @@ export class EncounterPhase extends BattlePhase { pokemon.resetBattleData(); } - this.scene.arena.trySetWeather(getRandomWeatherType(this.scene.arena), false); + if (!this.loaded) + this.scene.arena.trySetWeather(getRandomWeatherType(this.scene.arena), false); const enemyField = this.scene.getEnemyField(); this.scene.tweens.add({ From c6f395d63a1764589b0b7bb5320b6b37b835781f Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 21 Apr 2024 14:09:54 -0400 Subject: [PATCH 11/18] Add link to npm/node guide to README --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 424d47ff1b0..b2955f8c4b5 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,11 @@ PokéRogue is a browser based Pokémon fangame heavily inspired by the roguelite If you have the motivation and experience with Typescript/Javascript (or are willing to learn) please feel free to fork the repository and make pull requests with contributions. If you don't know what to work on but want to help, reference the below **To-Do** section or the **#vote** channel in the discord. ### 💻 Environment Setup -node: 18.3.0 +#### Prerequisites +- node: 18.3.0 +- npm: [how to install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +#### Running Locally 1. Clone the repo and in the root directory run `npm install` - *if you run into any errors, reach out in the **#dev-corner** channel in discord* 2. Run `npm run start:dev` to locally run the project in `localhost:8000` From 3d9f5fb157a4265ef093343b7726d036b25393c4 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 21 Apr 2024 16:19:11 -0400 Subject: [PATCH 12/18] Protect against cross-session overwrites --- src/phases.ts | 4 +++- src/system/game-data.ts | 31 ++++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/phases.ts b/src/phases.ts index 3399838cb63..31f631bf4a6 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -3420,6 +3420,8 @@ export class GameOverPhase extends BattlePhase { handleClearSession(): void { this.scene.gameData.tryClearSession(this.scene, this.scene.sessionSlotId).then((success: boolean | [boolean, boolean]) => { + if (!success[0]) + return this.scene.reset(true); this.scene.time.delayedCall(1000, () => { let firstClear = false; if (this.victory && success[1]) { @@ -4327,7 +4329,7 @@ export class EggLapsePhase extends Phase { const eggsToHatch: Egg[] = this.scene.gameData.eggs.filter((egg: Egg) => { return --egg.hatchWaves < 1 - }) + }); if (eggsToHatch.length) { this.scene.queueMessage('Oh?'); diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 491042777b7..c5b9f32cf9c 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -1,7 +1,7 @@ import BattleScene, { PokeballCounts, bypassLogin } from "../battle-scene"; import Pokemon, { EnemyPokemon, PlayerPokemon } from "../field/pokemon"; import { pokemonEvolutions, pokemonPrevolutions } from "../data/pokemon-evolutions"; -import PokemonSpecies, { SpeciesFormKey, allSpecies, getPokemonSpecies, noStarterFormKeys, speciesStarters } from "../data/pokemon-species"; +import PokemonSpecies, { allSpecies, getPokemonSpecies, noStarterFormKeys, speciesStarters } from "../data/pokemon-species"; import { Species, defaultStarterSpecies } from "../data/enums/species"; import * as Utils from "../utils"; import PokemonData from "./pokemon-data"; @@ -27,7 +27,7 @@ import { Moves } from "../data/enums/moves"; import { speciesEggMoves } from "../data/egg-moves"; import { allMoves } from "../data/move"; import { TrainerVariant } from "../field/trainer"; -import { OutdatedPhase, ReloadSessionPhase, UnavailablePhase } from "#app/phases"; +import { OutdatedPhase, ReloadSessionPhase } from "#app/phases"; import { Variant, variantData } from "#app/data/variant"; const saveKey = 'x0i2O7WRiANTqPmZ'; // Temporary; secure encryption is not yet necessary @@ -722,9 +722,19 @@ export class GameData { Utils.apiFetch(`savedata/delete?datatype=${GameDataType.SESSION}&slot=${slotId}`, true).then(response => { if (response.ok) { loggedInUser.lastSessionSlot = -1; - return resolve(true); + resolve(true); } - resolve(false); + return response.text(); + }).then(error => { + if (error) { + if (error.startsWith('session out of date')) { + this.scene.clearPhaseQueue(); + this.scene.unshiftPhase(new ReloadSessionPhase(this.scene)); + } + console.error(error); + resolve(false); + } + resolve(true); }); }); }); @@ -742,12 +752,19 @@ export class GameData { return resolve([false, false]); const sessionData = this.getSessionSaveData(scene); Utils.apiPost(`savedata/clear?slot=${slotId}`, JSON.stringify(sessionData)).then(response => { - if (response.ok) { + if (response.ok) loggedInUser.lastSessionSlot = -1; - return response.json(); + return response.json(); + }).then(jsonResponse => { + if (!jsonResponse.error) + return resolve([true, jsonResponse.success as boolean]); + if (jsonResponse && jsonResponse.error.startsWith('session out of date')) { + this.scene.clearPhaseQueue(); + this.scene.unshiftPhase(new ReloadSessionPhase(this.scene)); } + console.error(jsonResponse); resolve([false, false]); - }).then(jsonResponse => resolve([true, jsonResponse.success as boolean])); + }); }); }); } From 8a31468dda83a602e2430abbbf491aa1c0a4022a Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Sun, 21 Apr 2024 15:44:30 -0500 Subject: [PATCH 13/18] Add new Stellar Terapagos graphics Despite this, Stellar Terapagos still cannot be obtained legitimately yet. --- public/images/pokemon/1024-stellar.json | 22 +++++++++--------- public/images/pokemon/1024-stellar.png | Bin 1700 -> 3744 bytes public/images/pokemon/back/1024-stellar.json | 22 +++++++++--------- public/images/pokemon/back/1024-stellar.png | Bin 1570 -> 3342 bytes .../pokemon/back/shiny/1024-stellar.json | 22 +++++++++--------- .../pokemon/back/shiny/1024-stellar.png | Bin 1571 -> 3342 bytes public/images/pokemon/shiny/1024-stellar.json | 22 +++++++++--------- public/images/pokemon/shiny/1024-stellar.png | Bin 1699 -> 3750 bytes 8 files changed, 44 insertions(+), 44 deletions(-) diff --git a/public/images/pokemon/1024-stellar.json b/public/images/pokemon/1024-stellar.json index 3f8ffe6c4ca..0972c56328f 100644 --- a/public/images/pokemon/1024-stellar.json +++ b/public/images/pokemon/1024-stellar.json @@ -4,30 +4,30 @@ "image": "1024-stellar.png", "format": "RGBA8888", "size": { - "w": 96, - "h": 96 + "w": 119, + "h": 119 }, - "scale": 0.5, + "scale": 1, "frames": [ { "filename": "0001.png", "rotated": false, "trimmed": false, "sourceSize": { - "w": 96, - "h": 96 + "w": 119, + "h": 119 }, "spriteSourceSize": { - "x": 9, + "x": 0, "y": 0, - "w": 78, - "h": 96 + "w": 115, + "h": 119 }, "frame": { "x": 0, "y": 0, - "w": 78, - "h": 96 + "w": 115, + "h": 119 } } ] @@ -36,6 +36,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:c9ee64bda72f2dadb06109338796ccac:1313f1218b7da2c57ad9f290d1323840:c1508f3b01ae78a28a1267fd6caa4f7b$" + "smartupdate": "$TexturePacker:SmartUpdate:bc663acf2e62803fce6c3a525dc8dd98:ccd7d0de8a487235cfbd6f372afa931f:c1508f3b01ae78a28a1267fd6caa4f7b$" } } diff --git a/public/images/pokemon/1024-stellar.png b/public/images/pokemon/1024-stellar.png index 6500eddec8e84043639383a608810f75a93f8545..7e40fb0043f771598ab60d07033e96e6111f2f66 100644 GIT binary patch literal 3744 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 KMNUMnLSTY?(uK+Z literal 1700 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 YKZ(Y(VlZxN4FCWD07*qoM6N<$f|xnJPXGV_ literal 1570 zcmV+-2Hp9IP)IrE%YHs_5c6?0d!JM zQvg8b*k%9#1*1tsK~#8N&DURR8%GcT@D&(4KpJkbda99QXupBkA|d=@(PIy23-rA} z4li>7Ctx9S6LBu|DFi|a#wFtLOTU8Zpo_D%sb5+k!XO9@U=(Wl823IyXHW89N%jdS zbgaW*&rdV6dw)1KE*`MSVtW0527vjnJe_@vDTKfQzm~m%iz?>^R(3EIEHm4iWC%&X z`fq_X8JG?TOtKSx;N_IRoV@@#U{?zhlyI1>tlUIX=R9%~17|`oh07BN8o2*Zp^P!z7W*)w6|kJ0d4U3O`uMf43RRM zUTp)!Q1W%K!ubvTq(NX6pcJ;D1Yx|gSh2?S(-;5|=oMH2SP@|2)9=RgQ;r4zF`(}k zRE1DUd*53l3y491Ev!Uk)In)ggRk2}=Z64ZE>NxzD$~ST*CC|l0&i`on>B{#1?ab+ zF;>jLB`|$0mWSI%fwZJ)0Ww6&6&Oq{M0s{?sDG2cbymRiBq|YQqB-j2x$<>^CclzS zY*Zi6=!gOh5Z6Whd_|*60Q*2Jk}qH1G_#cTG{2HcA)=^B$rOAxY7WkiAJ0XO&z32{ zr1lF4GlYpn&Soo3#;yTF(sVI6I|j)V=3kuMF}Zi1T^qe}Ho+oK)AJ4mXJI>L&*MRb zVPW#~4(F7fhUCSzcSpZo`($khKy8+Q;5IlHA%Vl{bNwtnen0dO(W@;^Apz7yzH+1u zPukC3=wlqZ7s1Zb{hm~yq&m-+;CS%l>BATL{ncB}8r%3C#8UAc2Gj;PDIrQ6>?cp* zhvWKEeB}b2dAkR*OGOv`00GFDV+DYS7e0lsR~M}-74GUidv+&}0lq{$2ND#)VjpPh zvY64GWLCT28xRbDD1lNEs;?i0?{}6ifxC=tygkx?zY5TALfK)Eqts^~bwTXxT!7ARDL8SzZc74DOH zcq#CTn+25M6}vV7C3ktX%0>d$s}&xRsTGg_czK|Zk9(367!|H>n`QKIaLp+LICQ1s zjRS$2$6DbGcs3oQL zkREp&0LQTjSk~BgT!(-`AVFOMY#gXDcNkQ2Y;0Ht243lm%> U53%k77XSbN07*qoM6N<$g58tK@Bjb+ diff --git a/public/images/pokemon/back/shiny/1024-stellar.json b/public/images/pokemon/back/shiny/1024-stellar.json index eeabac109a3..ce84b0d4502 100644 --- a/public/images/pokemon/back/shiny/1024-stellar.json +++ b/public/images/pokemon/back/shiny/1024-stellar.json @@ -4,30 +4,30 @@ "image": "1024-stellar.png", "format": "RGBA8888", "size": { - "w": 96, - "h": 96 + "w": 119, + "h": 119 }, - "scale": 0.333, + "scale": 1, "frames": [ { "filename": "0001.png", "rotated": false, "trimmed": false, "sourceSize": { - "w": 96, - "h": 96 + "w": 119, + "h": 119 }, "spriteSourceSize": { - "x": 5, + "x": 0, "y": 0, - "w": 86, - "h": 96 + "w": 115, + "h": 119 }, "frame": { "x": 0, "y": 0, - "w": 86, - "h": 96 + "w": 115, + "h": 119 } } ] @@ -36,6 +36,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:2bd25bae0fabcfbc35e24bd578a7b4b5:aec60788a0d77f38fb599d721e41a0d6:c1508f3b01ae78a28a1267fd6caa4f7b$" + "smartupdate": "$TexturePacker:SmartUpdate:210ba1c2e6e58501571ae226d073a3c5:f12bdf191842f7ec3a4be98a43fb8121:c1508f3b01ae78a28a1267fd6caa4f7b$" } } diff --git a/public/images/pokemon/back/shiny/1024-stellar.png b/public/images/pokemon/back/shiny/1024-stellar.png index 6b9e35174eea0e6c8aa9c8ce587734479e55f14c..0bb2993d857edfa4e44f1d33bfcdf1c5508bdf8d 100644 GIT binary patch literal 3342 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 YKZ(Y(VlZxN4FCWD07*qoM6N<$f|xnJPXGV_ literal 1571 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 From 9531f929974efd365763bf124e6de812dcac1884 Mon Sep 17 00:00:00 2001 From: maru Date: Sun, 21 Apr 2024 17:19:33 -0400 Subject: [PATCH 14/18] Use new API URL --- src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.ts b/src/utils.ts index 3cbbfd84263..7d3f0e761e4 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -212,7 +212,7 @@ export function executeIf(condition: boolean, promiseFunc: () => Promise): export const sessionIdKey = 'pokerogue_sessionId'; export const isLocal = window.location.hostname === 'localhost'; export const serverUrl = isLocal ? 'http://localhost:8001' : ''; -export const apiUrl = isLocal ? serverUrl : 'api'; +export const apiUrl = isLocal ? serverUrl : 'https://api.pokerogue.net'; export function setCookie(cName: string, cValue: string): void { const expiration = new Date(); From fd368342b886e9049c788cf2681a55ad3326729d Mon Sep 17 00:00:00 2001 From: maru Date: Sun, 21 Apr 2024 17:40:49 -0400 Subject: [PATCH 15/18] Revert "Use new API URL" This reverts commit 9531f929974efd365763bf124e6de812dcac1884. --- src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.ts b/src/utils.ts index 7d3f0e761e4..3cbbfd84263 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -212,7 +212,7 @@ export function executeIf(condition: boolean, promiseFunc: () => Promise): export const sessionIdKey = 'pokerogue_sessionId'; export const isLocal = window.location.hostname === 'localhost'; export const serverUrl = isLocal ? 'http://localhost:8001' : ''; -export const apiUrl = isLocal ? serverUrl : 'https://api.pokerogue.net'; +export const apiUrl = isLocal ? serverUrl : 'api'; export function setCookie(cName: string, cValue: string): void { const expiration = new Date(); From f5cd99f091929ccc2082f5049c34e485a318c8c2 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 21 Apr 2024 18:22:33 -0400 Subject: [PATCH 16/18] Fix evolution and hatch screen not applying shader pipeline --- src/egg-hatch-phase.ts | 8 ++++++-- src/evolution-phase.ts | 11 +++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/egg-hatch-phase.ts b/src/egg-hatch-phase.ts index 9259e7b10a4..a28d8e2983c 100644 --- a/src/egg-hatch-phase.ts +++ b/src/egg-hatch-phase.ts @@ -82,7 +82,11 @@ export class EggHatchPhase extends Phase { this.eggContainer.add(this.eggLightraysOverlay); this.eggHatchContainer.add(this.eggContainer); - const getPokemonSprite = () => this.scene.add.sprite(this.eggHatchBg.displayWidth / 2, this.eggHatchBg.displayHeight / 2, `pkmn__sub`); + const getPokemonSprite = () => { + const ret = this.scene.add.sprite(this.eggHatchBg.displayWidth / 2, this.eggHatchBg.displayHeight / 2, `pkmn__sub`); + ret.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true }); + return ret; + }; this.eggHatchContainer.add((this.pokemonSprite = getPokemonSprite())); @@ -245,7 +249,7 @@ export class EggHatchPhase extends Phase { this.scene.validateAchv(achvs.HATCH_SHINY); this.eggContainer.setVisible(false); this.pokemonSprite.play(this.pokemon.getSpriteKey(true)); - this.pokemonSprite.pipelineData['ignoreTimeTint'] = true; + this.pokemonSprite.setPipelineData('ignoreTimeTint', true); this.pokemonSprite.setPipelineData('spriteKey', this.pokemon.getSpriteKey()); this.pokemonSprite.setPipelineData('shiny', this.pokemon.shiny); this.pokemonSprite.setPipelineData('variant', this.pokemon.variant); diff --git a/src/evolution-phase.ts b/src/evolution-phase.ts index fc58d141300..fb3803a1e75 100644 --- a/src/evolution-phase.ts +++ b/src/evolution-phase.ts @@ -71,7 +71,11 @@ export class EvolutionPhase extends Phase { this.evolutionBgOverlay.setAlpha(0); this.evolutionContainer.add(this.evolutionBgOverlay); - const getPokemonSprite = () => this.scene.addPokemonSprite(this.pokemon, this.evolutionBaseBg.displayWidth / 2, this.evolutionBaseBg.displayHeight / 2, `pkmn__sub`); + const getPokemonSprite = () => { + const ret = this.scene.addPokemonSprite(this.pokemon, this.evolutionBaseBg.displayWidth / 2, this.evolutionBaseBg.displayHeight / 2, `pkmn__sub`); + ret.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true }); + return ret; + }; this.evolutionContainer.add((this.pokemonSprite = getPokemonSprite())); this.evolutionContainer.add((this.pokemonTintSprite = getPokemonSprite())); @@ -92,7 +96,10 @@ export class EvolutionPhase extends Phase { [ this.pokemonSprite, this.pokemonTintSprite, this.pokemonEvoSprite, this.pokemonEvoTintSprite ].map(sprite => { sprite.play(this.pokemon.getSpriteKey(true)); sprite.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], hasShadow: false, teraColor: getTypeRgb(this.pokemon.getTeraType()) }); - sprite.pipelineData['ignoreTimeTint'] = true; + sprite.setPipelineData('ignoreTimeTint', true); + sprite.setPipelineData('spriteKey', this.pokemon.getSpriteKey()); + sprite.setPipelineData('shiny', this.pokemon.shiny); + sprite.setPipelineData('variant', this.pokemon.variant); [ 'spriteColors', 'fusionSpriteColors' ].map(k => { if (this.pokemon.summonData?.speciesForm) k += 'Base'; From 1eaa5c0d7976089338c04cea6395b5dfe1814b2f Mon Sep 17 00:00:00 2001 From: Tempoanon <163687446+TempsRay@users.noreply.github.com> Date: Sun, 21 Apr 2024 18:23:45 -0400 Subject: [PATCH 17/18] Misc changes (fix Trumbeak level up, give Mega Gallade sharpness, WIP for curse) (#229) * Minor changes * fix tabbing * minor nits in CurseAttr --- src/data/battler-tags.ts | 35 ++++++++++++++++++++++++++++++ src/data/enums/battler-tag-type.ts | 1 + src/data/move.ts | 29 +++++++++++++++++++++++++ src/data/pokemon-evolutions.ts | 2 +- src/data/pokemon-species.ts | 2 +- 5 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 5d4c1c94d89..c856fa05d3f 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -1017,6 +1017,39 @@ export class SaltCuredTag extends BattlerTag { } } +export class CursedTag extends BattlerTag { + private sourceIndex: integer; + + constructor(sourceId: integer) { + super(BattlerTagType.CURSED, BattlerTagLapseType.TURN_END, 1, Moves.CURSE, sourceId); + } + + onAdd(pokemon: Pokemon): void { + super.onAdd(pokemon); + + pokemon.scene.queueMessage(getPokemonMessage(pokemon, ' has been cursed!')); + this.sourceIndex = pokemon.scene.getPokemonById(this.sourceId).getBattlerIndex(); + } + + lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { + const ret = lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType); + + if (ret) { + pokemon.scene.unshiftPhase(new CommonAnimPhase(pokemon.scene, pokemon.getBattlerIndex(), pokemon.getBattlerIndex(), CommonAnim.SALT_CURE)); + + const cancelled = new Utils.BooleanHolder(false); + applyAbAttrs(BlockNonDirectDamageAbAttr, pokemon, cancelled); + + if (!cancelled.value) { + pokemon.damageAndUpdate(Math.floor(pokemon.getMaxHp() / 4)); + pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` is hurt by the ${this.getMoveName()}!`)); + } + } + + return ret; + } +} + export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourceMove: Moves, sourceId: integer): BattlerTag { switch (tagType) { case BattlerTagType.RECHARGING: @@ -1114,6 +1147,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc return new BattlerTag(tagType, BattlerTagLapseType.TURN_END, turnCount - 1, sourceMove); case BattlerTagType.SALT_CURED: return new SaltCuredTag(sourceId); + case BattlerTagType.CURSED: + return new CursedTag(sourceId); case BattlerTagType.CHARGED: return new TypeBoostTag(tagType, sourceMove, Type.ELECTRIC, 2, true); case BattlerTagType.NONE: diff --git a/src/data/enums/battler-tag-type.ts b/src/data/enums/battler-tag-type.ts index b0fb7c2cc75..9c740ef4629 100644 --- a/src/data/enums/battler-tag-type.ts +++ b/src/data/enums/battler-tag-type.ts @@ -49,6 +49,7 @@ export enum BattlerTagType { BYPASS_SLEEP = "BYPASS_SLEEP", IGNORE_FLYING = "IGNORE_FLYING", SALT_CURED = "SALT_CURED", + CURSED = "CURSED", CHARGED = "CHARGED", GROUNDED = "GROUNDED" } diff --git a/src/data/move.ts b/src/data/move.ts index d5bd71ad2e1..03fd53ec29f 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2493,6 +2493,7 @@ export class AddBattlerTagAttr extends MoveEffectAttr { return -5; case BattlerTagType.SEEDED: case BattlerTagType.SALT_CURED: + case BattlerTagType.CURSED: case BattlerTagType.FRENZY: case BattlerTagType.TRAPPED: case BattlerTagType.BIND: @@ -2527,6 +2528,34 @@ export class AddBattlerTagAttr extends MoveEffectAttr { } } +export class CurseAttr extends MoveEffectAttr { + + apply(user: Pokemon, target: Pokemon, move:Move, args: any[]): boolean { + // Determine the correct target based on the user's type + if (!user.getTypes(true).includes(Type.GHOST)) { + // For non-Ghost types, target the user itself + target = user; + } + + if (user.getTypes(true).includes(Type.GHOST)) { + if (target.getTag(BattlerTagType.CURSED)) { + user.scene.queueMessage('But it failed!'); + return false; + } + let curseRecoilDamage = Math.floor(user.getMaxHp() / 2); + user.damageAndUpdate(curseRecoilDamage, HitResult.OTHER, false, true, true); + user.scene.queueMessage(getPokemonMessage(user, ' cut its own HP!')); + target.addTag(BattlerTagType.CURSED, 0, move.id, user.id); + return true; + } else { + target = user; + user.scene.unshiftPhase(new StatChangePhase(user.scene, user.getBattlerIndex(), this.selfTarget, [BattleStat.ATK, BattleStat.DEF], 1)); + user.scene.unshiftPhase(new StatChangePhase(user.scene, user.getBattlerIndex(), this.selfTarget, [BattleStat.SPD], -1)); + return true; + } + } +} + export class LapseBattlerTagAttr extends MoveEffectAttr { public tagTypes: BattlerTagType[]; diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index fca8dbd76ca..68369389066 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -917,7 +917,7 @@ export const pokemonEvolutions: PokemonEvolutions = { new SpeciesEvolution(Species.TRUMBEAK, 14, null, null) ], [Species.TRUMBEAK]: [ - new SpeciesEvolution(Species.TOUCANNON, 36, null, null) + new SpeciesEvolution(Species.TOUCANNON, 28, null, null) ], [Species.YUNGOOS]: [ new SpeciesEvolution(Species.GUMSHOOS, 20, null, new SpeciesEvolutionCondition(p => p.scene.arena.getTimeOfDay() === TimeOfDay.DAY), SpeciesWildEvolutionDelay.SHORT) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 3cf586057b1..30622fb033d 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -1473,7 +1473,7 @@ export function initSpecies() { new PokemonSpecies(Species.PORYGON_Z, "Porygon-Z", 4, false, false, false, "Virtual Pokémon", Type.NORMAL, null, 0.9, 34, Abilities.ADAPTABILITY, Abilities.DOWNLOAD, Abilities.ANALYTIC, 535, 85, 80, 70, 135, 75, 90, 30, 50, 268, GrowthRate.MEDIUM_FAST, null, false), new PokemonSpecies(Species.GALLADE, "Gallade", 4, false, false, false, "Blade Pokémon", Type.PSYCHIC, Type.FIGHTING, 1.6, 52, Abilities.STEADFAST, Abilities.SHARPNESS, Abilities.JUSTIFIED, 518, 68, 125, 65, 65, 115, 80, 45, 35, 259, GrowthRate.SLOW, 100, false, true, new PokemonForm("Normal", "", Type.PSYCHIC, Type.FIGHTING, 1.6, 52, Abilities.STEADFAST, Abilities.SHARPNESS, Abilities.JUSTIFIED, 518, 68, 125, 65, 65, 115, 80, 45, 35, 259), - new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.PSYCHIC, Type.FIGHTING, 1.6, 56.4, Abilities.INNER_FOCUS, Abilities.INNER_FOCUS, Abilities.INNER_FOCUS, 618, 68, 165, 95, 65, 115, 110, 45, 35, 259), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.PSYCHIC, Type.FIGHTING, 1.6, 56.4, Abilities.SHARPNESS, Abilities.SHARPNESS, Abilities.SHARPNESS, 618, 68, 165, 95, 65, 115, 110, 45, 35, 259), ), new PokemonSpecies(Species.PROBOPASS, "Probopass", 4, false, false, false, "Compass Pokémon", Type.ROCK, Type.STEEL, 1.4, 340, Abilities.STURDY, Abilities.MAGNET_PULL, Abilities.SAND_FORCE, 525, 60, 55, 145, 75, 150, 40, 60, 70, 184, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DUSKNOIR, "Dusknoir", 4, false, false, false, "Gripper Pokémon", Type.GHOST, null, 2.2, 106.6, Abilities.PRESSURE, Abilities.NONE, Abilities.FRISK, 525, 45, 100, 135, 65, 135, 45, 45, 35, 263, GrowthRate.FAST, 50, false), From 1a53c19e3b504313e3aa8ff2f962ff3a6cf87d20 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 21 Apr 2024 18:45:14 -0400 Subject: [PATCH 18/18] Add menu cursor wrapping --- src/ui/menu-ui-handler.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 88a80f7d21d..8b2c5646903 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -336,10 +336,14 @@ export default class MenuUiHandler extends MessageUiHandler { case Button.UP: if (this.cursor) success = this.setCursor(this.cursor - 1); + else + success = this.setCursor(this.menuOptions.length - 1); break; case Button.DOWN: if (this.cursor + 1 < this.menuOptions.length) success = this.setCursor(this.cursor + 1); + else + success = this.setCursor(0); break; } }