mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-17 05:42:18 +02:00
Simplify Gimmighoul evolution
This commit is contained in:
parent
446849636d
commit
c645c42795
@ -10,7 +10,7 @@ import { Biome } from "#enums/biome";
|
|||||||
import { Moves } from "#enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
import { TimeOfDay } from "#enums/time-of-day";
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
import { DamageMoneyRewardModifier, ExtraModifierModifier, MoneyMultiplierModifier, TempExtraModifierModifier } from "#app/modifier/modifier";
|
import { DamageMoneyRewardModifier, EvoTrackerModifier, ExtraModifierModifier, MoneyMultiplierModifier, TempExtraModifierModifier } from "#app/modifier/modifier";
|
||||||
import { SpeciesFormKey } from "#enums/species-form-key";
|
import { SpeciesFormKey } from "#enums/species-form-key";
|
||||||
import { speciesStarterCosts } from "./starters";
|
import { speciesStarterCosts } from "./starters";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@ -95,7 +95,7 @@ export enum EvoCondKey {
|
|||||||
BIOME,
|
BIOME,
|
||||||
TYROGUE,
|
TYROGUE,
|
||||||
SHEDINJA,
|
SHEDINJA,
|
||||||
EVO_COUNTER,
|
EVO_TREASURE_TRACKER,
|
||||||
RANDOM_FORM,
|
RANDOM_FORM,
|
||||||
SPECIES_CAUGHT,
|
SPECIES_CAUGHT,
|
||||||
GENDER,
|
GENDER,
|
||||||
@ -137,7 +137,7 @@ export class SpeciesEvolutionCondition {
|
|||||||
(cond === EvoCondKey.MOVE_TYPE && isNullOrUndefined(this.data.moveType)) ||
|
(cond === EvoCondKey.MOVE_TYPE && isNullOrUndefined(this.data.moveType)) ||
|
||||||
(cond === EvoCondKey.PARTY_TYPE && isNullOrUndefined(this.data.partyType)) ||
|
(cond === EvoCondKey.PARTY_TYPE && isNullOrUndefined(this.data.partyType)) ||
|
||||||
(cond === EvoCondKey.GENDER && isNullOrUndefined(this.data.gender)) ||
|
(cond === EvoCondKey.GENDER && isNullOrUndefined(this.data.gender)) ||
|
||||||
(cond === EvoCondKey.EVO_COUNTER && isNullOrUndefined(this.data.evoCount)) ||
|
(cond === EvoCondKey.EVO_TREASURE_TRACKER && isNullOrUndefined(this.data.evoCount)) ||
|
||||||
(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))
|
||||||
@ -183,7 +183,7 @@ export class SpeciesEvolutionCondition {
|
|||||||
case EvoCondKey.SHEDINJA:
|
case EvoCondKey.SHEDINJA:
|
||||||
str.push(i18next.t("pokemonEvolutions:shedinja"));
|
str.push(i18next.t("pokemonEvolutions:shedinja"));
|
||||||
break;
|
break;
|
||||||
case EvoCondKey.EVO_COUNTER:
|
case EvoCondKey.EVO_TREASURE_TRACKER:
|
||||||
str.push(i18next.t("pokemonEvolutions:treasure"));
|
str.push(i18next.t("pokemonEvolutions:treasure"));
|
||||||
break;
|
break;
|
||||||
case EvoCondKey.SPECIES_CAUGHT:
|
case EvoCondKey.SPECIES_CAUGHT:
|
||||||
@ -209,14 +209,8 @@ export class SpeciesEvolutionCondition {
|
|||||||
return pokemon.moveset.some(m => m.getMove().type === this.data.moveType);
|
return pokemon.moveset.some(m => m.getMove().type === this.data.moveType);
|
||||||
case EvoCondKey.PARTY_TYPE:
|
case EvoCondKey.PARTY_TYPE:
|
||||||
return !!globalScene.getPlayerParty().find(p => p.getTypes(false, false, true).indexOf(this.data.partyType!) > -1)
|
return !!globalScene.getPlayerParty().find(p => p.getTypes(false, false, true).indexOf(this.data.partyType!) > -1)
|
||||||
case EvoCondKey.EVO_COUNTER:
|
case EvoCondKey.EVO_TREASURE_TRACKER:
|
||||||
return pokemon.evoCounter
|
return pokemon.getHeldItems().some(m => m instanceof EvoTrackerModifier && m.getStackCount() >= this.data.evoCount!);
|
||||||
+ pokemon.getHeldItems().filter(m => m instanceof DamageMoneyRewardModifier).length
|
|
||||||
+ globalScene.findModifiers(m =>
|
|
||||||
m instanceof MoneyMultiplierModifier
|
|
||||||
|| m instanceof ExtraModifierModifier
|
|
||||||
|| m instanceof TempExtraModifierModifier
|
|
||||||
).length >= this.data.evoCount!;
|
|
||||||
case EvoCondKey.GENDER:
|
case EvoCondKey.GENDER:
|
||||||
return pokemon.gender === this.data.gender;
|
return pokemon.gender === this.data.gender;
|
||||||
case EvoCondKey.SHEDINJA: // Shedinja cannot be evolved into directly
|
case EvoCondKey.SHEDINJA: // Shedinja cannot be evolved into directly
|
||||||
@ -1865,8 +1859,8 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
|||||||
new SpeciesEvolution(Species.FROSMOTH, 1, null, {key: [EvoCondKey.FRIENDSHIP, EvoCondKey.TIME], friendship: 90, time: [TimeOfDay.DUSK, TimeOfDay.NIGHT]}, SpeciesWildEvolutionDelay.MEDIUM)
|
new SpeciesEvolution(Species.FROSMOTH, 1, null, {key: [EvoCondKey.FRIENDSHIP, EvoCondKey.TIME], friendship: 90, time: [TimeOfDay.DUSK, TimeOfDay.NIGHT]}, SpeciesWildEvolutionDelay.MEDIUM)
|
||||||
],
|
],
|
||||||
[Species.GIMMIGHOUL]: [
|
[Species.GIMMIGHOUL]: [
|
||||||
new SpeciesFormEvolution(Species.GHOLDENGO, "chest", "", 1, null, {key: EvoCondKey.EVO_COUNTER, evoCount: 10}, SpeciesWildEvolutionDelay.VERY_LONG),
|
new SpeciesFormEvolution(Species.GHOLDENGO, "chest", "", 1, null, {key: EvoCondKey.EVO_TREASURE_TRACKER, evoCount: 10}, SpeciesWildEvolutionDelay.VERY_LONG),
|
||||||
new SpeciesFormEvolution(Species.GHOLDENGO, "roaming", "", 1, null, {key: EvoCondKey.EVO_COUNTER, evoCount: 10}, SpeciesWildEvolutionDelay.VERY_LONG)
|
new SpeciesFormEvolution(Species.GHOLDENGO, "roaming", "", 1, null, {key: EvoCondKey.EVO_TREASURE_TRACKER, evoCount: 10}, SpeciesWildEvolutionDelay.VERY_LONG)
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1896,7 +1896,7 @@ export const modifierTypes = {
|
|||||||
new PokemonHeldItemModifierType(
|
new PokemonHeldItemModifierType(
|
||||||
"modifierType:ModifierType.EVOLUTION_TRACKER_GIMMIGHOUL",
|
"modifierType:ModifierType.EVOLUTION_TRACKER_GIMMIGHOUL",
|
||||||
"relic_gold",
|
"relic_gold",
|
||||||
(type, args) => new EvoTrackerModifier(type, (args[0] as Pokemon).id, Species.GIMMIGHOUL, 10),
|
(type, args) => new EvoTrackerModifier(type, (args[0] as Pokemon).id, Species.GIMMIGHOUL, 10, (args[1] as number ?? 1)),
|
||||||
),
|
),
|
||||||
|
|
||||||
MEGA_BRACELET: () =>
|
MEGA_BRACELET: () =>
|
||||||
|
@ -895,24 +895,19 @@ export class EvoTrackerModifier extends PokemonHeldItemModifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getIconStackText(virtual?: boolean): Phaser.GameObjects.BitmapText | null {
|
getIconStackText(virtual?: boolean): Phaser.GameObjects.BitmapText | null {
|
||||||
if (this.getMaxStackCount() === 1 || (virtual && !this.virtualStackCount)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const pokemon = globalScene.getPokemonById(this.pokemonId);
|
const pokemon = globalScene.getPokemonById(this.pokemonId);
|
||||||
|
|
||||||
this.stackCount = pokemon
|
this.virtualStackCount = pokemon
|
||||||
? pokemon.evoCounter +
|
? pokemon.getHeldItems().filter(m => m instanceof DamageMoneyRewardModifier).length +
|
||||||
pokemon.getHeldItems().filter(m => m instanceof DamageMoneyRewardModifier).length +
|
|
||||||
globalScene.findModifiers(
|
globalScene.findModifiers(
|
||||||
m =>
|
m =>
|
||||||
m instanceof MoneyMultiplierModifier ||
|
m instanceof MoneyMultiplierModifier ||
|
||||||
m instanceof ExtraModifierModifier ||
|
m instanceof ExtraModifierModifier ||
|
||||||
m instanceof TempExtraModifierModifier,
|
m instanceof TempExtraModifierModifier,
|
||||||
).length
|
).length
|
||||||
: this.stackCount;
|
: 0;
|
||||||
|
|
||||||
const text = globalScene.add.bitmapText(10, 15, "item-count", this.stackCount.toString(), 11);
|
const text = globalScene.add.bitmapText(10, 15, "item-count", this.getStackCount().toString(), 11);
|
||||||
text.letterSpacing = -0.5;
|
text.letterSpacing = -0.5;
|
||||||
if (this.getStackCount() >= this.required) {
|
if (this.getStackCount() >= this.required) {
|
||||||
text.setTint(0xf89890);
|
text.setTint(0xf89890);
|
||||||
@ -2905,11 +2900,10 @@ export class MoneyRewardModifier extends ConsumableModifier {
|
|||||||
|
|
||||||
globalScene.getPlayerParty().map(p => {
|
globalScene.getPlayerParty().map(p => {
|
||||||
if (p.species?.speciesId === Species.GIMMIGHOUL || p.fusionSpecies?.speciesId === Species.GIMMIGHOUL) {
|
if (p.species?.speciesId === Species.GIMMIGHOUL || p.fusionSpecies?.speciesId === Species.GIMMIGHOUL) {
|
||||||
p.evoCounter
|
const factor = Math.min(Math.floor(this.moneyMultiplier), 3);
|
||||||
? (p.evoCounter += Math.min(Math.floor(this.moneyMultiplier), 3))
|
|
||||||
: (p.evoCounter = Math.min(Math.floor(this.moneyMultiplier), 3));
|
|
||||||
const modifier = getModifierType(modifierTypes.EVOLUTION_TRACKER_GIMMIGHOUL).newModifier(
|
const modifier = getModifierType(modifierTypes.EVOLUTION_TRACKER_GIMMIGHOUL).newModifier(
|
||||||
p,
|
p,
|
||||||
|
factor
|
||||||
) as EvoTrackerModifier;
|
) as EvoTrackerModifier;
|
||||||
globalScene.addModifier(modifier);
|
globalScene.addModifier(modifier);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user