Skip to content

Commit

Permalink
fix(evolution): Fix Attack Evolution & rename to PokemonAttackRequire…
Browse files Browse the repository at this point in the history
…ment (pokeclicker#5627)

* Fix it

* eslint

* Fix hint

* Rename requirement

* Made it more modular

* eslint

---------

Co-authored-by: CypherX <[email protected]>
  • Loading branch information
RedzepR and CypherX authored Nov 8, 2024
1 parent f5a54b9 commit 090626c
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 28 deletions.
6 changes: 3 additions & 3 deletions src/modules/pokemons/evolutions/Restrictions.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GameState, Region, Environment, MegaStoneType } from '../../GameConstants';
import { GameState, Region, Environment, MegaStoneType, AchievementOption } from '../../GameConstants';
import { ItemNameType } from '../../items/ItemNameType';
import { QuestLineNameType } from '../../quests/QuestLineNameType';
import GameStateRequirement from '../../requirements/GameStateRequirement';
Expand All @@ -16,7 +16,7 @@ import MegaEvolveRequirement from '../../requirements/MegaEvolveRequirement';
import { EvoData, restrict } from './Base';
import DayCyclePart from '../../dayCycle/DayCyclePart';
import MoonCyclePhase from '../../moonCycle/MoonCyclePhase';
import AttackEvolveRequirement from '../../requirements/AttackEvolveRequirement';
import PokemonAttackRequirement from '../../requirements/PokemonAttackRequirement';

export type EvoFn = (...args: unknown[]) => EvoData;

Expand Down Expand Up @@ -136,7 +136,7 @@ export const attackRestrict = <T extends EvoFn>(evo: T) => (
const data = evo(...rest);
return restrict(
data,
new AttackEvolveRequirement(data.basePokemon, attackMultiplier),
new PokemonAttackRequirement(data.basePokemon, attackMultiplier, AchievementOption.more),
);

};
25 changes: 0 additions & 25 deletions src/modules/requirements/AttackEvolveRequirement.ts

This file was deleted.

36 changes: 36 additions & 0 deletions src/modules/requirements/PokemonAttackRequirement.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { AchievementOption } from '../GameConstants';
import { pokemonMap } from '../pokemons/PokemonList';
import { PokemonNameType } from '../pokemons/PokemonNameType';
import Requirement from './Requirement';

export default class PokemonAttackRequirement extends Requirement {
constructor(public pokemon: PokemonNameType, attackMultiplier: number, option: AchievementOption) {
super(attackMultiplier, option);
}

getProgress(): number {
const partyPokemon = App.game.party.getPokemonByName(this.pokemon);
const partyPokemonAttackRatio = Math.trunc(partyPokemon?.attack / pokemonMap[this.pokemon].attack);

switch (this.option) {
case AchievementOption.less:
case AchievementOption.more: return Math.min(partyPokemonAttackRatio, this.requiredValue);
case AchievementOption.equal:
default: return partyPokemonAttackRatio;
}


}

hint(): string {
if (this.getProgress() == this.requiredValue) {
return 'Level up to evolve.';
} else {
const attackRequired = pokemonMap[this.pokemon].attack * this.requiredValue;
const comparisonOperator = this.option === AchievementOption.less ? 'less than' :
this.option === AchievementOption.more ? 'more than' :
'exactly';
return `${this.pokemon} needs ${comparisonOperator} ${attackRequired.toLocaleString('en-US')} attack.`;
}
}
}
2 changes: 2 additions & 0 deletions src/modules/temporaryWindowInjection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ import UndergroundLevelRequirement from './requirements/UndergroundLevelRequirem
import UndergroundUseToolRequirement from './requirements/UndergroundUseToolRequirement';
import WeatherRequirement from './requirements/WeatherRequirement';
import MegaEvolveRequirement from './requirements/MegaEvolveRequirement';
import PokemonAttackRequirement from './requirements/PokemonAttackRequirement';
import { SortModules, SortSaves } from './Sortable';
import KeyItemController from './keyItems/KeyItemController';
import KeyItem from './keyItems/KeyItem';
Expand Down Expand Up @@ -362,6 +363,7 @@ Object.assign(<any>window, {
UndergroundUseToolRequirement,
WeatherRequirement,
MegaEvolveRequirement,
PokemonAttackRequirement,
SortModules,
SortSaves,
KeyItemController,
Expand Down

0 comments on commit 090626c

Please sign in to comment.