mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-01 05:52:17 +02:00
Clamperl
This commit is contained in:
parent
459d43c3bf
commit
4707f32e73
@ -12,7 +12,7 @@ import { Species } from "#enums/species";
|
|||||||
import { TimeOfDay } from "#enums/time-of-day";
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
import { EvoTrackerModifier, EvoTrackerMoveUseModifier, EvoTrackerRecoilModifier, SpeciesStatBoosterModifier, PersistentModifier} from "#app/modifier/modifier";
|
import { EvoTrackerModifier, EvoTrackerMoveUseModifier, EvoTrackerRecoilModifier, SpeciesStatBoosterModifier, PersistentModifier} from "#app/modifier/modifier";
|
||||||
import { SpeciesFormKey } from "#enums/species-form-key";
|
import { SpeciesFormKey } from "#enums/species-form-key";
|
||||||
import type { SpeciesStatBoosterModifierType } from "#app/modifier/modifier-type";
|
import type { ModifierTypeKeys, SpeciesStatBoosterItem, SpeciesStatBoosterModifierType } from "#app/modifier/modifier-type";
|
||||||
import { speciesStarterCosts } from "./starters";
|
import { speciesStarterCosts } from "./starters";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { allMoves } from "#app/data/data-lists";
|
import { allMoves } from "#app/data/data-lists";
|
||||||
@ -101,6 +101,7 @@ export enum EvoCondKey {
|
|||||||
NATURE,
|
NATURE,
|
||||||
MOVE_USE_COUNT,
|
MOVE_USE_COUNT,
|
||||||
RECOIL_DAMAGE_COUNT,
|
RECOIL_DAMAGE_COUNT,
|
||||||
|
HELD_ITEM, // Currently checks only for species stat booster items
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface EvolutionConditionData {
|
export interface EvolutionConditionData {
|
||||||
@ -117,6 +118,7 @@ export interface EvolutionConditionData {
|
|||||||
speciesCaught?: Species;
|
speciesCaught?: Species;
|
||||||
gender?: Gender;
|
gender?: Gender;
|
||||||
nature?: Nature[];
|
nature?: Nature[];
|
||||||
|
itemKey?: SpeciesStatBoosterItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SpeciesEvolutionCondition {
|
export class SpeciesEvolutionCondition {
|
||||||
@ -142,7 +144,8 @@ export class SpeciesEvolutionCondition {
|
|||||||
(cond === EvoCondKey.RANDOM_FORM && isNullOrUndefined(this.data.randomFormChance)) ||
|
(cond === EvoCondKey.RANDOM_FORM && isNullOrUndefined(this.data.randomFormChance)) ||
|
||||||
(cond === EvoCondKey.GENDER && isNullOrUndefined(this.data.gender)) ||
|
(cond === EvoCondKey.GENDER && isNullOrUndefined(this.data.gender)) ||
|
||||||
(cond === EvoCondKey.SPECIES_CAUGHT && isNullOrUndefined(this.data.speciesCaught)) ||
|
(cond === EvoCondKey.SPECIES_CAUGHT && isNullOrUndefined(this.data.speciesCaught)) ||
|
||||||
(cond === EvoCondKey.MOVE_USE_COUNT && (isNullOrUndefined(this.data.move) || isNullOrUndefined(this.data.evoCount)))
|
(cond === EvoCondKey.MOVE_USE_COUNT && (isNullOrUndefined(this.data.move) || isNullOrUndefined(this.data.evoCount))) ||
|
||||||
|
(cond === EvoCondKey.HELD_ITEM && (isNullOrUndefined(this.data.itemKey) || this.data.itemKey.length === 0))
|
||||||
) {
|
) {
|
||||||
console.log("Error! Missing data for evo condition: ", EvoCondKey[cond]);
|
console.log("Error! Missing data for evo condition: ", EvoCondKey[cond]);
|
||||||
}
|
}
|
||||||
@ -197,6 +200,9 @@ export class SpeciesEvolutionCondition {
|
|||||||
case EvoCondKey.RECOIL_DAMAGE_COUNT:
|
case EvoCondKey.RECOIL_DAMAGE_COUNT:
|
||||||
str.push(i18next.t("pokemonEvolutions:recoil"));
|
str.push(i18next.t("pokemonEvolutions:recoil"));
|
||||||
break;
|
break;
|
||||||
|
case EvoCondKey.HELD_ITEM:
|
||||||
|
str.push(i18next.t("pokemonEvolutions:heldItem"));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return str.join(i18next.t("pokemonEvolutions:connector"));
|
return str.join(i18next.t("pokemonEvolutions:connector"));
|
||||||
@ -246,6 +252,8 @@ export class SpeciesEvolutionCondition {
|
|||||||
m.getStackCount() >= this.data.evoCount!);
|
m.getStackCount() >= this.data.evoCount!);
|
||||||
case EvoCondKey.RECOIL_DAMAGE_COUNT:
|
case EvoCondKey.RECOIL_DAMAGE_COUNT:
|
||||||
return pokemon.getHeldItems().some(m => m instanceof EvoTrackerRecoilModifier && m.getStackCount() >= this.data.evoCount!);
|
return pokemon.getHeldItems().some(m => m instanceof EvoTrackerRecoilModifier && m.getStackCount() >= this.data.evoCount!);
|
||||||
|
case EvoCondKey.HELD_ITEM:
|
||||||
|
return pokemon.getHeldItems().some(m => m instanceof SpeciesStatBoosterModifier && (m.type as SpeciesStatBoosterModifierType).key === this.data.itemKey!)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1785,9 +1793,8 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
|||||||
new SpeciesEvolution(Species.DUSKNOIR, 1, EvolutionItem.REAPER_CLOTH, null, SpeciesWildEvolutionDelay.VERY_LONG)
|
new SpeciesEvolution(Species.DUSKNOIR, 1, EvolutionItem.REAPER_CLOTH, null, SpeciesWildEvolutionDelay.VERY_LONG)
|
||||||
],
|
],
|
||||||
[Species.CLAMPERL]: [
|
[Species.CLAMPERL]: [
|
||||||
// TODO: Change the SpeciesEvolutionConditions here to use a bespoke HeldItemEvolutionCondition after the modifier rework
|
new SpeciesEvolution(Species.HUNTAIL, 1, EvolutionItem.LINKING_CORD, {key: EvoCondKey.HELD_ITEM, itemKey: "DEEP_SEA_TOOTH"}, SpeciesWildEvolutionDelay.VERY_LONG),
|
||||||
new SpeciesEvolution(Species.HUNTAIL, 1, EvolutionItem.LINKING_CORD, {}, SpeciesWildEvolutionDelay.VERY_LONG),
|
new SpeciesEvolution(Species.GOREBYSS, 1, EvolutionItem.LINKING_CORD, {key: EvoCondKey.HELD_ITEM, itemKey: "DEEP_SEA_SCALE"}, SpeciesWildEvolutionDelay.VERY_LONG)
|
||||||
new SpeciesEvolution(Species.GOREBYSS, 1, EvolutionItem.LINKING_CORD, {}, SpeciesWildEvolutionDelay.VERY_LONG)
|
|
||||||
],
|
],
|
||||||
[Species.BOLDORE]: [
|
[Species.BOLDORE]: [
|
||||||
new SpeciesEvolution(Species.GIGALITH, 1, EvolutionItem.LINKING_CORD, null, SpeciesWildEvolutionDelay.VERY_LONG)
|
new SpeciesEvolution(Species.GIGALITH, 1, EvolutionItem.LINKING_CORD, null, SpeciesWildEvolutionDelay.VERY_LONG)
|
||||||
|
Loading…
Reference in New Issue
Block a user