Merge branch 'beta' into gitlocalize-30760

This commit is contained in:
Enoch 2024-08-29 07:27:07 +09:00 committed by GitHub
commit ed7ee1c93a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 162 additions and 28 deletions

View File

@ -2,6 +2,106 @@
"boy": "Chico",
"girl": "Chica",
"general": "General",
"display": "Pantalla",
"audio": "Audio",
"shopOverlayOpacity": "Opacidad de la fase de compra"
"gamepad": "Mando",
"keyboard": "Teclado",
"gameSpeed": "Veloc. del juego",
"hpBarSpeed": "Veloc. barra PS",
"expGainsSpeed": "Veloc. de EXP",
"expPartyDisplay": "Mostrar EXP del Equipo",
"skipSeenDialogues": "Saltar diálogos leídos",
"battleStyle": "Estilo de lucha",
"enableRetries": "Activar reintento",
"hideIvs": "Ocultar escáner de IVs",
"tutorials": "Tutoriales",
"touchControls": "Control táctil",
"vibrations": "Vibración",
"normal": "Normal",
"fast": "+1",
"faster": "+2",
"skip": "Saltar",
"levelUpNotifications": "Aumentos de nivel",
"on": "Sí",
"off": "No",
"switch": "Cambiar",
"set": "Mantener",
"auto": "Auto.",
"disabled": "Desact.",
"language": "Idioma",
"change": "Cambiar",
"uiTheme": "Color UI",
"default": "Predet.",
"legacy": "Clásico",
"windowType": "Ventana",
"moneyFormat": "Formato dinero",
"damageNumbers": "Cifras de daño",
"simple": "Simple",
"fancy": "Elegante",
"abbreviated": "Abreviado",
"moveAnimations": "Animación de movs.",
"showStatsOnLevelUp": "Estadísticas al aum. nivel",
"candyUpgradeNotification": "Aviso de caramelos",
"passivesOnly": "Solo pasivas",
"candyUpgradeDisplay": "Muestra de caramelos",
"icon": "Icono",
"animation": "Animación",
"moveInfo": "Info. de movimientos",
"showMovesetFlyout": "Descripción de movimientos",
"showArenaFlyout": "Descripción de escenarios",
"showTimeOfDayWidget": "Mostrar hora del día",
"timeOfDayAnimation": "Animación hora del día",
"bounce": "Rebote",
"timeOfDay_back": "Vuelta",
"spriteSet": "Set de sprites",
"consistent": "Consistente",
"mixedAnimated": "Mixto",
"fusionPaletteSwaps": "Colores de fusión",
"playerGender": "Género del jugador",
"typeHints": "Pistas de tipos",
"masterVolume": "Volumen total",
"bgmVolume": "Volumen música",
"fieldVolume": "Volumen escenario",
"seVolume": "Volumen efectos",
"uiVolume": "Volumen sistema",
"musicPreference": "Preferencia musical",
"mixed": "Mixta",
"gamepadPleasePlug": "Conecta un mando o pulsa un botón",
"delete": "Eliminar",
"keyboardPleasePress": "Pulsa una tecla de tu teclado",
"reset": "Restablecer",
"requireReload": "Requiere reinicio",
"action": "Acción",
"back": "Atrás",
"pressToBind": "Pulsa para vincular",
"pressButton": "Pulsa un botón...",
"buttonUp": "Arriba",
"buttonDown": "Abajo",
"buttonLeft": "Izquierda",
"buttonRight": "Derecha",
"buttonAction": "Acción",
"buttonMenu": "Menú",
"buttonSubmit": "Confirmar",
"buttonCancel": "Cancelar",
"buttonStats": "Estadísticas",
"buttonCycleForm": "Cambiar forma",
"buttonCycleShiny": "Cambiar shiny",
"buttonCycleGender": "Cambiar género",
"buttonCycleAbility": "Cambiar habilidad",
"buttonCycleNature": "Cambiar naturaleza",
"buttonCycleVariant": "Cambiar variante",
"buttonSpeedUp": "Acelerar",
"buttonSlowDown": "Ralentizar",
"alt": " (Alt.)",
"mute": "Silenciar",
"controller": "Mando",
"gamepadSupport": "Soporte de mando",
"showBgmBar": "Mostrar título de canción",
"moveTouchControls": "Controles táctiles",
"shopOverlayOpacity": "Opacidad de la fase de compra",
"shopCursorTarget": "Cursor de la tienda",
"items": "Objetos",
"reroll": "Actualizar",
"shop": "Tienda",
"checkTeam": "Ver equipo"
}

