mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-22 07:19:28 +02:00
[Refactor] Change rare egg rate consts to array, rare egg move common egg boosted chance boosted (#6305)
* Change rare egg rate consts to array * Update rates.ts 1/24 -> 1/16 * Make new arrays use readonly type hint --------- Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Co-authored-by: damocleas <damocleas25@gmail.com>
This commit is contained in:
parent
4eee569046
commit
030b701910
@ -42,10 +42,10 @@ export const SAME_SPECIES_EGG_HA_RATE = 8;
|
|||||||
export const MANAPHY_EGG_MANAPHY_RATE = 8;
|
export const MANAPHY_EGG_MANAPHY_RATE = 8;
|
||||||
export const GACHA_EGG_HA_RATE = 192;
|
export const GACHA_EGG_HA_RATE = 192;
|
||||||
|
|
||||||
// 1/x for legendary eggs, 1/x*2 for epic eggs, 1/x*4 for rare eggs, and 1/x*8 for common eggs
|
// Odds are 1/x
|
||||||
export const GACHA_DEFAULT_RARE_EGGMOVE_RATE = 6;
|
// [COMMON, RARE, EPIC/MANAPHY, LEGEND]
|
||||||
export const SAME_SPECIES_EGG_RARE_EGGMOVE_RATE = 3;
|
export const RARE_EGGMOVE_RATES: readonly number[] = [48, 24, 12, 6];
|
||||||
export const GACHA_MOVE_UP_RARE_EGGMOVE_RATE = 3;
|
export const BOOSTED_RARE_EGGMOVE_RATES: readonly number[] = [16, 12, 6, 3];
|
||||||
|
|
||||||
// #region Variant properties
|
// #region Variant properties
|
||||||
// The chance x/10 of a shiny being a variant, then of being specifically an epic variant
|
// The chance x/10 of a shiny being a variant, then of being specifically an epic variant
|
||||||
|
@ -3,17 +3,16 @@ import { globalScene } from "#app/global-scene";
|
|||||||
import Overrides from "#app/overrides";
|
import Overrides from "#app/overrides";
|
||||||
import { pokemonPrevolutions } from "#balance/pokemon-evolutions";
|
import { pokemonPrevolutions } from "#balance/pokemon-evolutions";
|
||||||
import {
|
import {
|
||||||
|
BOOSTED_RARE_EGGMOVE_RATES,
|
||||||
EGG_PITY_EPIC_THRESHOLD,
|
EGG_PITY_EPIC_THRESHOLD,
|
||||||
EGG_PITY_LEGENDARY_THRESHOLD,
|
EGG_PITY_LEGENDARY_THRESHOLD,
|
||||||
EGG_PITY_RARE_THRESHOLD,
|
EGG_PITY_RARE_THRESHOLD,
|
||||||
GACHA_DEFAULT_COMMON_EGG_THRESHOLD,
|
GACHA_DEFAULT_COMMON_EGG_THRESHOLD,
|
||||||
GACHA_DEFAULT_EPIC_EGG_THRESHOLD,
|
GACHA_DEFAULT_EPIC_EGG_THRESHOLD,
|
||||||
GACHA_DEFAULT_RARE_EGG_THRESHOLD,
|
GACHA_DEFAULT_RARE_EGG_THRESHOLD,
|
||||||
GACHA_DEFAULT_RARE_EGGMOVE_RATE,
|
|
||||||
GACHA_DEFAULT_SHINY_RATE,
|
GACHA_DEFAULT_SHINY_RATE,
|
||||||
GACHA_EGG_HA_RATE,
|
GACHA_EGG_HA_RATE,
|
||||||
GACHA_LEGENDARY_UP_THRESHOLD_OFFSET,
|
GACHA_LEGENDARY_UP_THRESHOLD_OFFSET,
|
||||||
GACHA_MOVE_UP_RARE_EGGMOVE_RATE,
|
|
||||||
GACHA_SHINY_UP_SHINY_RATE,
|
GACHA_SHINY_UP_SHINY_RATE,
|
||||||
HATCH_WAVES_COMMON_EGG,
|
HATCH_WAVES_COMMON_EGG,
|
||||||
HATCH_WAVES_EPIC_EGG,
|
HATCH_WAVES_EPIC_EGG,
|
||||||
@ -21,8 +20,8 @@ import {
|
|||||||
HATCH_WAVES_MANAPHY_EGG,
|
HATCH_WAVES_MANAPHY_EGG,
|
||||||
HATCH_WAVES_RARE_EGG,
|
HATCH_WAVES_RARE_EGG,
|
||||||
MANAPHY_EGG_MANAPHY_RATE,
|
MANAPHY_EGG_MANAPHY_RATE,
|
||||||
|
RARE_EGGMOVE_RATES,
|
||||||
SAME_SPECIES_EGG_HA_RATE,
|
SAME_SPECIES_EGG_HA_RATE,
|
||||||
SAME_SPECIES_EGG_RARE_EGGMOVE_RATE,
|
|
||||||
SAME_SPECIES_EGG_SHINY_RATE,
|
SAME_SPECIES_EGG_SHINY_RATE,
|
||||||
SHINY_EPIC_CHANCE,
|
SHINY_EPIC_CHANCE,
|
||||||
SHINY_VARIANT_CHANCE,
|
SHINY_VARIANT_CHANCE,
|
||||||
@ -355,21 +354,22 @@ export class Egg {
|
|||||||
// #region Private methods
|
// #region Private methods
|
||||||
////
|
////
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rolls which egg move slot the egg will have.
|
||||||
|
* 1/x chance for rare, (x-1)/3 chance for each common move.
|
||||||
|
* x is determined by Egg Tier. Boosted rates used for eggs obtained through Move Up Gacha and Candy.
|
||||||
|
* @returns the slot for the egg move
|
||||||
|
*/
|
||||||
private rollEggMoveIndex() {
|
private rollEggMoveIndex() {
|
||||||
let baseChance = GACHA_DEFAULT_RARE_EGGMOVE_RATE;
|
const tierNum = this.isManaphyEgg() ? 2 : this.tier;
|
||||||
switch (this._sourceType) {
|
let baseChance: number;
|
||||||
case EggSourceType.SAME_SPECIES_EGG:
|
if (this._sourceType === EggSourceType.SAME_SPECIES_EGG || this._sourceType === EggSourceType.GACHA_MOVE) {
|
||||||
baseChance = SAME_SPECIES_EGG_RARE_EGGMOVE_RATE;
|
baseChance = BOOSTED_RARE_EGGMOVE_RATES[tierNum];
|
||||||
break;
|
} else {
|
||||||
case EggSourceType.GACHA_MOVE:
|
baseChance = RARE_EGGMOVE_RATES[tierNum];
|
||||||
baseChance = GACHA_MOVE_UP_RARE_EGGMOVE_RATE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const tierMultiplier = this.isManaphyEgg() ? 2 : Math.pow(2, 3 - this.tier);
|
return randSeedInt(baseChance) ? randSeedInt(3) : 3;
|
||||||
return randSeedInt(baseChance * tierMultiplier) ? randSeedInt(3) : 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private getEggTierDefaultHatchWaves(eggTier?: EggTier): number {
|
private getEggTierDefaultHatchWaves(eggTier?: EggTier): number {
|
||||||
|
Loading…
Reference in New Issue
Block a user