Compare commits

...

3 Commits

Author SHA1 Message Date
returntoice
5cf9a98ee0
[Localization] Minor Korean modifications (#1665) 2024-06-01 01:27:21 -04:00
Xavion3
e7fed48f8e
[Balance] Simplify and fix flame/toxic orb weight (#1670) 2024-06-01 12:10:10 +10:00
Benjamin Odom
da771daee6
[QoL] Remove VS Code Settings (#1672)
* Remove VS Code Settings

* Update .gitignore
2024-06-01 02:26:00 +01:00
7 changed files with 28 additions and 50 deletions

5
.gitignore vendored
View File

@ -14,8 +14,6 @@ dist-ssr
# Editor directories and files
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
.idea
.DS_Store
*.suo
@ -36,4 +34,7 @@ src/data/battle-anim-data.ts
src/overrides.ts
coverage
# Local Documentation
/typedoc

View File

@ -1,4 +0,0 @@
{
"javascript.preferences.importModuleSpecifierEnding": "minimal",
"typescript.preferences.importModuleSpecifierEnding": "minimal"
}

View File

@ -24,13 +24,13 @@ export const biome: SimpleTranslationEntries = {
"GRAVEYARD": "묘지",
"DOJO": "도장",
"FACTORY": "공장",
"RUINS": "고대 폐허",
"RUINS": "고대 유적",
"WASTELAND": "황무지",
"ABYSS": "심연",
"SPACE": "성층권",
"SPACE": "우주",
"CONSTRUCTION_SITE": "공사장",
"JUNGLE": "정글",
"FAIRY_CAVE": "요정 동굴",
"FAIRY_CAVE": "페어리 동굴",
"TEMPLE": "사원",
"SLUM": "슬럼",
"SNOWY_FOREST": "눈덮인 숲",

View File

@ -1,9 +1,9 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const commandUiHandler: SimpleTranslationEntries = {
"fight": "싸다",
"fight": "싸다",
"ball": "볼",
"pokemon": "포켓몬",
"run": "도망다",
"run": "도망다",
"actionMessage": "{{pokemonName}}(는)은 무엇을 할까?",
} as const;

View File

@ -167,7 +167,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
"EXP_SHARE": { name: "학습장치", description: "배틀에 참여하지 않아도 20%의 경험치를 받을 수 있는 장치" },
"EXP_BALANCE": { name: "균형학습장치", description: "레벨이 낮은 포켓몬이 받는 경험치를 가중" },
"OVAL_CHARM": { name: "Oval Charm", description: "여러 마리의 포켓몬이 배틀에 참여할 경우, 전체 경험치의 10%씩을 추가로 획득" },
"OVAL_CHARM": { name: "둥근부적", description: "여러 마리의 포켓몬이 배틀에 참여할 경우, 전체 경험치의 10%씩을 추가로 획득" },
"EXP_CHARM": { name: "경험부적" },
"SUPER_EXP_CHARM": { name: "좋은경험부적" },
@ -209,6 +209,9 @@ export const modifierType: ModifierTypeTranslationEntries = {
"LEFTOVERS": { name: "먹다남은음식", description: "포켓몬의 HP가 매 턴 최대 체력의 1/16씩 회복" },
"SHELL_BELL": { name: "조개껍질방울", description: "포켓몬이 준 데미지의 1/8씩 회복" },
"TOXIC_ORB": { name: "맹독구슬", description: "이 도구를 지닌 포켓몬은 턴이 끝나는 시점에 상태이상에 걸리지 않았다면 맹독 상태가 된다." },
"FLAME_ORB": { name: "화염구슬", description: "이 도구를 지닌 포켓몬은 턴이 끝나는 시점에 상태이상에 걸리지 않았다면 화상 상태가 된다." },
"BATON": { name: "바톤", description: "포켓몬을 교체할 때 효과를 넘겨줄 수 있으며, 함정의 영향을 받지 않게 함" },
"SHINY_CHARM": { name: "빛나는부적", description: "야생 포켓몬이 색이 다른 포켓몬으로 등장할 확률을 급격히 증가" },
@ -218,7 +221,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
"DNA_SPLICERS": { name: "유전자쐐기" },
"MINI_BLACK_HOLE": { name: "미니 블랙 홀" },
"MINI_BLACK_HOLE": { name: "미니 블랙홀" },
"GOLDEN_POKEBALL": { name: "황금몬스터볼", description: "전투 후 획득하는 아이템의 선택지를 하나 더 추가" },
@ -315,7 +318,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
"ALTARIANITE": "파비코리나이트",
"AMPHAROSITE": "전룡나이트",
"AUDINITE": "다부니나이트",
"BANETTITE": "깜까미나이트",
"BANETTITE": "다크펫나이트",
"BEEDRILLITE": "독침붕나이트",
"BLASTOISINITE": "거북왕나이트",
"BLAZIKENITE": "번치코나이트",

View File

@ -2,10 +2,10 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const voucher: SimpleTranslationEntries = {
"vouchers": "바우처",
"eggVoucher": "에그 바우처",
"eggVoucherPlus": "에그 바우처 플러스",
"eggVoucherPremium": "에그 바우처 프리미엄",
"eggVoucherGold": "에그 바우처 골드",
"eggVoucher": " 바우처",
"eggVoucherPlus": " 바우처 플러스",
"eggVoucherPremium": " 바우처 프리미엄",
"eggVoucherGold": " 바우처 골드",
"locked": "미획득",
"defeatTrainer" : "{{trainerName}}에게 승리",
} as const;

View File

@ -1336,39 +1336,17 @@ const modifierPool: ModifierPool = {
new WeightedModifierType(modifierTypes.RARE_EVOLUTION_ITEM, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15) * 4, 32), 32),
new WeightedModifierType(modifierTypes.AMULET_COIN, 3),
new WeightedModifierType(modifierTypes.TOXIC_ORB, (party: Pokemon[]) => {
let weight = 0;
const filteredParty = party.filter(p => (p.status?.effect === StatusEffect.TOXIC || p.canSetStatus(StatusEffect.TOXIC, true, true))
&& !p.hasAbility(Abilities.FLARE_BOOST)
&& !p.getHeldItems().some(i => i instanceof Modifiers.TurnStatusEffectModifier));
if (filteredParty.some(p => p.hasAbility(Abilities.TOXIC_BOOST) || p.hasAbility(Abilities.POISON_HEAL))) {
weight = 4;
} else if (filteredParty.some(p => p.hasAbility(Abilities.GUTS) || p.hasAbility(Abilities.QUICK_FEET) || p.hasAbility(Abilities.MARVEL_SCALE))) {
weight = 2;
} else {
const moveList = [Moves.FACADE, Moves.TRICK, Moves.FLING, Moves.SWITCHEROO, Moves.PSYCHO_SHIFT];
if (filteredParty.some(p => p.getMoveset().some(m => moveList.includes(m.moveId)))) {
weight = 1;
}
}
return Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15) * weight, 8 * weight);
}, 32),
const checkedAbilities = [Abilities.QUICK_FEET, Abilities.GUTS, Abilities.MARVEL_SCALE, Abilities.TOXIC_BOOST, Abilities.POISON_HEAL];
const checkedMoves = [Moves.FACADE, Moves.TRICK, Moves.FLING, Moves.SWITCHEROO, Moves.PSYCHO_SHIFT];
// If a party member doesn't already have one of these two orbs and has one of the above moves or abilities, the orb can appear
return party.some(p => !p.getHeldItems().some(i => i instanceof Modifiers.TurnStatusEffectModifier) && (checkedAbilities.some(a => p.hasAbility(a, false, true)) || p.getMoveset(true).some(m => checkedMoves.includes(m.moveId)))) ? 10 : 0;
}, 10),
new WeightedModifierType(modifierTypes.FLAME_ORB, (party: Pokemon[]) => {
let weight = 0;
const filteredParty = party.filter(p => (p.status?.effect === StatusEffect.BURN || p.canSetStatus(StatusEffect.BURN, true, true))
&& !p.hasAbility(Abilities.TOXIC_BOOST) && !p.hasAbility(Abilities.POISON_HEAL)
&& !p.getHeldItems().some(i => i instanceof Modifiers.TurnStatusEffectModifier));
if (filteredParty.some(p => p.hasAbility(Abilities.FLARE_BOOST))) {
weight = 4;
} else if (filteredParty.some(p => p.hasAbility(Abilities.GUTS) || p.hasAbility(Abilities.QUICK_FEET) || p.hasAbility(Abilities.MARVEL_SCALE))) {
weight = 2;
} else {
const moveList = [Moves.FACADE, Moves.TRICK, Moves.FLING, Moves.SWITCHEROO, Moves.PSYCHO_SHIFT];
if (filteredParty.some(p => p.getMoveset().some(m => moveList.includes(m.moveId)))) {
weight = 1;
}
}
return Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15) * weight, 8 * weight);
}, 32),
const checkedAbilities = [Abilities.QUICK_FEET, Abilities.GUTS, Abilities.MARVEL_SCALE, Abilities.FLARE_BOOST];
const checkedMoves = [Moves.FACADE, Moves.TRICK, Moves.FLING, Moves.SWITCHEROO, Moves.PSYCHO_SHIFT];
// If a party member doesn't already have one of these two orbs and has one of the above moves or abilities, the orb can appear
return party.some(p => !p.getHeldItems().some(i => i instanceof Modifiers.TurnStatusEffectModifier) && (checkedAbilities.some(a => p.hasAbility(a, false, true)) || p.getMoveset(true).some(m => checkedMoves.includes(m.moveId)))) ? 10 : 0;
}, 10),
new WeightedModifierType(modifierTypes.REVIVER_SEED, 4),
new WeightedModifierType(modifierTypes.CANDY_JAR, 5),
new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 10),