View File

@ -138,11 +138,17 @@
"rood": "Rood",
"xerosic": "Xerosic",
"bryony": "Bryony",
"faba": "Faba",
"plumeria": "Plumeria",
"oleana": "Oleana",
"maxie": "Maxie",
"archie": "Archie",
"cyrus": "Cyrus",
"ghetsis": "Ghetsis",
"lysandre": "Lysandre",
"lusamine": "Lusamine",
"guzma": "Guzma",
"rose": "Rose",
"blue_red_double": "Blue & Red",
"red_blue_double": "Red & Blue",
"tate_liza_double": "Tate & Liza",
@ -153,4 +159,4 @@
"iris_alder_double": "Iris & Alder",
"marnie_piers_double": "Marnie & Piers",
"piers_marnie_double": "Piers & Marnie"
}
}

View File

@ -57,7 +57,7 @@ export class ModifierType {
this.localeKey = localeKey!; // TODO: is this bang correct?
this.iconImage = iconImage!; // TODO: is this bang correct?
this.group = group!; // TODO: is this bang correct?
this.soundName = soundName ?? "restore";
this.soundName = soundName ?? "se/restore";
this.newModifierFunc = newModifierFunc;
}
@ -169,7 +169,7 @@ class AddPokeballModifierType extends ModifierType {
private count: integer;
constructor(iconImage: string, pokeballType: PokeballType, count: integer) {
super("", iconImage, (_type, _args) => new Modifiers.AddPokeballModifier(this, pokeballType, count), "pb", "pb_bounce_1");
super("", iconImage, (_type, _args) => new Modifiers.AddPokeballModifier(this, pokeballType, count), "pb", "se/pb_bounce_1");
this.pokeballType = pokeballType;
this.count = count;
}
@ -677,7 +677,7 @@ export class MoneyRewardModifierType extends ModifierType {
private moneyMultiplierDescriptorKey: string;
constructor(localeKey: string, iconImage: string, moneyMultiplier: number, moneyMultiplierDescriptorKey: string) {
super(localeKey, iconImage, (_type, _args) => new Modifiers.MoneyRewardModifier(this, moneyMultiplier), "money", "buy");
super(localeKey, iconImage, (_type, _args) => new Modifiers.MoneyRewardModifier(this, moneyMultiplier), "money", "se/buy");
this.moneyMultiplier = moneyMultiplier;
this.moneyMultiplierDescriptorKey = moneyMultiplierDescriptorKey;
@ -1462,7 +1462,7 @@ export const modifierTypes = {
VOUCHER_PLUS: () => new AddVoucherModifierType(VoucherType.PLUS, 1),
VOUCHER_PREMIUM: () => new AddVoucherModifierType(VoucherType.PREMIUM, 1),
GOLDEN_POKEBALL: () => new ModifierType("modifierType:ModifierType.GOLDEN_POKEBALL", "pb_gold", (type, _args) => new Modifiers.ExtraModifierModifier(type), undefined, "pb_bounce_1"),
GOLDEN_POKEBALL: () => new ModifierType("modifierType:ModifierType.GOLDEN_POKEBALL", "pb_gold", (type, _args) => new Modifiers.ExtraModifierModifier(type), undefined, "se/pb_bounce_1"),
ENEMY_DAMAGE_BOOSTER: () => new ModifierType("modifierType:ModifierType.ENEMY_DAMAGE_BOOSTER", "wl_item_drop", (type, _args) => new Modifiers.EnemyDamageBoosterModifier(type, 5)),
ENEMY_DAMAGE_REDUCTION: () => new ModifierType("modifierType:ModifierType.ENEMY_DAMAGE_REDUCTION", "wl_guard_spec", (type, _args) => new Modifiers.EnemyDamageReducerModifier(type, 2.5)),

View File

@ -1,19 +1,19 @@
import { clientSessionId } from "#app/account.js";
import BattleScene from "#app/battle-scene.js";
import { BattleType } from "#app/battle.js";
import { miscDialogue, getCharVariantFromDialogue } from "#app/data/dialogue.js";
import { pokemonEvolutions } from "#app/data/pokemon-evolutions.js";
import PokemonSpecies, { getPokemonSpecies } from "#app/data/pokemon-species.js";
import { trainerConfigs } from "#app/data/trainer-config.js";
import { PlayerGender } from "#app/enums/player-gender.js";
import { TrainerType } from "#app/enums/trainer-type.js";
import Pokemon from "#app/field/pokemon.js";
import { modifierTypes } from "#app/modifier/modifier-type.js";
import { achvs, ChallengeAchv } from "#app/system/achv.js";
import { Unlockables } from "#app/system/unlockables.js";
import { Mode } from "#app/ui/ui.js";
import { clientSessionId } from "#app/account";
import BattleScene from "#app/battle-scene";
import { BattleType } from "#app/battle";
import { miscDialogue, getCharVariantFromDialogue } from "#app/data/dialogue";
import { pokemonEvolutions } from "#app/data/pokemon-evolutions";
import PokemonSpecies, { getPokemonSpecies } from "#app/data/pokemon-species";
import { trainerConfigs } from "#app/data/trainer-config";
import { PlayerGender } from "#app/enums/player-gender";
import { TrainerType } from "#app/enums/trainer-type";
import Pokemon from "#app/field/pokemon";
import { modifierTypes } from "#app/modifier/modifier-type";
import { achvs, ChallengeAchv } from "#app/system/achv";
import { Unlockables } from "#app/system/unlockables";
import { Mode } from "#app/ui/ui";
import i18next from "i18next";
import * as Utils from "#app/utils.js";
import * as Utils from "#app/utils";
import { BattlePhase } from "./battle-phase";
import { CheckSwitchPhase } from "./check-switch-phase";
import { EncounterPhase } from "./encounter-phase";
@ -23,6 +23,12 @@ import { SummonPhase } from "./summon-phase";
import { EndCardPhase } from "./end-card-phase";
import { PostGameOverPhase } from "./post-game-over-phase";
import { UnlockPhase } from "./unlock-phase";
import { SessionSaveData } from "../system/game-data";
import TrainerData from "../system/trainer-data";
import PokemonData from "../system/pokemon-data";
import PersistentModifierData from "../system/modifier-data";
import ChallengeData from "../system/challenge-data";
import ArenaData from "../system/arena-data";
export class GameOverPhase extends BattlePhase {
private victory: boolean;
@ -98,13 +104,7 @@ export class GameOverPhase extends BattlePhase {
this.scene.gameData.gameStats.dailyRunSessionsWon++;
}
}
this.scene.gameData.getSession(this.scene.sessionSlotId).then(sessionData => {
if (sessionData) {
this.scene.gameData.saveRunHistory(this.scene, sessionData, this.victory);
}
}).catch(err => {
console.error("Failed to save run to history.", err);
});
this.scene.gameData.saveRunHistory(this.scene, this.getFinalSessionData(), this.victory);
const fadeDuration = this.victory ? 10000 : 5000;
this.scene.fadeOutBgm(fadeDuration, true);
const activeBattlers = this.scene.getField().filter(p => p?.isActive(true));
@ -207,4 +207,32 @@ export class GameOverPhase extends BattlePhase {
this.firstRibbons.push(getPokemonSpecies(pokemon.species.getRootSpeciesId(forStarter)));
}
}
/**
* This function mirrors game-data.ts' getSessionSaveData() to update the session data to reflect any changes that occurred within the last wave
* This means that level ups, item usage, evolutions, etc. will all be accurately reflected.
* @returns {@linkCode SessionSaveData} an updated version of the wave's SessionSaveData that accurately reflects the events of the wave
*/
private getFinalSessionData(): SessionSaveData {
return {
seed: this.scene.seed,
playTime: this.scene.sessionPlayTime,
gameMode: this.scene.gameMode.modeId,
party: this.scene.getParty().map(p => new PokemonData(p)),
enemyParty: this.scene.getEnemyParty().map(p => new PokemonData(p)),
modifiers: this.scene.findModifiers(() => true).map(m => new PersistentModifierData(m, true)),
enemyModifiers: this.scene.findModifiers(() => true, false).map(m => new PersistentModifierData(m, false)),
arena: new ArenaData(this.scene.arena),
pokeballCounts: this.scene.pokeballCounts,
money: this.scene.money,
score: this.scene.score,
waveIndex: this.scene.currentBattle.waveIndex,
battleType: this.scene.currentBattle.battleType,
trainer: this.scene.currentBattle.battleType === BattleType.TRAINER ? new TrainerData(this.scene.currentBattle.trainer) : null,
gameVersion: this.scene.game.config.gameVersion,
timestamp: new Date().getTime(),
challenges: this.scene.gameMode.challenges.map(c => new ChallengeData(c))
} as SessionSaveData;
}
}