pull latest from beta

This commit is contained in:
ImperialSympathizer 2024-08-29 12:56:43 -04:00
commit b086c882ab
66 changed files with 515 additions and 2646 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -4,8 +4,8 @@
"image": "skull_grunt_f.png",
"format": "RGBA8888",
"size": {
"w": 69,
"h": 69
"w": 74,
"h": 74
},
"scale": 1,
"frames": [
@ -14,20 +14,20 @@
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
"w": 31,
"h": 74
},
"spriteSourceSize": {
"x": 27,
"y": 9,
"w": 29,
"h": 69
"x": 0,
"y": 0,
"w": 31,
"h": 74
},
"frame": {
"x": 0,
"y": 0,
"w": 29,
"h": 69
"w": 31,
"h": 74
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:2e44c39efe8e78ec75d9119731b9b1cb:4923b5197ea74a9ed0b861e2408f595b:9035f560a0ab0d45bcc084aba7172990$"
"smartupdate": "$TexturePacker:SmartUpdate:71a1f5b1981674c6e81163ac8ea576c3:a5e612d58e5f0a1489e111212baea09d:dd369353af16e4c5eb6547e129dfac18$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 B

After

Width:  |  Height:  |  Size: 905 B

View File

@ -4,8 +4,8 @@
"image": "skull_grunt_m.png",
"format": "RGBA8888",
"size": {
"w": 67,
"h": 67
"w": 72,
"h": 72
},
"scale": 1,
"frames": [
@ -14,20 +14,20 @@
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
"w": 51,
"h": 72
},
"spriteSourceSize": {
"x": 28,
"y": 11,
"w": 26,
"h": 67
"x": 0,
"y": 0,
"w": 51,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 26,
"h": 67
"w": 51,
"h": 72
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:688a83ff13a77c6923f038db8c7e5e84:d0ece3ab82602eb0c5003bacc26dbd9f:1ff10b395daf6ebfa377680a6404f816$"
"smartupdate": "$TexturePacker:SmartUpdate:4deb2a68e4d168bb1a40cb5d190a7d1f:be3d7b29f4b544ba51cf907691fef51d:df57ca2c9bf5f80d930306e15a851d4d$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

After

Width:  |  Height:  |  Size: 966 B

View File

@ -6,6 +6,7 @@ export interface UserInfo {
lastSessionSlot: integer;
discordId: string;
googleId: string;
hasAdminRole: boolean;
}
export let loggedInUser: UserInfo | null = null;
@ -13,13 +14,13 @@ export let loggedInUser: UserInfo | null = null;
export const clientSessionId = Utils.randomString(32);
export function initLoggedInUser(): void {
loggedInUser = { username: "Guest", lastSessionSlot: -1, discordId: "", googleId: ""};
loggedInUser = { username: "Guest", lastSessionSlot: -1, discordId: "", googleId: "", hasAdminRole: false };
}
export function updateUserInfo(): Promise<[boolean, integer]> {
return new Promise<[boolean, integer]>(resolve => {
if (bypassLogin) {
loggedInUser = { username: "Guest", lastSessionSlot: -1, discordId: "", googleId: "" };
loggedInUser = { username: "Guest", lastSessionSlot: -1, discordId: "", googleId: "", hasAdminRole: false};
let lastSessionSlot = -1;
for (let s = 0; s < 5; s++) {
if (localStorage.getItem(`sessionData${s ? s : ""}_${loggedInUser.username}`)) {

View File

@ -1 +0,0 @@
{}

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const caEsConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,264 +0,0 @@
{
"Achievements": {
"name": "Errungenschaften"
},
"Locked": {
"name": "Gesperrt"
},
"MoneyAchv": {
"description": "Häufe eine Gesamtsumme von {{moneyAmount}} ₽ an."
},
"10K_MONEY": {
"name": "Besserverdiener"
},
"100K_MONEY": {
"name": "Reich"
},
"1M_MONEY": {
"name": "Millionär"
},
"10M_MONEY": {
"name": "Einprozenter"
},
"DamageAchv": {
"description": "Füge mit einem Treffer {{damageAmount}} Schaden zu."
},
"250_DMG": {
"name": "Harte Treffer"
},
"1000_DMG": {
"name": "Härtere Treffer"
},
"2500_DMG": {
"name": "Das ist ne Menge Schaden!"
},
"10000_DMG": {
"name": "One Punch Man"
},
"HealAchv": {
"description": "Heile {{healAmount}} {{HP}} auf einmal. Mit einer Attacke, Fähigkeit oder einem gehaltenen Gegenstand."
},
"250_HEAL": {
"name": "Anfänger-Heiler"
},
"1000_HEAL": {
"name": "Gesundheitsprofi"
},
"2500_HEAL": {
"name": "Kleriker"
},
"10000_HEAL": {
"name": "Wiederherstellungsmeister"
},
"LevelAchv": {
"description": "Erhöhe das Level eines Pokémon auf {{level}}."
},
"LV_100": {
"name": "Warte, es gibt mehr!"
},
"LV_250": {
"name": "Elite"
},
"LV_1000": {
"name": "Geh noch höher hinaus!"
},
"RibbonAchv": {
"description": "Sammle insgesamt {{ribbonAmount}} Bänder."
},
"10_RIBBONS": {
"name": "Champion der Pokémon Liga"
},
"25_RIBBONS": {
"name": "Bänder-Sammler"
},
"50_RIBBONS": {
"name": "Bänder-Experte"
},
"75_RIBBONS": {
"name": "Bänder-Guru"
},
"100_RIBBONS": {
"name": "Bänder-Meister"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Teamwork",
"description": "Nutze Staffette, während der Anwender mindestens eines Statuswertes maximiert hat."
},
"MAX_FRIENDSHIP": {
"name": "Freundschaftsmaximierung",
"description": "Erreiche maximale Freundschaft bei einem Pokémon."
},
"MEGA_EVOLVE": {
"name": "Megaverwandlung",
"description": "Megaentwickle ein Pokémon."
},
"GIGANTAMAX": {
"name": "Absolute Einheit",
"description": "Gigadynamaximiere ein Pokémon."
},
"TERASTALLIZE": {
"name": "Typen-Bonus Enthusiast",
"description": "Terrakristallisiere ein Pokémon."
},
"STELLAR_TERASTALLIZE": {
"name": "Der geheime Typ",
"description": "Terrakristallisiere ein Pokémon zum Typen Stellar."
},
"SPLICE": {
"name": "Unendliche Fusion",
"description": "Kombiniere zwei Pokémon mit einem DNS-Keil."
},
"MINI_BLACK_HOLE": {
"name": "Ein Loch voller Items",
"description": "Erlange ein Mini-Schwarzes Loch."
},
"CATCH_MYTHICAL": {
"name": "Mysteriöses!",
"description": "Fange ein mysteriöses Pokémon."
},
"CATCH_SUB_LEGENDARY": {
"name": "Sub-Legendär",
"description": "Fange ein sub-legendäres Pokémon."
},
"CATCH_LEGENDARY": {
"name": "Legendär",
"description": "Fange ein legendäres Pokémon."
},
"SEE_SHINY": {
"name": "Schillerndes Licht",
"description": "Finde ein wildes schillerndes Pokémon."
},
"SHINY_PARTY": {
"name": "Das ist Hingabe",
"description": "Habe ein Team aus schillernden Pokémon."
},
"HATCH_MYTHICAL": {
"name": "Mysteriöses Ei",
"description": "Lass ein mysteriöses Pokémon aus einem Ei schlüpfen."
},
"HATCH_SUB_LEGENDARY": {
"name": "Sub-Legendäres Ei",
"description": "Lass ein sub-legendäres Pokémon aus einem Ei schlüpfen."
},
"HATCH_LEGENDARY": {
"name": "Legendäres Ei",
"description": "Lass ein legendäres Pokémon aus einem Ei schlüpfen."
},
"HATCH_SHINY": {
"name": "Schillerndes Ei",
"description": "Lass ein schillerndes Pokémon aus einem Ei schlüpfen."
},
"HIDDEN_ABILITY": {
"name": "Geheimes Talent",
"description": "Fang ein Pokémon mit versteckter Fähigkeit."
},
"PERFECT_IVS": {
"name": "Zertifikat der Echtheit",
"description": "Erhalte ein Pokémon mit perfekten IS-Werten."
},
"CLASSIC_VICTORY": {
"name": "Ungeschlagen",
"description": "Beende den klassischen Modus erfolgreich."
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "'Bringe dein Kind mit zur Arbeit'-Tag",
"description": "Beende den klassischen Modus erfolgreich mit mindestens einem nicht entwickeltem Pokémon in deinem Team"
},
"MONO_GEN_ONE": {
"name": "Der originale Rivale",
"description": "Schließe die 'Nur 1. Generation' Herausforderung ab."
},
"MONO_GEN_TWO": {
"name": "Generation 1.5",
"description": "Schließe die 'Nur 2. Generation' Herausforderung ab."
},
"MONO_GEN_THREE": {
"name": "Zu viel Wasser?",
"description": "Schließe die 'Nur 3. Generation' Herausforderung ab."
},
"MONO_GEN_FOUR": {
"name": "Ist SIE wirklich die Stärkste?",
"description": "Schließe die 'Nur 4. Generation' Herausforderung ab."
},
"MONO_GEN_FIVE": {
"name": "Komplett Original",
"description": "Schließe die 'Nur 5. Generation' Herausforderung ab."
},
"MONO_GEN_SIX": {
"name": "Fast Königlich",
"description": "Schließe die 'Nur 6. Generation' Herausforderung ab."
},
"MONO_GEN_SEVEN": {
"name": "Technisch gesehen",
"description": "Schließe die 'Nur 7. Generation' Herausforderung ab."
},
"MONO_GEN_EIGHT": {
"name": "Die Zeit des Champions",
"description": "Schließe die 'Nur 8. Generation' Herausforderung ab."
},
"MONO_GEN_NINE": {
"name": "Sie hat es dir leicht gemacht...",
"description": "Schließe die 'Nur 9. Generation' Herausforderung ab."
},
"MonoType": {
"description": "Beende die Monotyp-{{type}} Herausforderung."
},
"MONO_NORMAL": {
"name": "Normaler Typ"
},
"MONO_FIGHTING": {
"name": "Ich kenne Kung Fu."
},
"MONO_FLYING": {
"name": "Ich glaube ich kann fliegen."
},
"MONO_POISON": {
"name": "Kantos Liebling"
},
"MONO_GROUND": {
"name": "Auf dem Boden bleiben."
},
"MONO_ROCK": {
"name": "So hart wie Rocko."
},
"MONO_BUG": {
"name": "Steche wie ein Bibor."
},
"MONO_GHOST": {
"name": "Wer wird angerufen?"
},
"MONO_STEEL": {
"name": "Stahlharte Entschlossenheit"
},
"MONO_FIRE": {
"name": "Brennende Leidenschaft"
},
"MONO_WATER": {
"name": "Wenn es regnet, schüttet es!"
},
"MONO_GRASS": {
"name": "Grüner Daumen"
},
"MONO_ELECTRIC": {
"name": "Elektrisierend"
},
"MONO_PSYCHIC": {
"name": "Übernatürliches Talent"
},
"MONO_ICE": {
"name": "Eis Eis Baby"
},
"MONO_DRAGON": {
"name": "Siegfried bist du es?"
},
"MONO_DARK": {
"name": "Es ist nur eine Phase!"
},
"MONO_FAIRY": {
"name": "Ein ewiges Abenteuer!"
},
"FRESH_START": {
"name": "Hussa, noch einmal von vorn!",
"description": "Schließe die 'Neuanfang' Herausforderung ab"
}
}

View File

@ -1,31 +1,4 @@
{
"10K_MONEY": {
"name": "Besserverdienerin"
},
"1M_MONEY": {
"name": "Millionärin"
},
"10000_DMG": {
"name": "One Punch Woman"
},
"250_HEAL": {
"name": "Anfänger-Heilerin"
},
"2500_HEAL": {
"name": "Klerikerin"
},
"10000_HEAL": {
"name": "Wiederherstellungsmeisterin"
},
"25_RIBBONS": {
"name": "Bänder-Sammlerin"
},
"50_RIBBONS": {
"name": "Bänder-Expertin"
},
"100_RIBBONS": {
"name": "Bänder-Meisterin"
},
"Achievements": {
"name": "Errungenschaften"
},
@ -35,9 +8,17 @@
"MoneyAchv": {
"description": "Häufe eine Gesamtsumme von {{moneyAmount}} ₽ an."
},
"10K_MONEY": {
"name": "Besserverdiener",
"name_female": "Besserverdienerin"
},
"100K_MONEY": {
"name": "Reich"
},
"1M_MONEY": {
"name": "Millionär",
"name_female": "Millionärin"
},
"10M_MONEY": {
"name": "Einprozenter"
},
@ -53,12 +34,28 @@
"2500_DMG": {
"name": "Das ist ne Menge Schaden!"
},
"10000_DMG": {
"name": "One Punch Man",
"name_female": "One Punch Woman"
},
"HealAchv": {
"description": "Heile {{healAmount}} {{HP}} auf einmal. Mit einer Attacke, Fähigkeit oder einem gehaltenen Gegenstand."
},
"250_HEAL": {
"name": "Anfänger-Heiler",
"name_female": "Anfänger-Heilerin"
},
"1000_HEAL": {
"name": "Gesundheitsprofi"
},
"2500_HEAL": {
"name": "Kleriker",
"name_female": "Klerikerin"
},
"10000_HEAL": {
"name": "Wiederherstellungsmeister",
"name_female": "Wiederherstellungsmeisterin"
},
"LevelAchv": {
"description": "Erhöhe das Level eines Pokémon auf {{level}}."
},
@ -77,9 +74,21 @@
"10_RIBBONS": {
"name": "Champion der Pokémon Liga"
},
"25_RIBBONS": {
"name": "Bänder-Sammler",
"name_female": "Bänder-Sammlerin"
},
"50_RIBBONS": {
"name": "Bänder-Experte",
"name_female": "Bänder-Expertin"
},
"75_RIBBONS": {
"name": "Bänder-Guru"
},
"100_RIBBONS": {
"name": "Bänder-Meister",
"name_female": "Bänder-Meisterin"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Teamwork",
"description": "Nutze Staffette, während der Anwender mindestens eines Statuswertes maximiert hat."

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const deConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -869,7 +869,7 @@
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Besiten sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen."
"1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Bestien sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen."
},
"victory": {
"1": "Wie kann eine Person nur so grausam sein?!"

View File

@ -869,7 +869,7 @@
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Besiten sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen."
"1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Bestien sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen."
},
"victory": {
"1": "Wie kann eine Person nur so grausam sein?!"

View File

@ -1,15 +1,15 @@
{
"victory": "Sieg!",
"defeatedWildM": "Besiegt durch ",
"defeatedTrainerM": "Besiegt durch ",
"defeatedTrainerDoubleM": "Besiegt durch Doppelkampf",
"defeatedRivalM": "Besiegt durch Rivalin",
"defeatedM": "Besiegt",
"defeatedWildF": "Besiegt durch ",
"defeatedTrainerF": "Besiegt durch ",
"defeatedTrainerDoubleF": "Besiegt durch Doppelkampf",
"defeatedRivalF": "Besiegt durch Rivale",
"defeatedF": "Besiegt",
"defeatedWild": "Besiegt durch ",
"defeatedTrainer": "Besiegt durch ",
"defeatedTrainerDouble": "Besiegt durch Doppelkampf",
"defeatedRival": "Besiegt durch Rivalin",
"defeated": "Besiegt",
"defeatedWild_female": "Besiegt durch ",
"defeatedTrainer_female": "Besiegt durch ",
"defeatedTrainerDouble_female": "Besiegt durch Doppelkampf",
"defeatedRival_female": "Besiegt durch Rivale",
"defeated_female": "Besiegt",
"luck": "Glück",
"score": "Punkte",
"mode": "Modus",
@ -30,8 +30,8 @@
"money": "Geld",
"runLength": "Durchlauf Dauer",
"viewHeldItems": "Getragene Items",
"hallofFameTextM": "Willkommen in der Ruhmeshalle!",
"hallofFameTextF": "Willkommen in der Ruhmeshalle",
"hallofFameText": "Willkommen in der Ruhmeshalle!",
"hallofFameText_female": "Willkommen in der Ruhmeshalle",
"viewHallOfFame": "Ruhmeshalle ansehen!",
"viewEndingSplash": "Endgrafik anzeigen!"
}

View File

@ -9,16 +9,20 @@
"description": "Accumulate a total of ₽{{moneyAmount}}"
},
"10K_MONEY": {
"name": "Money Haver"
"name": "Money Haver",
"name_female": null
},
"100K_MONEY": {
"name": "Rich"
"name": "Rich",
"name_female": null
},
"1M_MONEY": {
"name": "Millionaire"
"name": "Millionaire",
"name_female": null
},
"10M_MONEY": {
"name": "One Percenter"
"name": "One Percenter",
"name_female": null
},
"DamageAchv": {
"description": "Inflict {{damageAmount}} damage in one hit"
@ -27,28 +31,35 @@
"name": "Hard Hitter"
},
"1000_DMG": {
"name": "Harder Hitter"
"name": "Harder Hitter",
"name_female": null
},
"2500_DMG": {
"name": "That's a Lotta Damage!"
"name": "That's a Lotta Damage!",
"name_female": null
},
"10000_DMG": {
"name": "One Punch Man"
"name": "One Punch Man",
"name_female": "One Punch Woman"
},
"HealAchv": {
"description": "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item"
},
"250_HEAL": {
"name": "Novice Healer"
"name": "Novice Healer",
"name_female": null
},
"1000_HEAL": {
"name": "Big Healer"
"name": "Big Healer",
"name_female": null
},
"2500_HEAL": {
"name": "Cleric"
"name": "Cleric",
"name_female": null
},
"10000_HEAL": {
"name": "Recovery Master"
"name": "Recovery Master",
"name_female": null
},
"LevelAchv": {
"description": "Level up a Pokémon to Lv{{level}}"
@ -57,7 +68,8 @@
"name": "But Wait, There's More!"
},
"LV_250": {
"name": "Elite"
"name": "Elite",
"name_female": null
},
"LV_1000": {
"name": "To Go Even Further Beyond"
@ -66,19 +78,24 @@
"description": "Accumulate a total of {{ribbonAmount}} Ribbons"
},
"10_RIBBONS": {
"name": "Pokémon League Champion"
"name": "Pokémon League Champion",
"name_female": null
},
"25_RIBBONS": {
"name": "Great League Champion"
"name": "Great League Champion",
"name_female": null
},
"50_RIBBONS": {
"name": "Ultra League Champion"
"name": "Ultra League Champion",
"name_female": null
},
"75_RIBBONS": {
"name": "Rogue League Champion"
"name": "Rogue League Champion",
"name_female": null
},
"100_RIBBONS": {
"name": "Master League Champion"
"name": "Master League Champion",
"name_female": null
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Teamwork",
@ -130,6 +147,7 @@
},
"SHINY_PARTY": {
"name": "That's Dedication",
"name_female": null,
"description": "Have a full party of shiny Pokémon"
},
"HATCH_MYTHICAL": {
@ -158,6 +176,7 @@
},
"CLASSIC_VICTORY": {
"name": "Undefeated",
"name_female": null,
"description": "Beat the game in classic mode"
},
"UNEVOLVED_CLASSIC_VICTORY": {

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -78,8 +77,7 @@ export const enConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -2682,10 +2682,10 @@
},
"rival": {
"encounter": {
"1": "@c{smile}Hey, I was looking for you! I knew you were eager to get going but I expected at least a goodbye…$@c{smile_eclosed}So you're really pursuing your dream after all? I almost can't believe it.$@c{serious_smile_fists}Since we're here, how about a battle?After all, I want to make sure you're ready.$@c{serious_mopen_fists}Don't hold back, I want you to give me everything you've got!"
"1": "@c{smile}Hey, I was looking for you! I knew you were eager to get going but I expected at least a goodbye…$@c{smile_eclosed}So you're really pursuing your dream after all? I almost can't believe it.$@c{serious_smile_fists}Since we're here, how about a battle?\nAfter all, I want to make sure you're ready.$@c{serious_mopen_fists}Don't hold back, I want you to give me everything you've got!"
},
"victory": {
"1": "@c{shock}Wow… You cleaned me out.Are you actually a beginner?$@c{smile}Maybe it was a bit of luck but…Who knows you might just be able to go all the way.$By the way, the professor asked me to give you these items. They look pretty cool.$@c{serious_smile_fists}Good luck out there!"
"1": "@c{shock}Wow… You cleaned me out.\nAre you actually a beginner?$@c{smile}Maybe it was a bit of luck but…Who knows you might just be able to go all the way.$By the way, the professor asked me to give you these items. They look pretty cool.$@c{serious_smile_fists}Good luck out there!"
}
},
"rival_female": {

View File

@ -2682,10 +2682,10 @@
},
"rival": {
"encounter": {
"1": "@c{smile}Hey, I was looking for you! I knew you were eager to get going but I expected at least a goodbye…$@c{smile_eclosed}So you're really pursuing your dream after all? I almost can't believe it.$@c{serious_smile_fists}Since we're here, how about a battle?After all, I want to make sure you're ready.$@c{serious_mopen_fists}Don't hold back, I want you to give me everything you've got!"
"1": "@c{smile}Hey, I was looking for you! I knew you were eager to get going but I expected at least a goodbye…$@c{smile_eclosed}So you're really pursuing your dream after all? I almost can't believe it.$@c{serious_smile_fists}Since we're here, how about a battle?\nAfter all, I want to make sure you're ready.$@c{serious_mopen_fists}Don't hold back, I want you to give me everything you've got!"
},
"victory": {
"1": "@c{shock}Wow… You cleaned me out.Are you actually a beginner?$@c{smile}Maybe it was a bit of luck but…Who knows you might just be able to go all the way.$By the way, the professor asked me to give you these items. They look pretty cool.$@c{serious_smile_fists}Good luck out there!"
"1": "@c{shock}Wow… You cleaned me out.\nAre you actually a beginner?$@c{smile}Maybe it was a bit of luck but…Who knows you might just be able to go all the way.$By the way, the professor asked me to give you these items. They look pretty cool.$@c{serious_smile_fists}Good luck out there!"
}
},
"rival_female": {

View File

@ -1,15 +1,15 @@
{
"victory": "Victory!",
"defeatedWildM": "Defeated by ",
"defeatedTrainerM": "Defeated by ",
"defeatedTrainerDoubleM": "Defeated by Duo",
"defeatedRivalM": "Defeated by Rival",
"defeatedM": "Defeated",
"defeatedWildF": "Defeated by ",
"defeatedTrainerF": "Defeated by ",
"defeatedTrainerDoubleF": "Defeated by Duo",
"defeatedRivalF": "Defeated by Rival",
"defeatedF": "Defeated",
"defeatedWild": "Defeated by ",
"defeatedTrainer": "Defeated by ",
"defeatedTrainerDouble": "Defeated by Duo",
"defeatedRival": "Defeated by Rival",
"defeated": "Defeated",
"defeatedWild_female": "Defeated by ",
"defeatedTrainer_female": "Defeated by ",
"defeatedTrainerDouble_female": "Defeated by Duo",
"defeatedRival_female": "Defeated by Rival",
"defeated_female": "Defeated",
"luck": "Luck",
"score": "Score",
"mode": "Mode",
@ -30,8 +30,8 @@
"money": "Money",
"runLength": "Run Length",
"viewHeldItems": "Held Items",
"hallofFameTextM": "Welcome to the Hall of Fame!",
"hallofFameTextF": "Welcome to the Hall of Fame!",
"hallofFameText": "Welcome to the Hall of Fame!",
"hallofFameText_female": "Welcome to the Hall of Fame!",
"viewHallOfFame": "View Hall of Fame!",
"viewEndingSplash": "View ending art!"
}

View File

@ -1,163 +0,0 @@
{
"Achievements": {
"name": "Logros"
},
"Locked": {
"name": "Bloqueado"
},
"MoneyAchv": {
"description": "Acumula un total de ₽{{moneyAmount}}."
},
"10K_MONEY": {
"name": "Ahorrador"
},
"100K_MONEY": {
"name": "Rico"
},
"1M_MONEY": {
"name": "Millonario"
},
"10M_MONEY": {
"name": "Elusión Fiscal"
},
"DamageAchv": {
"description": "Inflige {{damageAmount}} daño en un solo golpe."
},
"250_DMG": {
"name": "Golpe Maestro"
},
"1000_DMG": {
"name": "Golpe Devastador"
},
"2500_DMG": {
"name": "¡Eso es un montón de daño!"
},
"10000_DMG": {
"name": "One Punch Man"
},
"HealAchv": {
"description": "Cura {{healAmount}} {{HP}} de una, con un movimiento, habilidad o objeto equipado."
},
"250_HEAL": {
"name": "Sanador Novato"
},
"1000_HEAL": {
"name": "Gran Sanador"
},
"2500_HEAL": {
"name": "Clérigo"
},
"10000_HEAL": {
"name": "Centro Pokémon"
},
"LevelAchv": {
"description": "Sube a un Pokémon al nivel {{level}}."
},
"LV_100": {
"name": "¡Pero espera, aún hay mas!"
},
"LV_250": {
"name": "Élite"
},
"LV_1000": {
"name": "Supera tus límites"
},
"RibbonAchv": {
"description": "Acumula un total de {{ribbonAmount}} Cintas."
},
"10_RIBBONS": {
"name": "Campeón Liga Pokémon"
},
"25_RIBBONS": {
"name": "Campeón Liga Super"
},
"50_RIBBONS": {
"name": "Campeón Liga Ultra"
},
"75_RIBBONS": {
"name": "Campeón Liga Rogue"
},
"100_RIBBONS": {
"name": "Campeón Liga Master"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Trabajo en Equipo",
"description": "Haz relevo a otro miembro del equipo con al menos una estadística al máximo."
},
"MAX_FRIENDSHIP": {
"name": "Amistad Total",
"description": "Alcanza con un Pokémon la amistad al máximo."
},
"MEGA_EVOLVE": {
"name": "Megamorfosis",
"description": "Megaevoluciona a un Pokémon."
},
"GIGANTAMAX": {
"name": "Criatura Colosal",
"description": "Haz Gigantamax a un Pokémon."
},
"TERASTALLIZE": {
"name": "Entusiasta del STAB",
"description": "Teracristaliza a un Pokémon."
},
"STELLAR_TERASTALLIZE": {
"name": "El Tipo Oculto",
"description": "Teracristaliza a un Pokémon al tipo Astral."
},
"SPLICE": {
"name": "Infinite Fusion",
"description": "Fusiona dos Pokémon con la Punta ADN."
},
"MINI_BLACK_HOLE": {
"name": "Devorador de Objetos",
"description": "Adquiere un Mini Agujero Negro."
},
"CATCH_MYTHICAL": {
"name": "Singular",
"description": "Captura a un Pokémon Singular."
},
"CATCH_SUB_LEGENDARY": {
"name": "(Sub)Legendario",
"description": "Captura a un Pokémon Sublegendario."
},
"CATCH_LEGENDARY": {
"name": "Legendario",
"description": "Captura a un Pokémon Legendario."
},
"SEE_SHINY": {
"name": "Shiny",
"description": "Encuentra a un Pokémon Shiny salvaje."
},
"SHINY_PARTY": {
"name": "Eso es dedicación",
"description": "Tener un equipo completo de Pokémon shiny."
},
"HATCH_MYTHICAL": {
"name": "Huevo Singular",
"description": "Hacer eclosionar un Pokémon Singular de un huevo."
},
"HATCH_SUB_LEGENDARY": {
"name": "Huevo Sublegendario",
"description": "Hacer eclosionar un Pokémon Sublegendario de un huevo."
},
"HATCH_LEGENDARY": {
"name": "Huevo Legendario",
"description": "Hacer eclosionar un Pokémon Legendario de un huevo."
},
"HATCH_SHINY": {
"name": "Huevo Shiny",
"description": "Hacer eclosionar un Pokémon Shiny de un huevo."
},
"HIDDEN_ABILITY": {
"name": "Potencial Oculto",
"description": "Captura un Pokémon con una habilidad oculta."
},
"PERFECT_IVS": {
"name": "Certificado de Autenticidad",
"description": "Consigue IVs perfectos en un Pokémon."
},
"CLASSIC_VICTORY": {
"name": "Imbatible",
"description": "Completa el juego en modo clásico."
}
}

View File

@ -9,13 +9,16 @@
"description": "Acumula un total de ₽{{moneyAmount}}."
},
"10K_MONEY": {
"name": "Ahorradora"
"name": "Ahorrador",
"name_female": "Ahorradora"
},
"100K_MONEY": {
"name": "Rica"
"name": "Rico",
"name_female": "Rica"
},
"1M_MONEY": {
"name": "Millonaria"
"name": "Millonario",
"name_female": "Millonaria"
},
"10M_MONEY": {
"name": "Elusión Fiscal"
@ -39,13 +42,16 @@
"description": "Cura {{healAmount}} {{HP}} de una, con un movimiento, habilidad o objeto equipado."
},
"250_HEAL": {
"name": "Sanadora Novata"
"name": "Sanador Novato",
"name_female": "Sanadora Novata"
},
"1000_HEAL": {
"name": "Gran Sanadora"
"name": "Gran Sanador",
"name_female": "Gran Sanadora"
},
"2500_HEAL": {
"name": "Clériga"
"name": "Clérigo",
"name_female": "Clériga"
},
"10000_HEAL": {
"name": "Centro Pokémon"
@ -66,19 +72,24 @@
"description": "Acumula un total de {{ribbonAmount}} Cintas."
},
"10_RIBBONS": {
"name": "Campeona Liga Pokémon"
"name": "Campeón Liga Pokémon",
"name_female": "Campeona Liga Pokémon"
},
"25_RIBBONS": {
"name": "Campeona Liga Super"
"name": "Campeón Liga Super",
"name_female": "Campeona Liga Super"
},
"50_RIBBONS": {
"name": "Campeona Liga Ultra"
"name": "Campeón Liga Ultra",
"name_female": "Campeona Liga Ultra"
},
"75_RIBBONS": {
"name": "Campeona Liga Rogue"
"name": "Campeón Liga Rogue",
"name_female": "Campeona Liga Rogue"
},
"100_RIBBONS": {
"name": "Campeona Liga Master"
"name": "Campeón Liga Master",
"name_female": "Campeona Liga Master"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Trabajo en Equipo",

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const esConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,15 +1,15 @@
{
"victory": "¡Victoria!",
"defeatedWildM": "Derrotado por ",
"defeatedTrainerM": "Derrotado por ",
"defeatedTrainerDoubleM": "Derrotado por un dúo",
"defeatedRivalM": "Derrotado por el rival",
"defeatedM": "Derrotado",
"defeatedWildF": "Derrotada por ",
"defeatedTrainerF": "Derrotada por ",
"defeatedTrainerDoubleF": "Derrotada por un dúo",
"defeatedRivalF": "Derrotada por el rival",
"defeatedF": "Derrotada",
"defeatedWild": "Derrotado por ",
"defeatedTrainer": "Derrotado por ",
"defeatedTrainerDouble": "Derrotado por un dúo",
"defeatedRival": "Derrotado por el rival",
"defeated": "Derrotado",
"defeatedWild_female": "Derrotada por ",
"defeatedTrainer_female": "Derrotada por ",
"defeatedTrainerDouble_female": "Derrotada por un dúo",
"defeatedRival_female": "Derrotada por el rival",
"defeated_female": "Derrotada",
"luck": "Suerte",
"score": "Puntuación",
"mode": "Modo",
@ -30,8 +30,8 @@
"money": "Dinero",
"runLength": "Duración de partida",
"viewHeldItems": "Objetos equipados",
"hallofFameTextM": "¡Bienvenido al Hall de la Fama!",
"hallofFameTextF": "¡Bienvenida al Hall de la Fama!",
"hallofFameText": "¡Bienvenido al Hall de la Fama!",
"hallofFameText_female": "¡Bienvenida al Hall de la Fama!",
"viewHallOfFame": "¡Ver Hall de la Fama!",
"viewEndingSplash": "¡Ver la imagen final!"
}

View File

@ -1,264 +0,0 @@
{
"10K_MONEY": {
"name": "Épargnante"
},
"1M_MONEY": {
"name": "Banquière"
},
"10M_MONEY": {
"name": "Évadée fiscale"
},
"1000_DMG": {
"name": "Boxeuse"
},
"2500_DMG": {
"name": "Distributrice de pains"
},
"10000_DMG": {
"name": "One Punch Woman"
},
"250_HEAL": {
"name": "Infirmière"
},
"10_RIBBONS": {
"name": "Maitresse de la Ligue"
},
"25_RIBBONS": {
"name": "Super Maitresse de la Ligue"
},
"50_RIBBONS": {
"name": "Hyper Maitresse de la Ligue"
},
"75_RIBBONS": {
"name": "Rogue Maitresse de la Ligue"
},
"100_RIBBONS": {
"name": "Master Maitresse de la Ligue"
},
"SHINY_PARTY": {
"name": "Shasseuse",
"description": "Avoir une équipe exclusivement composée de Pokémon chromatiques"
},
"CLASSIC_VICTORY": {
"name": "Invaincue",
"description": "Terminer le jeu en mode classique"
},
"Achievements": {
"name": "Succès"
},
"Locked": {
"name": "Verrouillé"
},
"MoneyAchv": {
"description": "Récolter un total de {{moneyAmount}} ₽."
},
"100K_MONEY": {
"name": "Je possède des thunes"
},
"DamageAchv": {
"description": "Infliger {{damageAmount}} de dégâts en un coup."
},
"250_DMG": {
"name": "Caïd"
},
"HealAchv": {
"description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité,\nun talent ou un objet tenu."
},
"1000_HEAL": {
"name": "Médecin"
},
"2500_HEAL": {
"name": "Clerc"
},
"10000_HEAL": {
"name": "Centre Pokémon"
},
"LevelAchv": {
"description": "Monter un Pokémon au N.{{level}}."
},
"LV_100": {
"name": "Et cest pas fini !"
},
"LV_250": {
"name": "Élite"
},
"LV_1000": {
"name": "Vers linfini et au-delà"
},
"RibbonAchv": {
"description": "Accumuler un total de {{ribbonAmount}} Rubans."
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Travail déquipe",
"description": "Utiliser Relais avec au moins une statistique montée à fond."
},
"MAX_FRIENDSHIP": {
"name": "Copinage",
"description": "Atteindre le niveau de bonheur maximal avec un Pokémon."
},
"MEGA_EVOLVE": {
"name": "Mégamorph",
"description": "Méga-évoluer un Pokémon."
},
"GIGANTAMAX": {
"name": "Kaijū",
"description": "Gigamaxer un Pokémon."
},
"TERASTALLIZE": {
"name": "Jaime les STAB",
"description": "Téracristalliser un Pokémon."
},
"STELLAR_TERASTALLIZE": {
"name": "Le type enfoui",
"description": "Téracristalliser un Pokémon en type Stellaire."
},
"SPLICE": {
"name": "Infinite Fusion",
"description": "Fusionner deux Pokémon avec le Pointeau ADN."
},
"MINI_BLACK_HOLE": {
"name": "Item-stellar",
"description": "Obtenir un Mini Trou Noir."
},
"CATCH_MYTHICAL": {
"name": "Fabuleux",
"description": "Capturer un Pokémon fabuleux."
},
"CATCH_SUB_LEGENDARY": {
"name": "(Semi-)Légendaire",
"description": "Capturer un Pokémon semi-légendaire."
},
"CATCH_LEGENDARY": {
"name": "Légendaire",
"description": "Capturer un Pokémon légendaire."
},
"SEE_SHINY": {
"name": "Chromatique",
"description": "Trouver un Pokémon sauvage chromatique."
},
"HATCH_MYTHICAL": {
"name": "Œuf fabuleux",
"description": "Obtenir un Pokémon fabuleux dans un Œuf."
},
"HATCH_SUB_LEGENDARY": {
"name": "Œuf semi-légendaire",
"description": "Obtenir un Pokémon semi-légendaire dans un Œuf."
},
"HATCH_LEGENDARY": {
"name": "Œuf légendaire",
"description": "Obtenir un Pokémon légendaire dans un Œuf."
},
"HATCH_SHINY": {
"name": "Œuf chromatique",
"description": "Obtenir un Pokémon chromatique dans un Œuf."
},
"HIDDEN_ABILITY": {
"name": "Potentiel enfoui",
"description": "Capturer un Pokémon possédant un talent caché."
},
"PERFECT_IVS": {
"name": "Certificat dauthenticité",
"description": "Avoir des IV parfaits sur un Pokémon."
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "Le stagiaire de 3e",
"description": "Terminer le mode Classique avec au moins un Pokémon non-évolué dans léquipe."
},
"MONO_GEN_ONE": {
"name": "Le rival originel",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 1re génération."
},
"MONO_GEN_TWO": {
"name": "Entre tradition et modernité",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 2e génération."
},
"MONO_GEN_THREE": {
"name": "Too much water ?",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 3e génération."
},
"MONO_GEN_FOUR": {
"name": "Réellement la plus difficile ?",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 4e génération."
},
"MONO_GEN_FIVE": {
"name": "Recast complet",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 5e génération."
},
"MONO_GEN_SIX": {
"name": "Aristocrate",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 6e génération."
},
"MONO_GEN_SEVEN": {
"name": "Seulement techniquement",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 7e génération."
},
"MONO_GEN_EIGHT": {
"name": "Lheure de gloire",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 8e génération."
},
"MONO_GEN_NINE": {
"name": "Ça va, cétait EZ",
"description": "Terminer un challenge avec uniquement des Pokémon\nde 9e génération."
},
"MonoType": {
"description": "Terminer un challenge en monotype {{type}}."
},
"MONO_NORMAL": {
"name": "Extraordinairement banal"
},
"MONO_FIGHTING": {
"name": "Je connais le kung-fu"
},
"MONO_FLYING": {
"name": "Angry Birds"
},
"MONO_POISON": {
"name": "Touche moi je tempoisonne !"
},
"MONO_GROUND": {
"name": "Prévisions : Séisme"
},
"MONO_ROCK": {
"name": "Comme un roc"
},
"MONO_BUG": {
"name": "Une chenille !"
},
"MONO_GHOST": {
"name": "SOS Fantômes"
},
"MONO_STEEL": {
"name": "De type Acier !"
},
"MONO_FIRE": {
"name": "Allumer le feu"
},
"MONO_WATER": {
"name": "Vacances en Bretagne"
},
"MONO_GRASS": {
"name": "Ne pas toucher !"
},
"MONO_ELECTRIC": {
"name": "À la masse"
},
"MONO_PSYCHIC": {
"name": "Grocervo"
},
"MONO_ICE": {
"name": "Froid comme la glace"
},
"MONO_DRAGON": {
"name": "Légendes du club, ou presque"
},
"MONO_DARK": {
"name": "Ça va lui passer"
},
"MONO_FAIRY": {
"name": "Hey ! Listen !"
},
"FRESH_START": {
"name": "Du premier coup !",
"description": "Terminer un challenge « Nouveau départ »."
}
}

View File

@ -9,16 +9,19 @@
"description": "Récolter un total de {{moneyAmount}} ₽."
},
"10K_MONEY": {
"name": "Épargnant"
"name": "Épargnant",
"name_female": "Épargnante"
},
"100K_MONEY": {
"name": "Je possède des thunes"
},
"1M_MONEY": {
"name": "Banquier"
"name": "Banquier",
"name_female": "Banquière"
},
"10M_MONEY": {
"name": "Évadé fiscal"
"name": "Évadé fiscal",
"name_female": "Évadée fiscale"
},
"DamageAchv": {
"description": "Infliger {{damageAmount}} de dégâts en un coup."
@ -27,19 +30,23 @@
"name": "Caïd"
},
"1000_DMG": {
"name": "Boxeur"
"name": "Boxeur",
"name_female": "Boxeuse"
},
"2500_DMG": {
"name": "Distributeur de pains"
"name": "Distributeur de pains",
"name_female": "Distributrice de pains"
},
"10000_DMG": {
"name": "One Punch Man"
"name": "One Punch Man",
"name_female": "One Punch Woman"
},
"HealAchv": {
"description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité,\nun talent ou un objet tenu."
},
"250_HEAL": {
"name": "Infirmier"
"name": "Infirmier",
"name_female": "Infirmière"
},
"1000_HEAL": {
"name": "Médecin"
@ -66,19 +73,24 @@
"description": "Accumuler un total de {{ribbonAmount}} Rubans."
},
"10_RIBBONS": {
"name": "Maitre de la Ligue"
"name": "Maitre de la Ligue",
"name_female": "Maitresse de la Ligue"
},
"25_RIBBONS": {
"name": "Super Maitre de la Ligue"
"name": "Super Maitre de la Ligue",
"name_female": "Super Maitresse de la Ligue"
},
"50_RIBBONS": {
"name": "Hyper Maitre de la Ligue"
"name": "Hyper Maitre de la Ligue",
"name_female": "Hyper Maitresse de la Ligue"
},
"75_RIBBONS": {
"name": "Rogue Maitre de la Ligue"
"name": "Rogue Maitre de la Ligue",
"name_female": "Rogue Maitresse de la Ligue"
},
"100_RIBBONS": {
"name": "Master Maitre de la Ligue"
"name": "Master Maitre de la Ligue",
"name_female": "Master Maitresse de la Ligue"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Travail déquipe",
@ -130,6 +142,7 @@
},
"SHINY_PARTY": {
"name": "Shasseur",
"name_female": "Shasseuse",
"description": "Avoir une équipe exclusivement composée de Pokémon chromatiques."
},
"HATCH_MYTHICAL": {
@ -158,6 +171,7 @@
},
"CLASSIC_VICTORY": {
"name": "Invaincu",
"name_female": "Invaincue",
"description": "Terminer le jeu en mode Classique."
},
"UNEVOLVED_CLASSIC_VICTORY": {

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const frConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,15 +1,15 @@
{
"victory": "Victoire !",
"defeatedWildM": "Battu par ",
"defeatedTrainerM": "Battu par ",
"defeatedTrainerDoubleM": "Battu par Duo",
"defeatedRivalM": "Battu par Rivale",
"defeatedM": "Vaincu",
"defeatedWildF": "Battue par ",
"defeatedTrainerF": "Battue par ",
"defeatedTrainerDoubleF": "Battue par Duo",
"defeatedRivalF": "Battue par Rival",
"defeatedF": "Vaincue",
"defeatedWild": "Battu par ",
"defeatedTrainer": "Battu par ",
"defeatedTrainerDouble": "Battu par Duo",
"defeatedRival": "Battu par Rivale",
"defeated": "Vaincu",
"defeatedWild_female": "Battue par ",
"defeatedTrainer_female": "Battue par ",
"defeatedTrainerDouble_female": "Battue par Duo",
"defeatedRival_female": "Battue par Rival",
"defeated_female": "Vaincue",
"luck": "Chance ",
"score": "Score",
"mode": "Mode ",
@ -30,8 +30,8 @@
"money": "Argent",
"runLength": "Durée session ",
"viewHeldItems": "Objets tenus",
"hallofFameTextM": "Bienvenue au Panthéon !",
"hallofFameTextF": "Bienvenue au Panthéon !",
"hallofFameText": "Bienvenue au Panthéon !",
"hallofFameText_female": "Bienvenue au Panthéon !",
"viewHallOfFame": "Voir le Panthéon",
"viewEndingSplash": "Voir lillustration\nde fin"
}

View File

@ -1,264 +0,0 @@
{
"Achievements": {
"name": "Obiettivi"
},
"Locked": {
"name": "Bloccato"
},
"MoneyAchv": {
"description": "Accumula {{moneyAmount}} PokéDollari"
},
"10K_MONEY": {
"name": "Benestante"
},
"100K_MONEY": {
"name": "Ricco"
},
"1M_MONEY": {
"name": "Milionario"
},
"10M_MONEY": {
"name": "La numero uno"
},
"DamageAchv": {
"description": "Infliggi {{damageAmount}} danni in un colpo"
},
"250_DMG": {
"name": "Grandi danni!"
},
"1000_DMG": {
"name": "Incredibili danni"
},
"2500_DMG": {
"name": "Danni a palate!"
},
"10000_DMG": {
"name": "One Punch Man"
},
"HealAchv": {
"description": "Cura {{healAmount}} {{HP}} tramite mossa, abilità, o oggetto"
},
"250_HEAL": {
"name": "Paramedico"
},
"1000_HEAL": {
"name": "Dottore"
},
"2500_HEAL": {
"name": "Chierico"
},
"10000_HEAL": {
"name": "Mastro Curatore"
},
"LevelAchv": {
"description": "Porta un pokémon a Lv{{level}}"
},
"LV_100": {
"name": "E Non Finisce Qui!"
},
"LV_250": {
"name": "Elite"
},
"LV_1000": {
"name": "Verso l'Infinito ed Oltre!"
},
"RibbonAchv": {
"description": "Accumula un Totale di {{ribbonAmount}} Nastri"
},
"10_RIBBONS": {
"name": "Campione Lega Pokémon"
},
"25_RIBBONS": {
"name": "Campione Lega Estesa"
},
"50_RIBBONS": {
"name": "Campione Lega Ultra"
},
"75_RIBBONS": {
"name": "Campione Lega Rogue"
},
"100_RIBBONS": {
"name": "Campione Lega Assoluta"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Lavoro di Squadra",
"description": "Trasferisci almeno sei bonus statistiche tramite staffetta"
},
"MAX_FRIENDSHIP": {
"name": "Amiconi",
"description": "Raggiungi amicizia massima con un Pokémon"
},
"MEGA_EVOLVE": {
"name": "Megamorfosi",
"description": "Megaevolvi un Pokémon"
},
"GIGANTAMAX": {
"name": "Grosso e Cattivo",
"description": "Ottieni una gigamax"
},
"TERASTALLIZE": {
"name": "STAB Per Tutti",
"description": "Teracristallizza un Pokémon"
},
"STELLAR_TERASTALLIZE": {
"name": "Tipo Segreto",
"description": "Teracristallizza un Pokémon stellare"
},
"SPLICE": {
"name": "Fusione Infinita",
"description": "Fondi due Pokémon insieme tramite cuneo DNA"
},
"MINI_BLACK_HOLE": {
"name": "Universo di Oggetti",
"description": "Ottieni un Mini Buco Nero"
},
"CATCH_MYTHICAL": {
"name": "Mitico",
"description": "Cattura un Pokémon mitico"
},
"CATCH_SUB_LEGENDARY": {
"name": "(Semi)Leggendario",
"description": "Cattura un Pokémon semileggendario"
},
"CATCH_LEGENDARY": {
"name": "Leggendario",
"description": "Cattura un Pokémon leggendario"
},
"SEE_SHINY": {
"name": "Cromatico",
"description": "Trova un Pokémon shiny in natura"
},
"SHINY_PARTY": {
"name": "Dedizione Totale",
"description": "Riempi la squadra di Pokémon shiny"
},
"HATCH_MYTHICAL": {
"name": "Uovo Mitico",
"description": "Schiudi l'uovo di un Pokémon mitico"
},
"HATCH_SUB_LEGENDARY": {
"name": "Uovo (Semi)Leggendario",
"description": "Schiudi l'uovo di un Pokémon semileggendario"
},
"HATCH_LEGENDARY": {
"name": "Uovo Leggendario",
"description": "Schiudi l'uovo di un Pokémon leggendario"
},
"HATCH_SHINY": {
"name": "Uovo Cromatico",
"description": "Schiudi l'uovo di un Pokémon shiny"
},
"HIDDEN_ABILITY": {
"name": "Potenziale Nascosto",
"description": "Cattura un Pokémon con abilità nascosta"
},
"PERFECT_IVS": {
"name": "Certificato di Autenticità",
"description": "Ottieni un Pokémon con IV perfetti"
},
"CLASSIC_VICTORY": {
"name": "Imbattuto",
"description": "Vinci in modalità classica"
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "Alternanza scuola-lavoro",
"description": "Completa la modalità classica con almeno un membro della squadra non evoluto completamente."
},
"MONO_GEN_ONE": {
"name": "Rivale Originale",
"description": "Completa la modalità sfida di prima generazione."
},
"MONO_GEN_TWO": {
"name": "Generazione 1.5",
"description": "Completa la modalità sfida di seconda generazione."
},
"MONO_GEN_THREE": {
"name": "Troppa Acqua?",
"description": "Completa la modalità sfida di terza generazione."
},
"MONO_GEN_FOUR": {
"name": "È Davvero La Più Forte?",
"description": "Completa la modalità sfida di quarta generazione."
},
"MONO_GEN_FIVE": {
"name": "Tutti Originali",
"description": "Completa la modalità sfida di quinta generazione."
},
"MONO_GEN_SIX": {
"name": "Vita e Morte",
"description": "Completa la modalità sfida di sesta generazione."
},
"MONO_GEN_SEVEN": {
"name": "Troppo amichevoli?",
"description": "Completa la modalità sfida di settima generazione."
},
"MONO_GEN_EIGHT": {
"name": "It's champion time!",
"description": "Completa la modalità sfida di ottava generazione."
},
"MONO_GEN_NINE": {
"name": "Paradossalmente sbalorditivi",
"description": "Completa la modalità sfida di nona generazione."
},
"MonoType": {
"description": "Completa la modalità sfida monotipo {{type}}"
},
"MONO_NORMAL": {
"name": "Un tipo semplice"
},
"MONO_FIGHTING": {
"name": "Conosco il Kung-fu"
},
"MONO_FLYING": {
"name": "È un uccello? È un aereo?"
},
"MONO_POISON": {
"name": "I migliori di Kanto"
},
"MONO_GROUND": {
"name": "Con i piedi per terra"
},
"MONO_ROCK": {
"name": "Forte come una roccia!"
},
"MONO_BUG": {
"name": "Metodo Guzma"
},
"MONO_GHOST": {
"name": "Sono fantasmi, caro Watson"
},
"MONO_STEEL": {
"name": "Pugno di ferro"
},
"MONO_FIRE": {
"name": "Giocare col fuoco"
},
"MONO_WATER": {
"name": "Piove sul bagnato"
},
"MONO_GRASS": {
"name": "L'erba del vicino è sempre più verde"
},
"MONO_ELECTRIC": {
"name": "Elettrizzante"
},
"MONO_PSYCHIC": {
"name": "Mentalista"
},
"MONO_ICE": {
"name": "Rompere il ghiaccio"
},
"MONO_DRAGON": {
"name": "Sangue di drago"
},
"MONO_DARK": {
"name": "Solo una fase"
},
"MONO_FAIRY": {
"name": "Follettini e follettine"
},
"FRESH_START": {
"name": "Buona la prima!",
"description": "Completa la modalità sfida 'Un nuovo inizio'."
}
}

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const itConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,15 +1,15 @@
{
"victory": "Vittoria!",
"defeatedWildM": "Sconfitto da ",
"defeatedTrainerM": "Sconfitto da ",
"defeatedTrainerDoubleM": "Sconfitto dalla coppia ",
"defeatedRivalM": "Sconfitto dalla rivale",
"defeatedM": "Sconfitto",
"defeatedWildF": "Sconfitta da ",
"defeatedTrainerF": "Sconfitta da ",
"defeatedTrainerDoubleF": "Sconfitta dalla coppia ",
"defeatedRivalF": "Sconfitta dal rivale",
"defeatedF": "Sconfitta",
"defeatedWild": "Sconfitto da ",
"defeatedTrainer": "Sconfitto da ",
"defeatedTrainerDouble": "Sconfitto dalla coppia ",
"defeatedRival": "Sconfitto dalla rivale",
"defeated": "Sconfitto",
"defeatedWild_female": "Sconfitta da ",
"defeatedTrainer_female": "Sconfitta da ",
"defeatedTrainerDouble_female": "Sconfitta dalla coppia ",
"defeatedRival_female": "Sconfitta dal rivale",
"defeated_female": "Sconfitta",
"luck": "Fortuna",
"score": "Punteggio",
"mode": "Modalità",
@ -30,8 +30,8 @@
"money": "Patrimonio",
"runLength": "Durata Run",
"viewHeldItems": "Oggetti equip.",
"hallofFameTextM": "Benvenuto alla Sala d'Onore!",
"hallofFameTextF": "Benvenuto alla Sala d'Onore!",
"hallofFameText": "Benvenuto alla Sala d'Onore!",
"hallofFameText_female": "Benvenuto alla Sala d'Onore!",
"viewHallOfFame": "Vai alla Sala d'Onore!",
"viewEndingSplash": "Vai all'arte finale!"
}

View File

@ -1,264 +0,0 @@
{
"Achievements": {
"name": "実績"
},
"Locked": {
"name": "なし"
},
"MoneyAchv": {
"description": "一回の ランで ₽{{moneyAmount}}を 稼ぐ"
},
"10K_MONEY": {
"name": "お金を持つ人"
},
"100K_MONEY": {
"name": "富豪"
},
"1M_MONEY": {
"name": "百万長者"
},
"10M_MONEY": {
"name": "超富裕層"
},
"DamageAchv": {
"description": "一撃で {{damageAmount}}ダメージを 与える"
},
"250_DMG": {
"name": "力持ち"
},
"1000_DMG": {
"name": "強者"
},
"2500_DMG": {
"name": "カカロット"
},
"10000_DMG": {
"name": "ワンパンマン"
},
"HealAchv": {
"description": "一つの 技や 特性や 持っているアイテムで {{healAmount}}{{HP}}を 一気に 回復する"
},
"250_HEAL": {
"name": "回復発見者"
},
"1000_HEAL": {
"name": "大いなる治療者"
},
"2500_HEAL": {
"name": "回復達人"
},
"10000_HEAL": {
"name": "ジョーイさん"
},
"LevelAchv": {
"description": "一つの ポケモンを Lv{{level}}まで レベルアップする"
},
"LV_100": {
"name": "まだまだだよ"
},
"LV_250": {
"name": "天王"
},
"LV_1000": {
"name": "向こうの向こうを超え"
},
"RibbonAchv": {
"description": "{{ribbonAmount}}巻の リボンを 積もる"
},
"10_RIBBONS": {
"name": "ポケモンリーグチャンピオン"
},
"25_RIBBONS": {
"name": "スーパーリーグチャンピオン"
},
"50_RIBBONS": {
"name": "ハイパーリーグチャンピオン"
},
"75_RIBBONS": {
"name": "ローグリーグチャンピオン"
},
"100_RIBBONS": {
"name": "マスターリーグチャンピオン"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "同力",
"description": "少なくとも 一つの 能力を 最大まで あげて 他の 手持ちポケモンに バトンタッチする"
},
"MAX_FRIENDSHIP": {
"name": "マブ達",
"description": "一つの 手持ちポケモンの 仲良し度を 最大に 上げる"
},
"MEGA_EVOLVE": {
"name": "ザ・アブソリュート",
"description": "一つの 手持ちポケモンを メガシンカさせる"
},
"GIGANTAMAX": {
"name": "太―くて 堪らない",
"description": "一つの 手持ちポケモンを キョダイマックスさせる"
},
"TERASTALLIZE": {
"name": "一致好き",
"description": "一つの 手持ちポケモンを テラスタルさせる"
},
"STELLAR_TERASTALLIZE": {
"name": "隠れたタイプ",
"description": "一つの 手持ちポケモンを ステラ・テラスタルさせる"
},
"SPLICE": {
"name": "インフィニット・フュジョン",
"description": "いでんしのくさびで 二つの ポケモンを 吸収合体させる"
},
"MINI_BLACK_HOLE": {
"name": "アイテムホーリック",
"description": "ミニブラックホールを 手に入れる"
},
"CATCH_MYTHICAL": {
"name": "幻",
"description": "幻の ポケモンを 捕まえる"
},
"CATCH_SUB_LEGENDARY": {
"name": "準・伝説",
"description": "準伝説の ポケモンを 捕まえる"
},
"CATCH_LEGENDARY": {
"name": "ザ・伝説",
"description": "伝説の ポケモンを 捕まえる"
},
"SEE_SHINY": {
"name": "色とりどりに光る",
"description": "野生の 色違いポケモンを みつける"
},
"SHINY_PARTY": {
"name": "きらきら努力家",
"description": "手持ちポケモンは 全員 色違いポケモンに する"
},
"HATCH_MYTHICAL": {
"name": "幻のタマゴ",
"description": "幻の ポケモンを タマゴから 生まれる"
},
"HATCH_SUB_LEGENDARY": {
"name": "準伝説のタマゴ",
"description": "準伝説の ポケモンを タマゴから 生まれる"
},
"HATCH_LEGENDARY": {
"name": "伝説のタマゴ",
"description": "伝説の ポケモンを タマゴから 生まれる"
},
"HATCH_SHINY": {
"name": "色違いタマゴ",
"description": "色違いポケモンを タマゴから 生まれる"
},
"HIDDEN_ABILITY": {
"name": "底力",
"description": "隠れ特性がある ポケモンを 捕まえる"
},
"PERFECT_IVS": {
"name": "個体値の賞状",
"description": "一つの ポケモンの 個体値を すべて 最大に する"
},
"CLASSIC_VICTORY": {
"name": "無双",
"description": "クラシックモードを クリアする"
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "Bring Your Child To Work Day",
"description": "Beat the game in Classic Mode with at least one unevolved party member."
},
"MONO_GEN_ONE": {
"name": "原始",
"description": "1世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_TWO": {
"name": "懐かしいカンジョウ",
"description": "2世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_THREE": {
"name": "水浸し",
"description": "3世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_FOUR": {
"name": "神々の地",
"description": "4世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_FIVE": {
"name": "ニューヨーカー",
"description": "5世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_SIX": {
"name": "サヴァ・サヴァ",
"description": "6世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_SEVEN": {
"name": "アローラ・オエ",
"description": "7世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_EIGHT": {
"name": "チャンピオン タイムを 楽しめ!",
"description": "8世代の 単一世代チャレンジを クリアする"
},
"MONO_GEN_NINE": {
"name": "ネモに甘えたでしょう",
"description": "9世代の 単一世代チャレンジを クリアする"
},
"MonoType": {
"description": "{{type}}タイプの 単一タイプチャレンジを クリアする"
},
"MONO_NORMAL": {
"name": "凡人"
},
"MONO_FIGHTING": {
"name": "八千以上だ!!"
},
"MONO_FLYING": {
"name": "翼をください"
},
"MONO_POISON": {
"name": "カントーの名物"
},
"MONO_GROUND": {
"name": "自信でユラユラ"
},
"MONO_ROCK": {
"name": "タケシの挑戦状"
},
"MONO_BUG": {
"name": "チョウチョウせん者"
},
"MONO_GHOST": {
"name": "貞子ちゃん"
},
"MONO_STEEL": {
"name": "ハガネーター"
},
"MONO_FIRE": {
"name": "NIGHT OF FIRE"
},
"MONO_WATER": {
"name": "土砂降リスト"
},
"MONO_GRASS": {
"name": ""
},
"MONO_ELECTRIC": {
"name": "パチピカペコ"
},
"MONO_PSYCHIC": {
"name": "陽キャ"
},
"MONO_ICE": {
"name": "ありのまま"
},
"MONO_DRAGON": {
"name": "龍が如く"
},
"MONO_DARK": {
"name": "陰キャ"
},
"MONO_FAIRY": {
"name": "あらハート満タンになった"
},
"FRESH_START": {
"name": "一発で!",
"description": "出直しチャレンジを クリアする"
}
}

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const jaConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -5,11 +5,11 @@
"defeatedTrainerDouble": "倒された相手:",
"defeatedRival": "倒された相手:",
"defeated": "敗北",
"defeatedWildF": "倒された相手:",
"defeatedTrainerF": "倒された相手:",
"defeatedTrainerDoubleF": "倒された相手:",
"defeatedRivalF": "倒された相手:",
"defeatedF": "敗北",
"defeatedWild_female": "倒された相手:",
"defeatedTrainer_female": "倒された相手:",
"defeatedTrainerDouble_female": "倒された相手:",
"defeatedRival_female": "倒された相手:",
"defeated_female": "敗北",
"luck": "運",
"score": "スコア",
"mode": "モード",
@ -30,8 +30,8 @@
"money": "お金",
"runLength": "ラン最高ウェーブ",
"viewHeldItems": "手持ちアイテム",
"hallofFameTextM": "殿堂へようこそ!",
"hallofFameTextF": "殿堂へようこそ!",
"hallofFameText": "殿堂へようこそ!",
"hallofFameText_female": "殿堂へようこそ!",
"viewHallOfFame": "殿堂登録を見る!",
"viewEndingSplash": "クリア後のアートを見る!"
}

View File

@ -1,264 +0,0 @@
{
"Achievements": {
"name": "업적"
},
"Locked": {
"name": "미완료"
},
"MoneyAchv": {
"description": "누적 소지금 ₽{{moneyAmount}} 달성"
},
"10K_MONEY": {
"name": "돈 좀 있나?"
},
"100K_MONEY": {
"name": "부자"
},
"1M_MONEY": {
"name": "백만장자"
},
"10M_MONEY": {
"name": "상위 1프로"
},
"DamageAchv": {
"description": "한 번의 공격만으로 {{damageAmount}} 데미지"
},
"250_DMG": {
"name": "강타자"
},
"1000_DMG": {
"name": "최강타자"
},
"2500_DMG": {
"name": "때릴 줄 아시는군요!"
},
"10000_DMG": {
"name": "원펀맨"
},
"HealAchv": {
"description": "기술이나 특성, 지닌 도구로 한 번에 {{healAmount}} {{HP}} 회복"
},
"250_HEAL": {
"name": "견습 힐러"
},
"1000_HEAL": {
"name": "상급 힐러"
},
"2500_HEAL": {
"name": "클레릭"
},
"10000_HEAL": {
"name": "회복 마스터"
},
"LevelAchv": {
"description": "포켓몬 Lv{{level}} 달성"
},
"LV_100": {
"name": "잠깐, 여기가 끝이 아니라구!"
},
"LV_250": {
"name": "엘리트"
},
"LV_1000": {
"name": "더 먼 곳을 향해"
},
"RibbonAchv": {
"description": "총 {{ribbonAmount}}개의 리본 획득"
},
"10_RIBBONS": {
"name": "포켓몬 리그 챔피언"
},
"25_RIBBONS": {
"name": "슈퍼 리그 챔피언"
},
"50_RIBBONS": {
"name": "하이퍼 리그 챔피언"
},
"75_RIBBONS": {
"name": "로그 리그 챔피언"
},
"100_RIBBONS": {
"name": "마스터 리그 챔피언"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "팀워크",
"description": "한 개 이상의 능력치가 최대 랭크일 때 배턴터치 사용"
},
"MAX_FRIENDSHIP": {
"name": "친밀 맥스",
"description": "최대 친밀도 달성"
},
"MEGA_EVOLVE": {
"name": "메가변환",
"description": "포켓몬을 메가진화"
},
"GIGANTAMAX": {
"name": "엄청난 것",
"description": "포켓몬을 다이맥스"
},
"TERASTALLIZE": {
"name": "반짝반짝",
"description": "포켓몬을 테라스탈"
},
"STELLAR_TERASTALLIZE": {
"name": "숨겨진 타입",
"description": "포켓몬을 스텔라 테라스탈"
},
"SPLICE": {
"name": "끝없는 융합",
"description": "유전자쐐기로 두 포켓몬을 융합"
},
"MINI_BLACK_HOLE": {
"name": "도구가 가득한 구멍",
"description": "미니 블랙홀 획득"
},
"CATCH_MYTHICAL": {
"name": "환상",
"description": "환상의 포켓몬 포획"
},
"CATCH_SUB_LEGENDARY": {
"name": "(준)전설",
"description": "준전설 포켓몬 포획"
},
"CATCH_LEGENDARY": {
"name": "전설",
"description": "전설의 포켓몬 포획"
},
"SEE_SHINY": {
"name": "다른 색",
"description": "야생의 색이 다른 포켓몬 발견"
},
"SHINY_PARTY": {
"name": "찐사랑",
"description": "색이 다른 포켓몬만으로 파티 구성"
},
"HATCH_MYTHICAL": {
"name": "환상의 알",
"description": "알에서 환상의 포켓몬이 부화"
},
"HATCH_SUB_LEGENDARY": {
"name": "준전설 알",
"description": "알에서 준전설 포켓몬이 부화"
},
"HATCH_LEGENDARY": {
"name": "전설의 알",
"description": "알에서 전설의 포켓몬이 부화"
},
"HATCH_SHINY": {
"name": "빛나는 알",
"description": "알에서 색이 다른 포켓몬이 부화"
},
"HIDDEN_ABILITY": {
"name": "숨은 잠재력",
"description": "숨겨진 특성을 지닌 포켓몬을 포획"
},
"PERFECT_IVS": {
"name": "진짜배기 증명서",
"description": "최고의 개체값을 지닌 포켓몬 획득"
},
"CLASSIC_VICTORY": {
"name": "무패",
"description": "클래식 모드 클리어"
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "우리집 꿈나무",
"description": "최종 진화형이 아닌 포켓몬을 데리고 클래식 모드 클리어."
},
"MONO_GEN_ONE": {
"name": "근본 라이벌",
"description": "1세대 챌린지 모드 클리어."
},
"MONO_GEN_TWO": {
"name": "이거 1.5세대죠?",
"description": "2세대 챌린지 모드 클리어."
},
"MONO_GEN_THREE": {
"name": "Too much water?",
"description": "3세대 챌린지 모드 클리어."
},
"MONO_GEN_FOUR": {
"name": "난천이 진짜 최강인가요?",
"description": "4세대 챌린지 모드 클리어."
},
"MONO_GEN_FIVE": {
"name": "100% 오리지널!",
"description": "5세대 챌린지 모드 클리어."
},
"MONO_GEN_SIX": {
"name": "크루아상 안에 뭐 들었나요?",
"description": "6세대 챌린지 모드 클리어."
},
"MONO_GEN_SEVEN": {
"name": "기술적으로는…",
"description": "7세대 챌린지 모드 클리어."
},
"MONO_GEN_EIGHT": {
"name": "챔피언 타임!",
"description": "8세대 챌린지 모드 클리어."
},
"MONO_GEN_NINE": {
"name": "걔, 봐 준 거야",
"description": "9세대 챌린지 모드 클리어."
},
"MonoType": {
"description": "{{type}} 타입 챌린지 모드 클리어."
},
"MONO_NORMAL": {
"name": "심플한 것이 가장 강한 것"
},
"MONO_FIGHTING": {
"name": "태권도 할 줄 알아요"
},
"MONO_FLYING": {
"name": "추락하는 것은 날개가 있다"
},
"MONO_POISON": {
"name": "관동 지방 최애 타입"
},
"MONO_GROUND": {
"name": "전기 안 통해요"
},
"MONO_ROCK": {
"name": "웅골참"
},
"MONO_BUG": {
"name": "독침붕처럼 쏴라"
},
"MONO_GHOST": {
"name": "누굴 부를 거야?"
},
"MONO_STEEL": {
"name": "강철 심장"
},
"MONO_FIRE": {
"name": "불타오르네"
},
"MONO_WATER": {
"name": "물 들어올 때 노 젓기"
},
"MONO_GRASS": {
"name": "초록은 동색"
},
"MONO_ELECTRIC": {
"name": "찌릿찌릿"
},
"MONO_PSYCHIC": {
"name": "1세대 최강"
},
"MONO_ICE": {
"name": "얼음땡"
},
"MONO_DRAGON": {
"name": "용용 죽겠지"
},
"MONO_DARK": {
"name": "어둠의 다크"
},
"MONO_FAIRY": {
"name": "설마 자시안으로?"
},
"FRESH_START": {
"name": "첫트!",
"description": "새 출발 챌린지 모드 클리어."
}
}

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const koConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,15 +1,15 @@
{
"victory": "승리!",
"defeatedWildM": "야생에서 패배: ",
"defeatedTrainerM": "트레이너에게 패배: ",
"defeatedTrainerDoubleM": "더블 배틀에서 패배",
"defeatedRivalM": "라이벌에게 패배",
"defeatedM": "패배",
"defeatedWildF": "야생에서 패배: ",
"defeatedTrainerF": "트레이너에게 패배: ",
"defeatedTrainerDoubleF": "더블 배틀에서 패배",
"defeatedRivalF": "라이벌에게 패배",
"defeatedF": "패배",
"defeatedWild": "야생에서 패배: ",
"defeatedTrainer": "트레이너에게 패배: ",
"defeatedTrainerDouble": "더블 배틀에서 패배",
"defeatedRival": "라이벌에게 패배",
"defeated": "패배",
"defeatedWild_female": "야생에서 패배: ",
"defeatedTrainer_female": "트레이너에게 패배: ",
"defeatedTrainerDouble_female": "더블 배틀에서 패배",
"defeatedRival_female": "라이벌에게 패배",
"defeated_female": "패배",
"luck": "행운",
"score": "점수",
"mode": "모드",
@ -30,8 +30,8 @@
"money": "소지금",
"runLength": "플레이 타임",
"viewHeldItems": "도구",
"hallofFameTextM": "전당 등록을 축하합니다!",
"hallofFameTextF": "전당 등록을 축하합니다!",
"hallofFameText": "전당 등록을 축하합니다!",
"hallofFameText_female": "전당 등록을 축하합니다!",
"viewHallOfFame": "전당 보기",
"viewEndingSplash": "엔딩 화면 보기"
}

View File

@ -1,264 +0,0 @@
{
"Achievements": {
"name": "Conquistas"
},
"Locked": {
"name": "Não conquistado"
},
"MoneyAchv": {
"description": "Acumule um total de ₽{{moneyAmount}}"
},
"10K_MONEY": {
"name": "Chuva de Dinheiro"
},
"100K_MONEY": {
"name": "Tô Rica!"
},
"1M_MONEY": {
"name": "Quem Quer Ser Um Milionário?"
},
"10M_MONEY": {
"name": "Tio Patinhas"
},
"DamageAchv": {
"description": "Inflija {{damageAmount}} de dano em um único golpe"
},
"250_DMG": {
"name": "Essa Doeu!"
},
"1000_DMG": {
"name": "Essa Doeu Mais!"
},
"2500_DMG": {
"name": "Essa Doeu Muito!"
},
"10000_DMG": {
"name": "Essa Doeu Pra Caramba!"
},
"HealAchv": {
"description": "Cure {{healAmount}} {{HP}} de uma vez só com um movimento, habilidade ou item segurado"
},
"250_HEAL": {
"name": "Residente"
},
"1000_HEAL": {
"name": "Enfermeira"
},
"2500_HEAL": {
"name": "Médica"
},
"10000_HEAL": {
"name": "Médica de Plantão"
},
"LevelAchv": {
"description": "Aumente o nível de um Pokémon para o Nv{{level}}"
},
"LV_100": {
"name": "Calma Que Tem Mais!"
},
"LV_250": {
"name": "Treinadora de Elite"
},
"LV_1000": {
"name": "Ao Infinito e Além!"
},
"RibbonAchv": {
"description": "Acumule um total de {{ribbonAmount}} Fitas"
},
"10_RIBBONS": {
"name": "Fita de Bronze"
},
"25_RIBBONS": {
"name": "Fita de Prata"
},
"50_RIBBONS": {
"name": "Fita de Ouro"
},
"75_RIBBONS": {
"name": "Fita de Platina"
},
"100_RIBBONS": {
"name": "Fita de Diamante"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "Trabalho em Equipe",
"description": "Use Baton Pass com pelo menos um atributo aumentado ao máximo"
},
"MAX_FRIENDSHIP": {
"name": "Melhores Amigos",
"description": "Alcance a amizade máxima com um Pokémon"
},
"MEGA_EVOLVE": {
"name": "Megamorfose",
"description": "Megaevolua um Pokémon"
},
"GIGANTAMAX": {
"name": "Ficou Gigante!",
"description": "Gigantamax um Pokémon"
},
"TERASTALLIZE": {
"name": "Terastalização",
"description": "Terastalize um Pokémon"
},
"STELLAR_TERASTALLIZE": {
"name": "Estrela Cadente",
"description": "Terastalize um Pokémon para o tipo Estelar"
},
"SPLICE": {
"name": "Fusão!",
"description": "Funda dois Pokémon com um Splicer de DNA"
},
"MINI_BLACK_HOLE": {
"name": "Buraco Sem Fundo",
"description": "Adquira um Mini Buraco Negro"
},
"CATCH_MYTHICAL": {
"name": "Mítico",
"description": "Capture um Pokémon Mítico"
},
"CATCH_SUB_LEGENDARY": {
"name": "Quase Lendário",
"description": "Capture um Pokémon Semi-Lendário"
},
"CATCH_LEGENDARY": {
"name": "Lendário",
"description": "Capture um Pokémon Lendário"
},
"SEE_SHINY": {
"name": "Ué, Tá Brilhando?",
"description": "Encontre um Pokémon Shiny selvagem"
},
"SHINY_PARTY": {
"name": "Tá Todo Mundo Brilhando!",
"description": "Tenha uma equipe formada por 6 Pokémon Shiny"
},
"HATCH_MYTHICAL": {
"name": "Ovo Mítico",
"description": "Choque um Pokémon Mítico"
},
"HATCH_SUB_LEGENDARY": {
"name": "Ovo Semi-Lendário",
"description": "Choque um Pokémon Semi-Lendário"
},
"HATCH_LEGENDARY": {
"name": "Ovo Lendário",
"description": "Choque um Pokémon Lendário"
},
"HATCH_SHINY": {
"name": "Ovo Shiny",
"description": "Choque um Pokémon Shiny"
},
"HIDDEN_ABILITY": {
"name": "Potencial Oculto",
"description": "Capture um Pokémon com uma Habilidade Oculta"
},
"PERFECT_IVS": {
"name": "Perfeição Certificada",
"description": "Obtenha IVs perfeitos em um Pokémon"
},
"CLASSIC_VICTORY": {
"name": "Invencível",
"description": "Vença o jogo no modo clássico"
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "Tire as Crianças da Sala",
"description": "Vença o jogo no Modo Clássico com pelo menos um membro da equipe não evoluído."
},
"MONO_GEN_ONE": {
"name": "O Início de Tudo",
"description": "Complete o desafio da geração um."
},
"MONO_GEN_TWO": {
"name": "Geração 1.5",
"description": "Complete o desafio da geração dois."
},
"MONO_GEN_THREE": {
"name": "Será que tem muita água?",
"description": "Complete o desafio da geração três."
},
"MONO_GEN_FOUR": {
"name": "Essa foi a mais difícil?",
"description": "Complete o desafio da geração quatro."
},
"MONO_GEN_FIVE": {
"name": "Nada original",
"description": "Complete o desafio da geração cinco."
},
"MONO_GEN_SIX": {
"name": "Esse croissant tem recheio?",
"description": "Complete o desafio da geração seis."
},
"MONO_GEN_SEVEN": {
"name": "Z-Move ou Se vira nos 30?",
"description": "Complete o desafio da geração sete."
},
"MONO_GEN_EIGHT": {
"name": "Finalmente ele ganhou!",
"description": "Complete o desafio da geração oito."
},
"MONO_GEN_NINE": {
"name": "Isso aqui tá muito fácil!",
"description": "Complete o desafio da geração nove."
},
"MonoType": {
"description": "Complete o desafio de monotipo {{type}}."
},
"MONO_NORMAL": {
"name": "Extra Ordinário"
},
"MONO_FIGHTING": {
"name": "Briga de Rua"
},
"MONO_FLYING": {
"name": "Rinha de Pidgeys"
},
"MONO_POISON": {
"name": "Menina Veneno"
},
"MONO_GROUND": {
"name": "Comendo Poeira"
},
"MONO_ROCK": {
"name": "...Tanto Bate Até Que Fura"
},
"MONO_BUG": {
"name": "Vida de Inseto"
},
"MONO_GHOST": {
"name": "Fantasminha Camarada"
},
"MONO_STEEL": {
"name": "Levantando Ferro"
},
"MONO_FIRE": {
"name": "Tá Pegando Fogo, Bicho!"
},
"MONO_WATER": {
"name": "Água Mole em Pedra Dura..."
},
"MONO_GRASS": {
"name": "Jardim Botânico"
},
"MONO_ELECTRIC": {
"name": "Choque de Realidade"
},
"MONO_PSYCHIC": {
"name": "Preciso de Terapia"
},
"MONO_ICE": {
"name": "Era do Gelo"
},
"MONO_DRAGON": {
"name": "Caverna do Dragão"
},
"MONO_DARK": {
"name": "É Só Uma Fase"
},
"MONO_FAIRY": {
"name": "Clube das Winx"
},
"FRESH_START": {
"name": "De Primeira!",
"description": "Complete o desafio de novo começo."
}
}

View File

@ -42,13 +42,16 @@
"name": "Residente"
},
"1000_HEAL": {
"name": "Enfermeiro"
"name": "Enfermeiro",
"name_female": "Enfermeira"
},
"2500_HEAL": {
"name": "Médico"
"name": "Médico",
"name_female": "Médica"
},
"10000_HEAL": {
"name": "Médico de Plantão"
"name": "Médico de Plantão",
"name_female": "Médica de Plantão"
},
"LevelAchv": {
"description": "Aumente o nível de um Pokémon para o Nv{{level}}"
@ -57,7 +60,8 @@
"name": "Calma Que Tem Mais!"
},
"LV_250": {
"name": "Treinador de Elite"
"name": "Treinador de Elite",
"name_female": "Treinadora de Elite"
},
"LV_1000": {
"name": "Ao Infinito e Além!"

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const ptBrConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,15 +1,15 @@
{
"victory": "Vitória!",
"defeatedWildM": "Derrotado por ",
"defeatedTrainerM": "Derrotado por ",
"defeatedTrainerDoubleM": "Derrotado por Dupla",
"defeatedRivalM": "Derrotado por Rival",
"defeatedM": "Derrotado",
"defeatedWildF": "Derrotada por ",
"defeatedTrainerF": "Derrotada por ",
"defeatedTrainerDoubleF": "Derrotada por Dupla",
"defeatedRivalF": "Derrotada por Rival",
"defeatedF": "Derrotada",
"defeatedWild": "Derrotado por ",
"defeatedTrainer": "Derrotado por ",
"defeatedTrainerDouble": "Derrotado por Dupla",
"defeatedRival": "Derrotado por Rival",
"defeated": "Derrotado",
"defeatedWild_female": "Derrotada por ",
"defeatedTrainer_female": "Derrotada por ",
"defeatedTrainerDouble_female": "Derrotada por Dupla",
"defeatedRival_female": "Derrotada por Rival",
"defeated_female": "Derrotada",
"luck": "Sorte",
"score": "Pontuação",
"mode": "Modo",
@ -30,8 +30,8 @@
"money": "Dinheiro",
"runLength": "Duração do Jogo",
"viewHeldItems": "Itens Segurados",
"hallofFameTextM": "Bem-vindo ao Hall da Fama!",
"hallofFameTextF": "Bem-vinda ao Hall da Fama!",
"hallofFameText": "Bem-vindo ao Hall da Fama!",
"hallofFameText_female": "Bem-vinda ao Hall da Fama!",
"viewHallOfFame": "Veja o Hall da Fama!",
"viewEndingSplash": "Veja a arte final!"
}

View File

@ -1,272 +0,0 @@
{
"Achievements": {
"name": "成就"
},
"Locked": {
"name": "未解锁"
},
"MoneyAchv": {
"description": "累计获得 ₽{{moneyAmount}}"
},
"10K_MONEY": {
"name": "小有积蓄"
},
"100K_MONEY": {
"name": "大户人家"
},
"1M_MONEY": {
"name": "百万富翁"
},
"10M_MONEY": {
"name": "暴发户"
},
"DamageAchv": {
"description": "在单次攻击中造成 {{damageAmount}} 点伤害"
},
"250_DMG": {
"name": "重拳出击"
},
"1000_DMG": {
"name": "神拳猛击"
},
"2500_DMG": {
"name": "夺少?"
},
"10000_DMG": {
"name": "一拳超人"
},
"HealAchv": {
"description": "通过技能、能力或携带的道具一次性治疗 {{healAmount}} {{HP}}点"
},
"250_HEAL": {
"name": "新手奶妈"
},
"1000_HEAL": {
"name": "治疗担当"
},
"2500_HEAL": {
"name": "牧师"
},
"10000_HEAL": {
"name": "泉水"
},
"LevelAchv": {
"description": "将一只宝可梦提升到 Lv{{level}}"
},
"LV_100": {
"name": "别急,后面还有"
},
"LV_250": {
"name": "精英"
},
"LV_1000": {
"name": "天外有天"
},
"RibbonAchv": {
"description": "累计获得 {{ribbonAmount}} 个勋章"
},
"10_RIBBONS": {
"name": "宝可梦联盟冠军"
},
"25_RIBBONS": {
"name": "超级球联盟冠军"
},
"50_RIBBONS": {
"name": "高级球联盟冠军"
},
"75_RIBBONS": {
"name": "肉鸽球联盟冠军"
},
"100_RIBBONS": {
"name": "大师球联盟冠军"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "团队协作",
"description": "在一项属性强化至最大时用接力棒传递给其他宝可梦"
},
"MAX_FRIENDSHIP": {
"name": "亲密无间",
"description": "使一只宝可梦的亲密度达到最大值"
},
"MEGA_EVOLVE": {
"name": "大变身",
"description": "超级进化一只宝可梦"
},
"GIGANTAMAX": {
"name": "这位更是重量级",
"description": "极巨化一只宝可梦"
},
"TERASTALLIZE": {
"name": "本系爱好者",
"description": "太晶化一只宝可梦"
},
"STELLAR_TERASTALLIZE": {
"name": "隐藏属性",
"description": "星晶化一只宝可梦"
},
"SPLICE": {
"name": "无限融合",
"description": "使用基因之楔将两只宝可梦融合在一起"
},
"MINI_BLACK_HOLE": {
"name": "一大洞的道具",
"description": "获得一个迷你黑洞"
},
"CATCH_MYTHICAL": {
"name": "神秘礼物",
"description": "捕捉一只幻之宝可梦"
},
"CATCH_SUB_LEGENDARY": {
"name": "二级传说",
"description": "捕捉一只二级传说宝可梦"
},
"CATCH_LEGENDARY": {
"name": "传说",
"description": "捕捉一只传说宝可梦"
},
"SEE_SHINY": {
"name": "闪耀夺目",
"description": "在野外找到一只闪光宝可梦"
},
"SHINY_PARTY": {
"name": "呕心沥血",
"description": "拥有一支由闪光宝可梦组成的满员队伍"
},
"HATCH_MYTHICAL": {
"name": "幻兽蛋",
"description": "从蛋中孵化出一只幻之宝可梦"
},
"HATCH_SUB_LEGENDARY": {
"name": "二级传说蛋",
"description": "从蛋中孵化出一只二级传说宝可梦"
},
"HATCH_LEGENDARY": {
"name": "传说蛋",
"description": "从蛋中孵化出一只传说宝可梦"
},
"HATCH_SHINY": {
"name": "金色传说!",
"description": "从蛋中孵化出一只闪光宝可梦"
},
"HIDDEN_ABILITY": {
"name": "隐藏实力",
"description": "捕捉一只拥有隐藏特性的宝可梦"
},
"PERFECT_IVS": {
"name": "合格证",
"description": "获得一只拥有完美个体值的宝可梦"
},
"CLASSIC_VICTORY": {
"name": "战无不胜",
"description": "在经典模式中通关游戏"
},
"UNEVOLVED_CLASSIC_VICTORY": {
"name": "带孩子来上班",
"description": "通关经典模式时队伍中至少有一名未进化的宝可梦"
},
"MONO_GEN_ONE": {
"name": "最初的劲敌",
"description": "完成仅限第一世代的挑战"
},
"MONO_GEN_TWO": {
"name": "1.5世代",
"description": "完成仅限第二世代的挑战"
},
"MONO_GEN_THREE": {
"name": "“水太多了”",
"description": "完成仅限第三世代的挑战"
},
"MONO_GEN_FOUR": {
"name": "她真是最强冠军吗?",
"description": "完成仅限第四世代的挑战"
},
"MONO_GEN_FIVE": {
"name": "完全原创",
"description": "完成仅限第五世代的挑战"
},
"MONO_GEN_SIX": {
"name": "女大公",
"description": "完成仅限第六世代的挑战"
},
"MONO_GEN_SEVEN": {
"name": "首届冠军",
"description": "完成仅限第七世代的挑战"
},
"MONO_GEN_EIGHT": {
"name": "冠军时刻!",
"description": "完成仅限第八世代的挑战"
},
"MONO_GEN_NINE": {
"name": "她又放水了",
"description": "完成仅限第九世代的挑战"
},
"MonoType": {
"description": "完成 {{type}} 单属性挑战"
},
"MONO_NORMAL": {
"name": "异乎寻常的寻常"
},
"MONO_FIGHTING": {
"name": "我有真功夫"
},
"MONO_FLYING": {
"name": "愤怒的小鸟"
},
"MONO_POISON": {
"name": "关都地区特色"
},
"MONO_GROUND": {
"name": "地震预报"
},
"MONO_ROCK": {
"name": "坚如磐石"
},
"MONO_BUG": {
"name": "音箱蟀侠"
},
"MONO_GHOST": {
"name": "捉鬼敢死队"
},
"MONO_STEEL": {
"name": "铁巨人"
},
"MONO_FIRE": {
"name": "搓火球解决一切"
},
"MONO_WATER": {
"name": "当雨来临,倾盆而下"
},
"MONO_GRASS": {
"name": "别踏这个青"
},
"MONO_ELECTRIC": {
"name": "瞄准大岩蛇的角!"
},
"MONO_PSYCHIC": {
"name": "脑洞大开"
},
"MONO_ICE": {
"name": "如履薄冰"
},
"MONO_DRAGON": {
"name": "准神俱乐部"
},
"MONO_DARK": {
"name": "总有叛逆期"
},
"MONO_FAIRY": {
"name": "林克,醒醒!"
},
"FRESH_START": {
"name": "初次尝试!",
"description": "完成初次尝试挑战"
}
}

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const zhCnConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -4,12 +4,12 @@
"defeatedTrainer": "被打败",
"defeatedTrainerDouble": "被组合打败",
"defeatedRival": "被劲敌打败",
"defeatedM": "被打败",
"defeatedWildF": "被打败",
"defeatedTrainerF": "被打败",
"defeatedTrainerDoubleF": "被组合打败",
"defeatedRivalF": "被劲敌打败",
"defeatedF": "被打败",
"defeated": "被打败",
"defeatedWild_female": "被打败",
"defeatedTrainer_female": "被打败",
"defeatedTrainerDouble_female": "被组合打败",
"defeatedRival_female": "被劲敌打败",
"defeated_female": "被打败",
"luck": "幸运",
"score": "分数",
"mode": "模式",
@ -30,8 +30,8 @@
"money": "金钱",
"runLength": "游戏时长",
"viewHeldItems": "持有道具",
"hallofFameTextM": "欢迎来到名人堂!",
"hallofFameTextF": "欢迎来到名人堂!",
"hallofFameText": "欢迎来到名人堂!",
"hallofFameText_female": "欢迎来到名人堂!",
"viewHallOfFame": "浏览名人堂!",
"viewEndingSplash": "浏览结算画面"
}

View File

@ -1,256 +0,0 @@
{
"Achievements": {
"name": "成就"
},
"Locked": {
"name": "未解鎖"
},
"MoneyAchv": {
"description": "累計獲得 ₽{{moneyAmount}}"
},
"10K_MONEY": {
"name": "小有積蓄"
},
"100K_MONEY": {
"name": "大戶人家"
},
"1M_MONEY": {
"name": "百萬富翁"
},
"10M_MONEY": {
"name": "暴發戶"
},
"DamageAchv": {
"description": "在單次攻擊中造成 {{damageAmount}} 點傷害"
},
"250_DMG": {
"name": "重拳出擊"
},
"1000_DMG": {
"name": "神拳猛擊"
},
"2500_DMG": {
"name": "奪少?"
},
"10000_DMG": {
"name": "一拳超人"
},
"HealAchv": {
"description": "通過技能、能力或攜帶的道具一次性治療 {{healAmount}} {{HP}}點"
},
"250_HEAL": {
"name": "新手奶媽"
},
"1000_HEAL": {
"name": "治療擔當"
},
"2500_HEAL": {
"name": "牧師"
},
"10000_HEAL": {
"name": "泉水"
},
"LevelAchv": {
"description": "將一隻寶可夢提升到 Lv{{level}}"
},
"LV_100": {
"name": "别急,後面還有"
},
"LV_250": {
"name": "精英"
},
"LV_1000": {
"name": "天外有天"
},
"RibbonAchv": {
"description": "累計獲得 {{ribbonAmount}} 個勛章"
},
"10_RIBBONS": {
"name": "寶可夢聯盟冠軍"
},
"25_RIBBONS": {
"name": "超級球聯盟冠軍"
},
"50_RIBBONS": {
"name": "高級球聯盟冠軍"
},
"75_RIBBONS": {
"name": "肉鴿球聯盟冠軍"
},
"100_RIBBONS": {
"name": "大師球聯盟冠軍"
},
"TRANSFER_MAX_BATTLE_STAT": {
"name": "團隊協作",
"description": "在一項屬性強化至最大時用接力棒傳遞給其他寶可夢"
},
"MAX_FRIENDSHIP": {
"name": "親密無間",
"description": "使一隻寶可夢的親密度達到最大值"
},
"MEGA_EVOLVE": {
"name": "大變身",
"description": "超級進化一隻寶可夢"
},
"GIGANTAMAX": {
"name": "這位更是重量級",
"description": "極巨化一隻寶可夢"
},
"TERASTALLIZE": {
"name": "本系愛好者",
"description": "太晶化一隻寶可夢"
},
"STELLAR_TERASTALLIZE": {
"name": "隱藏屬性",
"description": "星晶化一隻寶可夢"
},
"SPLICE": {
"name": "無限融合",
"description": "使用基因之楔將兩隻寶可夢融合在一起"
},
"MINI_BLACK_HOLE": {
"name": "一大洞的道具",
"description": "獲得一個迷你黑洞"
},
"CATCH_MYTHICAL": {
"name": "神秘禮物",
"description": "捕捉一隻幻之寶可夢"
},
"CATCH_SUB_LEGENDARY": {
"name": "二級傳說",
"description": "捕捉一隻準傳說寶可夢"
},
"CATCH_LEGENDARY": {
"name": "傳說",
"description": "捕捉一隻傳說寶可夢"
},
"SEE_SHINY": {
"name": "閃耀奪目",
"description": "在野外找到一隻閃光寶可夢"
},
"SHINY_PARTY": {
"name": "嘔心瀝血",
"description": "擁有一支由閃光寶可夢組成的滿員隊伍"
},
"HATCH_MYTHICAL": {
"name": "幻獸蛋",
"description": "從蛋中孵化出一隻幻之寶可夢"
},
"HATCH_SUB_LEGENDARY": {
"name": "二級傳說蛋",
"description": "從蛋中孵化出一隻準傳說寶可夢"
},
"HATCH_LEGENDARY": {
"name": "傳說蛋",
"description": "從蛋中孵化出一隻傳說寶可夢"
},
"HATCH_SHINY": {
"name": "金色傳說!",
"description": "從蛋中孵化出一隻閃光寶可夢"
},
"HIDDEN_ABILITY": {
"name": "隱藏實力",
"description": "捕捉一隻擁有隱藏特性的寶可夢"
},
"PERFECT_IVS": {
"name": "合格證",
"description": "獲得一隻擁有完美個體值的寶可夢"
},
"CLASSIC_VICTORY": {
"name": "戰無不勝",
"description": "在經典模式中通關遊戲"
},
"MONO_GEN_ONE": {
"name": "最初的勁敵",
"description": "完成僅限第一世代的挑戰."
},
"MONO_GEN_TWO": {
"name": "1.5世代",
"description": "完成僅限第二世代的挑戰."
},
"MONO_GEN_THREE": {
"name": "“水太多了”",
"description": "完成僅限第三世代的挑戰."
},
"MONO_GEN_FOUR": {
"name": "她真是最強冠軍嗎?",
"description": "完成僅限第四世代的挑戰."
},
"MONO_GEN_FIVE": {
"name": "完全原創",
"description": "完成僅限第五世代的挑戰."
},
"MONO_GEN_SIX": {
"name": "女大公",
"description": "完成僅限第六世代的挑戰."
},
"MONO_GEN_SEVEN": {
"name": "首屆冠軍",
"description": "完成僅限第七世代的挑戰."
},
"MONO_GEN_EIGHT": {
"name": "冠軍時刻!",
"description": "完成僅限第八世代的挑戰."
},
"MONO_GEN_NINE": {
"name": "她又放水了",
"description": "完成僅限第九世代的挑戰."
},
"MonoType": {
"description": "完成 {{type}} 單屬性挑戰."
},
"MONO_NORMAL": {
"name": "異乎尋常的尋常"
},
"MONO_FIGHTING": {
"name": "我有真功夫"
},
"MONO_FLYING": {
"name": "憤怒的小鳥"
},
"MONO_POISON": {
"name": "關都地區特色"
},
"MONO_GROUND": {
"name": "地震預報"
},
"MONO_ROCK": {
"name": "堅如磐石"
},
"MONO_BUG": {
"name": "音箱蟀俠"
},
"MONO_GHOST": {
"name": "捉鬼敢死隊"
},
"MONO_STEEL": {
"name": "鐵巨人"
},
"MONO_FIRE": {
"name": "搓火球解決一切"
},
"MONO_WATER": {
"name": "當雨來臨,傾盆而下"
},
"MONO_GRASS": {
"name": "別踏這個青"
},
"MONO_ELECTRIC": {
"name": "瞄準大岩蛇的角!"
},
"MONO_PSYCHIC": {
"name": "腦洞大開"
},
"MONO_ICE": {
"name": "如履薄冰"
},
"MONO_DRAGON": {
"name": "準神俱樂部"
},
"MONO_DARK": {
"name": "總有叛逆期"
},
"MONO_FAIRY": {
"name": "林克,醒醒!"
}
}

View File

@ -4,8 +4,7 @@ import ability from "./ability.json";
import abilityTriggers from "./ability-trigger.json";
import arenaFlyout from "./arena-flyout.json";
import arenaTag from "./arena-tag.json";
import achvMale from "./achv-male.json";
import achvFemale from "./achv-female.json";
import achv from "./achv.json";
import battle from "./battle.json";
import battleScene from "./battle-scene.json";
import battleInfo from "./battle-info.json";
@ -76,8 +75,7 @@ export const zhTwConfig = {
challenges,
commandUiHandler,
common,
PGMachv: achvMale,
PGFachv: achvFemale,
achv,
PGMdialogue: dialogueMale,
PGFdialogue: dialogueFemale,
PGMbattleSpecDialogue: dialogueEndbossMale,

View File

@ -1,15 +1,15 @@
{
"victory": "勝利!",
"defeatedWildM": "被打敗",
"defeatedTrainerM": "被打敗",
"defeatedTrainerDoubleM": "被組合打敗",
"defeatedRivalM": "被勁敵打敗",
"defeatedM": "被打敗",
"defeatedWildF": "被打敗",
"defeatedTrainerF": "被打敗",
"defeatedTrainerDoubleF": "被組合打敗",
"defeatedRivalF": "被勁敵打敗",
"defeatedF": "被打敗",
"defeatedWild": "被打敗",
"defeatedTrainer": "被打敗",
"defeatedTrainerDouble": "被組合打敗",
"defeatedRival": "被勁敵打敗",
"defeated": "被打敗",
"defeatedWild_female": "被打敗",
"defeatedTrainer_female": "被打敗",
"defeatedTrainerDouble_female": "被組合打敗",
"defeatedRival_female": "被勁敵打敗",
"defeated_female": "被打敗",
"luck": "幸運",
"score": "分數",
"mode": "模式",
@ -30,8 +30,8 @@
"money": "金錢",
"runLength": "遊戲時長",
"viewHeldItems": "持有道具",
"hallofFameTextM": "歡迎來到名人堂!",
"hallofFameTextF": "歡迎來到名人堂!",
"hallofFameText": "歡迎來到名人堂!",
"hallofFameText_female": "歡迎來到名人堂!",
"viewHallOfFame": "浏覽名人堂!",
"viewEndingSplash": "浏覽結算畫面"
}

View File

@ -5,7 +5,6 @@ import { pokemonEvolutions } from "#app/data/pokemon-evolutions";
import i18next from "i18next";
import * as Utils from "../utils";
import { PlayerGender } from "#enums/player-gender";
import { ParseKeys } from "i18next";
import { Challenge, FreshStartChallenge, SingleGenerationChallenge, SingleTypeChallenge } from "#app/data/challenge.js";
import { ConditionFn } from "#app/@types/common.js";
@ -42,13 +41,13 @@ export class Achv {
/**
* Get the name of the achievement based on the gender of the player
* @param playerGender - the gender of the player
* @param playerGender - the gender of the player (default: {@linkcode PlayerGender.UNSET})
* @returns the name of the achievement localized for the player gender
*/
getName(playerGender: PlayerGender): string {
const prefix = playerGender === PlayerGender.FEMALE ?"PGF" : "PGM";
getName(playerGender: PlayerGender = PlayerGender.UNSET): string {
const genderStr = PlayerGender[playerGender].toLowerCase();
// Localization key is used to get the name of the achievement
return i18next.t(`${prefix}achv:${this.localizationKey}.name` as ParseKeys);
return i18next.t(`achv:${this.localizationKey}.name`, { context: genderStr });
}
getDescription(): string {
@ -151,116 +150,110 @@ export class ChallengeAchv extends Achv {
*/
export function getAchievementDescription(localizationKey: string): string {
// We need to get the player gender from the game data to add the correct prefix to the achievement name
let playerGender = PlayerGender.MALE;
if (this?.scene) {
playerGender = this.scene.gameData.gender;
}
let genderPrefix = "PGM";
if (playerGender === PlayerGender.FEMALE) {
genderPrefix = "PGF";
}
const genderIndex = this?.scene?.gameData?.gender ?? PlayerGender.MALE; //TODO: why is `this` being used here!? We are not inside a scope (copied from original)
const genderStr = PlayerGender[genderIndex].toLowerCase();
switch (localizationKey) {
case "10K_MONEY":
return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._10K_MONEY.moneyAmount.toLocaleString("en-US")});
return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._10K_MONEY.moneyAmount.toLocaleString("en-US")});
case "100K_MONEY":
return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._100K_MONEY.moneyAmount.toLocaleString("en-US")});
return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._100K_MONEY.moneyAmount.toLocaleString("en-US")});
case "1M_MONEY":
return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._1M_MONEY.moneyAmount.toLocaleString("en-US")});
return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._1M_MONEY.moneyAmount.toLocaleString("en-US")});
case "10M_MONEY":
return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._10M_MONEY.moneyAmount.toLocaleString("en-US")});
return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._10M_MONEY.moneyAmount.toLocaleString("en-US")});
case "250_DMG":
return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._250_DMG.damageAmount.toLocaleString("en-US")});
return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._250_DMG.damageAmount.toLocaleString("en-US")});
case "1000_DMG":
return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._1000_DMG.damageAmount.toLocaleString("en-US")});
return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._1000_DMG.damageAmount.toLocaleString("en-US")});
case "2500_DMG":
return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._2500_DMG.damageAmount.toLocaleString("en-US")});
return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._2500_DMG.damageAmount.toLocaleString("en-US")});
case "10000_DMG":
return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._10000_DMG.damageAmount.toLocaleString("en-US")});
return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._10000_DMG.damageAmount.toLocaleString("en-US")});
case "250_HEAL":
return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._250_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._250_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
case "1000_HEAL":
return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._1000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._1000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
case "2500_HEAL":
return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._2500_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._2500_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
case "10000_HEAL":
return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._10000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._10000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")});
case "LV_100":
return i18next.t(`${genderPrefix}achv:LevelAchv.description` as ParseKeys, {"level": achvs.LV_100.level});
return i18next.t("achv:LevelAchv.description", {context: genderStr, "level": achvs.LV_100.level});
case "LV_250":
return i18next.t(`${genderPrefix}achv:LevelAchv.description` as ParseKeys, {"level": achvs.LV_250.level});
return i18next.t("achv:LevelAchv.description", {context: genderStr, "level": achvs.LV_250.level});
case "LV_1000":
return i18next.t(`${genderPrefix}achv:LevelAchv.description` as ParseKeys, {"level": achvs.LV_1000.level});
return i18next.t("achv:LevelAchv.description", {context: genderStr, "level": achvs.LV_1000.level});
case "10_RIBBONS":
return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._10_RIBBONS.ribbonAmount.toLocaleString("en-US")});
return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._10_RIBBONS.ribbonAmount.toLocaleString("en-US")});
case "25_RIBBONS":
return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._25_RIBBONS.ribbonAmount.toLocaleString("en-US")});
return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._25_RIBBONS.ribbonAmount.toLocaleString("en-US")});
case "50_RIBBONS":
return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._50_RIBBONS.ribbonAmount.toLocaleString("en-US")});
return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._50_RIBBONS.ribbonAmount.toLocaleString("en-US")});
case "75_RIBBONS":
return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._75_RIBBONS.ribbonAmount.toLocaleString("en-US")});
return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._75_RIBBONS.ribbonAmount.toLocaleString("en-US")});
case "100_RIBBONS":
return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._100_RIBBONS.ribbonAmount.toLocaleString("en-US")});
return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._100_RIBBONS.ribbonAmount.toLocaleString("en-US")});
case "TRANSFER_MAX_BATTLE_STAT":
return i18next.t(`${genderPrefix}achv:TRANSFER_MAX_BATTLE_STAT.description` as ParseKeys);
return i18next.t("achv:TRANSFER_MAX_BATTLE_STAT.description", { context: genderStr });
case "MAX_FRIENDSHIP":
return i18next.t(`${genderPrefix}achv:MAX_FRIENDSHIP.description` as ParseKeys);
return i18next.t("achv:MAX_FRIENDSHIP.description", { context: genderStr });
case "MEGA_EVOLVE":
return i18next.t(`${genderPrefix}achv:MEGA_EVOLVE.description` as ParseKeys);
return i18next.t("achv:MEGA_EVOLVE.description", { context: genderStr });
case "GIGANTAMAX":
return i18next.t(`${genderPrefix}achv:GIGANTAMAX.description` as ParseKeys);
return i18next.t("achv:GIGANTAMAX.description", { context: genderStr });
case "TERASTALLIZE":
return i18next.t(`${genderPrefix}achv:TERASTALLIZE.description` as ParseKeys);
return i18next.t("achv:TERASTALLIZE.description", { context: genderStr });
case "STELLAR_TERASTALLIZE":
return i18next.t(`${genderPrefix}achv:STELLAR_TERASTALLIZE.description` as ParseKeys);
return i18next.t("achv:STELLAR_TERASTALLIZE.description", { context: genderStr });
case "SPLICE":
return i18next.t(`${genderPrefix}achv:SPLICE.description` as ParseKeys);
return i18next.t("achv:SPLICE.description", { context: genderStr });
case "MINI_BLACK_HOLE":
return i18next.t(`${genderPrefix}achv:MINI_BLACK_HOLE.description` as ParseKeys);
return i18next.t("achv:MINI_BLACK_HOLE.description", { context: genderStr });
case "CATCH_MYTHICAL":
return i18next.t(`${genderPrefix}achv:CATCH_MYTHICAL.description` as ParseKeys);
return i18next.t("achv:CATCH_MYTHICAL.description", { context: genderStr });
case "CATCH_SUB_LEGENDARY":
return i18next.t(`${genderPrefix}achv:CATCH_SUB_LEGENDARY.description` as ParseKeys);
return i18next.t("achv:CATCH_SUB_LEGENDARY.description", { context: genderStr });
case "CATCH_LEGENDARY":
return i18next.t(`${genderPrefix}achv:CATCH_LEGENDARY.description` as ParseKeys);
return i18next.t("achv:CATCH_LEGENDARY.description", { context: genderStr });
case "SEE_SHINY":
return i18next.t(`${genderPrefix}achv:SEE_SHINY.description` as ParseKeys);
return i18next.t("achv:SEE_SHINY.description", { context: genderStr });
case "SHINY_PARTY":
return i18next.t(`${genderPrefix}achv:SHINY_PARTY.description` as ParseKeys);
return i18next.t("achv:SHINY_PARTY.description", { context: genderStr });
case "HATCH_MYTHICAL":
return i18next.t(`${genderPrefix}achv:HATCH_MYTHICAL.description` as ParseKeys);
return i18next.t("achv:HATCH_MYTHICAL.description", { context: genderStr });
case "HATCH_SUB_LEGENDARY":
return i18next.t(`${genderPrefix}achv:HATCH_SUB_LEGENDARY.description` as ParseKeys);
return i18next.t("achv:HATCH_SUB_LEGENDARY.description", { context: genderStr });
case "HATCH_LEGENDARY":
return i18next.t(`${genderPrefix}achv:HATCH_LEGENDARY.description` as ParseKeys);
return i18next.t("achv:HATCH_LEGENDARY.description", { context: genderStr });
case "HATCH_SHINY":
return i18next.t(`${genderPrefix}achv:HATCH_SHINY.description` as ParseKeys);
return i18next.t("achv:HATCH_SHINY.description", { context: genderStr });
case "HIDDEN_ABILITY":
return i18next.t(`${genderPrefix}achv:HIDDEN_ABILITY.description` as ParseKeys);
return i18next.t("achv:HIDDEN_ABILITY.description", { context: genderStr });
case "PERFECT_IVS":
return i18next.t(`${genderPrefix}achv:PERFECT_IVS.description` as ParseKeys);
return i18next.t("achv:PERFECT_IVS.description", { context: genderStr });
case "CLASSIC_VICTORY":
return i18next.t(`${genderPrefix}achv:CLASSIC_VICTORY.description` as ParseKeys);
return i18next.t("achv:CLASSIC_VICTORY.description", { context: genderStr });
case "UNEVOLVED_CLASSIC_VICTORY":
return i18next.t(`${genderPrefix}achv:UNEVOLVED_CLASSIC_VICTORY.description` as ParseKeys);
return i18next.t("achv:UNEVOLVED_CLASSIC_VICTORY.description", { context: genderStr });
case "MONO_GEN_ONE":
return i18next.t(`${genderPrefix}achv:MONO_GEN_ONE.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_ONE.description", { context: genderStr });
case "MONO_GEN_TWO":
return i18next.t(`${genderPrefix}achv:MONO_GEN_TWO.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_TWO.description", { context: genderStr });
case "MONO_GEN_THREE":
return i18next.t(`${genderPrefix}achv:MONO_GEN_THREE.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_THREE.description", { context: genderStr });
case "MONO_GEN_FOUR":
return i18next.t(`${genderPrefix}achv:MONO_GEN_FOUR.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_FOUR.description", { context: genderStr });
case "MONO_GEN_FIVE":
return i18next.t(`${genderPrefix}achv:MONO_GEN_FIVE.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_FIVE.description", { context: genderStr });
case "MONO_GEN_SIX":
return i18next.t(`${genderPrefix}achv:MONO_GEN_SIX.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_SIX.description", { context: genderStr });
case "MONO_GEN_SEVEN":
return i18next.t(`${genderPrefix}achv:MONO_GEN_SEVEN.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_SEVEN.description", { context: genderStr });
case "MONO_GEN_EIGHT":
return i18next.t(`${genderPrefix}achv:MONO_GEN_EIGHT.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_EIGHT.description", { context: genderStr });
case "MONO_GEN_NINE":
return i18next.t(`${genderPrefix}achv:MONO_GEN_NINE.description` as ParseKeys);
return i18next.t("achv:MONO_GEN_NINE.description", { context: genderStr });
case "MONO_NORMAL":
case "MONO_FIGHTING":
case "MONO_FLYING":
@ -279,9 +272,9 @@ export function getAchievementDescription(localizationKey: string): string {
case "MONO_DRAGON":
case "MONO_DARK":
case "MONO_FAIRY":
return i18next.t(`${genderPrefix}achv:MonoType.description` as ParseKeys, {"type": i18next.t(`pokemonInfo:Type.${localizationKey.slice(5)}`)});
return i18next.t("achv:MonoType.description", { context: genderStr, "type": i18next.t(`pokemonInfo:Type.${localizationKey.slice(5)}`) });
case "FRESH_START":
return i18next.t(`${genderPrefix}achv:FRESH_START.description` as ParseKeys);
return i18next.t("achv:FRESH_START.description", { context: genderStr });
default:
return "";
}

View File

@ -639,13 +639,13 @@ export class GameData {
async saveRunHistory(scene: BattleScene, runEntry : SessionSaveData, isVictory: boolean): Promise<boolean> {
const runHistoryData = await this.getRunHistoryData(scene);
// runHistoryData should always return run history or {} empty object
const timestamps = Object.keys(runHistoryData);
const timestampsNo = timestamps.map(Number);
let timestamps = Object.keys(runHistoryData).map(Number);
// Arbitrary limit of 25 entries per user --> Can increase or decrease
while (timestamps.length >= RUN_HISTORY_LIMIT ) {
const oldestTimestamp = Math.min.apply(Math, timestampsNo);
const oldestTimestamp = (Math.min.apply(Math, timestamps)).toString();
delete runHistoryData[oldestTimestamp];
timestamps = Object.keys(runHistoryData).map(Number);
}
const timestamp = (runEntry.timestamp).toString();

View File

@ -43,6 +43,7 @@ describe("Test Battle Phase", () => {
beforeEach(() => {
game = new GameManager(phaserGame);
game.scene.gameData.gender = undefined!; // just for these tests!
});
it("test phase interceptor with prompt", async () => {

View File

@ -139,7 +139,7 @@ export default class GameManager {
this.scene.expParty = ExpNotification.SKIP;
this.scene.hpBarSpeed = 3;
this.scene.enableTutorials = false;
this.scene.gameData.gender = PlayerGender.MALE;
this.scene.gameData.gender = PlayerGender.MALE; // set initial player gender
}

View File

@ -1,3 +1,4 @@
import { PlayerGender } from "#app/enums/player-gender";
import { GameManagerHelper } from "./gameManagerHelper";
/**
@ -11,5 +12,19 @@ export class SettingsHelper extends GameManagerHelper {
*/
typeHints(enable: boolean) {
this.game.scene.typeHints = enable;
this.log(`Type Hints ${enable? "enabled" : "disabled"}` );
}
/**
* Change the player gender
* @param gender the {@linkcode PlayerGender} to set
*/
playerGender(gender: PlayerGender) {
this.game.scene.gameData.gender = gender;
this.log(`Gender set to: ${PlayerGender[gender]} (=${gender})` );
}
private log(...params: any[]) {
console.log("Settings:", ...params);
}
}

View File

@ -7,7 +7,6 @@ import MessageUiHandler from "./message-ui-handler";
import { addTextObject, TextStyle } from "./text";
import { Mode } from "./ui";
import { addWindow } from "./ui-theme";
import { ParseKeys } from "i18next";
import { PlayerGender } from "#enums/player-gender";
enum Page {
@ -83,13 +82,10 @@ export default class AchvsUiHandler extends MessageUiHandler {
this.headerActionText.setPositionRelative(this.headerBg, 264, 8);
// We need to get the player gender from the game data to add the correct prefix to the achievement name
const playerGender = this.scene.gameData.gender;
let genderPrefix = "PGM";
if (playerGender === PlayerGender.FEMALE) {
genderPrefix = "PGF";
}
const genderIndex = this.scene.gameData.gender ?? PlayerGender.MALE;
const genderStr = PlayerGender[genderIndex].toLowerCase();
this.achvsName = i18next.t(`${genderPrefix}achv:Achievements.name` as ParseKeys);
this.achvsName = i18next.t("achv:Achievements.name", { context: genderStr });
this.vouchersName = i18next.t("voucher:vouchers");
this.iconsBg = addWindow(this.scene, 0, this.headerBg.height, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - this.headerBg.height - 68);
@ -189,13 +185,10 @@ export default class AchvsUiHandler extends MessageUiHandler {
protected showAchv(achv: Achv) {
// We need to get the player gender from the game data to add the correct prefix to the achievement name
const playerGender = this.scene.gameData.gender;
let genderPrefix = "PGM";
if (playerGender === PlayerGender.FEMALE) {
genderPrefix = "PGF";
}
const genderIndex = this.scene.gameData.gender ?? PlayerGender.MALE;
const genderStr = PlayerGender[genderIndex].toLowerCase();
achv.name = i18next.t(`${genderPrefix}achv:${achv.localizationKey}.name` as ParseKeys);
achv.name = i18next.t(`achv:${achv.localizationKey}.name`, { context: genderStr });
achv.description = getAchievementDescription(achv.localizationKey);
const achvUnlocks = this.scene.gameData.achvUnlocks;
const unlocked = achvUnlocks.hasOwnProperty(achv.id);
@ -203,7 +196,7 @@ export default class AchvsUiHandler extends MessageUiHandler {
this.titleText.setText(unlocked ? achv.name : "???");
this.showText(!hidden ? achv.description : "");
this.scoreText.setText(`${achv.score}pt`);
this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t(`${genderPrefix}achv:Locked.name` as ParseKeys));
this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t("achv:Locked.name"));
}
protected showVoucher(voucher: Voucher) {

View File

@ -0,0 +1,85 @@
import BattleScene from "#app/battle-scene.js";
import { ModalConfig } from "./modal-ui-handler";
import { Mode } from "./ui";
import * as Utils from "../utils";
import { FormModalUiHandler } from "./form-modal-ui-handler";
import { Button } from "#app/enums/buttons.js";
export default class AdminUiHandler extends FormModalUiHandler {
constructor(scene: BattleScene, mode: Mode | null = null) {
super(scene, mode);
}
setup(): void {
super.setup();
}
getModalTitle(config?: ModalConfig): string {
return "Admin panel";
}
getFields(config?: ModalConfig): string[] {
return ["Username", "Discord ID"];
}
getWidth(config?: ModalConfig): number {
return 160;
}
getMargin(config?: ModalConfig): [number, number, number, number] {
return [0, 0, 48, 0];
}
getButtonLabels(config?: ModalConfig): string[] {
return ["Link account", "Cancel"];
}
processInput(button: Button): boolean {
if (button === Button.SUBMIT && this.submitAction) {
this.submitAction();
return true;
}
return false;
}
show(args: any[]): boolean {
if (super.show(args)) {
const config = args[0] as ModalConfig;
const originalSubmitAction = this.submitAction;
this.submitAction = (_) => {
this.submitAction = originalSubmitAction;
this.scene.ui.setMode(Mode.LOADING, { buttonActions: [] });
const onFail = error => {
this.scene.ui.setMode(Mode.ADMIN, Object.assign(config, { errorMessage: error?.trim() }));
this.scene.ui.playError();
};
if (!this.inputs[0].text) {
return onFail("Username is required");
}
if (!this.inputs[1].text) {
return onFail("Discord Id is required");
}
Utils.apiPost("admin/account/discord-link", `username=${encodeURIComponent(this.inputs[0].text)}&discordId=${encodeURIComponent(this.inputs[1].text)}`, "application/x-www-form-urlencoded", true)
.then(response => {
if (!response.ok) {
return response.text();
}
return response.json();
})
.then(response => {
this.scene.ui.setMode(Mode.ADMIN, config);
});
return false;
};
return true;
}
return false;
}
clear(): void {
super.clear();
}
}

View File

@ -6,7 +6,7 @@ import { WindowVariant, addWindow } from "./ui-theme";
import InputText from "phaser3-rex-plugins/plugins/inputtext";
import * as Utils from "../utils";
import i18next from "i18next";
import {Button} from "#enums/buttons";
import { Button } from "#enums/buttons";
export interface FormModalConfig extends ModalConfig {
errorMessage?: string;
@ -60,7 +60,7 @@ export abstract class FormModalUiHandler extends ModalUiHandler {
const inputBg = addWindow(this.scene, 0, 0, 80, 16, false, false, 0, 0, WindowVariant.XTHIN);
const isPassword = field.includes(i18next.t("menu:password")) || field.includes(i18next.t("menu:confirmPassword"));
const input = addTextInputObject(this.scene, 4, -2, 440, 116, TextStyle.TOOLTIP_CONTENT, { type: isPassword ? "password" : "text", maxLength: isPassword ? 64 : 16 });
const input = addTextInputObject(this.scene, 4, -2, 440, 116, TextStyle.TOOLTIP_CONTENT, { type: isPassword ? "password" : "text", maxLength: isPassword ? 64 : 18 });
input.setOrigin(0, 0);
inputContainer.add(inputBg);

View File

@ -306,16 +306,34 @@ export default class MenuUiHandler extends MessageUiHandler {
return true;
},
keepOpen: true
},
{
label: i18next.t("menuUiHandler:cancel"),
}];
if (!bypassLogin && loggedInUser?.hasAdminRole) {
communityOptions.push({
label: "Admin",
handler: () => {
this.scene.ui.revertMode();
ui.playSelect();
ui.setOverlayMode(Mode.ADMIN, {
buttonActions: [
() => {
ui.revertMode();
},
() => {
ui.revertMode();
}
]
});
return true;
}
},
keepOpen: true
});
}
communityOptions.push({
label: i18next.t("menuUiHandler:cancel"),
handler: () => {
this.scene.ui.revertMode();
return true;
}
];
});
this.communityConfig = {
xOffset: 98,
options: communityOptions

View File

@ -5,7 +5,7 @@ import { Command } from "./command-ui-handler";
import MessageUiHandler from "./message-ui-handler";
import { Mode } from "./ui";
import * as Utils from "../utils";
import { PokemonBaseStatModifier, PokemonFormChangeItemModifier, PokemonHeldItemModifier, SwitchEffectTransferModifier } from "../modifier/modifier";
import { PokemonFormChangeItemModifier, PokemonHeldItemModifier, SwitchEffectTransferModifier } from "../modifier/modifier";
import { allMoves, ForceSwitchOutAttr } from "../data/move";
import { getGenderColor, getGenderSymbol } from "../data/gender";
import { StatusEffect } from "../data/status-effect";
@ -1002,14 +1002,8 @@ export default class PartyUiHandler extends MessageUiHandler {
optionText.setOrigin(0, 0);
/** For every item that has stack bigger than 1, display the current quantity selection */
if (this.partyUiMode === PartyUiMode.MODIFIER_TRANSFER && this.transferQuantitiesMax[option] > 1) {
const itemModifier = itemModifiers[option];
/** Not sure why getMaxHeldItemCount had an error, but it only checks the Pokemon parameter if the modifier is PokemonBaseStatModifier */
if (itemModifier === undefined || itemModifier instanceof PokemonBaseStatModifier) {
continue;
}
const itemModifier = itemModifiers[option];
if (this.partyUiMode === PartyUiMode.MODIFIER_TRANSFER && this.transferQuantitiesMax[option] > 1 && !this.transferMode && itemModifier !== undefined && itemModifier.type.name === optionName) {
let amountText = ` (${this.transferQuantities[option]})`;
/** If the amount held is the maximum, display the count in red */

View File

@ -278,11 +278,12 @@ class RunEntryContainer extends Phaser.GameObjects.Container {
const gameOutcomeLabel = addTextObject(this.scene, 8, 5, `${i18next.t("runHistory:victory")}`, TextStyle.WINDOW);
this.add(gameOutcomeLabel);
} else { // Run Result: Defeats
const genderLabel = (this.scene.gameData.gender === PlayerGender.FEMALE) ? "F" : "M";
const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET;
const genderStr = PlayerGender[genderIndex].toLowerCase();
// Defeats from wild Pokemon battles will show the Pokemon responsible by the text of the run result.
if (data.battleType === BattleType.WILD) {
const enemyContainer = this.scene.add.container(8, 5);
const gameOutcomeLabel = addTextObject(this.scene, 0, 0, `${i18next.t("runHistory:defeatedWild"+genderLabel)}`, TextStyle.WINDOW);
const gameOutcomeLabel = addTextObject(this.scene, 0, 0, `${i18next.t("runHistory:defeatedWild", { context: genderStr })}`, TextStyle.WINDOW);
enemyContainer.add(gameOutcomeLabel);
data.enemyParty.forEach((enemyData, e) => {
const enemyIconContainer = this.scene.add.container(65+(e*25), -8);
@ -307,10 +308,10 @@ class RunEntryContainer extends Phaser.GameObjects.Container {
const RIVAL_TRAINER_ID_THRESHOLD = 375;
if (data.trainer.trainerType >= RIVAL_TRAINER_ID_THRESHOLD) {
const rivalName = (tObj.variant === TrainerVariant.FEMALE) ? "trainerNames:rival_female" : "trainerNames:rival";
const gameOutcomeLabel = addTextObject(this.scene, 8, 5, `${i18next.t("runHistory:defeatedRival"+genderLabel)} ${i18next.t(rivalName)}`, TextStyle.WINDOW);
const gameOutcomeLabel = addTextObject(this.scene, 8, 5, `${i18next.t("runHistory:defeatedRival", { context: genderStr })} ${i18next.t(rivalName)}`, TextStyle.WINDOW);
this.add(gameOutcomeLabel);
} else {
const gameOutcomeLabel = addTextObject(this.scene, 8, 5, `${i18next.t("runHistory:defeatedTrainer"+genderLabel)}${tObj.getName(0, true)}`, TextStyle.WINDOW);
const gameOutcomeLabel = addTextObject(this.scene, 8, 5, `${i18next.t("runHistory:defeatedTrainer", { context: genderStr })}${tObj.getName(0, true)}`, TextStyle.WINDOW);
this.add(gameOutcomeLabel);
}
}

View File

@ -42,7 +42,6 @@ enum RunInfoUiMode {
export default class RunInfoUiHandler extends UiHandler {
protected runInfo: SessionSaveData;
protected isVictory: boolean;
protected isPGF: boolean;
protected pageMode: RunInfoUiMode;
protected runContainer: Phaser.GameObjects.Container;
@ -94,7 +93,6 @@ export default class RunInfoUiHandler extends UiHandler {
// Assigning information necessary for the UI's creation
this.runInfo = this.scene.gameData.parseSessionData(JSON.stringify(run.entry));
this.isVictory = run.isVictory;
this.isPGF = this.scene.gameData.gender === PlayerGender.FEMALE;
this.pageMode = RunInfoUiMode.MAIN;
// Creates Header and adds to this.runContainer
@ -173,8 +171,10 @@ export default class RunInfoUiHandler extends UiHandler {
*
*/
private async parseRunResult() {
const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET;
const genderStr = PlayerGender[genderIndex];
const runResultTextStyle = this.isVictory ? TextStyle.SUMMARY : TextStyle.SUMMARY_RED;
const runResultTitle = this.isVictory ? i18next.t("runHistory:victory") : (this.isPGF ? i18next.t("runHistory:defeatedF") : i18next.t("runHistory:defeatedM"));
const runResultTitle = this.isVictory ? i18next.t("runHistory:victory") : i18next.t("runHistory:defeated", { context: genderStr });
const runResultText = addBBCodeTextObject(this.scene, 6, 5, `${runResultTitle} - ${i18next.t("saveSlotSelectUiHandler:wave")} ${this.runInfo.waveIndex}`, runResultTextStyle, {fontSize : "65px", lineSpacing: 0.1});
if (this.isVictory) {
@ -684,7 +684,9 @@ export default class RunInfoUiHandler extends UiHandler {
*/
private createVictorySplash(): void {
this.endCardContainer = this.scene.add.container(0, 0);
const endCard = this.scene.add.image(0, 0, `end_${this.isPGF ? "f" : "m"}`);
const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET;
const isFemale = genderIndex === PlayerGender.FEMALE;
const endCard = this.scene.add.image(0, 0, `end_${isFemale ? "f" : "m"}`);
endCard.setOrigin(0);
endCard.setScale(0.5);
const text = addTextObject(this.scene, this.scene.game.canvas.width / 12, (this.scene.game.canvas.height / 6) - 16, i18next.t("battle:congratulations"), TextStyle.SUMMARY, { fontSize: "128px" });
@ -698,16 +700,19 @@ export default class RunInfoUiHandler extends UiHandler {
* This could be adapted into a public-facing method for victory screens. Perhaps.
*/
private createHallofFame(): void {
const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET;
const isFemale = genderIndex === PlayerGender.FEMALE;
const genderStr = PlayerGender[genderIndex].toLowerCase();
// Issue Note (08-05-2024): It seems as if fused pokemon do not appear with the averaged color b/c pokemonData's loadAsset requires there to be some active battle?
// As an alternative, the icons of the second/bottom fused Pokemon have been placed next to their fellow fused Pokemon in Hall of Fame
this.hallofFameContainer = this.scene.add.container(0, 0);
// Thank you Hayuna for the code
const endCard = this.scene.add.image(0, 0, `end_${this.isPGF ? "f" : "m"}`);
const endCard = this.scene.add.image(0, 0, `end_${isFemale ? "f" : "m"}`);
endCard.setOrigin(0);
endCard.setPosition(-1, -1);
endCard.setScale(0.5);
const endCardCoords = endCard.getBottomCenter();
const overlayColor = this.isPGF ? "red" : "blue";
const overlayColor = isFemale ? "red" : "blue";
const hallofFameBg = this.scene.add.image(0, 0, "hall_of_fame_"+overlayColor);
hallofFameBg.setPosition(159, 89);
hallofFameBg.setSize(this.scene.game.canvas.width, this.scene.game.canvas.height+10);
@ -715,7 +720,7 @@ export default class RunInfoUiHandler extends UiHandler {
this.hallofFameContainer.add(endCard);
this.hallofFameContainer.add(hallofFameBg);
const hallofFameText = addTextObject(this.scene, 0, 0, i18next.t("runHistory:hallofFameText"+(this.isPGF ? "F" : "M")), TextStyle.WINDOW);
const hallofFameText = addTextObject(this.scene, 0, 0, i18next.t("runHistory:hallofFameText", { context: genderStr }), TextStyle.WINDOW);
hallofFameText.setPosition(endCardCoords.x-(hallofFameText.displayWidth/2), 164);
this.hallofFameContainer.add(hallofFameText);
this.runInfo.party.forEach((p, i) => {

View File

@ -23,7 +23,7 @@ import OptionSelectUiHandler from "./settings/option-select-ui-handler";
import EggHatchSceneHandler from "./egg-hatch-scene-handler";
import EggListUiHandler from "./egg-list-ui-handler";
import EggGachaUiHandler from "./egg-gacha-ui-handler";
import {addWindow} from "./ui-theme";
import { addWindow } from "./ui-theme";
import LoginFormUiHandler from "./login-form-ui-handler";
import RegistrationFormUiHandler from "./registration-form-ui-handler";
import LoadingModalUiHandler from "./loading-modal-ui-handler";
@ -46,6 +46,7 @@ import SettingsAudioUiHandler from "./settings/settings-audio-ui-handler";
import { PlayerGender } from "#enums/player-gender";
import BgmBar from "#app/ui/bgm-bar";
import RenameFormUiHandler from "./rename-form-ui-handler";
import AdminUiHandler from "./admin-ui-handler";
import RunHistoryUiHandler from "./run-history-ui-handler";
import RunInfoUiHandler from "./run-info-ui-handler";
import MysteryEncounterUiHandler from "./mystery-encounter-ui-handler";
@ -89,6 +90,7 @@ export enum Mode {
RENAME_POKEMON,
RUN_HISTORY,
RUN_INFO,
ADMIN,
MYSTERY_ENCOUNTER
}
@ -126,7 +128,8 @@ const noTransitionModes = [
Mode.SESSION_RELOAD,
Mode.UNAVAILABLE,
Mode.OUTDATED,
Mode.RENAME_POKEMON
Mode.RENAME_POKEMON,
Mode.ADMIN,
];
export default class UI extends Phaser.GameObjects.Container {
@ -190,6 +193,7 @@ export default class UI extends Phaser.GameObjects.Container {
new RenameFormUiHandler(scene),
new RunHistoryUiHandler(scene),
new RunInfoUiHandler(scene),
new AdminUiHandler(scene),
new MysteryEncounterUiHandler(scene),
];
}