Compare commits

...

12 Commits

Author SHA1 Message Date
Jannik Tappert
de51c5b7a5
[Localization] Translated missing german entries (#2289) 2024-06-16 19:43:14 -04:00
Jannik Tappert
40ade2da1d
[Localization(ko)] Fixed Korean Battle Stat Change Text (#2292) 2024-06-16 18:54:31 -04:00
Yonmaru40
0138a480f9
[Localization(zh)] Update game-mode.ts (#2304) 2024-06-16 18:53:22 -04:00
ReneGV
bcd622bd94
[QoL] Skip money rewards on last classic wave (#2121)
* Skip money rewards on last classic round

* Fix big nugget
2024-06-16 18:51:25 -04:00
Niccolò
a44ab950ba
[Localization(it)] Update tutorial.ts (#2294) 2024-06-16 18:49:11 -04:00
chaosgrimmon
1396aaaa57
[Move] Sappy Seed shouldn't be Making Contact (#2303)
https://bulbapedia.bulbagarden.net/wiki/Sappy_Seed_(move)
2024-06-16 18:48:42 -04:00
Yonmaru40
29f95ef394
[Localization] zh_cn various translation fix and update (#2306)
* Update pokemon-info.ts

* Update trainers.ts

* Update ability-trigger.ts

* Update battle.ts

* Update ability-trigger.ts

* Update save-slot-select-ui-handler.ts

* 用→因为
2024-06-16 18:44:49 -04:00
Yonmaru40
0ed8c32e8a
[Localization(zh)] Update growth.ts (#2305) 2024-06-16 18:43:52 -04:00
Yonmaru40
f26a21c74b
[Localization(zh)] Update fight-ui-handler.ts (#2302) 2024-06-16 18:42:17 -04:00
chaosgrimmon
90f6ae7e6d
[Bug] Friendship-based moves have Base Power -1 when Pokemon is wild (#2291)
Affects RETURN, FRUSTRATION, PIKA_POW, and VEEVEE_VOLLEY.
2024-06-16 18:40:47 -04:00
Madmadness65
cc1b37c097 Correct Iron Jugulis' passive ability 2024-06-16 17:38:32 -05:00
José Ricardo Fleury Oliveira
5cdf148965
[Localization] Localized Daily Run Scoreboard (#2053)
* localized daily run scoreboard

* Update src/locales/de/menu.ts

Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>

* localized positionIcon

* Update src/locales/ko/menu.ts

Co-authored-by: Enoch <enoch.jwsong@gmail.com>

---------

Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
2024-06-16 21:23:18 +01:00
26 changed files with 152 additions and 93 deletions

View File

@ -3034,10 +3034,8 @@ export class FriendshipPowerAttr extends VariablePowerAttr {
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
const power = args[0] as Utils.NumberHolder;
if (user instanceof PlayerPokemon) {
const friendshipPower = Math.floor(Math.min(user.friendship, 255) / 2.5);
power.value = Math.max(!this.invert ? friendshipPower : 102 - friendshipPower, 1);
}
const friendshipPower = Math.floor(Math.min(user instanceof PlayerPokemon ? user.friendship : user.species.baseFriendship, 255) / 2.5);
power.value = Math.max(!this.invert ? friendshipPower : 102 - friendshipPower, 1);
return true;
}
@ -7578,6 +7576,7 @@ export function initMoves() {
new AttackMove(Moves.BADDY_BAD, Type.DARK, MoveCategory.SPECIAL, 80, 95, 15, -1, 0, 7)
.attr(AddArenaTagAttr, ArenaTagType.REFLECT, 5, false, true),
new AttackMove(Moves.SAPPY_SEED, Type.GRASS, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 7)
.makesContact(false)
.attr(AddBattlerTagAttr, BattlerTagType.SEEDED),
new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7)
.attr(ResetStatsAttr),

View File

@ -3795,7 +3795,7 @@ export const starterPassiveAbilities = {
[Species.IRON_TREADS]: Abilities.STEELY_SPIRIT,
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
[Species.IRON_HANDS]: Abilities.IRON_FIST,
[Species.IRON_JUGULIS]: Abilities.AERILATE,
[Species.IRON_JUGULIS]: Abilities.LIGHTNING_ROD,
[Species.IRON_MOTH]: Abilities.LEVITATE,
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
[Species.FRIGIBAX]: Abilities.SNOW_WARNING,

View File

@ -4,5 +4,5 @@ export const abilityTriggers: SimpleTranslationEntries = {
"blockRecoilDamage" : "{{pokemonName}} wurde durch {{abilityName}}\nvor Rückstoß geschützt!",
"badDreams": "{{pokemonName}} ist in einem Alptraum gefangen!",
"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;

View File

@ -62,12 +62,12 @@ export const battle: SimpleTranslationEntries = {
"drainMessage": "{{pokemonName}} wurde Energie abgesaugt",
"regainHealth": "KP von {{pokemonName}} wurden wieder aufgefrischt!",
"fainted": "{{pokemonNameWithAffix}} wurde besiegt!",
"statRose": "rose",
"statSharplyRose": "sharply rose",
"statRoseDrastically": "rose drastically",
"statWontGoAnyHigher": "won't go any higher",
"statFell": "fell",
"statHarshlyFell": "harshly fell",
"statSeverelyFell": "severely fell",
"statWontGoAnyLower": "won't go any lower",
"statRose": "steigt",
"statSharplyRose": "steigt stark",
"statRoseDrastically": "steigt drastisch",
"statWontGoAnyHigher": "kann nicht weiter erhöht werden",
"statFell": "sinkt",
"statHarshlyFell": "sinkt stark",
"statSeverelyFell": "sinkt drastisch",
"statWontGoAnyLower": "kann nicht weiter sinken",
} as const;

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "Tägliche Rangliste",
"weeklyRankings": "Wöchentliche Rangliste",
"noRankings": "Keine Rangliste",
"positionIcon": "#",
"usernameScoreboard": "Benutzername",
"score": "Punkte",
"wave": "Welle",
"loading": "Lade…",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "Spieler Online",

View File

@ -14,8 +14,8 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
"SPDEFshortened": "SpVert",
"SPD": "Initiative",
"SPDshortened": "Init",
"ACC": "Accuracy",
"EVA": "Evasiveness"
"ACC": "Genauigkeit",
"EVA": "Fluchtwert",
},
Type: {

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "Daily Rankings",
"weeklyRankings": "Weekly Rankings",
"noRankings": "No Rankings",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "Loading…",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "Players Online",

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "Rankings Diarios",
"weeklyRankings": "Rankings Semanales",
"noRankings": "Sin Rankings",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "Cargando…",
"loadingAsset": "Cargando recurso: {{assetName}}",
"playersOnline": "Jugadores en Línea",

View File

@ -39,6 +39,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "Classement du Jour",
"weeklyRankings": "Classement de la Semaine",
"noRankings": "Pas de Classement",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "Chargement…",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "Joueurs Connectés",

View File

@ -39,6 +39,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "Classifica giornaliera",
"weeklyRankings": "Classifica settimanale",
"noRankings": "Nessuna classifica",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "Caricamento…",
"loadingAsset": "Caricamento asset: {{assetName}}",
"playersOnline": "Giocatori online",

View File

@ -2,41 +2,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"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.
$Il gioco è work-in-progress ma giocabile al 100%.\nPer reportare eventuali bugs è possibile discuterne sul nostro Discord.
$Se il game risulta 'lento', assicurati di aver abilitato l'Accelerazione Hardware nelle impostazioni del tuo Browser`,
$Questo gioco non è monetizzato e non siamo proprietari di Pokémon ed assets presenti nel gioco.
$Il progetto è work-in-progress, ma giocabile al 100%.\nPer segnalare eventuali bug è possibile contattarci al nostro apposito Discord.
$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.
$Dalle impostazioni puoi cambiare velocità di gioco, stile di finestra e altre opzioni.
$Ci sono varie funzionalità, controlla bene e non perderti nulla!`,
"menu": `Da questo menu puoi accedere alle impostazioni.
$Esse ti permettono di cambiare velocità di gioco, stile delle finestre ed altre opzioni.
$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.
$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!`,
"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!`,
"pokerus": `Giornalmente 3 starter casuali disponibili avranno il bordo viola.
$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.
$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.
$Questi spaziano tra consumabili, item tenuti da Pokèmon o con un effetto passivo permanente.
$La maggior parte degli Item non Consumabili possono stackare in diversi modi.
$Alcuni Item risulteranno disponibili solo se possono essere usati, come Item Evolutivi.
$Puoi anche passare un Item tenuto da un Pokèmon ad un altro attraverso l'opzione 'trasferisci strumento'.
$L'opzione 'trasferisci strumento' sarà disponibile solo dopo aver assegnato uno strumento ad un Pokèmon.
$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.`,
"selectItem": `Dopo ogni battaglia potrai scegliere tra 3 oggetti.\nPotrai prenderne solo uno.
$Questi spaziano tra consumabili, oggetti tenuti da Pokèmon o con un effetto passivo permanente.
$La maggior parte degli oggetti non consumabili possono accumulare i loro effetti in diversi modi.
$Alcuni risulteranno inoltre disponibili solo se possono essere usati, come ad esempio gli oggetti evolutivi.
$Puoi anche passare un oggetto tenuto da un Pokèmon a un altro attraverso l'opzione 'trasferisci strumento'.
$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.
$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.
$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 generalmente hanno IVs migliori rispetto ai\n Pokémon selvatici.
$Alcuni Pokémon possono essere ottenuti solo tramite uova.
"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.
$I Pokémon schiusi non verranno aggiunti alla tua squadra, ma saranno\ninvece aggiunti ai tuoi starters.
$I Pokémon schiusi hanno (generalmente) IVs migliori rispetto ai\n Pokémon selvatici.
$Inoltre, alcuni Pokémon possono essere ottenuti solo tramite uova.
$Ci sono 3 diversi macchinari con differenti\nbonus, scegli quello che preferisci!`,
} as const;

View File

@ -63,11 +63,11 @@ export const battle: SimpleTranslationEntries = {
"regainHealth": "{{pokemonName}}[[는]]\n기력을 회복했다!",
"fainted": "{{pokemonNameWithAffix}}[[는]] 쓰러졌다!",
"statRose": "상승했다",
"statSharplyRose": "약간 상승했다",
"statRoseDrastically": "대폭 상승했다",
"statWontGoAnyHigher": "더 이상 상승할 수 없다",
"statSharplyRose": "크게 상승했다",
"statRoseDrastically": "매우 크게 상승했다",
"statWontGoAnyHigher": "더 이상 올라갈 수 없다",
"statFell": "떨어졌다",
"statHarshlyFell": "약간 떨어졌다",
"statSeverelyFell": "대폭 떨어졌다",
"statHarshlyFell": "크게 떨어졌다",
"statSeverelyFell": "매우 크게 떨어졌다",
"statWontGoAnyLower": "더 이상 떨어질 수 없다",
} as const;

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "일간 랭킹",
"weeklyRankings": "주간 랭킹",
"noRankings": "랭킹 정보 없음",
"positionIcon": "#",
"usernameScoreboard": "이름",
"score": "점수",
"wave": "웨이브",
"loading": "로딩 중…",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "플레이어 온라인",

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "Classificação Diária",
"weeklyRankings": "Classificação Semanal",
"noRankings": "Sem Classificação",
"positionIcon": "#",
"usernameScoreboard": "Usuário",
"score": "Pontuação",
"wave": "Onda",
"loading": "Carregando…",
"loadingAsset": "Carregando recurso: {{assetName}}",
"playersOnline": "Jogadores Ativos",

View File

@ -2,7 +2,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const abilityTriggers: SimpleTranslationEntries = {
"blockRecoilDamage" : "{{pokemonName}} 的 {{abilityName}}\n抵消了反作用力",
"badDreams": "{{pokemonName}} 被折磨着!",
"badDreams": "{{pokemonName}} 被折磨着",
"windPowerCharged": "受 {{moveName}} 的影响, {{pokemonName}} 提升了能力!",
"iceFaceAvoidedDamage": "{{pokemonName}} avoided\ndamage with {{abilityName}}!"
"iceFaceAvoidedDamage": "{{pokemonName}} 因为 {{abilityName}}\n避免了伤害"
} as const;

View File

@ -56,18 +56,18 @@ export const battle: SimpleTranslationEntries = {
"skipItemQuestion": "你确定要跳过拾取道具吗?",
"eggHatching": "咦?",
"ivScannerUseQuestion": "对 {{pokemonName}} 使用个体值扫描仪?",
"wildPokemonWithAffix": "Wild {{pokemonName}}",
"foePokemonWithAffix": "Foe {{pokemonName}}",
"useMove": "{{pokemonNameWithAffix}} used {{moveName}}!",
"drainMessage": "{{pokemonName}} had its\nenergy drained!",
"regainHealth": "{{pokemonName}} regained\nhealth!",
"fainted": "{{pokemonNameWithAffix}} fainted!",
"statRose": "rose",
"statSharplyRose": "sharply rose",
"statRoseDrastically": "rose drastically",
"statWontGoAnyHigher": "won't go any higher",
"statFell": "fell",
"statHarshlyFell": "harshly fell",
"statSeverelyFell": "severely fell",
"statWontGoAnyLower": "won't go any lower",
"wildPokemonWithAffix": "野生的 {{pokemonName}}",
"foePokemonWithAffix": "对手 {{pokemonName}}",
"useMove": "{{pokemonNameWithAffix}} 使用了 {{moveName}}",
"drainMessage": "{{pokemonName}} 吸取了体力!",
"regainHealth": "{{pokemonName}} 回复了体力!",
"fainted": "{{pokemonNameWithAffix}} 倒下了!",
"statRose": "提高了!",
"statSharplyRose": "大幅提高了!",
"statRoseDrastically": "极大幅提高了!",
"statWontGoAnyHigher": "已经无法再提高了!",
"statFell": "降低了!",
"statHarshlyFell": "大幅降低了!",
"statSeverelyFell": "极大幅降低了!",
"statWontGoAnyLower": "已经无法再降低了!",
} as const;

View File

@ -4,6 +4,6 @@ export const fightUiHandler: SimpleTranslationEntries = {
"pp": "PP",
"power": "威力",
"accuracy": "命中",
"abilityFlyInText": " {{pokemonName}}'s {{passive}}{{abilityName}}",
"passive": "Passive ", // The space at the end is important
"abilityFlyInText": " {{pokemonName}} {{passive}}{{abilityName}}",
"passive": "被动 ", // The space at the end is important
} as const;

View File

@ -1,10 +1,10 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const gameMode: SimpleTranslationEntries = {
"classic": "Classic",
"endless": "Endless",
"endlessSpliced": "Endless (Spliced)",
"dailyRun": "Daily Run",
"unknown": "Unknown",
"challenge": "Challenge",
"classic": "经典模式",
"endless": "无尽模式",
"endlessSpliced": "融合无尽模式",
"dailyRun": "每日挑战",
"unknown": "未知",
"challenge": "挑战模式",
} as const;

View File

@ -1,10 +1,10 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const growth: SimpleTranslationEntries = {
"Erratic": "快",
"Fast": "快",
"Medium_Fast": "快",
"Medium_Slow": "慢",
"Slow": "慢",
"Fluctuating": "慢"
} as const;
"Erratic": "非常快",
"Fast": "快",
"Medium_Fast": "快",
"Medium_Slow": "慢",
"Slow": "慢",
"Fluctuating": "非常慢"
} as const;

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "每日排名",
"weeklyRankings": "每周排名",
"noRankings": "无排名",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "加载中...",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "在线玩家",

View File

@ -14,8 +14,8 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
"SPDEFshortened": "特防",
"SPD": "速度",
"SPDshortened": "速度",
"ACC": "Accuracy",
"EVA": "Evasiveness"
"ACC": "命中率",
"EVA": "回避率"
},
Type: {

View File

@ -1,9 +1,9 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const saveSlotSelectUiHandler: SimpleTranslationEntries = {
"overwriteData": "Overwrite the data in the selected slot?",
"overwriteData": "要覆盖该槽位的存档吗?",
"loading": "正在加载中...",
"wave": "Wave",
"wave": "层数",
"lv": "Lv",
"empty": "空",
} as const;

View File

@ -48,7 +48,7 @@ export const trainerClasses: SimpleTranslationEntries = {
"depot_agent": "铁路员工",
"doctor": "医生",
"doctor_female": "医生",
"firebreather": "Firebreather",
"firebreather": "吹火人",
"fisherman": "垂钓者",
"fisherman_female": "垂钓者",
"gentleman": "绅士",
@ -87,13 +87,13 @@ export const trainerClasses: SimpleTranslationEntries = {
"pokémon_rangers": "宝可梦巡护员组合",
"ranger": "巡护员",
"restaurant_staff": "服务生组合",
"rich": "Rich",
"rich_female": "Rich",
"rich": "富豪",
"rich_female": "富豪太太",
"rich_boy": "富家少爷",
"rich_couple": "富豪夫妇",
"rich_kid": "Rich Kid",
"rich_kid_female": "Rich Kid",
"rich_kids": "富二代组合",
"rich_kid": "富家小孩",
"rich_kid_female": "富家小孩",
"rich_kids": "富家小孩组合",
"roughneck": "光头男",
"sailor": "水手",
"scientist": "研究员",

View File

@ -44,6 +44,10 @@ export const menu: SimpleTranslationEntries = {
"dailyRankings": "每日排名",
"weeklyRankings": "每週排名",
"noRankings": "無排名",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "加載中…",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "在線玩家",

View File

@ -1017,6 +1017,30 @@ export class EnemyEndureChanceModifierType extends ModifierType {
export type ModifierTypeFunc = () => ModifierType;
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 {
public modifierType: ModifierType;
public weight: integer | WeightedModifierTypeWeightFunc;
@ -1313,7 +1337,7 @@ const modifierPool: ModifierPool = {
}, 3),
new WeightedModifierType(modifierTypes.DIRE_HIT, 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[]) => {
return Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15), 8);
}, 8),
@ -1336,7 +1360,7 @@ const modifierPool: ModifierPool = {
[ModifierTier.ULTRA]: [
new WeightedModifierType(modifierTypes.ULTRA_BALL, 24),
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_MAX, 3),
new WeightedModifierType(modifierTypes.MINT, 4),
@ -1371,7 +1395,7 @@ const modifierPool: ModifierPool = {
}),
[ModifierTier.ROGUE]: [
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.SHELL_BELL, 3),
new WeightedModifierType(modifierTypes.BERRY_POUCH, 4),

View File

@ -1,8 +1,8 @@
import i18next from "i18next";
import BattleScene from "../battle-scene";
import * as Utils from "../utils";
import { TextStyle, addTextObject } from "./text";
import { WindowVariant, addWindow } from "./ui-theme";
import * as Utils from "../utils";
import i18next from "i18next";
interface RankingEntry {
rank: integer,
@ -154,7 +154,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
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) => {
const entryContainer = getEntry(r.rank.toString(), r.username, r.score.toString(), r.wave.toString());