Merge branch 'pagefaultgames:main' into main

This commit is contained in:
3ae3ae 2024-07-05 09:26:46 +09:00 committed by GitHub
commit ff17ba71ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
35 changed files with 1714 additions and 1555 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -879,7 +879,7 @@ export class PostDefendContactDamageAbAttr extends PostDefendAbAttr {
} }
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean { applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
if (move.checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon)) { if (move.checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !attacker.hasAbilityWithAttr(BlockNonDirectDamageAbAttr)) {
attacker.damageAndUpdate(Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio)), HitResult.OTHER); attacker.damageAndUpdate(Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio)), HitResult.OTHER);
attacker.turnData.damageTaken += Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio)); attacker.turnData.damageTaken += Math.ceil(attacker.getMaxHp() * (1 / this.damageRatio));
return true; return true;

File diff suppressed because it is too large Load Diff

View File

@ -280,7 +280,6 @@ export class QuietFormChangePhase extends BattlePhase {
end(): void { end(): void {
if (this.pokemon.scene?.currentBattle.battleSpec === BattleSpec.FINAL_BOSS && this.pokemon instanceof EnemyPokemon) { if (this.pokemon.scene?.currentBattle.battleSpec === BattleSpec.FINAL_BOSS && this.pokemon instanceof EnemyPokemon) {
this.scene.playBgm(); this.scene.playBgm();
this.pokemon.summonData.battleStats = [ 0, 0, 0, 0, 0, 0, 0 ];
this.scene.unshiftPhase(new PokemonHealPhase(this.scene, this.pokemon.getBattlerIndex(), this.pokemon.getMaxHp(), null, false, false, false, true)); this.scene.unshiftPhase(new PokemonHealPhase(this.scene, this.pokemon.getBattlerIndex(), this.pokemon.getMaxHp(), null, false, false, false, true));
this.pokemon.findAndRemoveTags(() => true); this.pokemon.findAndRemoveTags(() => true);
this.pokemon.bossSegments = 5; this.pokemon.bossSegments = 5;

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const deConfig = { export const deConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const deConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Übertragen",
"reroll": "Neu rollen",
"lockRarities": "Seltenheit festsetzen",
"checkTeam": "Team überprüfen",
"transferDesc": "Übertrage ein gehaltenes Item zu einem anderen Pokémon.",
"rerollDesc": "Nutze Geld um die Items neu zu rollen.",
"lockRaritiesDesc": "Setze die Seltenheit der Items fest. (Beeinflusst die Rollkosten).",
"checkTeamDesc": "Überprüfe dein Team or nutze Formänderungsitems.",
"rerollCost": "{{formattedMoney}}₽",
"itemCost": "{{formattedMoney}}₽"
} as const;

View File

@ -43,6 +43,7 @@ import { titles, trainerClasses, trainerNames } from "./trainers";
import { tutorial } from "./tutorial"; import { tutorial } from "./tutorial";
import { voucher } from "./voucher"; import { voucher } from "./voucher";
import { weather } from "./weather"; import { weather } from "./weather";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const enConfig = { export const enConfig = {
ability: ability, ability: ability,
@ -91,4 +92,5 @@ export const enConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Transfer",
"reroll": "Reroll",
"lockRarities": "Lock Rarities",
"checkTeam": "Check Team",
"transferDesc": "Transfer a held item from one Pokémon to another.",
"rerollDesc": "Spend money to reroll your item options.",
"lockRaritiesDesc": "Lock item rarities on reroll (affects reroll cost).",
"checkTeamDesc": "Check your team or use a form changing item.",
"rerollCost": "₽{{formattedMoney}}",
"itemCost": "₽{{formattedMoney}}"
} as const;

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const esConfig = { export const esConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const esConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,15 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Transferir",
"reroll": "Actualizar",
"lockRarities": "Bloquear rarezas",
"checkTeam": "Ver Equipo",
"transferDesc": "Transfiere un objeto que lleva un Pokémon a otro.",
"rerollDesc": "Gasta dinero para actualizar las opciones de objetos.",
"lockRaritiesDesc": "Bloquea las rarezas de los objetos al actualizar (afecta el costo de actualización).",
"checkTeamDesc": "Revisa tu equipo o usa un objeto que cambia de forma.",
"rerollCost": "{{formattedMoney}} ₽",
"itemCost": "{{formattedMoney}} ₽"
} as const;

View File

@ -3,46 +3,46 @@ import { BerryTranslationEntries } from "#app/interfaces/locales";
export const berry: BerryTranslationEntries = { export const berry: BerryTranslationEntries = {
"SITRUS": { "SITRUS": {
name: "Baie Sitrus", name: "Baie Sitrus",
effect: "Restaure 25% des PV sils sont inférieurs à 50%", effect: "Restaure 25% des PV sils sont inférieurs à 50%.",
}, },
"LUM": { "LUM": {
name: "Baie Prine", name: "Baie Prine",
effect: "Soigne tout problème de statut permanant et la confusion", effect: "Soigne tout problème de statut permanant et la confusion.",
}, },
"ENIGMA": { "ENIGMA": {
name: "Baie Enigma", name: "Baie Enigma",
effect: "Restaure 25% des PV si touché par une capacité super efficace", effect: "Restaure 25% des PV si touché par une capacité super efficace.",
}, },
"LIECHI": { "LIECHI": {
name: "Baie Lichii", name: "Baie Lichii",
effect: "Augmente lAttaque si les PV sont inférieurs à 25%", effect: "Augmente lAttaque si les PV sont inférieurs à 25%.",
}, },
"GANLON": { "GANLON": {
name: "Baie Lingan", name: "Baie Lingan",
effect: "Augmente la Défense si les PV sont inférieurs à 25%", effect: "Augmente la Défense si les PV sont inférieurs à 25%.",
}, },
"PETAYA": { "PETAYA": {
name: "Baie Pitaye", name: "Baie Pitaye",
effect: "Augmente lAtq. Spé. si les PV sont inférieurs à 25%", effect: "Augmente lAtq. Spé. si les PV sont inférieurs à 25%.",
}, },
"APICOT": { "APICOT": {
name: "Baie Abriko", name: "Baie Abriko",
effect: "Augmente la Déf. Spé. si les PV sont inférieurs à 25%", effect: "Augmente la Déf. Spé. si les PV sont inférieurs à 25%.",
}, },
"SALAC": { "SALAC": {
name: "Baie Sailak", name: "Baie Sailak",
effect: "Augmente la Vitesse si les PV sont inférieurs à 25%", effect: "Augmente la Vitesse si les PV sont inférieurs à 25%.",
}, },
"LANSAT": { "LANSAT": {
name: "Baie Lansat", name: "Baie Lansat",
effect: "Augmente le taux de coups critiques si les PV sont inférieurs à 25%", effect: "Augmente le taux de coups critiques si les PV sont inférieurs à 25%.",
}, },
"STARF": { "STARF": {
name: "Baie Frista", name: "Baie Frista",
effect: "Augmente énormément une statistique au hasard si les PV sont inférieurs à 25%", effect: "Augmente énormément une statistique au hasard si les PV sont inférieurs à 25%.",
}, },
"LEPPA": { "LEPPA": {
name: "Baie Mepo", name: "Baie Mepo",
effect: "Restaure 10 PP à une capacité dès que ses PP tombent à 0", effect: "Restaure 10 PP à une capacité dès que ses PP tombent à 0.",
}, },
} as const; } as const;

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const frConfig = { export const frConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const frConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

File diff suppressed because it is too large Load Diff

View File

@ -20,5 +20,5 @@ export const menuUiHandler: SimpleTranslationEntries = {
"exportData": "Exporter données", "exportData": "Exporter données",
"cancel": "Retour", "cancel": "Retour",
"losingProgressionWarning": "Vous allez perdre votre progression depuis le début du combat. Continuer ?", "losingProgressionWarning": "Vous allez perdre votre progression depuis le début du combat. Continuer ?",
"noEggs": "You are not hatching\nany eggs at the moment!" "noEggs": "Vous ne faites actuellement\néclore aucun Œuf !"
} as const; } as const;

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Transférer",
"reroll": "Relancer",
"lockRarities": "Bloquer la rareté",
"checkTeam": "Consulter Équipe",
"transferDesc": "Transférer un objet tenu par un Pokémon vers un autre.",
"rerollDesc": "Payer pour relancer les objets gratuits proposés.",
"lockRaritiesDesc": "Assure la relance de proposer des objets gratuits de rareté égale ou supérieure. Affecte le cout de relance.",
"checkTeamDesc": "Consulter votre équipe ou utiliser un objet\nde changement de forme.",
"rerollCost": "{{formattedMoney}} ₽",
"itemCost": "{{formattedMoney}} ₽"
} as const;

View File

@ -4,7 +4,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
ModifierType: { ModifierType: {
"AddPokeballModifierType": { "AddPokeballModifierType": {
name: "{{pokeballName}} x{{modifierCount}}", name: "{{pokeballName}} x{{modifierCount}}",
description: "Recevez {{modifierCount}} {{pokeballName}}·s (Inventaire : {{pokeballAmount}})\nTaux de capture : {{catchRate}}.", description: "Recevez {{modifierCount}} {{pokeballName}}·s. (Inventaire : {{pokeballAmount}})\nTaux de capture : {{catchRate}}",
}, },
"AddVoucherModifierType": { "AddVoucherModifierType": {
name: "{{voucherTypeName}} x{{modifierCount}}", name: "{{voucherTypeName}} x{{modifierCount}}",
@ -101,7 +101,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
}, },
"TmModifierTypeWithInfo": { "TmModifierTypeWithInfo": {
name: "CT{{moveId}} - {{moveName}}", name: "CT{{moveId}} - {{moveName}}",
description: "Apprend la capacité {{moveName}} à un Pokémon\n(Maintenez C ou Maj pour plus dinfos).", description: "Apprend la capacité {{moveName}} à un Pokémon.\n(Maintenez C ou Maj pour plus dinfos)",
}, },
"EvolutionItemModifierType": { "EvolutionItemModifierType": {
description: "Permet à certains Pokémon dévoluer.", description: "Permet à certains Pokémon dévoluer.",

View File

@ -14,8 +14,8 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
"SPDEFshortened": "DéfSp", "SPDEFshortened": "DéfSp",
"SPD": "Vitesse", "SPD": "Vitesse",
"SPDshortened": "Vit", "SPDshortened": "Vit",
"ACC": "Accuracy", "ACC": "Précison",
"EVA": "Evasiveness" "EVA": "Esquive"
}, },
Type: { Type: {

View File

@ -31,7 +31,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
"selectMoveSwapWith": "Sélectionnez laquelle échanger avec", "selectMoveSwapWith": "Sélectionnez laquelle échanger avec",
"unlockPassive": "Débloquer Passif", "unlockPassive": "Débloquer Passif",
"reduceCost": "Diminuer le cout", "reduceCost": "Diminuer le cout",
"sameSpeciesEgg": "Buy an Egg", "sameSpeciesEgg": "Acheter un Œuf",
"cycleShiny": ": » Chromatiques", "cycleShiny": ": » Chromatiques",
"cycleForm": ": » Formes", "cycleForm": ": » Formes",
"cycleGender": ": » Sexes", "cycleGender": ": » Sexes",

View File

@ -51,7 +51,7 @@ export const statusEffect: StatusEffectTranslationEntries = {
description: "gelé", description: "gelé",
obtain: "{{pokemonNameWithAffix}} est\ngelé !", obtain: "{{pokemonNameWithAffix}} est\ngelé !",
obtainSource: "{{pokemonNameWithAffix}} est\ngelé par {{sourceText}} !", obtainSource: "{{pokemonNameWithAffix}} est\ngelé par {{sourceText}} !",
activation: "{{pokemonNameWithAffix}}est gelé !\nIl ne peut plus attaquer !", activation: "{{pokemonNameWithAffix}} est gelé !\nIl ne peut plus attaquer !",
overlap: "{{pokemonNameWithAffix}} est\ndéjà gelé.", overlap: "{{pokemonNameWithAffix}} est\ndéjà gelé.",
heal: "{{pokemonNameWithAffix}} nest\nplus gelé !" heal: "{{pokemonNameWithAffix}} nest\nplus gelé !"
}, },

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const itConfig = { export const itConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const itConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Trasferisci",
"reroll": "Rerolla",
"lockRarities": "Blocca le rarità",
"checkTeam": "Stato squadra",
"transferDesc": "Trasferisci un oggetto da un Pokémon ad un altro.",
"rerollDesc": "Spendi soldi per rerollare le ricompense.",
"lockRaritiesDesc": "Blocca le rarità al reroll (influisce sui costi).",
"checkTeamDesc": "Controlla la squadra Pokémon.",
"rerollCost": "{{formattedMoney}}₽",
"itemCost": "{{formattedMoney}}₽"
} as const;

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const koConfig = { export const koConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const koConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "건네주기",
"reroll": "갱신",
"lockRarities": "희귀도 고정",
"checkTeam": "파티 확인",
"transferDesc": "지닌 물건을 다른 포켓몬에게 건네줍니다.",
"rerollDesc": "돈을 소모하여 아이템 목록을 새로 고칩니다.",
"lockRaritiesDesc": "갱신되는 아이템의 희귀도가 고정됩니다(갱신 비용 증가).",
"checkTeamDesc": "파티를 확인하거나 폼 변경 아이템을 사용합니다.",
"rerollCost": "₽{{formattedMoney}}",
"itemCost": "₽{{formattedMoney}}"
} as const;

View File

@ -42,7 +42,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
} }
}, },
"PokemonPpUpModifierType": { "PokemonPpUpModifierType": {
description: "포켓몬이 기억하고 있는 기술 중 1개의 PP 최대치를 5마다 {{upPoints}}씩 상승시킨다 (최대 3).", description: "포켓몬이 기억하고 있는 기술 중 1개의 PP 최대치를 5마다 {{upPoints}}씩 상승시킨다. (최대 3)",
}, },
"PokemonNatureChangeModifierType": { "PokemonNatureChangeModifierType": {
name: "{{natureName}}민트", name: "{{natureName}}민트",
@ -73,7 +73,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "기절해 버린 포켓몬 전원의 HP를 완전히 회복한다.", description: "기절해 버린 포켓몬 전원의 HP를 완전히 회복한다.",
}, },
"MoneyRewardModifierType": { "MoneyRewardModifierType": {
description: "{{moneyMultiplier}} 양의 돈을 획득한다 (₽{{moneyAmount}}).", description: "{{moneyMultiplier}} 양의 돈을 획득한다. (₽{{moneyAmount}})",
extra: { extra: {
"small": "적은", "small": "적은",
"moderate": "적당한", "moderate": "적당한",
@ -90,7 +90,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "배틀 승리로 얻는 친밀도가 50% 증가한다.", description: "배틀 승리로 얻는 친밀도가 50% 증가한다.",
}, },
"PokemonMoveAccuracyBoosterModifierType": { "PokemonMoveAccuracyBoosterModifierType": {
description: "기술의 명중률이 {{accuracyAmount}} 증가한다 (최대 100).", description: "기술의 명중률이 {{accuracyAmount}} 증가한다. (최대 100)",
}, },
"PokemonMultiHitModifierType": { "PokemonMultiHitModifierType": {
description: "지닌 개수(최대 3개)마다 추가 공격을 하는 대신, 공격력이 60%(1개)/75%(2개)/82.5%(3개)만큼 감소합니다.", description: "지닌 개수(최대 3개)마다 추가 공격을 하는 대신, 공격력이 60%(1개)/75%(2개)/82.5%(3개)만큼 감소합니다.",
@ -101,7 +101,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
}, },
"TmModifierTypeWithInfo": { "TmModifierTypeWithInfo": {
name: "No.{{moveId}} {{moveName}}", name: "No.{{moveId}} {{moveName}}",
description: "포켓몬에게 {{moveName}}를(을) 가르침\n(C 또는 Shift를 꾹 눌러 정보 확인).", description: "포켓몬에게 {{moveName}}를(을) 가르침.\n(C 또는 Shift를 꾹 눌러 정보 확인)",
}, },
"EvolutionItemModifierType": { "EvolutionItemModifierType": {
description: "어느 특정 포켓몬을 진화시킨다.", description: "어느 특정 포켓몬을 진화시킨다.",
@ -110,7 +110,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "어느 특정 포켓몬을 폼 체인지시킨다.", description: "어느 특정 포켓몬을 폼 체인지시킨다.",
}, },
"FusePokemonModifierType": { "FusePokemonModifierType": {
description: "두 포켓몬을 결합시킨다 (특성 변환, 종족값과 타입 분배, 기술폭 공유).", description: "두 포켓몬을 결합시킨다. (특성 변환, 종족값과 타입 분배, 기술폭 공유)",
}, },
"TerastallizeModifierType": { "TerastallizeModifierType": {
name: "테라피스 {{teraType}}", name: "테라피스 {{teraType}}",
@ -184,7 +184,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
"EVIOLITE": { name: "진화의휘석", description: "진화의 이상한 덩어리. 지니게 하면 진화 전 포켓몬의 방어와 특수방어가 올라간다." }, "EVIOLITE": { name: "진화의휘석", description: "진화의 이상한 덩어리. 지니게 하면 진화 전 포켓몬의 방어와 특수방어가 올라간다." },
"SOUL_DEW": { name: "마음의물방울", description: "지닌 포켓몬의 성격의 효과가 10% 증가한다 (합연산)." }, "SOUL_DEW": { name: "마음의물방울", description: "지닌 포켓몬의 성격의 효과가 10% 증가한다. (합연산)" },
"NUGGET": { name: "금구슬" }, "NUGGET": { name: "금구슬" },
"BIG_NUGGET": { name: "큰금구슬" }, "BIG_NUGGET": { name: "큰금구슬" },
@ -201,14 +201,14 @@ export const modifierType: ModifierTypeTranslationEntries = {
"MULTI_LENS": { name: "멀티렌즈" }, "MULTI_LENS": { name: "멀티렌즈" },
"HEALING_CHARM": { name: "치유의부적", description: "HP를 회복하는 기술이나 도구를 썼을 때 효율이 10% 증가한다 (부활 제외)." }, "HEALING_CHARM": { name: "치유의부적", description: "HP를 회복하는 기술이나 도구를 썼을 때 효율이 10% 증가한다. (부활 제외)" },
"CANDY_JAR": { name: "사탕단지", description: "이상한사탕 종류의 아이템이 올려주는 레벨이 1 증가한다." }, "CANDY_JAR": { name: "사탕단지", description: "이상한사탕 종류의 아이템이 올려주는 레벨이 1 증가한다." },
"BERRY_POUCH": { name: "열매주머니", description: "사용한 나무열매가 소모되지 않을 확률이 30% 추가된다." }, "BERRY_POUCH": { name: "열매주머니", description: "사용한 나무열매가 소모되지 않을 확률이 30% 추가된다." },
"FOCUS_BAND": { name: "기합의머리띠", description: "기절할 듯한 데미지를 받아도 HP를 1 남겨서 견딜 확률이 10% 추가된다." }, "FOCUS_BAND": { name: "기합의머리띠", description: "기절할 듯한 데미지를 받아도 HP를 1 남겨서 견딜 확률이 10% 추가된다." },
"QUICK_CLAW": { name: "선제공격손톱", description: "상대보다 먼저 행동할 수 있게 될 확률이 10% 추가된다 (우선도 처리 이후)." }, "QUICK_CLAW": { name: "선제공격손톱", description: "상대보다 먼저 행동할 수 있게 될 확률이 10% 추가된다. (우선도 처리 이후)" },
"KINGS_ROCK": { name: "왕의징표석", description: "공격해서 데미지를 줄 때 상대를 풀죽일 확률이 10% 추가된다." }, "KINGS_ROCK": { name: "왕의징표석", description: "공격해서 데미지를 줄 때 상대를 풀죽일 확률이 10% 추가된다." },

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const ptBrConfig = { export const ptBrConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const ptBrConfig = {
trainerNames: trainerNames, trainerNames: trainerNames,
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather weather: weather,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Alterar",
"reroll": "Atualizar",
"lockRarities": "Travar Raridades",
"checkTeam": "Checar Time",
"transferDesc": "Transfira um item segurado de um Pokémon para outro.",
"rerollDesc": "Gaste dinheiro para atualizar as suas opções de itens.",
"lockRaritiesDesc": "Trava a raridade dos itens na atualização (afeta o custo da atualização).",
"checkTeamDesc": "Cheque seu time ou use um item de mudança de forma.",
"rerollCost": "₽{{formattedMoney}}",
"itemCost": "₽{{formattedMoney}}"
} as const;

View File

@ -10,7 +10,7 @@ export const nature: SimpleTranslationEntries = {
"Docile": "Dócil", "Docile": "Dócil",
"Relaxed": "Relaxada", "Relaxed": "Relaxada",
"Impish": "Inquieta", "Impish": "Inquieta",
"Lax": "Relaxada", "Lax": "Frouxa",
"Timid": "Tímida", "Timid": "Tímida",
"Hasty": "Apressada", "Hasty": "Apressada",
"Serious": "Séria", "Serious": "Séria",

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const zhCnConfig = { export const zhCnConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const zhCnConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "交换道具",
"reroll": "刷新商店",
"lockRarities": "锁定稀有度",
"checkTeam": "查看队伍",
"transferDesc": "将宝可梦携带的道具交换给其他宝可梦",
"rerollDesc": "花钱刷新道具",
"lockRaritiesDesc": "在刷新时锁定道具稀有度(影响刷新费用)",
"checkTeamDesc": "检查队伍或使用形态改变道具",
"rerollCost": "₽{{formattedMoney}}",
"itemCost": "₽{{formattedMoney}}"
} as const;

File diff suppressed because it is too large Load Diff

View File

@ -43,6 +43,7 @@ import { weather } from "./weather";
import { partyUiHandler } from "./party-ui-handler"; import { partyUiHandler } from "./party-ui-handler";
import { settings } from "./settings.js"; import { settings } from "./settings.js";
import { common } from "./common.js"; import { common } from "./common.js";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
export const zhTwConfig = { export const zhTwConfig = {
ability: ability, ability: ability,
@ -90,5 +91,6 @@ export const zhTwConfig = {
tutorial: tutorial, tutorial: tutorial,
voucher: voucher, voucher: voucher,
weather: weather, weather: weather,
partyUiHandler: partyUiHandler partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler
}; };

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Transfer",
"reroll": "Reroll",
"lockRarities": "Lock Rarities",
"checkTeam": "Check Team",
"transferDesc": "Transfer a held item from one Pokémon to another.",
"rerollDesc": "Spend money to reroll your item options.",
"lockRaritiesDesc": "Lock item rarities on reroll (affects reroll cost).",
"checkTeamDesc": "Check your team or use a form changing item.",
"rerollCost": "₽{{formattedMoney}}",
"itemCost": "₽{{formattedMoney}}"
} as const;

View File

@ -1,7 +1,7 @@
import BattleScene from "../battle-scene"; import BattleScene from "../battle-scene";
import { getPlayerShopModifierTypeOptionsForWave, ModifierTypeOption, TmModifierType } from "../modifier/modifier-type"; import { getPlayerShopModifierTypeOptionsForWave, ModifierTypeOption, TmModifierType } from "../modifier/modifier-type";
import { getPokeballAtlasKey, PokeballType } from "../data/pokeball"; import { getPokeballAtlasKey, PokeballType } from "../data/pokeball";
import { addTextObject, getModifierTierTextTint, getTextColor, TextStyle } from "./text"; import { addTextObject, getTextStyleOptions, getModifierTierTextTint, getTextColor, TextStyle } from "./text";
import AwaitableUiHandler from "./awaitable-ui-handler"; import AwaitableUiHandler from "./awaitable-ui-handler";
import { Mode } from "./ui"; import { Mode } from "./ui";
import { LockModifierTiersModifier, PokemonHeldItemModifier } from "../modifier/modifier"; import { LockModifierTiersModifier, PokemonHeldItemModifier } from "../modifier/modifier";
@ -10,6 +10,7 @@ import {Button} from "#enums/buttons";
import MoveInfoOverlay from "./move-info-overlay"; import MoveInfoOverlay from "./move-info-overlay";
import { allMoves } from "../data/move"; import { allMoves } from "../data/move";
import * as Utils from "./../utils"; import * as Utils from "./../utils";
import i18next from "i18next";
export const SHOP_OPTIONS_ROW_LIMIT = 6; export const SHOP_OPTIONS_ROW_LIMIT = 6;
@ -27,6 +28,8 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
private rowCursor: integer = 0; private rowCursor: integer = 0;
private player: boolean; private player: boolean;
private rerollCost: integer; private rerollCost: integer;
private transferButtonWidth: integer;
private checkButtonWidth: integer;
public options: ModifierOption[]; public options: ModifierOption[];
public shopOptionsRows: ModifierOption[][]; public shopOptionsRows: ModifierOption[][];
@ -46,22 +49,29 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
this.modifierContainer = this.scene.add.container(0, 0); this.modifierContainer = this.scene.add.container(0, 0);
ui.add(this.modifierContainer); ui.add(this.modifierContainer);
this.transferButtonContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 71, -64); const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
const [ , styleOptions, , , ] = getTextStyleOptions(TextStyle.PARTY, (this.scene as BattleScene).uiTheme);
context.font = styleOptions.fontSize + "px " + styleOptions.fontFamily;
this.transferButtonWidth = context.measureText(i18next.t("modifierSelectUiHandler:transfer")).width;
this.checkButtonWidth = context.measureText(i18next.t("modifierSelectUiHandler:checkTeam")).width;
this.transferButtonContainer = this.scene.add.container((this.scene.game.canvas.width - this.checkButtonWidth) / 6 - 21, -64);
this.transferButtonContainer.setName("transfer-btn"); this.transferButtonContainer.setName("transfer-btn");
this.transferButtonContainer.setVisible(false); this.transferButtonContainer.setVisible(false);
ui.add(this.transferButtonContainer); ui.add(this.transferButtonContainer);
const transferButtonText = addTextObject(this.scene, -4, -2, "Transfer", TextStyle.PARTY); const transferButtonText = addTextObject(this.scene, -4, -2, i18next.t("modifierSelectUiHandler:transfer"), TextStyle.PARTY);
transferButtonText.setName("text-transfer-btn"); transferButtonText.setName("text-transfer-btn");
transferButtonText.setOrigin(1, 0); transferButtonText.setOrigin(1, 0);
this.transferButtonContainer.add(transferButtonText); this.transferButtonContainer.add(transferButtonText);
this.checkButtonContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 1, -64); this.checkButtonContainer = this.scene.add.container((this.scene.game.canvas.width) / 6 - 1, -64);
this.checkButtonContainer.setName("use-btn"); this.checkButtonContainer.setName("use-btn");
this.checkButtonContainer.setVisible(false); this.checkButtonContainer.setVisible(false);
ui.add(this.checkButtonContainer); ui.add(this.checkButtonContainer);
const checkButtonText = addTextObject(this.scene, -4, -2, "Check Team", TextStyle.PARTY); const checkButtonText = addTextObject(this.scene, -4, -2, i18next.t("modifierSelectUiHandler:checkTeam"), TextStyle.PARTY);
checkButtonText.setName("text-use-btn"); checkButtonText.setName("text-use-btn");
checkButtonText.setOrigin(1, 0); checkButtonText.setOrigin(1, 0);
this.checkButtonContainer.add(checkButtonText); this.checkButtonContainer.add(checkButtonText);
@ -71,7 +81,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
this.rerollButtonContainer.setVisible(false); this.rerollButtonContainer.setVisible(false);
ui.add(this.rerollButtonContainer); ui.add(this.rerollButtonContainer);
const rerollButtonText = addTextObject(this.scene, -4, -2, "Reroll", TextStyle.PARTY); const rerollButtonText = addTextObject(this.scene, -4, -2, i18next.t("modifierSelectUiHandler:reroll"), TextStyle.PARTY);
rerollButtonText.setName("text-reroll-btn"); rerollButtonText.setName("text-reroll-btn");
rerollButtonText.setOrigin(0, 0); rerollButtonText.setOrigin(0, 0);
this.rerollButtonContainer.add(rerollButtonText); this.rerollButtonContainer.add(rerollButtonText);
@ -86,7 +96,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
this.lockRarityButtonContainer.setVisible(false); this.lockRarityButtonContainer.setVisible(false);
ui.add(this.lockRarityButtonContainer); ui.add(this.lockRarityButtonContainer);
this.lockRarityButtonText = addTextObject(this.scene, -4, -2, "Lock Rarities", TextStyle.PARTY); this.lockRarityButtonText = addTextObject(this.scene, -4, -2, i18next.t("modifierSelectUiHandler:lockRarities"), TextStyle.PARTY);
this.lockRarityButtonText.setOrigin(0, 0); this.lockRarityButtonText.setOrigin(0, 0);
this.lockRarityButtonContainer.add(this.lockRarityButtonText); this.lockRarityButtonContainer.add(this.lockRarityButtonText);
@ -390,16 +400,16 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
} }
} else if (cursor === 0) { } else if (cursor === 0) {
this.cursorObj.setPosition(6, this.lockRarityButtonContainer.visible ? -72 : -60); this.cursorObj.setPosition(6, this.lockRarityButtonContainer.visible ? -72 : -60);
ui.showText("Spend money to reroll your item options."); ui.showText(i18next.t("modifierSelectUiHandler:rerollDesc"));
} else if (cursor === 1) { } else if (cursor === 1) {
this.cursorObj.setPosition((this.scene.game.canvas.width / 6) - 120, -60); this.cursorObj.setPosition((this.scene.game.canvas.width - this.transferButtonWidth - this.checkButtonWidth)/6 - 30, -60);
ui.showText("Transfer a held item from one Pokémon to another."); ui.showText(i18next.t("modifierSelectUiHandler:transferDesc"));
} else if (cursor === 2) { } else if (cursor === 2) {
this.cursorObj.setPosition((this.scene.game.canvas.width / 6) - 60, -60); this.cursorObj.setPosition((this.scene.game.canvas.width - this.checkButtonWidth)/6 - 10, -60);
ui.showText("Check your team or use a form changing item."); ui.showText(i18next.t("modifierSelectUiHandler:checkTeamDesc"));
} else { } else {
this.cursorObj.setPosition(6, -60); this.cursorObj.setPosition(6, -60);
ui.showText("Lock item rarities on reroll (affects reroll cost)."); ui.showText(i18next.t("modifierSelectUiHandler:lockRaritiesDesc"));
} }
return ret; return ret;
@ -456,7 +466,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
const formattedMoney = Utils.formatMoney(this.scene.moneyFormat, this.rerollCost); const formattedMoney = Utils.formatMoney(this.scene.moneyFormat, this.rerollCost);
this.rerollCostText.setText(`${formattedMoney}`); this.rerollCostText.setText(i18next.t("modifierSelectUiHandler:rerollCost", { formattedMoney }));
this.rerollCostText.setColor(this.getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED)); this.rerollCostText.setColor(this.getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED));
this.rerollCostText.setShadowColor(this.getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED, true)); this.rerollCostText.setShadowColor(this.getTextColor(canReroll ? TextStyle.MONEY : TextStyle.PARTY_RED, true));
} }
@ -720,7 +730,7 @@ class ModifierOption extends Phaser.GameObjects.Container {
const formattedMoney = Utils.formatMoney(scene.moneyFormat, this.modifierTypeOption.cost); const formattedMoney = Utils.formatMoney(scene.moneyFormat, this.modifierTypeOption.cost);
this.itemCostText.setText(`${formattedMoney}`); this.itemCostText.setText(i18next.t("modifierSelectUiHandler:itemCost", { formattedMoney }));
this.itemCostText.setColor(getTextColor(textStyle, false, scene.uiTheme)); this.itemCostText.setColor(getTextColor(textStyle, false, scene.uiTheme));
this.itemCostText.setShadowColor(getTextColor(textStyle, true, scene.uiTheme)); this.itemCostText.setShadowColor(getTextColor(textStyle, true, scene.uiTheme));
} }

View File

@ -82,7 +82,7 @@ export function addTextInputObject(scene: Phaser.Scene, x: number, y: number, wi
return ret; return ret;
} }
function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): [ number, Phaser.Types.GameObjects.Text.TextStyle | InputText.IConfig, string, number, number ] { export function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): [ number, Phaser.Types.GameObjects.Text.TextStyle | InputText.IConfig, string, number, number ] {
let shadowXpos = 4; let shadowXpos = 4;
let shadowYpos = 5; let shadowYpos = 5;
const scale = 0.1666666667; const scale = 0.1666666667;