Merge branch 'beta' into feature/test--overrides-helper-2

This commit is contained in:
Felix Staud 2024-07-29 13:51:35 -07:00
commit 5ddb9de9b6
24 changed files with 1364 additions and 3281 deletions

View File

@ -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% {

View File

@ -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>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -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:

View File

@ -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)

View File

@ -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;

View File

@ -22,4 +22,10 @@ export const challenges: TranslationEntries = {
"desc": "你只能使用{{type}}\n属性的宝可梦",
"desc_default": "你只能使用所选\n属性的宝可梦"
},
"freshStart": {
"name": "初次尝试",
"desc": "你只能使用御三家,就像是你第一次玩宝可梦肉鸽一样。",
"value.0": "关闭",
"value.1": "开启",
},
} as const;

View File

@ -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正在孵化中"

View File

@ -17,7 +17,7 @@ export const menu: SimpleTranslationEntries = {
"username": "用户名",
"password": "密码",
"login": "登录",
"Or use": "Or use",
"Or use": "或使用",
"register": "注册",
"emptyUsername": "用户名不能为空",
"invalidLoginUsername": "输入的用户名无效",

View File

@ -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仅能回到之前的状态次。" },
"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": "力量强化",

View File

@ -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}}夺取了!",

View File

@ -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": "斗战种",

View File

@ -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",

View File

@ -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;

View File

@ -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;
}

View File

@ -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();

View File

@ -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();
}