Merge branch 'beta' into feature/test--overrides-helper-2
12
index.css
|
@ -206,6 +206,18 @@ input:-internal-autofill-selected {
|
|||
}
|
||||
}
|
||||
|
||||
#tnc-links {
|
||||
font-size: larger;
|
||||
position: relative;
|
||||
bottom: max(calc(92vh - 100vw / 16 * 9), 0%);
|
||||
}
|
||||
|
||||
a {
|
||||
color: #328cea;
|
||||
margin-right: 4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
/* Firefox old*/
|
||||
@-moz-keyframes blink {
|
||||
0% {
|
||||
|
|
12
index.html
|
@ -117,12 +117,12 @@
|
|||
<script type="module" src="./src/main.ts"></script>
|
||||
<script src="./src/touch-controls.ts" type="module"></script>
|
||||
<script src="./src/debug.js" type="module"></script>
|
||||
<div id="links">
|
||||
<a href="#" class="termly-display-preferences" style="display: none;">Consent Preferences</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=bc96778b-3f04-4d25-bafc-0deba53e8bec">Privacy Policy</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=8b523c05-7ec2-4646-9534-5bd61b386e2a">Cookie Disclaimer</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=b01e092a-9721-477f-8356-45576702ff9e">Terms & Conditions</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=3b5d1928-3f5b-4ee1-b8df-2d6c276b0bcc">Acceptable Use Policy</a>
|
||||
<div id="tnc-links">
|
||||
<a href="#" class="termly-display-preferences" style="display: none;" target="_blank" rel="noreferrer noopener">Consent Preferences</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=bc96778b-3f04-4d25-bafc-0deba53e8bec" target="_blank" rel="noreferrer noopener">Privacy Policy</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=8b523c05-7ec2-4646-9534-5bd61b386e2a" target="_blank" rel="noreferrer noopener">Cookie Disclaimer</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=b01e092a-9721-477f-8356-45576702ff9e" target="_blank" rel="noreferrer noopener">Terms & Conditions</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=3b5d1928-3f5b-4ee1-b8df-2d6c276b0bcc" target="_blank" rel="noreferrer noopener">Acceptable Use Policy</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.4 KiB |
|
@ -17,8 +17,6 @@ export function getBiomeName(biome: Biome | -1) {
|
|||
return i18next.t("biome:GRASS");
|
||||
case Biome.RUINS:
|
||||
return i18next.t("biome:RUINS");
|
||||
case Biome.ABYSS:
|
||||
return i18next.t("biome:ABYSS");
|
||||
case Biome.END:
|
||||
return i18next.t("biome:END");
|
||||
default:
|
||||
|
|
|
@ -172,43 +172,43 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||
|
||||
"MONO_GEN_ONE": {
|
||||
name: "最初的劲敌",
|
||||
description: "完成仅限第一世代的挑战.",
|
||||
description: "完成仅限第一世代的挑战",
|
||||
},
|
||||
"MONO_GEN_TWO": {
|
||||
name: "1.5世代",
|
||||
description: "完成仅限第二世代的挑战.",
|
||||
description: "完成仅限第二世代的挑战",
|
||||
},
|
||||
"MONO_GEN_THREE": {
|
||||
name: "“水太多了”",
|
||||
description: "完成仅限第三世代的挑战.",
|
||||
description: "完成仅限第三世代的挑战",
|
||||
},
|
||||
"MONO_GEN_FOUR": {
|
||||
name: "她真是最强冠军吗?",
|
||||
description: "完成仅限第四世代的挑战.",
|
||||
description: "完成仅限第四世代的挑战",
|
||||
},
|
||||
"MONO_GEN_FIVE": {
|
||||
name: "完全原创",
|
||||
description: "完成仅限第五世代的挑战.",
|
||||
description: "完成仅限第五世代的挑战",
|
||||
},
|
||||
"MONO_GEN_SIX": {
|
||||
name: "女大公",
|
||||
description: "完成仅限第六世代的挑战.",
|
||||
description: "完成仅限第六世代的挑战",
|
||||
},
|
||||
"MONO_GEN_SEVEN": {
|
||||
name: "首届冠军",
|
||||
description: "完成仅限第七世代的挑战.",
|
||||
description: "完成仅限第七世代的挑战",
|
||||
},
|
||||
"MONO_GEN_EIGHT": {
|
||||
name: "冠军时刻!",
|
||||
description: "完成仅限第八世代的挑战.",
|
||||
description: "完成仅限第八世代的挑战",
|
||||
},
|
||||
"MONO_GEN_NINE": {
|
||||
name: "她又放水了",
|
||||
description: "完成仅限第九世代的挑战.",
|
||||
description: "完成仅限第九世代的挑战",
|
||||
},
|
||||
|
||||
"MonoType": {
|
||||
description: "完成 {{type}} 单属性挑战.",
|
||||
description: "完成 {{type}} 单属性挑战",
|
||||
},
|
||||
"MONO_NORMAL": {
|
||||
name: "异乎寻常的寻常",
|
||||
|
@ -264,6 +264,10 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||
"MONO_FAIRY": {
|
||||
name: "林克,醒醒!",
|
||||
},
|
||||
"FRESH_START": {
|
||||
name: "初次尝试!",
|
||||
description: "完成初次尝试挑战"
|
||||
}
|
||||
} as const;
|
||||
|
||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
||||
|
|
|
@ -4,10 +4,10 @@ export const battle: SimpleTranslationEntries = {
|
|||
"bossAppeared": "{{bossName}} 出现了。",
|
||||
"trainerAppeared": "{{trainerName}}\n想要和你对战!",
|
||||
"trainerAppearedDouble": "{{trainerName}}\n想要和你对战!",
|
||||
"trainerSendOut": "{{trainerName}}派出了\n{{pokemonName}}!",
|
||||
"trainerSendOut": "{{trainerName}}派出了\n{{pokemonName}}!",
|
||||
"singleWildAppeared": "一只野生的{{pokemonName}}出现了!",
|
||||
"multiWildAppeared": "野生的{{pokemonName1}}\n和{{pokemonName2}}出现了!",
|
||||
"playerComeBack": "回来吧,{{pokemonName}}!",
|
||||
"playerComeBack": "回来吧,{{pokemonName}}!",
|
||||
"trainerComeBack": "{{trainerName}}收回了{{pokemonName}}!",
|
||||
"playerGo": "去吧!{{pokemonName}}!",
|
||||
"trainerGo": "{{trainerName}}派出了\n{{pokemonName}}!",
|
||||
|
@ -61,18 +61,18 @@ export const battle: SimpleTranslationEntries = {
|
|||
"hpIsFull": "{{pokemonName}}的体力已满!",
|
||||
"skipItemQuestion": "你确定要跳过拾取道具吗?",
|
||||
"eggHatching": "咦?",
|
||||
"stealEatBerry": "{{pokemonName}} stole and ate\n{{targetName}}'s {{berryName}}!",
|
||||
"stealEatBerry": "{{pokemonName}}夺取并吃掉了\n{{targetName}}的{{berryName}}!",
|
||||
"ppHealBerry": "{{pokemonNameWithAffix}}用{{berryName}}\n回复了{{moveName}}的PP!",
|
||||
"hpHealBerry": "{{pokemonNameWithAffix}}用{{berryName}}\n回复了体力!",
|
||||
"ivScannerUseQuestion": "对{{pokemonName}}使用个体值扫描仪?",
|
||||
"wildPokemonWithAffix": "野生的{{pokemonName}}",
|
||||
"foePokemonWithAffix": "对手 {{pokemonName}}",
|
||||
"foePokemonWithAffix": "对手的{{pokemonName}}",
|
||||
"useMove": "{{pokemonNameWithAffix}}使用了\n{{moveName}}!",
|
||||
"drainMessage": "{{pokemonName}}\n吸取了体力!",
|
||||
"regainHealth": "{{pokemonName}}\n回复了体力!",
|
||||
"fainted": "{{pokemonNameWithAffix}}\n倒下了!",
|
||||
"statsAnd": "and",
|
||||
"stats": "Stats",
|
||||
"statsAnd": "和",
|
||||
"stats": "能力",
|
||||
"statRose_other": "{{pokemonNameWithAffix}}的{{stats}}提高了!",
|
||||
"statSharplyRose_other": "{{pokemonNameWithAffix}}的{{stats}}大幅提高了!",
|
||||
"statRoseDrastically_other": "{{pokemonNameWithAffix}}的{{stats}}极大幅提高了!",
|
||||
|
@ -81,7 +81,7 @@ export const battle: SimpleTranslationEntries = {
|
|||
"statHarshlyFell_other": "{{pokemonNameWithAffix}}的{{stats}}大幅降低了!",
|
||||
"statSeverelyFell_other": "{{pokemonNameWithAffix}}的{{stats}}极大幅降低了!",
|
||||
"statWontGoAnyLower_other": "{{pokemonNameWithAffix}}的{{stats}}已经无法再降低了!",
|
||||
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{type}} type!",
|
||||
"transformedIntoType": "{{pokemonName}}变成了\n{{type}}属性!",
|
||||
"ppReduced": "降低了{{targetName}}的\n{{moveName}}的PP{{reduction}}点!",
|
||||
"retryBattle": "你要从对战开始时重试么?",
|
||||
"unlockedSomething": "{{unlockedThing}}\n已解锁。",
|
||||
|
@ -147,5 +147,5 @@ export const battle: SimpleTranslationEntries = {
|
|||
"battlerTagsSaltCuredLapse": "{{pokemonNameWithAffix}}\n受到了{{moveName}}的伤害!",
|
||||
"battlerTagsCursedOnAdd": "{{pokemonNameWithAffix}}削减了自己的体力,\n并诅咒了{{pokemonName}}!",
|
||||
"battlerTagsCursedLapse": "{{pokemonNameWithAffix}}\n正受到诅咒!",
|
||||
"battlerTagsStockpilingOnAdd": "{{pokemonNameWithAffix}} stockpiled {{stockpiledCount}}!"
|
||||
"battlerTagsStockpilingOnAdd": "{{pokemonNameWithAffix}}蓄力了{{stockpiledCount}}次!"
|
||||
} as const;
|
||||
|
|
|
@ -22,4 +22,10 @@ export const challenges: TranslationEntries = {
|
|||
"desc": "你只能使用{{type}}\n属性的宝可梦",
|
||||
"desc_default": "你只能使用所选\n属性的宝可梦"
|
||||
},
|
||||
"freshStart": {
|
||||
"name": "初次尝试",
|
||||
"desc": "你只能使用御三家,就像是你第一次玩宝可梦肉鸽一样。",
|
||||
"value.0": "关闭",
|
||||
"value.1": "开启",
|
||||
},
|
||||
} as const;
|
||||
|
|
|
@ -18,10 +18,10 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
|||
"exportSlotSelect": "选择要导出的存档位。",
|
||||
"importData": "导入数据",
|
||||
"exportData": "导出数据",
|
||||
"linkDiscord": "Link Discord",
|
||||
"unlinkDiscord": "Unlink Discord",
|
||||
"linkGoogle": "Link Google",
|
||||
"unlinkGoogle": "Unlink Google",
|
||||
"linkDiscord": "关联Discord",
|
||||
"unlinkDiscord": "解除关联Discord",
|
||||
"linkGoogle": "关联Google",
|
||||
"unlinkGoogle": "解除关联Google",
|
||||
"cancel": "取消",
|
||||
"losingProgressionWarning": "你将失去自战斗开始以来的所有进度。\n是否继续?",
|
||||
"noEggs": "当前没有任何蛋\n正在孵化中!"
|
||||
|
|
|
@ -17,7 +17,7 @@ export const menu: SimpleTranslationEntries = {
|
|||
"username": "用户名",
|
||||
"password": "密码",
|
||||
"login": "登录",
|
||||
"Or use": "Or use",
|
||||
"Or use": "或使用",
|
||||
"register": "注册",
|
||||
"emptyUsername": "用户名不能为空",
|
||||
"invalidLoginUsername": "输入的用户名无效",
|
||||
|
|
|
@ -153,7 +153,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
|
|||
|
||||
"REVIVER_SEED": { name: "复活种子", description: "受到技能攻击伤害濒死时,\n恢复该宝可梦的HP至1/2。" },
|
||||
|
||||
"WHITE_HERB": { name: "White Herb", description: "An item to be held by a Pokémon. It will restore any lowered stat in battle." },
|
||||
"WHITE_HERB": { name: "白色香草", description: "当携带它的宝可梦能力降低时,\n仅能回到之前的状态1次。" },
|
||||
|
||||
"ETHER": { name: "PP单项小补剂" },
|
||||
"MAX_ETHER": { name: "PP单项全补剂" },
|
||||
|
@ -184,7 +184,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
|
|||
|
||||
"SOOTHE_BELL": { name: "安抚之铃" },
|
||||
|
||||
"SCOPE_LENS": { name: "焦点镜", description: "能看见弱点的镜片。携带它的宝可梦的招式 会变得容易击中要害。" },
|
||||
"SCOPE_LENS": { name: "焦点镜", description: "能看见弱点的镜片。携带它的宝可梦的招式\n会变得容易击中要害。" },
|
||||
"LEEK": { name: "大葱", description: "非常长且坚硬的茎。让大葱鸭携带后,\n招式会变得容易击中要害。" },
|
||||
|
||||
"EVIOLITE": { name: "进化奇石", description: "携带后,还能进化的宝可梦的\n防御和特防就会提高。" },
|
||||
|
@ -220,8 +220,8 @@ export const modifierType: ModifierTypeTranslationEntries = {
|
|||
"LEFTOVERS": { name: "吃剩的东西", description: "携带后,在每个回合结束时恢复\n最大HP的1/16。" },
|
||||
"SHELL_BELL": { name: "贝壳之铃", description: "携带后,在攻击对方成功造成伤害时,\n携带者的HP会恢复其所造成伤害的1/8。" },
|
||||
|
||||
"TOXIC_ORB": { name: "剧毒宝珠", description: "触碰后会放出毒的神奇宝珠。携带后,在战斗时会变成剧毒状态。" },
|
||||
"FLAME_ORB": { name: "火焰宝珠", description: "触碰后会放出热量的神奇宝珠。携带后,在战斗时会变成灼伤状态。" },
|
||||
"TOXIC_ORB": { name: "剧毒宝珠", description: "触碰后会放出毒的神奇宝珠。\n携带后,在战斗时会变成剧毒状态。" },
|
||||
"FLAME_ORB": { name: "火焰宝珠", description: "触碰后会放出热量的神奇宝珠。\n携带后,在战斗时会变成灼伤状态。" },
|
||||
|
||||
"BATON": { name: "接力棒", description: "允许在切换宝可梦时保留能力变化, 对陷阱\n同样生效。" },
|
||||
|
||||
|
@ -247,10 +247,10 @@ export const modifierType: ModifierTypeTranslationEntries = {
|
|||
"ENEMY_FUSED_CHANCE": { name: "融合硬币", description: "增加1%野生融合宝可梦出现概率。" },
|
||||
},
|
||||
SpeciesBoosterItem: {
|
||||
"LIGHT_BALL": { name: "电气球", description: "让皮卡丘携带后,攻击和特攻就会提高的神奇之球。" },
|
||||
"THICK_CLUB": { name: "粗骨头", description: "某种坚硬的骨头。让卡拉卡拉或嘎啦嘎啦携带后,攻击就会提高。" },
|
||||
"METAL_POWDER": { name: "金属粉", description: "让百变怪携带后,防御就会提高的神奇粉末。非常细腻坚硬。" },
|
||||
"QUICK_POWDER": { name: "速度粉", description: "让百变怪携带后,速度就会提高的神奇粉末。非常细腻坚硬。" }
|
||||
"LIGHT_BALL": { name: "电气球", description: "让皮卡丘携带后,\n攻击和特攻就会提高的神奇之球。" },
|
||||
"THICK_CLUB": { name: "粗骨头", description: "某种坚硬的骨头。\n让卡拉卡拉或嘎啦嘎啦携带后,攻击就会提高。" },
|
||||
"METAL_POWDER": { name: "金属粉", description: "让百变怪携带后,防御就会提高的神奇粉末。\n非常细腻坚硬。" },
|
||||
"QUICK_POWDER": { name: "速度粉", description: "让百变怪携带后,速度就会提高的神奇粉末。\n非常细腻坚硬。" }
|
||||
},
|
||||
TempBattleStatBoosterItem: {
|
||||
"x_attack": "力量强化",
|
||||
|
|
|
@ -5,7 +5,7 @@ export const modifier: SimpleTranslationEntries = {
|
|||
"turnHealApply": "{{pokemonNameWithAffix}}用{{typeName}}\n回复了体力!",
|
||||
"hitHealApply": "{{pokemonNameWithAffix}}用{{typeName}}\n回复了体力!",
|
||||
"pokemonInstantReviveApply": "{{pokemonNameWithAffix}}用{{typeName}}\n恢复了活力!",
|
||||
"pokemonResetNegativeStatStageApply": "{{pokemonNameWithAffix}}'s lowered stats were restored\nby its {{typeName}}!",
|
||||
"pokemonResetNegativeStatStageApply": "{{pokemonNameWithAffix}}降低的能力被{{typeName}}\复原了!",
|
||||
"moneyInterestApply": "用{{typeName}}\n获得了 ₽{{moneyAmount}} 利息!",
|
||||
"turnHeldItemTransferApply": "{{pokemonNameWithAffix}}的{{itemName}}被\n{{pokemonName}}的{{typeName}}吸收了!",
|
||||
"contactHeldItemTransferApply": "{{pokemonNameWithAffix}}的{{itemName}}被\n{{pokemonName}}的{{typeName}}夺取了!",
|
||||
|
|
|
@ -5,7 +5,7 @@ export const pokemonForm: SimpleTranslationEntries = {
|
|||
"mega": "Mega {{pokemonName}}",
|
||||
"mega-x": "Mega {{pokemonName}} X",
|
||||
"mega-y": "Mega {{pokemonName}} Y",
|
||||
"primal": "原始回归{{pokemonName}}",
|
||||
"primal": "原始{{pokemonName}}",
|
||||
"gigantamax": "超极巨{{pokemonName}}",
|
||||
"eternamax": "无极巨{{pokemonName}}",
|
||||
|
||||
|
@ -53,7 +53,7 @@ export const pokemonForm: SimpleTranslationEntries = {
|
|||
"castformSunny": "晴天",
|
||||
"castformRainy": "雨天",
|
||||
"castformSnowy": "雪天",
|
||||
"deoxysNormal": "Normal",
|
||||
"deoxysNormal": "普通",
|
||||
// 4G
|
||||
"burmyPlant": "草木蓑衣",
|
||||
"burmySandy": "砂土蓑衣",
|
||||
|
@ -65,8 +65,8 @@ export const pokemonForm: SimpleTranslationEntries = {
|
|||
"rotomFrost": "结冰",
|
||||
"rotomFan": "旋转",
|
||||
"rotomMow": "切割",
|
||||
"giratinaAltered": "Altered",
|
||||
"shayminLand": "Land",
|
||||
"giratinaAltered": "别种",
|
||||
"shayminLand": "陆上",
|
||||
// 5G
|
||||
"basculinRedStriped": "红条纹",
|
||||
"basculinBlueStriped": "蓝条纹",
|
||||
|
@ -75,11 +75,11 @@ export const pokemonForm: SimpleTranslationEntries = {
|
|||
"deerlingSummer": "夏天",
|
||||
"deerlingAutumn": "秋天",
|
||||
"deerlingWinter": "冬天",
|
||||
"tornadusIncarnate": "Incarnate",
|
||||
"thundurusIncarnate": "Incarnate",
|
||||
"landorusIncarnate": "Incarnate",
|
||||
"keldeoOrdinary": "Ordinary",
|
||||
"meloettaAria": "Aria",
|
||||
"tornadusIncarnate": "化身",
|
||||
"thundurusIncarnate": "化身",
|
||||
"landorusIncarnate": "化身",
|
||||
"keldeoOrdinary": "通常",
|
||||
"meloettaAria": "歌声",
|
||||
// 6G
|
||||
"froakieBattleBond": "牵绊变身",
|
||||
"scatterbugMeadow": "花园花纹",
|
||||
|
@ -156,11 +156,11 @@ export const pokemonForm: SimpleTranslationEntries = {
|
|||
"eiscueNoIce": "解冻头",
|
||||
"indeedeeMale": "雄性",
|
||||
"indeedeeFemale": "雌性",
|
||||
"morpekoFullBelly": "Full Belly",
|
||||
"zacianHeroOfManyBattles": "Hero Of Many Battles",
|
||||
"zamazentaHeroOfManyBattles": "Hero Of Many Battles",
|
||||
"morpekoFullBelly": "满腹花纹",
|
||||
"zacianHeroOfManyBattles": "百战勇者",
|
||||
"zamazentaHeroOfManyBattles": "百战勇者",
|
||||
"zarudeDada": "老爹",
|
||||
"enamorusIncarnate": "Incarnate",
|
||||
"enamorusIncarnate": "化身",
|
||||
// 9G
|
||||
"squawkabillyGreenPlumage": "绿羽毛",
|
||||
"squawkabillyBluePlumage": "蓝羽毛",
|
||||
|
@ -171,16 +171,16 @@ export const pokemonForm: SimpleTranslationEntries = {
|
|||
"tatsugiriStretchy": "平挺姿势",
|
||||
"gimmighoulChest": "宝箱形态",
|
||||
"gimmighoulRoaming": "徒步形态",
|
||||
"koraidonApexBuild": "Apex Build",
|
||||
"koraidonLimitedBuild":"Limited Build",
|
||||
"koraidonSprintingBuild":"Sprinting Build",
|
||||
"koraidonSwimmingBuild":"Swimming Build",
|
||||
"koraidonGlidingBuild":"Gliding Build",
|
||||
"miraidonUltimateMode":"Ultimate Mode",
|
||||
"miraidonLowPowerMode":"Low Power Mode",
|
||||
"miraidonDriveMode":"Drive Mode",
|
||||
"miraidonAquaticMode":"Aquatic Mode",
|
||||
"miraidonGlideMode":"Glide Mode",
|
||||
"koraidonApexBuild": "顶尖形态",
|
||||
"koraidonLimitedBuild":"限制形态",
|
||||
"koraidonSprintingBuild":"冲刺形态",
|
||||
"koraidonSwimmingBuild":"游泳形态",
|
||||
"koraidonGlidingBuild":"滑翔形态",
|
||||
"miraidonUltimateMode":"极限模式",
|
||||
"miraidonLowPowerMode":"节能模式",
|
||||
"miraidonDriveMode":"驾驶模式",
|
||||
"miraidonAquaticMode":"水上模式",
|
||||
"miraidonGlideMode":"滑翔模式",
|
||||
"poltchageistCounterfeit": "冒牌货",
|
||||
"poltchageistArtisan": "高档货",
|
||||
"paldeaTaurosCombat": "斗战种",
|
||||
|
|
|
@ -7,7 +7,7 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam": "使用这些宝可梦开始游戏吗?",
|
||||
"invalidParty": "This is not a valid starting party!",
|
||||
"invalidParty": "初始队伍不可用!",
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
|
|
|
@ -16,6 +16,7 @@ import {
|
|||
import { Abilities } from "#enums/abilities";
|
||||
import { Moves } from "#enums/moves";
|
||||
import { Species } from "#enums/species";
|
||||
import { removeEnemyHeldItems } from "../utils/testUtils";
|
||||
|
||||
describe("Abilities - Intimidate", () => {
|
||||
let phaserGame: Phaser.Game;
|
||||
|
@ -44,6 +45,7 @@ describe("Abilities - Intimidate", () => {
|
|||
|
||||
it("single - wild with switch", async () => {
|
||||
await game.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
game.onNextPrompt(
|
||||
"CheckSwitchPhase",
|
||||
Mode.CONFIRM,
|
||||
|
@ -74,6 +76,7 @@ describe("Abilities - Intimidate", () => {
|
|||
it("single - boss should only trigger once then switch", async () => {
|
||||
game.override.startingWave(10);
|
||||
await game.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
game.onNextPrompt(
|
||||
"CheckSwitchPhase",
|
||||
Mode.CONFIRM,
|
||||
|
@ -103,6 +106,7 @@ describe("Abilities - Intimidate", () => {
|
|||
it("single - trainer should only trigger once with switch", async () => {
|
||||
game.override.startingWave(5);
|
||||
await game.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
game.onNextPrompt(
|
||||
"CheckSwitchPhase",
|
||||
Mode.CONFIRM,
|
||||
|
@ -133,6 +137,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.battleType("double");
|
||||
game.override.startingWave(5);
|
||||
await game.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
game.onNextPrompt(
|
||||
"CheckSwitchPhase",
|
||||
Mode.CONFIRM,
|
||||
|
@ -159,6 +164,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.battleType("double");
|
||||
game.override.startingWave(3);
|
||||
await game.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
game.onNextPrompt(
|
||||
"CheckSwitchPhase",
|
||||
Mode.CONFIRM,
|
||||
|
@ -185,6 +191,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.battleType("double");
|
||||
game.override.startingWave(10);
|
||||
await game.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
game.onNextPrompt(
|
||||
"CheckSwitchPhase",
|
||||
Mode.CONFIRM,
|
||||
|
@ -211,6 +218,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.startingWave(2);
|
||||
game.override.moveset([Moves.AERIAL_ACE]);
|
||||
await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats;
|
||||
expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1);
|
||||
let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats;
|
||||
|
@ -237,6 +245,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.startingWave(2);
|
||||
game.override.moveset([Moves.SPLASH]);
|
||||
await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats;
|
||||
expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1);
|
||||
let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats;
|
||||
|
@ -262,6 +271,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.enemyMoveset([Moves.VOLT_SWITCH, Moves.VOLT_SWITCH, Moves.VOLT_SWITCH, Moves.VOLT_SWITCH]);
|
||||
game.override.startingWave(5);
|
||||
await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats;
|
||||
expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1);
|
||||
let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats;
|
||||
|
@ -301,6 +311,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.enemyMoveset([Moves.SPLASH, Moves.SPLASH, Moves.SPLASH, Moves.SPLASH]);
|
||||
game.override.startingWave(5);
|
||||
await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats;
|
||||
expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1);
|
||||
let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats;
|
||||
|
@ -340,9 +351,7 @@ describe("Abilities - Intimidate", () => {
|
|||
game.override.startingWave(3);
|
||||
vi.spyOn(Overrides, "OPP_HELD_ITEMS_OVERRIDE", "get").mockReturnValue([{ name: "COIN_CASE" }]);
|
||||
await game.runToSummon([Species.MIGHTYENA]);
|
||||
// Get rid of any modifiers that may alter power
|
||||
game.scene.clearEnemyHeldItemModifiers();
|
||||
game.scene.clearEnemyModifiers();
|
||||
removeEnemyHeldItems(game.scene);
|
||||
await game.phaseInterceptor.to(CommandPhase, false);
|
||||
const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats;
|
||||
expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1);
|
||||
|
@ -369,6 +378,7 @@ describe("Abilities - Intimidate", () => {
|
|||
});
|
||||
|
||||
await game.phaseInterceptor.run(EncounterPhase);
|
||||
removeEnemyHeldItems(game.scene);
|
||||
|
||||
await game.phaseInterceptor.to(CommandPhase, false);
|
||||
const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats;
|
||||
|
|
|
@ -164,14 +164,16 @@ function leaveOneEnemyPokemon(game: GameManager) {
|
|||
|
||||
function beforeTrial(phaserGame: Phaser.Game, single: boolean = false) {
|
||||
const game = new GameManager(phaserGame);
|
||||
game.override.battleType("double");
|
||||
game.override.moveset([Moves.EARTHQUAKE, Moves.HYPER_VOICE, Moves.SURF, Moves.SPLASH]);
|
||||
game.override.ability(Abilities.BALL_FETCH);
|
||||
game.override.enemyMoveset(SPLASH_ONLY);
|
||||
game.override.disableCrits();
|
||||
game.override.startingLevel(50);
|
||||
game.override.enemyLevel(40);
|
||||
game.override.enemySpecies(Species.EEVEE);
|
||||
game.override
|
||||
.battleType("double")
|
||||
.moveset([Moves.EARTHQUAKE, Moves.HYPER_VOICE, Moves.SURF, Moves.SPLASH])
|
||||
.ability(Abilities.BALL_FETCH)
|
||||
.passiveAbility(Abilities.UNNERVE)
|
||||
.enemyMoveset(SPLASH_ONLY)
|
||||
.disableCrits()
|
||||
.startingLevel(50)
|
||||
.enemyLevel(40)
|
||||
.enemySpecies(Species.EEVEE);
|
||||
return game;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
// Function to convert Blob to string
|
||||
import { getDailyRunStarters } from "#app/data/daily-run";
|
||||
import { Gender } from "#app/data/gender";
|
||||
import { Species } from "#enums/species";
|
||||
|
@ -9,6 +8,7 @@ import {PlayerPokemon} from "#app/field/pokemon";
|
|||
import { Moves } from "#app/enums/moves";
|
||||
import BattleScene from "#app/battle-scene";
|
||||
|
||||
/** Function to convert Blob to string */
|
||||
export function blobToString(blob) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import BattleScene from "#app/battle-scene.js";
|
||||
import { Moves } from "#app/enums/moves.js";
|
||||
import i18next, { type ParseKeys } from "i18next";
|
||||
import { vi } from "vitest";
|
||||
|
@ -26,3 +27,11 @@ export function arrayOfRange(start: integer, end: integer) {
|
|||
return Array.from({ length: end - start }, (_v, k) => k + start);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all held items from enemy pokemon
|
||||
* @param scene `game.scene`
|
||||
*/
|
||||
export function removeEnemyHeldItems(scene: BattleScene) {
|
||||
scene.clearEnemyHeldItemModifiers();
|
||||
scene.clearEnemyModifiers();
|
||||
}
|
||||
|
|