Merge branch 'main' into move/stockpile
commit
43d46c07bf
|
@ -146,14 +146,14 @@
|
|||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 3,
|
||||
"h": 3
|
||||
"w": 66,
|
||||
"h": 55
|
||||
},
|
||||
"frame": {
|
||||
"x": 132,
|
||||
"y": 0,
|
||||
"w": 3,
|
||||
"h": 3
|
||||
"x": 0,
|
||||
"y": 112,
|
||||
"w": 66,
|
||||
"h": 55
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -3453,7 +3453,8 @@ export function initAbilities() {
|
|||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(NoTransformAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr),
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.condition((pokemon) => !pokemon.isTerastallized()),
|
||||
new Ability(Abilities.QUICK_DRAW, 8)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.UNSEEN_FIST, 8)
|
||||
|
|
|
@ -2526,6 +2526,27 @@ export class HiddenPowerTypeAttr extends VariableMoveTypeAttr {
|
|||
}
|
||||
}
|
||||
|
||||
export class MatchUserTypeAttr extends VariableMoveTypeAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
const type = (args[0] as Utils.IntegerHolder);
|
||||
|
||||
const userTypes = user.getTypes(true);
|
||||
|
||||
if(userTypes.includes(Type.STELLAR)) { // will not change to stellar type
|
||||
const nonTeraTypes = user.getTypes();
|
||||
type.value = nonTeraTypes[0];
|
||||
return true;
|
||||
}
|
||||
else if (userTypes.length > 0) {
|
||||
type.value = userTypes[0];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export class VariableMoveTypeMultiplierAttr extends MoveAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
return false;
|
||||
|
@ -5980,7 +6001,7 @@ export function initMoves() {
|
|||
.unimplemented(),
|
||||
new AttackMove(Moves.REVELATION_DANCE, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 7)
|
||||
.danceMove()
|
||||
.partial(),
|
||||
.attr(MatchUserTypeAttr),
|
||||
new AttackMove(Moves.CORE_ENFORCER, Type.DRAGON, MoveCategory.SPECIAL, 100, 100, 10, -1, 0, 7)
|
||||
.target(MoveTarget.ALL_NEAR_ENEMIES)
|
||||
.partial(),
|
||||
|
|
|
@ -778,9 +778,16 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
types.splice(flyingIndex, 1);
|
||||
}
|
||||
|
||||
if (!types.length)
|
||||
if (!types.length) // become UNKNOWN if no types are present
|
||||
types.push(Type.UNKNOWN);
|
||||
|
||||
if (types.length > 1 && types.includes(Type.UNKNOWN)) { // remove UNKNOWN if other types are present
|
||||
const index = types.indexOf(Type.UNKNOWN);
|
||||
if (index !== -1) {
|
||||
types.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return types;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ export const battle: SimpleTranslationEntries = {
|
|||
"attackHitsCount": `Touché {{count}} fois !`,
|
||||
"expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
|
||||
"levelUp": "{{pokemonName}} monte au\nN. {{level}} !",
|
||||
"learnMove": "{{pokemonName}} apprend \n{{moveName}} !",
|
||||
"learnMove": "{{pokemonName}} apprend\n{{moveName}} !",
|
||||
"learnMovePrompt": "{{pokemonName}} veut apprendre\n{{moveName}}.",
|
||||
"learnMoveLimitReached": "Cependant, {{pokemonName}} connait\ndéjà quatre capacités.",
|
||||
"learnMoveReplaceQuestion": "Voulez-vous oublier une capacité\net la remplacer par {{moveName}} ?",
|
||||
|
@ -33,7 +33,7 @@ export const battle: SimpleTranslationEntries = {
|
|||
"learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
|
||||
"levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
|
||||
"moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
|
||||
"moveNoPP": "There's no PP left for\nthis move!",
|
||||
"moveNoPP": "Il n’y a plus de PP pour\ncette capacité !",
|
||||
"moveDisabled": "{{moveName}} est sous entrave !",
|
||||
"noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
|
||||
"noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { expect, describe, it } from "vitest";
|
||||
import { randomString } from "./utils";
|
||||
import { randomString, padInt } from "./utils";
|
||||
|
||||
import Phaser from "phaser";
|
||||
|
||||
|
@ -19,4 +19,26 @@ describe("utils", () => {
|
|||
expect(str1).toBe(str2);
|
||||
});
|
||||
});
|
||||
|
||||
describe("padInt", () => {
|
||||
it("should return a string", () => {
|
||||
const result = padInt(1, 10);
|
||||
expect(typeof result).toBe('string');
|
||||
});
|
||||
|
||||
it("should return a padded result with default padWith", () => {
|
||||
const result = padInt(1, 3);
|
||||
expect(result).toBe('001');
|
||||
});
|
||||
|
||||
it("should return a padded result using a custom padWith", () => {
|
||||
const result = padInt(1, 10, 'yes')
|
||||
expect(result).toBe('yesyesyes1');
|
||||
});
|
||||
|
||||
it("should return inputted value when zero length is entered", () => {
|
||||
const result = padInt(1, 0);
|
||||
expect(result).toBe('1')
|
||||
})
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue