mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2024-11-29 18:26:09 +00:00
Fix attack type boosters applying universally and buff Soul Dew
This commit is contained in:
parent
925bb73f0b
commit
e76fa25bc8
@ -1,6 +1,7 @@
|
|||||||
import { Stat, getStatName } from "./pokemon-stat";
|
import { Stat, getStatName } from "./pokemon-stat";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TextStyle, getBBCodeFrag } from "../ui/text";
|
import { TextStyle, getBBCodeFrag } from "../ui/text";
|
||||||
|
import { UiTheme } from "#app/enums/ui-theme";
|
||||||
|
|
||||||
export enum Nature {
|
export enum Nature {
|
||||||
HARDY,
|
HARDY,
|
||||||
@ -30,7 +31,7 @@ export enum Nature {
|
|||||||
QUIRKY
|
QUIRKY
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getNatureName(nature: Nature, includeStatEffects: boolean = false, forStarterSelect: boolean = false, ignoreBBCode: boolean = false): string {
|
export function getNatureName(nature: Nature, includeStatEffects: boolean = false, forStarterSelect: boolean = false, ignoreBBCode: boolean = false, uiTheme: UiTheme = UiTheme.DEFAULT): string {
|
||||||
let ret = Utils.toReadableString(Nature[nature]);
|
let ret = Utils.toReadableString(Nature[nature]);
|
||||||
if (includeStatEffects) {
|
if (includeStatEffects) {
|
||||||
const stats = Utils.getEnumValues(Stat).slice(1);
|
const stats = Utils.getEnumValues(Stat).slice(1);
|
||||||
@ -44,7 +45,7 @@ export function getNatureName(nature: Nature, includeStatEffects: boolean = fals
|
|||||||
decreasedStat = stat;
|
decreasedStat = stat;
|
||||||
}
|
}
|
||||||
const textStyle = forStarterSelect ? TextStyle.SUMMARY_ALT : TextStyle.WINDOW;
|
const textStyle = forStarterSelect ? TextStyle.SUMMARY_ALT : TextStyle.WINDOW;
|
||||||
const getTextFrag = !ignoreBBCode ? getBBCodeFrag : (text: string, style: TextStyle) => text;
|
const getTextFrag = !ignoreBBCode ? (text: string, style: TextStyle) => getBBCodeFrag(text, style, uiTheme) : (text: string, style: TextStyle) => text;
|
||||||
if (increasedStat && decreasedStat)
|
if (increasedStat && decreasedStat)
|
||||||
ret = `${getTextFrag(`${ret}${!forStarterSelect ? '\n' : ' '}(`, textStyle)}${getTextFrag(`+${getStatName(increasedStat, true)}`, TextStyle.SUMMARY_PINK)}${getTextFrag('/', textStyle)}${getTextFrag(`-${getStatName(decreasedStat, true)}`, TextStyle.SUMMARY_BLUE)}${getTextFrag(')', textStyle)}`;
|
ret = `${getTextFrag(`${ret}${!forStarterSelect ? '\n' : ' '}(`, textStyle)}${getTextFrag(`+${getStatName(increasedStat, true)}`, TextStyle.SUMMARY_PINK)}${getTextFrag('/', textStyle)}${getTextFrag(`-${getStatName(decreasedStat, true)}`, TextStyle.SUMMARY_BLUE)}${getTextFrag(')', textStyle)}`;
|
||||||
else
|
else
|
||||||
|
@ -1092,7 +1092,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
this.scene.applyModifiers(PokemonMultiHitModifier, source.isPlayer(), source, new Utils.IntegerHolder(0), power);
|
this.scene.applyModifiers(PokemonMultiHitModifier, source.isPlayer(), source, new Utils.IntegerHolder(0), power);
|
||||||
if (!typeless) {
|
if (!typeless) {
|
||||||
this.scene.arena.applyTags(WeakenMoveTypeTag, move.type, power);
|
this.scene.arena.applyTags(WeakenMoveTypeTag, move.type, power);
|
||||||
this.scene.applyModifiers(AttackTypeBoosterModifier, source.isPlayer(), source, power);
|
this.scene.applyModifiers(AttackTypeBoosterModifier, source.isPlayer(), source, move.type, power);
|
||||||
}
|
}
|
||||||
if (source.getTag(HelpingHandTag))
|
if (source.getTag(HelpingHandTag))
|
||||||
power.value *= 1.5;
|
power.value *= 1.5;
|
||||||
|
@ -845,7 +845,7 @@ export const modifierTypes = {
|
|||||||
|
|
||||||
SOOTHE_BELL: () => new PokemonFriendshipBoosterModifierType('Soothe Bell'),
|
SOOTHE_BELL: () => new PokemonFriendshipBoosterModifierType('Soothe Bell'),
|
||||||
|
|
||||||
SOUL_DEW: () => new PokemonHeldItemModifierType('Soul Dew', 'Increases the influence of a Pokémon\'s nature on its stats by 5% (additive)', (type, args) => new Modifiers.PokemonNatureWeightModifier(type, (args[0] as Pokemon).id)),
|
SOUL_DEW: () => new PokemonHeldItemModifierType('Soul Dew', 'Increases the influence of a Pokémon\'s nature on its stats by 10% (additive)', (type, args) => new Modifiers.PokemonNatureWeightModifier(type, (args[0] as Pokemon).id)),
|
||||||
|
|
||||||
NUGGET: () => new MoneyRewardModifierType('Nugget', 1, 'small'),
|
NUGGET: () => new MoneyRewardModifierType('Nugget', 1, 'small'),
|
||||||
BIG_NUGGET: () => new MoneyRewardModifierType('Big Nugget', 2.5, 'moderate'),
|
BIG_NUGGET: () => new MoneyRewardModifierType('Big Nugget', 2.5, 'moderate'),
|
||||||
@ -1012,7 +1012,6 @@ const modifierPool: ModifierPool = {
|
|||||||
new WeightedModifierType(modifierTypes.TM_ULTRA, 8),
|
new WeightedModifierType(modifierTypes.TM_ULTRA, 8),
|
||||||
new WeightedModifierType(modifierTypes.RARER_CANDY, 4),
|
new WeightedModifierType(modifierTypes.RARER_CANDY, 4),
|
||||||
new WeightedModifierType(modifierTypes.SOOTHE_BELL, (party: Pokemon[]) => party.find(p => (pokemonEvolutions.hasOwnProperty(p.species.speciesId) && pokemonEvolutions[p.species.speciesId].find(e => e.condition && e.condition instanceof SpeciesFriendshipEvolutionCondition)) || p.moveset.find(m => m.moveId === Moves.RETURN)) ? 16 : 0, 16),
|
new WeightedModifierType(modifierTypes.SOOTHE_BELL, (party: Pokemon[]) => party.find(p => (pokemonEvolutions.hasOwnProperty(p.species.speciesId) && pokemonEvolutions[p.species.speciesId].find(e => e.condition && e.condition instanceof SpeciesFriendshipEvolutionCondition)) || p.moveset.find(m => m.moveId === Moves.RETURN)) ? 16 : 0, 16),
|
||||||
new WeightedModifierType(modifierTypes.SOUL_DEW, 2),
|
|
||||||
new WeightedModifierType(modifierTypes.GOLDEN_PUNCH, 2),
|
new WeightedModifierType(modifierTypes.GOLDEN_PUNCH, 2),
|
||||||
new WeightedModifierType(modifierTypes.IV_SCANNER, 4),
|
new WeightedModifierType(modifierTypes.IV_SCANNER, 4),
|
||||||
new WeightedModifierType(modifierTypes.EXP_CHARM, 8),
|
new WeightedModifierType(modifierTypes.EXP_CHARM, 8),
|
||||||
@ -1029,6 +1028,7 @@ const modifierPool: ModifierPool = {
|
|||||||
new WeightedModifierType(modifierTypes.BERRY_POUCH, 4),
|
new WeightedModifierType(modifierTypes.BERRY_POUCH, 4),
|
||||||
new WeightedModifierType(modifierTypes.GRIP_CLAW, 5),
|
new WeightedModifierType(modifierTypes.GRIP_CLAW, 5),
|
||||||
new WeightedModifierType(modifierTypes.BATON, 2),
|
new WeightedModifierType(modifierTypes.BATON, 2),
|
||||||
|
new WeightedModifierType(modifierTypes.SOUL_DEW, 8),
|
||||||
//new WeightedModifierType(modifierTypes.OVAL_CHARM, 6),
|
//new WeightedModifierType(modifierTypes.OVAL_CHARM, 6),
|
||||||
new WeightedModifierType(modifierTypes.ABILITY_CHARM, 6),
|
new WeightedModifierType(modifierTypes.ABILITY_CHARM, 6),
|
||||||
new WeightedModifierType(modifierTypes.FOCUS_BAND, 5),
|
new WeightedModifierType(modifierTypes.FOCUS_BAND, 5),
|
||||||
|
@ -681,11 +681,14 @@ export class AttackTypeBoosterModifier extends PokemonHeldItemModifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
apply(args: any[]): boolean {
|
apply(args: any[]): boolean {
|
||||||
(args[1] as Utils.NumberHolder).value = Math.floor((args[1] as Utils.NumberHolder).value * (1 + (this.getStackCount() * this.boostMultiplier)));
|
if (args[1] === this.moveType) {
|
||||||
|
(args[2] as Utils.NumberHolder).value = Math.floor((args[2] as Utils.NumberHolder).value * (1 + (this.getStackCount() * this.boostMultiplier)));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
getScoreMultiplier(): number {
|
getScoreMultiplier(): number {
|
||||||
return 1.2;
|
return 1.2;
|
||||||
}
|
}
|
||||||
@ -1424,7 +1427,7 @@ export class PokemonNatureWeightModifier extends PokemonHeldItemModifier {
|
|||||||
apply(args: any[]): boolean {
|
apply(args: any[]): boolean {
|
||||||
const multiplier = args[1] as Utils.IntegerHolder;
|
const multiplier = args[1] as Utils.IntegerHolder;
|
||||||
if (multiplier.value !== 1) {
|
if (multiplier.value !== 1) {
|
||||||
multiplier.value += 0.05 * this.getStackCount() * (multiplier.value > 1 ? 1 : -1);
|
multiplier.value += 0.1 * this.getStackCount() * (multiplier.value > 1 ? 1 : -1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1432,7 +1435,7 @@ export class PokemonNatureWeightModifier extends PokemonHeldItemModifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getMaxHeldItemCount(pokemon: Pokemon): integer {
|
getMaxHeldItemCount(pokemon: Pokemon): integer {
|
||||||
return 5;
|
return 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,10 +123,10 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container {
|
|||||||
const ability = pokemon.getAbility(true);
|
const ability = pokemon.getAbility(true);
|
||||||
const abilityTextStyle = ability.id === pokemon.getSpeciesForm().abilityHidden ? TextStyle.MONEY : TextStyle.WINDOW;
|
const abilityTextStyle = ability.id === pokemon.getSpeciesForm().abilityHidden ? TextStyle.MONEY : TextStyle.WINDOW;
|
||||||
this.pokemonAbilityText.setText(ability.name);
|
this.pokemonAbilityText.setText(ability.name);
|
||||||
this.pokemonAbilityText.setColor(getTextColor(abilityTextStyle));
|
this.pokemonAbilityText.setColor(getTextColor(abilityTextStyle, false, this.scene.uiTheme));
|
||||||
this.pokemonAbilityText.setShadowColor(getTextColor(abilityTextStyle, true));
|
this.pokemonAbilityText.setShadowColor(getTextColor(abilityTextStyle, true, this.scene.uiTheme));
|
||||||
|
|
||||||
this.pokemonNatureText.setText(getNatureName(pokemon.getNature(), true));
|
this.pokemonNatureText.setText(getNatureName(pokemon.getNature(), true, false, false, this.scene.uiTheme));
|
||||||
|
|
||||||
const originalIvs: integer[] = this.scene.gameData.dexData[pokemon.species.speciesId].caughtAttr
|
const originalIvs: integer[] = this.scene.gameData.dexData[pokemon.species.speciesId].caughtAttr
|
||||||
? this.scene.gameData.dexData[pokemon.species.speciesId].ivs
|
? this.scene.gameData.dexData[pokemon.species.speciesId].ivs
|
||||||
|
@ -1135,7 +1135,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
|||||||
this.pokemonAbilityText.setColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD));
|
this.pokemonAbilityText.setColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD));
|
||||||
this.pokemonAbilityText.setShadowColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD, true));
|
this.pokemonAbilityText.setShadowColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD, true));
|
||||||
|
|
||||||
this.pokemonNatureText.setText(getNatureName(natureIndex as unknown as Nature, true, true));
|
this.pokemonNatureText.setText(getNatureName(natureIndex as unknown as Nature, true, true, false, this.scene.uiTheme));
|
||||||
|
|
||||||
let levelMoves: LevelMoves;
|
let levelMoves: LevelMoves;
|
||||||
if (pokemonFormLevelMoves.hasOwnProperty(species.speciesId) && pokemonFormLevelMoves[species.speciesId].hasOwnProperty(formIndex))
|
if (pokemonFormLevelMoves.hasOwnProperty(species.speciesId) && pokemonFormLevelMoves[species.speciesId].hasOwnProperty(formIndex))
|
||||||
|
@ -114,8 +114,8 @@ function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptio
|
|||||||
return [ styleOptions, shadowColor, shadowSize ];
|
return [ styleOptions, shadowColor, shadowSize ];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getBBCodeFrag(content: string, textStyle: TextStyle): string {
|
export function getBBCodeFrag(content: string, textStyle: TextStyle, uiTheme: UiTheme = UiTheme.DEFAULT): string {
|
||||||
return `[color=${getTextColor(textStyle)}][shadow=${getTextColor(textStyle, true)}]${content}`;
|
return `[color=${getTextColor(textStyle, false, uiTheme)}][shadow=${getTextColor(textStyle, true, uiTheme)}]${content}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: UiTheme = UiTheme.DEFAULT): string {
|
export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: UiTheme = UiTheme.DEFAULT): string {
|
||||||
|
Loading…
Reference in New Issue
Block a user