Merge remote-tracking branch 'upstream/main'

This commit is contained in:
takeyourt1me 2024-05-03 14:15:22 -07:00
commit 34737b1b11
9 changed files with 237 additions and 190 deletions

View File

@ -1630,6 +1630,27 @@ export class BonusCritAbAttr extends AbAttr {
} }
} }
export class MultCritAbAttr extends AbAttr {
public multAmount: number;
constructor(multAmount: number) {
super(true);
this.multAmount = multAmount;
}
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
const critMult = args[0] as Utils.NumberHolder;
if (critMult.value > 1){
critMult.value *= this.multAmount;
return true;
}
return false;
}
}
export class BlockNonDirectDamageAbAttr extends AbAttr { export class BlockNonDirectDamageAbAttr extends AbAttr {
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
cancelled.value = true; cancelled.value = true;
@ -2797,7 +2818,7 @@ export function initAbilities() {
.attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL && .attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL &&
move.id !== Moves.NATURAL_GIFT && move.id !== Moves.JUDGMENT && move.id !== Moves.TECHNO_BLAST), move.id !== Moves.NATURAL_GIFT && move.id !== Moves.JUDGMENT && move.id !== Moves.TECHNO_BLAST),
new Ability(Abilities.SNIPER, 4) new Ability(Abilities.SNIPER, 4)
.unimplemented(), .attr(MultCritAbAttr, 1.5),
new Ability(Abilities.MAGIC_GUARD, 4) new Ability(Abilities.MAGIC_GUARD, 4)
.attr(BlockNonDirectDamageAbAttr), .attr(BlockNonDirectDamageAbAttr),
new Ability(Abilities.NO_GUARD, 4) new Ability(Abilities.NO_GUARD, 4)

View File

@ -391,6 +391,12 @@ export class FrenzyTag extends BattlerTag {
} }
} }
export class ChargingTag extends BattlerTag {
constructor(sourceMove: Moves, sourceId: integer) {
super(BattlerTagType.CHARGING, BattlerTagLapseType.CUSTOM, 1, sourceMove, sourceId);
}
}
export class EncoreTag extends BattlerTag { export class EncoreTag extends BattlerTag {
public moveId: Moves; public moveId: Moves;
@ -1116,6 +1122,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
return new NightmareTag(); return new NightmareTag();
case BattlerTagType.FRENZY: case BattlerTagType.FRENZY:
return new FrenzyTag(sourceMove, sourceId); return new FrenzyTag(sourceMove, sourceId);
case BattlerTagType.CHARGING:
return new ChargingTag(sourceMove, sourceId);
case BattlerTagType.ENCORE: case BattlerTagType.ENCORE:
return new EncoreTag(sourceId); return new EncoreTag(sourceId);
case BattlerTagType.HELPING_HAND: case BattlerTagType.HELPING_HAND:

View File

@ -9,6 +9,7 @@ export enum BattlerTagType {
SEEDED = "SEEDED", SEEDED = "SEEDED",
NIGHTMARE = "NIGHTMARE", NIGHTMARE = "NIGHTMARE",
FRENZY = "FRENZY", FRENZY = "FRENZY",
CHARGING = "CHARGING",
ENCORE = "ENCORE", ENCORE = "ENCORE",
HELPING_HAND = "HELPING_HAND", HELPING_HAND = "HELPING_HAND",
INGRAIN = "INGRAIN", INGRAIN = "INGRAIN",

View File

@ -1325,10 +1325,13 @@ export class ChargeAttr extends OverrideMoveEffectAttr {
user.getMoveQueue().push({ move: move.id, targets: [ target.getBattlerIndex() ], ignorePP: true }); user.getMoveQueue().push({ move: move.id, targets: [ target.getBattlerIndex() ], ignorePP: true });
if (this.sameTurn) if (this.sameTurn)
user.scene.pushMovePhase(new MovePhase(user.scene, user, [ target.getBattlerIndex() ], user.moveset.find(m => m.moveId === move.id), true), this.followUpPriority); user.scene.pushMovePhase(new MovePhase(user.scene, user, [ target.getBattlerIndex() ], user.moveset.find(m => m.moveId === move.id), true), this.followUpPriority);
user.addTag(BattlerTagType.CHARGING, 1, move.id, user.id);
resolve(true); resolve(true);
}); });
} else } else {
user.lapseTag(BattlerTagType.CHARGING);
resolve(false); resolve(false);
}
}); });
} }
@ -1770,13 +1773,13 @@ export class BattleStatRatioPowerAttr extends VariablePowerAttr {
if (this.invert) { if (this.invert) {
// Gyro ball uses a specific formula // Gyro ball uses a specific formula
let userSpeed = user.getStat(this.stat); let userSpeed = user.getBattleStat(this.stat);
if (userSpeed < 1) { if (userSpeed < 1) {
// Gen 6+ always have 1 base power // Gen 6+ always have 1 base power
power.value = 1; power.value = 1;
return true; return true;
} }
let bp = Math.floor(Math.min(150, 25 * target.getStat(this.stat) / userSpeed + 1)); let bp = Math.floor(Math.min(150, 25 * target.getBattleStat(this.stat) / userSpeed + 1));
power.value = bp; power.value = bp;
return true; return true;
} }

View File

@ -28,6 +28,7 @@ import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/ar
import { ArenaTagType } from "../data/enums/arena-tag-type"; import { ArenaTagType } from "../data/enums/arena-tag-type";
import { Biome } from "../data/enums/biome"; import { Biome } from "../data/enums/biome";
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, PreAttackChangeType } from '../data/ability'; import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, PreAttackChangeType } from '../data/ability';
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr } from '../data/ability';
import { Abilities } from "#app/data/enums/abilities"; import { Abilities } from "#app/data/enums/abilities";
import PokemonData from '../system/pokemon-data'; import PokemonData from '../system/pokemon-data';
import Battle, { BattlerIndex } from '../battle'; import Battle, { BattlerIndex } from '../battle';
@ -1333,7 +1334,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
} }
const sourceAtk = new Utils.IntegerHolder(source.getBattleStat(isPhysical ? Stat.ATK : Stat.SPATK, this, null, isCritical)); const sourceAtk = new Utils.IntegerHolder(source.getBattleStat(isPhysical ? Stat.ATK : Stat.SPATK, this, null, isCritical));
const targetDef = new Utils.IntegerHolder(this.getBattleStat(isPhysical ? Stat.DEF : Stat.SPDEF, source, move, isCritical)); const targetDef = new Utils.IntegerHolder(this.getBattleStat(isPhysical ? Stat.DEF : Stat.SPDEF, source, move, isCritical));
const criticalMultiplier = isCritical ? 1.5 : 1; const criticalMultiplier = new Utils.NumberHolder(isCritical ? 1.5 : 1);
applyAbAttrs(MultCritAbAttr, source, null, criticalMultiplier);
const screenMultiplier = new Utils.NumberHolder(1); const screenMultiplier = new Utils.NumberHolder(1);
if (!isCritical) { if (!isCritical) {
this.scene.arena.applyTagsForSide(WeakenMoveScreenTag, this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY, move.category, this.scene.currentBattle.double, screenMultiplier); this.scene.arena.applyTagsForSide(WeakenMoveScreenTag, this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY, move.category, this.scene.currentBattle.double, screenMultiplier);
@ -1356,7 +1358,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
applyMoveAttrs(VariableDefAttr, source, this, move, targetDef); applyMoveAttrs(VariableDefAttr, source, this, move, targetDef);
if (!isTypeImmune) { if (!isTypeImmune) {
damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier); damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier.value);
if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) { if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) {
const burnDamageReductionCancelled = new Utils.BooleanHolder(false); const burnDamageReductionCancelled = new Utils.BooleanHolder(false);
applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled); applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled);
@ -2474,7 +2476,7 @@ export class PlayerPokemon extends Pokemon {
if (newEvolution.condition.predicate(this)) { if (newEvolution.condition.predicate(this)) {
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature); const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature);
newPokemon.natureOverride = this.natureOverride; newPokemon.natureOverride = this.natureOverride;
newPokemon.moveset = this.moveset.slice(); newPokemon.moveset = this.copyMoveset();
newPokemon.luck = this.luck; newPokemon.luck = this.luck;
newPokemon.fusionSpecies = this.fusionSpecies; newPokemon.fusionSpecies = this.fusionSpecies;
@ -2584,6 +2586,15 @@ export class PlayerPokemon extends Pokemon {
this.updateFusionPalette(); this.updateFusionPalette();
}); });
} }
/** Returns a deep copy of this Pokemon's moveset array */
copyMoveset(): PokemonMove[] {
let newMoveset = [];
this.moveset.forEach(move =>
newMoveset.push(new PokemonMove(move.moveId, 0, move.ppUp, move.virtual)));
return newMoveset;
}
} }
export class EnemyPokemon extends Pokemon { export class EnemyPokemon extends Pokemon {

View File

@ -605,208 +605,208 @@ export const pokemon: SimpleTranslationEntries = {
"tynamo": "Zapplardin", "tynamo": "Zapplardin",
"eelektrik": "Zapplalek", "eelektrik": "Zapplalek",
"eelektross": "Zapplarang", "eelektross": "Zapplarang",
"elgyem": "Elgyem", "elgyem": "Pygraulon",
"beheeyem": "Beheeyem", "beheeyem": "Megalon",
"litwick": "Litwick", "litwick": "Lichtel",
"lampent": "Lampent", "lampent": "Laternecto",
"chandelure": "Chandelure", "chandelure": "Skelabra",
"axew": "Axew", "axew": "Milza",
"fraxure": "Fraxure", "fraxure": "Scharfax",
"haxorus": "Haxorus", "haxorus": "Maxax",
"cubchoo": "Cubchoo", "cubchoo": "Petznief",
"beartic": "Beartic", "beartic": "Siberio",
"cryogonal": "Cryogonal", "cryogonal": "Frigometri",
"shelmet": "Shelmet", "shelmet": "Schnuthelm",
"accelgor": "Accelgor", "accelgor": "Hydragil",
"stunfisk": "Stunfisk", "stunfisk": "Flunschlik",
"mienfoo": "Mienfoo", "mienfoo": "Lin-Fu",
"mienshao": "Mienshao", "mienshao": "Wie-Shu",
"druddigon": "Druddigon", "druddigon": "Shardrago",
"golett": "Golett", "golett": "Golbit",
"golurk": "Golurk", "golurk": "Golgantes",
"pawniard": "Pawniard", "pawniard": "Gladiantri",
"bisharp": "Bisharp", "bisharp": "Ceasurio",
"bouffalant": "Bouffalant", "bouffalant": "Bisofank",
"rufflet": "Rufflet", "rufflet": "Geronimatz",
"braviary": "Braviary", "braviary": "Washakwil",
"vullaby": "Vullaby", "vullaby": "Skallyk",
"mandibuzz": "Mandibuzz", "mandibuzz": "Grypheldis",
"heatmor": "Heatmor", "heatmor": "Furnifraß",
"durant": "Durant", "durant": "Fermicula",
"deino": "Deino", "deino": "Kapuno",
"zweilous": "Zweilous", "zweilous": "Duodino",
"hydreigon": "Hydreigon", "hydreigon": "Trikephalo",
"larvesta": "Larvesta", "larvesta": "Ignivor",
"volcarona": "Volcarona", "volcarona": "Ramoth",
"cobalion": "Cobalion", "cobalion": "Kobalium",
"terrakion": "Terrakion", "terrakion": "Terrakium",
"virizion": "Virizion", "virizion": "Viridium",
"tornadus": "Tornadus", "tornadus": "Boreos",
"thundurus": "Thundurus", "thundurus": "Voltolos",
"reshiram": "Reshiram", "reshiram": "Reshiram",
"zekrom": "Zekrom", "zekrom": "Zekrom",
"landorus": "Landorus", "landorus": "Dementeros",
"kyurem": "Kyurem", "kyurem": "Kyurem",
"keldeo": "Keldeo", "keldeo": "Keldeo",
"meloetta": "Meloetta", "meloetta": "Meloetta",
"genesect": "Genesect", "genesect": "Genesect",
"chespin": "Chespin", "chespin": "Igamaro",
"quilladin": "Quilladin", "quilladin": "Igastarnish",
"chesnaught": "Chesnaught", "chesnaught": "Brigaron",
"fennekin": "Fennekin", "fennekin": "Fynx",
"braixen": "Braixen", "braixen": "Rutena",
"delphox": "Delphox", "delphox": "Fennexis",
"froakie": "Froakie", "froakie": "Froxy",
"frogadier": "Frogadier", "frogadier": "Amphizel",
"greninja": "Greninja", "greninja": "Quajutsu",
"bunnelby": "Bunnelby", "bunnelby": "Scoppel",
"diggersby": "Diggersby", "diggersby": "Grebbit",
"fletchling": "Fletchling", "fletchling": "Dartiri",
"fletchinder": "Fletchinder", "fletchinder": "Dartignis",
"talonflame": "Talonflame", "talonflame": "Fiaro",
"scatterbug": "Scatterbug", "scatterbug": "Purmel",
"spewpa": "Spewpa", "spewpa": "Puponcho",
"vivillon": "Vivillon", "vivillon": "Vivillon",
"litleo": "Litleo", "litleo": "Leufeo",
"pyroar": "Pyroar", "pyroar": "Pyroleo",
"flabebe": "Flabébé", "flabebe": "Flabébé",
"floette": "Floette", "floette": "Floette",
"florges": "Florges", "florges": "Florges",
"skiddo": "Skiddo", "skiddo": "Mähikel",
"gogoat": "Gogoat", "gogoat": "Chevrumm",
"pancham": "Pancham", "pancham": "Pam-Pam",
"pangoro": "Pangoro", "pangoro": "Pandrago",
"furfrou": "Furfrou", "furfrou": "Coiffwaff",
"espurr": "Espurr", "espurr": "Psiau",
"meowstic": "Meowstic", "meowstic": "Psiaugon",
"honedge": "Honedge", "honedge": "Gramokles",
"doublade": "Doublade", "doublade": "Duokles",
"aegislash": "Aegislash", "aegislash": "Durengard",
"spritzee": "Spritzee", "spritzee": "Parfi",
"aromatisse": "Aromatisse", "aromatisse": "Parfinesse",
"swirlix": "Swirlix", "swirlix": "Flauschling",
"slurpuff": "Slurpuff", "slurpuff": "Sabbaione",
"inkay": "Inkay", "inkay": "Iscalar",
"malamar": "Malamar", "malamar": "Calamanero",
"binacle": "Binacle", "binacle": "Bithora",
"barbaracle": "Barbaracle", "barbaracle": "Thanathora",
"skrelp": "Skrelp", "skrelp": "Algitt",
"dragalge": "Dragalge", "dragalge": "Tandrak",
"clauncher": "Clauncher", "clauncher": "Scampisto",
"clawitzer": "Clawitzer", "clawitzer": "Wummer",
"helioptile": "Helioptile", "helioptile": "Eguana",
"heliolisk": "Heliolisk", "heliolisk": "Elezard",
"tyrunt": "Tyrunt", "tyrunt": "Balgoras",
"tyrantrum": "Tyrantrum", "tyrantrum": "Monargoras",
"amaura": "Amaura", "amaura": "Amarino",
"aurorus": "Aurorus", "aurorus": "Amagarga",
"sylveon": "Sylveon", "sylveon": "Feelinara",
"hawlucha": "Hawlucha", "hawlucha": "Resladero",
"dedenne": "Dedenne", "dedenne": "Dedenne",
"carbink": "Carbink", "carbink": "Rocara",
"goomy": "Goomy", "goomy": "Viscora",
"sliggoo": "Sliggoo", "sliggoo": "Viscargot",
"goodra": "Goodra", "goodra": "Viscogon",
"klefki": "Klefki", "klefki": "Clavion",
"phantump": "Phantump", "phantump": "Paragoni",
"trevenant": "Trevenant", "trevenant": "Trombork",
"pumpkaboo": "Pumpkaboo", "pumpkaboo": "Irrbis",
"gourgeist": "Gourgeist", "gourgeist": "Pumpdjinn",
"bergmite": "Bergmite", "bergmite": "Arktip",
"avalugg": "Avalugg", "avalugg": "Arktilas",
"noibat": "Noibat", "noibat": "eF-eM",
"noivern": "Noivern", "noivern": "UHaFnir",
"xerneas": "Xerneas", "xerneas": "Xerneas",
"yveltal": "Yveltal", "yveltal": "Yveltal",
"zygarde": "Zygarde", "zygarde": "Zygarde",
"diancie": "Diancie", "diancie": "Diancie",
"hoopa": "Hoopa", "hoopa": "Hoopa",
"volcanion": "Volcanion", "volcanion": "Volcanion",
"rowlet": "Rowlet", "rowlet": "Bauz",
"dartrix": "Dartrix", "dartrix": "Arboretoss",
"decidueye": "Decidueye", "decidueye": "Silvarro",
"litten": "Litten", "litten": "Flamiau",
"torracat": "Torracat", "torracat": "Miezunder",
"incineroar": "Incineroar", "incineroar": "Fuegro",
"popplio": "Popplio", "popplio": "Robball",
"brionne": "Brionne", "brionne": "Marikeck",
"primarina": "Primarina", "primarina": "Primarene",
"pikipek": "Pikipek", "pikipek": "Peppeck",
"trumbeak": "Trumbeak", "trumbeak": "Trompeck",
"toucannon": "Toucannon", "toucannon": "Tukanon",
"yungoos": "Yungoos", "yungoos": "Mangunior",
"gumshoos": "Gumshoos", "gumshoos": "Manguspektor",
"grubbin": "Grubbin", "grubbin": "Mabula",
"charjabug": "Charjabug", "charjabug": "Akkup",
"vikavolt": "Vikavolt", "vikavolt": "Donarion",
"crabrawler": "Crabrawler", "crabrawler": "Krabbox",
"crabominable": "Crabominable", "crabominable": "Krawell",
"oricorio": "Oricorio", "oricorio": "Choreogel",
"cutiefly": "Cutiefly", "cutiefly": "Wommel",
"ribombee": "Ribombee", "ribombee": "Bandelby",
"rockruff": "Rockruff", "rockruff": "Wuffels",
"lycanroc": "Lycanroc", "lycanroc": "Wolwerock",
"wishiwashi": "Wishiwashi", "wishiwashi": "Lusardin",
"mareanie": "Mareanie", "mareanie": "Garstella",
"toxapex": "Toxapex", "toxapex": "Aggrostella",
"mudbray": "Mudbray", "mudbray": "Pampuli",
"mudsdale": "Mudsdale", "mudsdale": "Pampross",
"dewpider": "Dewpider", "dewpider": "Araqua",
"araquanid": "Araquanid", "araquanid": "Aranestro",
"fomantis": "Fomantis", "fomantis": "Imantis",
"lurantis": "Lurantis", "lurantis": "Mantidea",
"morelull": "Morelull", "morelull": "Bubungus",
"shiinotic": "Shiinotic", "shiinotic": "Lamellus",
"salandit": "Salandit", "salandit": "Molunk",
"salazzle": "Salazzle", "salazzle": "Amfira",
"stufful": "Stufful", "stufful": "Velursi",
"bewear": "Bewear", "bewear": "Kosturso",
"bounsweet": "Bounsweet", "bounsweet": "Frubberl",
"steenee": "Steenee", "steenee": "Frubaila",
"tsareena": "Tsareena", "tsareena": "Fruyal",
"comfey": "Comfey", "comfey": "Curelei",
"oranguru": "Oranguru", "oranguru": "Kommandutan",
"passimian": "Passimian", "passimian": "Quartermak",
"wimpod": "Wimpod", "wimpod": "Reißlaus",
"golisopod": "Golisopod", "golisopod": "Tectass",
"sandygast": "Sandygast", "sandygast": "Sankabuh",
"palossand": "Palossand", "palossand": "Colossand",
"pyukumuku": "Pyukumuku", "pyukumuku": "Gufa",
"type_null": "Type: Null", "type_null": "Typ:Null",
"silvally": "Silvally", "silvally": "Amigento",
"minior": "Minior", "minior": "Meteno",
"komala": "Komala", "komala": "Koalelu",
"turtonator": "Turtonator", "turtonator": "Turtonator",
"togedemaru": "Togedemaru", "togedemaru": "Togedemaru",
"mimikyu": "Mimikyu", "mimikyu": "Mimigma",
"bruxish": "Bruxish", "bruxish": "Knirfish",
"drampa": "Drampa", "drampa": "Sen-Long",
"dhelmise": "Dhelmise", "dhelmise": "Moruda",
"jangmo_o": "Jangmo-o", "jangmo_o": "Miniras",
"hakamo_o": "Hakamo-o", "hakamo_o": "Mediras",
"kommo_o": "Kommo-o", "kommo_o": "Grandiras",
"tapu_koko": "Tapu Koko", "tapu_koko": "Kapu-Riki",
"tapu_lele": "Tapu Lele", "tapu_lele": "Kapu-Fala",
"tapu_bulu": "Tapu Bulu", "tapu_bulu": "Kapu-Toro",
"tapu_fini": "Tapu Fini", "tapu_fini": "Kapu-Kime",
"cosmog": "Cosmog", "cosmog": "Cosmog",
"cosmoem": "Cosmoem", "cosmoem": "Cosmovum",
"solgaleo": "Solgaleo", "solgaleo": "Solgaleo",
"lunala": "Lunala", "lunala": "Lunala",
"nihilego": "Nihilego", "nihilego": "Anego",
"buzzwole": "Buzzwole", "buzzwole": "Masskito",
"pheromosa": "Pheromosa", "pheromosa": "Schabelle",
"xurkitree": "Xurkitree", "xurkitree": "Voltriant",
"celesteela": "Celesteela", "celesteela": "Kaguron",
"kartana": "Kartana", "kartana": "Katagami",
"guzzlord": "Guzzlord", "guzzlord": "Schlingking",
"necrozma": "Necrozma", "necrozma": "Necrozma",
"magearna": "Magearna", "magearna": "Magearna",
"marshadow": "Marshadow", "marshadow": "Marshadow",
"poipole": "Poipole", "poipole": "Venicro",
"naganadel": "Naganadel", "naganadel": "Agoyon",
"stakataka": "Stakataka", "stakataka": "Muramura",
"blacephalon": "Blacephalon", "blacephalon": "Kopplosio",
"zeraora": "Zeraora", "zeraora": "Zeraora",
"meltan": "Meltan", "meltan": "Meltan",
"melmetal": "Melmetal", "melmetal": "Melmetal",

View File

@ -13,9 +13,9 @@ export const menuUiHandler: SimpleTranslationEntries = {
"LOG_OUT": "Déconnexion", "LOG_OUT": "Déconnexion",
"slot": "Emplacement {{slotNumber}}", "slot": "Emplacement {{slotNumber}}",
"importSession": "Importer session", "importSession": "Importer session",
"importSlotSelect": "Sélectionnez l'emplacement vers lequel importer les données.", "importSlotSelect": "Sélectionnez lemplacement vers lequel importer les données.",
"exportSession": "Exporter session", "exportSession": "Exporter session",
"exportSlotSelect": "Sélectionnez l'emplacement depuis lequel exporter les données.", "exportSlotSelect": "Sélectionnez lemplacement depuis lequel exporter les données.",
"importData": "Importer données", "importData": "Importer données",
"exportData": "Exporter données", "exportData": "Exporter données",
"cancel": "Retour", "cancel": "Retour",

View File

@ -1686,6 +1686,8 @@ export class CommandPhase extends FieldPhase {
console.log(moveTargets, playerPokemon.name); console.log(moveTargets, playerPokemon.name);
if (moveTargets.targets.length <= 1 || moveTargets.multiple) if (moveTargets.targets.length <= 1 || moveTargets.multiple)
turnCommand.move.targets = moveTargets.targets; turnCommand.move.targets = moveTargets.targets;
else if(playerPokemon.getTag(BattlerTagType.CHARGING) && playerPokemon.getMoveQueue().length >= 1)
turnCommand.move.targets = playerPokemon.getMoveQueue()[0].targets;
else else
this.scene.unshiftPhase(new SelectTargetPhase(this.scene, this.fieldIndex)); this.scene.unshiftPhase(new SelectTargetPhase(this.scene, this.fieldIndex));
this.scene.currentBattle.turnCommands[this.fieldIndex] = turnCommand; this.scene.currentBattle.turnCommands[this.fieldIndex] = turnCommand;
@ -2327,13 +2329,14 @@ export class MovePhase extends BattlePhase {
showMoveText(): void { showMoveText(): void {
if (this.move.getMove().getAttrs(ChargeAttr).length) { if (this.move.getMove().getAttrs(ChargeAttr).length) {
this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500);
const lastMove = this.pokemon.getLastXMoves() as TurnMove[]; const lastMove = this.pokemon.getLastXMoves() as TurnMove[];
if (!lastMove.length || lastMove[0].move !== this.move.getMove().id || lastMove[0].result !== MoveResult.OTHER) if (!lastMove.length || lastMove[0].move !== this.move.getMove().id || lastMove[0].result !== MoveResult.OTHER){
this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500);
return; return;
}
} }
if (this.pokemon.getTag(BattlerTagType.RECHARGING|| BattlerTagType.INTERRUPTED)) if (this.pokemon.getTag(BattlerTagType.RECHARGING || BattlerTagType.INTERRUPTED))
return; return;
this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500); this.scene.queueMessage(getPokemonMessage(this.pokemon, ` used\n${this.move.getName()}!`), 500);

View File

@ -1060,7 +1060,7 @@ export class GameData {
this.gameStats.shinyPokemonHatched++; this.gameStats.shinyPokemonHatched++;
} }
if (!hasPrevolution && (!pokemon.scene.gameMode.isDaily || hasNewAttr)) if (!hasPrevolution && (!pokemon.scene.gameMode.isDaily || hasNewAttr || fromEgg))
this.addStarterCandy(species, (1 * (pokemon.isShiny() ? 5 * Math.pow(2, pokemon.variant || 0) : 1)) * (fromEgg || pokemon.isBoss() ? 2 : 1)); this.addStarterCandy(species, (1 * (pokemon.isShiny() ? 5 * Math.pow(2, pokemon.variant || 0) : 1)) * (fromEgg || pokemon.isBoss() ? 2 : 1));
} }