mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-29 11:42:21 +02:00
Compare commits
12 Commits
9d4425518f
...
de51c5b7a5
Author | SHA1 | Date | |
---|---|---|---|
|
de51c5b7a5 | ||
|
40ade2da1d | ||
|
0138a480f9 | ||
|
bcd622bd94 | ||
|
a44ab950ba | ||
|
1396aaaa57 | ||
|
29f95ef394 | ||
|
0ed8c32e8a | ||
|
f26a21c74b | ||
|
90f6ae7e6d | ||
|
cc1b37c097 | ||
|
5cdf148965 |
@ -3034,10 +3034,8 @@ export class FriendshipPowerAttr extends VariablePowerAttr {
|
|||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
const power = args[0] as Utils.NumberHolder;
|
const power = args[0] as Utils.NumberHolder;
|
||||||
|
|
||||||
if (user instanceof PlayerPokemon) {
|
const friendshipPower = Math.floor(Math.min(user instanceof PlayerPokemon ? user.friendship : user.species.baseFriendship, 255) / 2.5);
|
||||||
const friendshipPower = Math.floor(Math.min(user.friendship, 255) / 2.5);
|
power.value = Math.max(!this.invert ? friendshipPower : 102 - friendshipPower, 1);
|
||||||
power.value = Math.max(!this.invert ? friendshipPower : 102 - friendshipPower, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -7578,6 +7576,7 @@ export function initMoves() {
|
|||||||
new AttackMove(Moves.BADDY_BAD, Type.DARK, MoveCategory.SPECIAL, 80, 95, 15, -1, 0, 7)
|
new AttackMove(Moves.BADDY_BAD, Type.DARK, MoveCategory.SPECIAL, 80, 95, 15, -1, 0, 7)
|
||||||
.attr(AddArenaTagAttr, ArenaTagType.REFLECT, 5, false, true),
|
.attr(AddArenaTagAttr, ArenaTagType.REFLECT, 5, false, true),
|
||||||
new AttackMove(Moves.SAPPY_SEED, Type.GRASS, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 7)
|
new AttackMove(Moves.SAPPY_SEED, Type.GRASS, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 7)
|
||||||
|
.makesContact(false)
|
||||||
.attr(AddBattlerTagAttr, BattlerTagType.SEEDED),
|
.attr(AddBattlerTagAttr, BattlerTagType.SEEDED),
|
||||||
new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7)
|
new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7)
|
||||||
.attr(ResetStatsAttr),
|
.attr(ResetStatsAttr),
|
||||||
|
@ -3795,7 +3795,7 @@ export const starterPassiveAbilities = {
|
|||||||
[Species.IRON_TREADS]: Abilities.STEELY_SPIRIT,
|
[Species.IRON_TREADS]: Abilities.STEELY_SPIRIT,
|
||||||
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
|
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
|
||||||
[Species.IRON_HANDS]: Abilities.IRON_FIST,
|
[Species.IRON_HANDS]: Abilities.IRON_FIST,
|
||||||
[Species.IRON_JUGULIS]: Abilities.AERILATE,
|
[Species.IRON_JUGULIS]: Abilities.LIGHTNING_ROD,
|
||||||
[Species.IRON_MOTH]: Abilities.LEVITATE,
|
[Species.IRON_MOTH]: Abilities.LEVITATE,
|
||||||
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
|
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
|
||||||
[Species.FRIGIBAX]: Abilities.SNOW_WARNING,
|
[Species.FRIGIBAX]: Abilities.SNOW_WARNING,
|
||||||
|
@ -4,5 +4,5 @@ export const abilityTriggers: SimpleTranslationEntries = {
|
|||||||
"blockRecoilDamage" : "{{pokemonName}} wurde durch {{abilityName}}\nvor Rückstoß geschützt!",
|
"blockRecoilDamage" : "{{pokemonName}} wurde durch {{abilityName}}\nvor Rückstoß geschützt!",
|
||||||
"badDreams": "{{pokemonName}} ist in einem Alptraum gefangen!",
|
"badDreams": "{{pokemonName}} ist in einem Alptraum gefangen!",
|
||||||
"windPowerCharged": "Der Treffer durch {{moveName}} läd die Stärke von {{pokemonName}} auf!",
|
"windPowerCharged": "Der Treffer durch {{moveName}} läd die Stärke von {{pokemonName}} auf!",
|
||||||
"iceFaceAvoidedDamage": "{{pokemonName}} avoided\ndamage with {{abilityName}}!",
|
"iceFaceAvoidedDamage": "{{pokemonName}} wehrt Schaden\nmit {{abilityName}} ab!",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -62,12 +62,12 @@ export const battle: SimpleTranslationEntries = {
|
|||||||
"drainMessage": "{{pokemonName}} wurde Energie abgesaugt",
|
"drainMessage": "{{pokemonName}} wurde Energie abgesaugt",
|
||||||
"regainHealth": "KP von {{pokemonName}} wurden wieder aufgefrischt!",
|
"regainHealth": "KP von {{pokemonName}} wurden wieder aufgefrischt!",
|
||||||
"fainted": "{{pokemonNameWithAffix}} wurde besiegt!",
|
"fainted": "{{pokemonNameWithAffix}} wurde besiegt!",
|
||||||
"statRose": "rose",
|
"statRose": "steigt",
|
||||||
"statSharplyRose": "sharply rose",
|
"statSharplyRose": "steigt stark",
|
||||||
"statRoseDrastically": "rose drastically",
|
"statRoseDrastically": "steigt drastisch",
|
||||||
"statWontGoAnyHigher": "won't go any higher",
|
"statWontGoAnyHigher": "kann nicht weiter erhöht werden",
|
||||||
"statFell": "fell",
|
"statFell": "sinkt",
|
||||||
"statHarshlyFell": "harshly fell",
|
"statHarshlyFell": "sinkt stark",
|
||||||
"statSeverelyFell": "severely fell",
|
"statSeverelyFell": "sinkt drastisch",
|
||||||
"statWontGoAnyLower": "won't go any lower",
|
"statWontGoAnyLower": "kann nicht weiter sinken",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "Tägliche Rangliste",
|
"dailyRankings": "Tägliche Rangliste",
|
||||||
"weeklyRankings": "Wöchentliche Rangliste",
|
"weeklyRankings": "Wöchentliche Rangliste",
|
||||||
"noRankings": "Keine Rangliste",
|
"noRankings": "Keine Rangliste",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Benutzername",
|
||||||
|
"score": "Punkte",
|
||||||
|
"wave": "Welle",
|
||||||
"loading": "Lade…",
|
"loading": "Lade…",
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
"loadingAsset": "Loading asset: {{assetName}}",
|
||||||
"playersOnline": "Spieler Online",
|
"playersOnline": "Spieler Online",
|
||||||
|
@ -14,8 +14,8 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
|
|||||||
"SPDEFshortened": "SpVert",
|
"SPDEFshortened": "SpVert",
|
||||||
"SPD": "Initiative",
|
"SPD": "Initiative",
|
||||||
"SPDshortened": "Init",
|
"SPDshortened": "Init",
|
||||||
"ACC": "Accuracy",
|
"ACC": "Genauigkeit",
|
||||||
"EVA": "Evasiveness"
|
"EVA": "Fluchtwert",
|
||||||
},
|
},
|
||||||
|
|
||||||
Type: {
|
Type: {
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "Daily Rankings",
|
"dailyRankings": "Daily Rankings",
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Username",
|
||||||
|
"score": "Score",
|
||||||
|
"wave": "Wave",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
"loadingAsset": "Loading asset: {{assetName}}",
|
||||||
"playersOnline": "Players Online",
|
"playersOnline": "Players Online",
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "Rankings Diarios",
|
"dailyRankings": "Rankings Diarios",
|
||||||
"weeklyRankings": "Rankings Semanales",
|
"weeklyRankings": "Rankings Semanales",
|
||||||
"noRankings": "Sin Rankings",
|
"noRankings": "Sin Rankings",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Username",
|
||||||
|
"score": "Score",
|
||||||
|
"wave": "Wave",
|
||||||
"loading": "Cargando…",
|
"loading": "Cargando…",
|
||||||
"loadingAsset": "Cargando recurso: {{assetName}}",
|
"loadingAsset": "Cargando recurso: {{assetName}}",
|
||||||
"playersOnline": "Jugadores en Línea",
|
"playersOnline": "Jugadores en Línea",
|
||||||
|
@ -39,6 +39,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "Classement du Jour",
|
"dailyRankings": "Classement du Jour",
|
||||||
"weeklyRankings": "Classement de la Semaine",
|
"weeklyRankings": "Classement de la Semaine",
|
||||||
"noRankings": "Pas de Classement",
|
"noRankings": "Pas de Classement",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Username",
|
||||||
|
"score": "Score",
|
||||||
|
"wave": "Wave",
|
||||||
"loading": "Chargement…",
|
"loading": "Chargement…",
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
"loadingAsset": "Loading asset: {{assetName}}",
|
||||||
"playersOnline": "Joueurs Connectés",
|
"playersOnline": "Joueurs Connectés",
|
||||||
|
@ -39,6 +39,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "Classifica giornaliera",
|
"dailyRankings": "Classifica giornaliera",
|
||||||
"weeklyRankings": "Classifica settimanale",
|
"weeklyRankings": "Classifica settimanale",
|
||||||
"noRankings": "Nessuna classifica",
|
"noRankings": "Nessuna classifica",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Username",
|
||||||
|
"score": "Score",
|
||||||
|
"wave": "Wave",
|
||||||
"loading": "Caricamento…",
|
"loading": "Caricamento…",
|
||||||
"loadingAsset": "Caricamento asset: {{assetName}}",
|
"loadingAsset": "Caricamento asset: {{assetName}}",
|
||||||
"playersOnline": "Giocatori online",
|
"playersOnline": "Giocatori online",
|
||||||
|
@ -2,41 +2,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||||||
|
|
||||||
export const tutorial: SimpleTranslationEntries = {
|
export const tutorial: SimpleTranslationEntries = {
|
||||||
"intro": `Benvenuto in PokéRogue! Questo gioco si concentra sulle battaglie, con elementi roguelite.
|
"intro": `Benvenuto in PokéRogue! Questo gioco si concentra sulle battaglie, con elementi roguelite.
|
||||||
$Questo gioco non è monetizzato e non siamo proprietari di Pokemon e Assets presenti nel gioco.
|
$Questo gioco non è monetizzato e non siamo proprietari di Pokémon ed assets presenti nel gioco.
|
||||||
$Il gioco è work-in-progress ma giocabile al 100%.\nPer reportare eventuali bugs è possibile discuterne sul nostro Discord.
|
$Il progetto è work-in-progress, ma giocabile al 100%.\nPer segnalare eventuali bug è possibile contattarci al nostro apposito Discord.
|
||||||
$Se il game risulta 'lento', assicurati di aver abilitato l'Accelerazione Hardware nelle impostazioni del tuo Browser`,
|
$Se il gioco risulta 'lento', assicurati di aver abilitato l'accelerazione hardware nelle impostazioni del tuo browser`,
|
||||||
|
|
||||||
"accessMenu": "Per accedere al menù, press M o Esc.\nDal menù puoi cambiare impostazioni, controllare la wiki e accedere a varie features.",
|
"accessMenu": "Per accedere al menu, premi M o esc.\nDal menu puoi modificare le impostazioni, controllare la wiki ed accedere a varie features.",
|
||||||
|
|
||||||
"menu": `Da questo menù puoi accedere alle impostazioni.
|
"menu": `Da questo menu puoi accedere alle impostazioni.
|
||||||
$Dalle impostazioni puoi cambiare velocità di gioco, stile di finestra e altre opzioni.
|
$Esse ti permettono di cambiare velocità di gioco, stile delle finestre ed altre opzioni.
|
||||||
$Ci sono varie funzionalità, controlla bene e non perderti nulla!`,
|
$Ci sono varie funzionalità: controlla bene e non perderti nulla!`,
|
||||||
|
|
||||||
"starterSelect": `Da questa schermata puoi selezionare il tuo starter.\nQuesti sono i membri iniziali del tuo parti.
|
"starterSelect": `Da questa schermata puoi selezionare il tuo starter.\nQuesti sono i membri iniziali della tua squadra.
|
||||||
$Ogni starter ha un valore. Puoi avere fino a \n6 Pokèmon, avendo a disposizione un massimo di 10 punti.
|
$Ogni starter ha un valore. Puoi avere fino a \n6 Pokèmon, avendo a disposizione un massimo di 10 punti.
|
||||||
$Puoi anche selezionare Sesso, Abilità, e Forma a seconda delle\nvarianti che hai catturato o schiuso.
|
$Puoi anche selezionare genere, abilità, e forma a seconda delle\nvarianti che hai catturato o schiuso.
|
||||||
$Le IVs di una specie sono le migliori rispetto a tutte quelle che hai\ncatturato o schiuso, quindi prova a catturarne il piu possibile!`,
|
$Le IVs di una specie sono le migliori rispetto a tutte quelle che hai\ncatturato o schiuso, quindi prova a catturarne il piu possibile!`,
|
||||||
|
|
||||||
"pokerus": `Giornalmente 3 Starter casuali disponibili avranno il bordo viola.
|
"pokerus": `Giornalmente 3 starter casuali disponibili avranno il bordo viola.
|
||||||
$Se possiedi uno di questi starter,\nprova ad aggiungerlo al party. Ricorda di controllare le info!`,
|
$Se possiedi uno di questi starter,\nprova ad aggiungerlo alla squadra. Ricorda di controllarne le info!`,
|
||||||
|
|
||||||
"statChange": `I cambiamenti alle statistiche persistono fintanto che i tuoi pokèmon resteranno in campo.
|
"statChange": `I cambiamenti alle statistiche persistono fintanto che i tuoi pokèmon restano in campo.
|
||||||
$I tuoi pokemon verranno richiamati quando incontrerai un allenatore o al cambiamento di bioma.
|
$I tuoi pokemon verranno richiamati quando incontrerai un allenatore o al cambiamento di bioma.
|
||||||
$Puoi anche vedere i cambiamenti alle statistiche in corso tenendo premuto C o Shift`,
|
$Puoi anche vedere i cambiamenti alle statistiche in corso tenendo premuto C o Shift`,
|
||||||
|
|
||||||
"selectItem": `Dopo ogni battaglia avrai disponibili tre item.\nPotrai prenderne solo uno.
|
"selectItem": `Dopo ogni battaglia potrai scegliere tra 3 oggetti.\nPotrai prenderne solo uno.
|
||||||
$Questi spaziano tra consumabili, item tenuti da Pokèmon o con un effetto passivo permanente.
|
$Questi spaziano tra consumabili, oggetti tenuti da Pokèmon o con un effetto passivo permanente.
|
||||||
$La maggior parte degli Item non Consumabili possono stackare in diversi modi.
|
$La maggior parte degli oggetti non consumabili possono accumulare i loro effetti in diversi modi.
|
||||||
$Alcuni Item risulteranno disponibili solo se possono essere usati, come Item Evolutivi.
|
$Alcuni risulteranno inoltre disponibili solo se possono essere usati, come ad esempio gli oggetti evolutivi.
|
||||||
$Puoi anche passare un Item tenuto da un Pokèmon ad un altro attraverso l'opzione 'trasferisci strumento'.
|
$Puoi anche passare un oggetto tenuto da un Pokèmon a un altro attraverso l'opzione 'trasferisci strumento'.
|
||||||
$L'opzione 'trasferisci strumento' sarà disponibile solo dopo aver assegnato uno strumento ad un Pokèmon.
|
$Quest'ultima sarà disponibile solo dopo aver assegnato uno strumento ad un Pokèmon.
|
||||||
$Puoi acquistare consumabili con le monete, progredendo saranno poi disponibili ulteriori oggetti.
|
$Puoi acquistare consumabili con le monete; progredendo saranno poi disponibili ulteriori oggetti.
|
||||||
$Assicurati di fare un acquisto prima di selezionare un item casuale, poichè passerai subito alla lotta successiva.`,
|
$Assicurati di fare un acquisto prima di selezionare un item casuale, poichè dopo aver fatto ciò passerai subito alla lotta successiva.`,
|
||||||
|
|
||||||
"eggGacha": `Da questa schermata, puoi riscattare i tuoi vouchers in cambio di\nuova Pokèmon.
|
"eggGacha": `Da questa schermata puoi riscattare i tuoi vouchers in cambio di\nuova Pokèmon.
|
||||||
$Le uova vanno schiuse e saranno sempre più vicine alla schiusura dopo\nogni battaglia. Le uova più rare impiegheranno più battaglie per la schiusura.
|
$Le uova vanno schiuse, e saranno sempre più vicine alla schiusura dopo\nogni battaglia. Le uova più rare impiegheranno più battaglie per la schiusura.
|
||||||
$I Pokémon schiusi non verranno aggiunti alla tua squadra, saranno\naggiunti ai tuoi starters.
|
$I Pokémon schiusi non verranno aggiunti alla tua squadra, ma saranno\ninvece aggiunti ai tuoi starters.
|
||||||
$I Pokémon schiusi generalmente hanno IVs migliori rispetto ai\n Pokémon selvatici.
|
$I Pokémon schiusi hanno (generalmente) IVs migliori rispetto ai\n Pokémon selvatici.
|
||||||
$Alcuni Pokémon possono essere ottenuti solo tramite uova.
|
$Inoltre, alcuni Pokémon possono essere ottenuti solo tramite uova.
|
||||||
$Ci sono 3 diversi macchinari con differenti\nbonus, scegli quello che preferisci!`,
|
$Ci sono 3 diversi macchinari con differenti\nbonus, scegli quello che preferisci!`,
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -63,11 +63,11 @@ export const battle: SimpleTranslationEntries = {
|
|||||||
"regainHealth": "{{pokemonName}}[[는]]\n기력을 회복했다!",
|
"regainHealth": "{{pokemonName}}[[는]]\n기력을 회복했다!",
|
||||||
"fainted": "{{pokemonNameWithAffix}}[[는]] 쓰러졌다!",
|
"fainted": "{{pokemonNameWithAffix}}[[는]] 쓰러졌다!",
|
||||||
"statRose": "상승했다",
|
"statRose": "상승했다",
|
||||||
"statSharplyRose": "약간 상승했다",
|
"statSharplyRose": "크게 상승했다",
|
||||||
"statRoseDrastically": "대폭 상승했다",
|
"statRoseDrastically": "매우 크게 상승했다",
|
||||||
"statWontGoAnyHigher": "더 이상 상승할 수 없다",
|
"statWontGoAnyHigher": "더 이상 올라갈 수 없다",
|
||||||
"statFell": "떨어졌다",
|
"statFell": "떨어졌다",
|
||||||
"statHarshlyFell": "약간 떨어졌다",
|
"statHarshlyFell": "크게 떨어졌다",
|
||||||
"statSeverelyFell": "대폭 떨어졌다",
|
"statSeverelyFell": "매우 크게 떨어졌다",
|
||||||
"statWontGoAnyLower": "더 이상 떨어질 수 없다",
|
"statWontGoAnyLower": "더 이상 떨어질 수 없다",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "일간 랭킹",
|
"dailyRankings": "일간 랭킹",
|
||||||
"weeklyRankings": "주간 랭킹",
|
"weeklyRankings": "주간 랭킹",
|
||||||
"noRankings": "랭킹 정보 없음",
|
"noRankings": "랭킹 정보 없음",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "이름",
|
||||||
|
"score": "점수",
|
||||||
|
"wave": "웨이브",
|
||||||
"loading": "로딩 중…",
|
"loading": "로딩 중…",
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
"loadingAsset": "Loading asset: {{assetName}}",
|
||||||
"playersOnline": "플레이어 온라인",
|
"playersOnline": "플레이어 온라인",
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "Classificação Diária",
|
"dailyRankings": "Classificação Diária",
|
||||||
"weeklyRankings": "Classificação Semanal",
|
"weeklyRankings": "Classificação Semanal",
|
||||||
"noRankings": "Sem Classificação",
|
"noRankings": "Sem Classificação",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Usuário",
|
||||||
|
"score": "Pontuação",
|
||||||
|
"wave": "Onda",
|
||||||
"loading": "Carregando…",
|
"loading": "Carregando…",
|
||||||
"loadingAsset": "Carregando recurso: {{assetName}}",
|
"loadingAsset": "Carregando recurso: {{assetName}}",
|
||||||
"playersOnline": "Jogadores Ativos",
|
"playersOnline": "Jogadores Ativos",
|
||||||
|
@ -2,7 +2,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||||||
|
|
||||||
export const abilityTriggers: SimpleTranslationEntries = {
|
export const abilityTriggers: SimpleTranslationEntries = {
|
||||||
"blockRecoilDamage" : "{{pokemonName}} 的 {{abilityName}}\n抵消了反作用力!",
|
"blockRecoilDamage" : "{{pokemonName}} 的 {{abilityName}}\n抵消了反作用力!",
|
||||||
"badDreams": "{{pokemonName}} 被折磨着!",
|
"badDreams": "{{pokemonName}} 被折磨着!",
|
||||||
"windPowerCharged": "受 {{moveName}} 的影响, {{pokemonName}} 提升了能力!",
|
"windPowerCharged": "受 {{moveName}} 的影响, {{pokemonName}} 提升了能力!",
|
||||||
"iceFaceAvoidedDamage": "{{pokemonName}} avoided\ndamage with {{abilityName}}!"
|
"iceFaceAvoidedDamage": "{{pokemonName}} 因为 {{abilityName}}\n避免了伤害!"
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -56,18 +56,18 @@ export const battle: SimpleTranslationEntries = {
|
|||||||
"skipItemQuestion": "你确定要跳过拾取道具吗?",
|
"skipItemQuestion": "你确定要跳过拾取道具吗?",
|
||||||
"eggHatching": "咦?",
|
"eggHatching": "咦?",
|
||||||
"ivScannerUseQuestion": "对 {{pokemonName}} 使用个体值扫描仪?",
|
"ivScannerUseQuestion": "对 {{pokemonName}} 使用个体值扫描仪?",
|
||||||
"wildPokemonWithAffix": "Wild {{pokemonName}}",
|
"wildPokemonWithAffix": "野生的 {{pokemonName}}",
|
||||||
"foePokemonWithAffix": "Foe {{pokemonName}}",
|
"foePokemonWithAffix": "对手 {{pokemonName}}",
|
||||||
"useMove": "{{pokemonNameWithAffix}} used {{moveName}}!",
|
"useMove": "{{pokemonNameWithAffix}} 使用了 {{moveName}}!",
|
||||||
"drainMessage": "{{pokemonName}} had its\nenergy drained!",
|
"drainMessage": "{{pokemonName}} 吸取了体力!",
|
||||||
"regainHealth": "{{pokemonName}} regained\nhealth!",
|
"regainHealth": "{{pokemonName}} 回复了体力!",
|
||||||
"fainted": "{{pokemonNameWithAffix}} fainted!",
|
"fainted": "{{pokemonNameWithAffix}} 倒下了!",
|
||||||
"statRose": "rose",
|
"statRose": "提高了!",
|
||||||
"statSharplyRose": "sharply rose",
|
"statSharplyRose": "大幅提高了!",
|
||||||
"statRoseDrastically": "rose drastically",
|
"statRoseDrastically": "极大幅提高了!",
|
||||||
"statWontGoAnyHigher": "won't go any higher",
|
"statWontGoAnyHigher": "已经无法再提高了!",
|
||||||
"statFell": "fell",
|
"statFell": "降低了!",
|
||||||
"statHarshlyFell": "harshly fell",
|
"statHarshlyFell": "大幅降低了!",
|
||||||
"statSeverelyFell": "severely fell",
|
"statSeverelyFell": "极大幅降低了!",
|
||||||
"statWontGoAnyLower": "won't go any lower",
|
"statWontGoAnyLower": "已经无法再降低了!",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -4,6 +4,6 @@ export const fightUiHandler: SimpleTranslationEntries = {
|
|||||||
"pp": "PP",
|
"pp": "PP",
|
||||||
"power": "威力",
|
"power": "威力",
|
||||||
"accuracy": "命中",
|
"accuracy": "命中",
|
||||||
"abilityFlyInText": " {{pokemonName}}'s {{passive}}{{abilityName}}",
|
"abilityFlyInText": " {{pokemonName}} 的 {{passive}}{{abilityName}}",
|
||||||
"passive": "Passive ", // The space at the end is important
|
"passive": "被动 ", // The space at the end is important
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
export const gameMode: SimpleTranslationEntries = {
|
export const gameMode: SimpleTranslationEntries = {
|
||||||
"classic": "Classic",
|
"classic": "经典模式",
|
||||||
"endless": "Endless",
|
"endless": "无尽模式",
|
||||||
"endlessSpliced": "Endless (Spliced)",
|
"endlessSpliced": "融合无尽模式",
|
||||||
"dailyRun": "Daily Run",
|
"dailyRun": "每日挑战",
|
||||||
"unknown": "Unknown",
|
"unknown": "未知",
|
||||||
"challenge": "Challenge",
|
"challenge": "挑战模式",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
export const growth: SimpleTranslationEntries = {
|
export const growth: SimpleTranslationEntries = {
|
||||||
"Erratic": "最快",
|
"Erratic": "非常快",
|
||||||
"Fast": "较快",
|
"Fast": "快",
|
||||||
"Medium_Fast": "快",
|
"Medium_Fast": "较快",
|
||||||
"Medium_Slow": "慢",
|
"Medium_Slow": "较慢",
|
||||||
"Slow": "较慢",
|
"Slow": "慢",
|
||||||
"Fluctuating": "最慢"
|
"Fluctuating": "非常慢"
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "每日排名",
|
"dailyRankings": "每日排名",
|
||||||
"weeklyRankings": "每周排名",
|
"weeklyRankings": "每周排名",
|
||||||
"noRankings": "无排名",
|
"noRankings": "无排名",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Username",
|
||||||
|
"score": "Score",
|
||||||
|
"wave": "Wave",
|
||||||
"loading": "加载中...",
|
"loading": "加载中...",
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
"loadingAsset": "Loading asset: {{assetName}}",
|
||||||
"playersOnline": "在线玩家",
|
"playersOnline": "在线玩家",
|
||||||
|
@ -14,8 +14,8 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
|
|||||||
"SPDEFshortened": "特防",
|
"SPDEFshortened": "特防",
|
||||||
"SPD": "速度",
|
"SPD": "速度",
|
||||||
"SPDshortened": "速度",
|
"SPDshortened": "速度",
|
||||||
"ACC": "Accuracy",
|
"ACC": "命中率",
|
||||||
"EVA": "Evasiveness"
|
"EVA": "回避率"
|
||||||
},
|
},
|
||||||
|
|
||||||
Type: {
|
Type: {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
export const saveSlotSelectUiHandler: SimpleTranslationEntries = {
|
export const saveSlotSelectUiHandler: SimpleTranslationEntries = {
|
||||||
"overwriteData": "Overwrite the data in the selected slot?",
|
"overwriteData": "要覆盖该槽位的存档吗?",
|
||||||
"loading": "正在加载中...",
|
"loading": "正在加载中...",
|
||||||
"wave": "Wave",
|
"wave": "层数",
|
||||||
"lv": "Lv",
|
"lv": "Lv",
|
||||||
"empty": "空",
|
"empty": "空",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -48,7 +48,7 @@ export const trainerClasses: SimpleTranslationEntries = {
|
|||||||
"depot_agent": "铁路员工",
|
"depot_agent": "铁路员工",
|
||||||
"doctor": "医生",
|
"doctor": "医生",
|
||||||
"doctor_female": "医生",
|
"doctor_female": "医生",
|
||||||
"firebreather": "Firebreather",
|
"firebreather": "吹火人",
|
||||||
"fisherman": "垂钓者",
|
"fisherman": "垂钓者",
|
||||||
"fisherman_female": "垂钓者",
|
"fisherman_female": "垂钓者",
|
||||||
"gentleman": "绅士",
|
"gentleman": "绅士",
|
||||||
@ -87,13 +87,13 @@ export const trainerClasses: SimpleTranslationEntries = {
|
|||||||
"pokémon_rangers": "宝可梦巡护员组合",
|
"pokémon_rangers": "宝可梦巡护员组合",
|
||||||
"ranger": "巡护员",
|
"ranger": "巡护员",
|
||||||
"restaurant_staff": "服务生组合",
|
"restaurant_staff": "服务生组合",
|
||||||
"rich": "Rich",
|
"rich": "富豪",
|
||||||
"rich_female": "Rich",
|
"rich_female": "富豪太太",
|
||||||
"rich_boy": "富家少爷",
|
"rich_boy": "富家少爷",
|
||||||
"rich_couple": "富豪夫妇",
|
"rich_couple": "富豪夫妇",
|
||||||
"rich_kid": "Rich Kid",
|
"rich_kid": "富家小孩",
|
||||||
"rich_kid_female": "Rich Kid",
|
"rich_kid_female": "富家小孩",
|
||||||
"rich_kids": "富二代组合",
|
"rich_kids": "富家小孩组合",
|
||||||
"roughneck": "光头男",
|
"roughneck": "光头男",
|
||||||
"sailor": "水手",
|
"sailor": "水手",
|
||||||
"scientist": "研究员",
|
"scientist": "研究员",
|
||||||
|
@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
|
|||||||
"dailyRankings": "每日排名",
|
"dailyRankings": "每日排名",
|
||||||
"weeklyRankings": "每週排名",
|
"weeklyRankings": "每週排名",
|
||||||
"noRankings": "無排名",
|
"noRankings": "無排名",
|
||||||
|
"positionIcon": "#",
|
||||||
|
"usernameScoreboard": "Username",
|
||||||
|
"score": "Score",
|
||||||
|
"wave": "Wave",
|
||||||
"loading": "加載中…",
|
"loading": "加載中…",
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
"loadingAsset": "Loading asset: {{assetName}}",
|
||||||
"playersOnline": "在線玩家",
|
"playersOnline": "在線玩家",
|
||||||
|
@ -1017,6 +1017,30 @@ export class EnemyEndureChanceModifierType extends ModifierType {
|
|||||||
export type ModifierTypeFunc = () => ModifierType;
|
export type ModifierTypeFunc = () => ModifierType;
|
||||||
type WeightedModifierTypeWeightFunc = (party: Pokemon[], rerollCount?: integer) => integer;
|
type WeightedModifierTypeWeightFunc = (party: Pokemon[], rerollCount?: integer) => integer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* High order function that returns a WeightedModifierTypeWeightFunc that will only be applied on
|
||||||
|
* classic and skip an ModifierType if current wave is greater or equal to the one passed down
|
||||||
|
* @param wave - Wave where we should stop showing the modifier
|
||||||
|
* @param defaultWeight - ModifierType default weight
|
||||||
|
* @returns A WeightedModifierTypeWeightFunc
|
||||||
|
*/
|
||||||
|
function skipInClassicAfterWave(wave: integer, defaultWeight: integer): WeightedModifierTypeWeightFunc {
|
||||||
|
return (party: Pokemon[]) => {
|
||||||
|
const gameMode = party[0].scene.gameMode;
|
||||||
|
const currentWave = party[0].scene.currentBattle.waveIndex;
|
||||||
|
return gameMode.isClassic && currentWave >= wave ? 0 : defaultWeight;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* High order function that returns a WeightedModifierTypeWeightFunc that will only be applied on
|
||||||
|
* classic and it will skip a ModifierType if it is the last wave pull.
|
||||||
|
* @param defaultWeight ModifierType default weight
|
||||||
|
* @returns A WeightedModifierTypeWeightFunc
|
||||||
|
*/
|
||||||
|
function skipInLastClassicWaveOrDefault(defaultWeight: integer) : WeightedModifierTypeWeightFunc {
|
||||||
|
return skipInClassicAfterWave(199, defaultWeight);
|
||||||
|
}
|
||||||
class WeightedModifierType {
|
class WeightedModifierType {
|
||||||
public modifierType: ModifierType;
|
public modifierType: ModifierType;
|
||||||
public weight: integer | WeightedModifierTypeWeightFunc;
|
public weight: integer | WeightedModifierTypeWeightFunc;
|
||||||
@ -1313,7 +1337,7 @@ const modifierPool: ModifierPool = {
|
|||||||
}, 3),
|
}, 3),
|
||||||
new WeightedModifierType(modifierTypes.DIRE_HIT, 4),
|
new WeightedModifierType(modifierTypes.DIRE_HIT, 4),
|
||||||
new WeightedModifierType(modifierTypes.SUPER_LURE, 4),
|
new WeightedModifierType(modifierTypes.SUPER_LURE, 4),
|
||||||
new WeightedModifierType(modifierTypes.NUGGET, 5),
|
new WeightedModifierType(modifierTypes.NUGGET, skipInLastClassicWaveOrDefault(5)),
|
||||||
new WeightedModifierType(modifierTypes.EVOLUTION_ITEM, (party: Pokemon[]) => {
|
new WeightedModifierType(modifierTypes.EVOLUTION_ITEM, (party: Pokemon[]) => {
|
||||||
return Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15), 8);
|
return Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15), 8);
|
||||||
}, 8),
|
}, 8),
|
||||||
@ -1336,7 +1360,7 @@ const modifierPool: ModifierPool = {
|
|||||||
[ModifierTier.ULTRA]: [
|
[ModifierTier.ULTRA]: [
|
||||||
new WeightedModifierType(modifierTypes.ULTRA_BALL, 24),
|
new WeightedModifierType(modifierTypes.ULTRA_BALL, 24),
|
||||||
new WeightedModifierType(modifierTypes.MAX_LURE, 4),
|
new WeightedModifierType(modifierTypes.MAX_LURE, 4),
|
||||||
new WeightedModifierType(modifierTypes.BIG_NUGGET, 12),
|
new WeightedModifierType(modifierTypes.BIG_NUGGET, skipInLastClassicWaveOrDefault(12)),
|
||||||
new WeightedModifierType(modifierTypes.PP_UP, 9),
|
new WeightedModifierType(modifierTypes.PP_UP, 9),
|
||||||
new WeightedModifierType(modifierTypes.PP_MAX, 3),
|
new WeightedModifierType(modifierTypes.PP_MAX, 3),
|
||||||
new WeightedModifierType(modifierTypes.MINT, 4),
|
new WeightedModifierType(modifierTypes.MINT, 4),
|
||||||
@ -1371,7 +1395,7 @@ const modifierPool: ModifierPool = {
|
|||||||
}),
|
}),
|
||||||
[ModifierTier.ROGUE]: [
|
[ModifierTier.ROGUE]: [
|
||||||
new WeightedModifierType(modifierTypes.ROGUE_BALL, 24),
|
new WeightedModifierType(modifierTypes.ROGUE_BALL, 24),
|
||||||
new WeightedModifierType(modifierTypes.RELIC_GOLD, 2),
|
new WeightedModifierType(modifierTypes.RELIC_GOLD, skipInLastClassicWaveOrDefault(2)),
|
||||||
new WeightedModifierType(modifierTypes.LEFTOVERS, 3),
|
new WeightedModifierType(modifierTypes.LEFTOVERS, 3),
|
||||||
new WeightedModifierType(modifierTypes.SHELL_BELL, 3),
|
new WeightedModifierType(modifierTypes.SHELL_BELL, 3),
|
||||||
new WeightedModifierType(modifierTypes.BERRY_POUCH, 4),
|
new WeightedModifierType(modifierTypes.BERRY_POUCH, 4),
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
import i18next from "i18next";
|
||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
|
import * as Utils from "../utils";
|
||||||
import { TextStyle, addTextObject } from "./text";
|
import { TextStyle, addTextObject } from "./text";
|
||||||
import { WindowVariant, addWindow } from "./ui-theme";
|
import { WindowVariant, addWindow } from "./ui-theme";
|
||||||
import * as Utils from "../utils";
|
|
||||||
import i18next from "i18next";
|
|
||||||
|
|
||||||
interface RankingEntry {
|
interface RankingEntry {
|
||||||
rank: integer,
|
rank: integer,
|
||||||
@ -154,7 +154,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
|
|||||||
return entryContainer;
|
return entryContainer;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.rankingsContainer.add(getEntry("#", "Username", "Score", "Wave"));
|
this.rankingsContainer.add(getEntry(i18next.t("menu:positionIcon"), i18next.t("menu:usernameScoreboard"), i18next.t("menu:score"), i18next.t("menu:wave")));
|
||||||
|
|
||||||
rankings.forEach((r: RankingEntry, i: integer) => {
|
rankings.forEach((r: RankingEntry, i: integer) => {
|
||||||
const entryContainer = getEntry(r.rank.toString(), r.username, r.score.toString(), r.wave.toString());
|
const entryContainer = getEntry(r.rank.toString(), r.username, r.score.toString(), r.wave.toString());
|
||||||
|
Loading…
Reference in New Issue
Block a user