Add candy system for passives and value reductions
This commit is contained in:
1 parent
ccf956a63c
commit
824a73ef71
22 files changed
+2497
-1848
No files matched your search
@@ -64,6 +64,8 @@ function getDailyRunStarter(scene: BattleScene, starterSpeciesForm: PokemonSpeci
|
||||
const starter: Starter = {
|
||||
species: starterSpecies,
|
||||
dexAttr: pokemon.getDexAttr(),
|
||||
passive: false,
|
||||
variant: 0,
|
||||
nature: pokemon.getNature(),
|
||||
pokerus: pokemon.pokerus
|
||||
};
|
||||
|
||||
+84
-34
@@ -11,6 +11,7 @@ import { StarterMoveset } from '../system/game-data';
|
||||
import { speciesEggMoves } from './egg-moves';
|
||||
import { PartyMemberStrength } from "./enums/party-member-strength";
|
||||
import { GameMode } from '../game-mode';
|
||||
import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities";
|
||||
|
||||
export enum Region {
|
||||
NORMAL,
|
||||
@@ -381,6 +382,55 @@ export abstract class PokemonSpeciesForm {
|
||||
cry.stop();
|
||||
return cry;
|
||||
}
|
||||
|
||||
generateCandyColors(scene: BattleScene): integer[][] {
|
||||
const sourceTexture = scene.textures.get(this.getSpriteKey(false));
|
||||
|
||||
const sourceFrame = sourceTexture.frames[sourceTexture.firstFrame];
|
||||
const sourceImage = sourceTexture.getSourceImage() as HTMLImageElement;
|
||||
|
||||
const canvas = document.createElement('canvas');
|
||||
|
||||
const spriteColors: integer[][] = [];
|
||||
|
||||
const context = canvas.getContext('2d');
|
||||
const frame = sourceFrame;
|
||||
canvas.width = frame.width;
|
||||
canvas.height = frame.height;
|
||||
context.drawImage(sourceImage, frame.cutX, frame.cutY, frame.width, frame.height, 0, 0, frame.width, frame.height);
|
||||
const imageData = context.getImageData(frame.cutX, frame.cutY, frame.width, frame.height);
|
||||
const pixelData = imageData.data;
|
||||
|
||||
for (let i = 0; i < pixelData.length; i += 4) {
|
||||
if (pixelData[i + 3]) {
|
||||
const pixel = pixelData.slice(i, i + 4);
|
||||
const [ r, g, b, a ] = pixel;
|
||||
if (!spriteColors.find(c => c[0] === r && c[1] === g && c[2] === b))
|
||||
spriteColors.push([ r, g, b, a ]);
|
||||
}
|
||||
}
|
||||
|
||||
const pixelColors = [];
|
||||
for (let i = 0; i < pixelData.length; i += 4) {
|
||||
const total = pixelData.slice(i, i + 3).reduce((total: integer, value: integer) => total + value, 0);
|
||||
if (!total)
|
||||
continue;
|
||||
pixelColors.push(argbFromRgba({ r: pixelData[i], g: pixelData[i + 1], b: pixelData[i + 2], a: pixelData[i + 3] }));
|
||||
}
|
||||
|
||||
let paletteColors: Map<number, number>;
|
||||
|
||||
const originalRandom = Math.random;
|
||||
Math.random = () => Phaser.Math.RND.realInRange(0, 1);
|
||||
|
||||
scene.executeWithSeedOffset(() => {
|
||||
paletteColors = QuantizerCelebi.quantize(pixelColors, 2);
|
||||
}, 0, 'This result should not vary');
|
||||
|
||||
Math.random = originalRandom;
|
||||
|
||||
return Array.from(paletteColors.keys()).map(c => Object.values(rgbaFromArgb(c)) as integer[]);
|
||||
}
|
||||
}
|
||||
|
||||
export default class PokemonSpecies extends PokemonSpeciesForm {
|
||||
@@ -3058,8 +3108,8 @@ export const starterPassiveAbilities = {
|
||||
[Species.CHARMANDER]: Abilities.INTIMIDATE,
|
||||
[Species.SQUIRTLE]: Abilities.DAUNTLESS_SHIELD,
|
||||
[Species.CATERPIE]: Abilities.MAGICIAN,
|
||||
[Species.WEEDLE]: Abilities.POISON_TOUCH,
|
||||
[Species.PIDGEY]: Abilities.TECHNICIAN,
|
||||
[Species.WEEDLE]: Abilities.TECHNICIAN,
|
||||
[Species.PIDGEY]: Abilities.GALE_WINGS,
|
||||
[Species.RATTATA]: Abilities.STRONG_JAW,
|
||||
[Species.SPEAROW]: Abilities.MOXIE,
|
||||
[Species.EKANS]: Abilities.ROUGH_SKIN,
|
||||
@@ -3070,14 +3120,14 @@ export const starterPassiveAbilities = {
|
||||
[Species.ZUBAT]: Abilities.WIND_RIDER,
|
||||
[Species.ODDISH]: Abilities.LINGERING_AROMA,
|
||||
[Species.PARAS]: Abilities.POISON_HEAL,
|
||||
[Species.VENONAT]: Abilities.TECHNICIAN,
|
||||
[Species.VENONAT]: Abilities.SWARM,
|
||||
[Species.DIGLETT]: Abilities.STURDY,
|
||||
[Species.MEOWTH]: Abilities.NORMALIZE,
|
||||
[Species.PSYDUCK]: Abilities.SIMPLE,
|
||||
[Species.MANKEY]: Abilities.STAMINA,
|
||||
[Species.GROWLITHE]: Abilities.BALL_FETCH,
|
||||
[Species.MANKEY]: Abilities.IRON_FIST,
|
||||
[Species.GROWLITHE]: Abilities.SPEED_BOOST,
|
||||
[Species.POLIWAG]: Abilities.WATER_BUBBLE,
|
||||
[Species.ABRA]: Abilities.TECHNICIAN,
|
||||
[Species.ABRA]: Abilities.OPPORTUNIST,
|
||||
[Species.MACHOP]: Abilities.IRON_FIST,
|
||||
[Species.BELLSPROUT]: Abilities.CORROSION,
|
||||
[Species.TENTACOOL]: Abilities.INNARDS_OUT,
|
||||
@@ -3103,7 +3153,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.TANGELA]: Abilities.TANGLING_HAIR,
|
||||
[Species.KANGASKHAN]: Abilities.IRON_FIST,
|
||||
[Species.HORSEA]: Abilities.DRIZZLE,
|
||||
[Species.GOLDEEN]: Abilities.VOLT_ABSORB,
|
||||
[Species.GOLDEEN]: Abilities.MULTISCALE,
|
||||
[Species.STARYU]: Abilities.REGENERATOR,
|
||||
[Species.SCYTHER]: Abilities.SPEED_BOOST,
|
||||
[Species.PINSIR]: Abilities.SAP_SIPPER,
|
||||
@@ -3139,7 +3189,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.HOPPIP]: Abilities.PRANKSTER,
|
||||
[Species.AIPOM]: Abilities.SCRAPPY,
|
||||
[Species.SUNKERN]: Abilities.DROUGHT,
|
||||
[Species.YANMA]: Abilities.TECHNICIAN,
|
||||
[Species.YANMA]: Abilities.INFILTRATOR,
|
||||
[Species.WOOPER]: Abilities.SIMPLE,
|
||||
[Species.MURKROW]: Abilities.DEFIANT,
|
||||
[Species.MISDREAVUS]: Abilities.DAZZLING,
|
||||
@@ -3154,7 +3204,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.HERACROSS]: Abilities.QUICK_FEET,
|
||||
[Species.SNEASEL]: Abilities.MOXIE,
|
||||
[Species.TEDDIURSA]: Abilities.GLUTTONY,
|
||||
[Species.SLUGMA]: Abilities.DESOLATE_LAND,
|
||||
[Species.SLUGMA]: Abilities.DROUGHT,
|
||||
[Species.SWINUB]: Abilities.SLUSH_RUSH,
|
||||
[Species.CORSOLA]: Abilities.STORM_DRAIN,
|
||||
[Species.REMORAID]: Abilities.SKILL_LINK,
|
||||
@@ -3166,7 +3216,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.SMEARGLE]: Abilities.TRACE,
|
||||
[Species.TYROGUE]: Abilities.STAMINA,
|
||||
[Species.SMOOCHUM]: Abilities.CUTE_CHARM,
|
||||
[Species.ELEKID]: Abilities.ADAPTABILITY,
|
||||
[Species.ELEKID]: Abilities.IRON_FIST,
|
||||
[Species.MAGBY]: Abilities.CONTRARY,
|
||||
[Species.MILTANK]: Abilities.GLUTTONY,
|
||||
[Species.RAIKOU]: Abilities.FLARE_BOOST,
|
||||
@@ -3192,7 +3242,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.SLAKOTH]: Abilities.GUTS,
|
||||
[Species.NINCADA]: Abilities.OVERCOAT,
|
||||
[Species.WHISMUR]: Abilities.PUNK_ROCK,
|
||||
[Species.MAKUHITA]: Abilities.CONTRARY,
|
||||
[Species.MAKUHITA]: Abilities.STAMINA,
|
||||
[Species.AZURILL]: Abilities.UNNERVE,
|
||||
[Species.NOSEPASS]: Abilities.LEVITATE,
|
||||
[Species.SKITTY]: Abilities.SCRAPPY,
|
||||
@@ -3217,10 +3267,10 @@ export const starterPassiveAbilities = {
|
||||
[Species.SWABLU]: Abilities.WHITE_SMOKE,
|
||||
[Species.ZANGOOSE]: Abilities.SUPER_LUCK,
|
||||
[Species.SEVIPER]: Abilities.MOLD_BREAKER,
|
||||
[Species.LUNATONE]: Abilities.SHADOW_SHIELD,
|
||||
[Species.SOLROCK]: Abilities.FULL_METAL_BODY,
|
||||
[Species.LUNATONE]: Abilities.FAIRY_AURA,
|
||||
[Species.SOLROCK]: Abilities.DROUGHT,
|
||||
[Species.BARBOACH]: Abilities.BALL_FETCH,
|
||||
[Species.CORPHISH]: Abilities.WATER_BUBBLE,
|
||||
[Species.CORPHISH]: Abilities.TOUGH_CLAWS,
|
||||
[Species.BALTOY]: Abilities.OWN_TEMPO,
|
||||
[Species.LILEEP]: Abilities.WATER_ABSORB,
|
||||
[Species.ANORITH]: Abilities.WATER_ABSORB,
|
||||
@@ -3237,7 +3287,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.CLAMPERL]: Abilities.SIMPLE,
|
||||
[Species.RELICANTH]: Abilities.SOLID_ROCK,
|
||||
[Species.LUVDISC]: Abilities.PICKUP,
|
||||
[Species.BAGON]: Abilities.GALE_WINGS,
|
||||
[Species.BAGON]: Abilities.BERSERK,
|
||||
[Species.BELDUM]: Abilities.IRON_FIST,
|
||||
[Species.REGIROCK]: Abilities.REGENERATOR,
|
||||
[Species.REGICE]: Abilities.ICE_SCALES,
|
||||
@@ -3251,7 +3301,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.DEOXYS]: Abilities.STICKY_HOLD,
|
||||
[Species.TURTWIG]: Abilities.HARVEST,
|
||||
[Species.CHIMCHAR]: Abilities.DEFIANT,
|
||||
[Species.PIPLUP]: Abilities.BATTLE_ARMOR,
|
||||
[Species.PIPLUP]: Abilities.SLUSH_RUSH,
|
||||
[Species.STARLY]: Abilities.ROCK_HEAD,
|
||||
[Species.BIDOOF]: Abilities.NEUROFORCE,
|
||||
[Species.KRICKETOT]: Abilities.SOUNDPROOF,
|
||||
@@ -3304,7 +3354,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.VICTINI]: Abilities.SUPER_LUCK,
|
||||
[Species.SNIVY]: Abilities.MULTISCALE,
|
||||
[Species.TEPIG]: Abilities.SAND_RUSH,
|
||||
[Species.OSHAWOTT]: Abilities.LIGHTNING_ROD,
|
||||
[Species.OSHAWOTT]: Abilities.MOLD_BREAKER,
|
||||
[Species.PATRAT]: Abilities.STAKEOUT,
|
||||
[Species.LILLIPUP]: Abilities.BALL_FETCH,
|
||||
[Species.PURRLOIN]: Abilities.DEFIANT,
|
||||
@@ -3325,8 +3375,8 @@ export const starterPassiveAbilities = {
|
||||
[Species.SEWADDLE]: Abilities.SHARPNESS,
|
||||
[Species.VENIPEDE]: Abilities.INTIMIDATE,
|
||||
[Species.COTTONEE]: Abilities.MISTY_SURGE,
|
||||
[Species.PETILIL]: Abilities.ORICHALCUM_PULSE,
|
||||
[Species.BASCULIN]: Abilities.ROCK_HEAD,
|
||||
[Species.PETILIL]: Abilities.DROUGHT,
|
||||
[Species.BASCULIN]: Abilities.OPPORTUNIST,
|
||||
[Species.SANDILE]: Abilities.STRONG_JAW,
|
||||
[Species.DARUMAKA]: Abilities.IRON_FIST,
|
||||
[Species.MARACTUS]: Abilities.IRON_BARBS,
|
||||
@@ -3346,14 +3396,14 @@ export const starterPassiveAbilities = {
|
||||
[Species.DEERLING]: Abilities.JUSTIFIED,
|
||||
[Species.EMOLGA]: Abilities.WIND_POWER,
|
||||
[Species.KARRABLAST]: Abilities.NO_GUARD,
|
||||
[Species.FOONGUS]: Abilities.ADAPTABILITY,
|
||||
[Species.FOONGUS]: Abilities.MIMICRY,
|
||||
[Species.FRILLISH]: Abilities.MUMMY,
|
||||
[Species.ALOMOMOLA]: Abilities.MULTISCALE,
|
||||
[Species.JOLTIK]: Abilities.VOLT_ABSORB,
|
||||
[Species.FERROSEED]: Abilities.SKILL_LINK,
|
||||
[Species.KLINK]: Abilities.STEELWORKER,
|
||||
[Species.TYNAMO]: Abilities.SWIFT_SWIM,
|
||||
[Species.ELGYEM]: Abilities.COMMANDER,
|
||||
[Species.ELGYEM]: Abilities.SHADOW_TAG,
|
||||
[Species.LITWICK]: Abilities.SOUL_HEART,
|
||||
[Species.AXEW]: Abilities.SHEER_FORCE,
|
||||
[Species.CUBCHOO]: Abilities.INTIMIDATE,
|
||||
@@ -3362,7 +3412,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.STUNFISK]: Abilities.STORM_DRAIN,
|
||||
[Species.MIENFOO]: Abilities.NO_GUARD,
|
||||
[Species.DRUDDIGON]: Abilities.INTIMIDATE,
|
||||
[Species.GOLETT]: Abilities.JUSTIFIED,
|
||||
[Species.GOLETT]: Abilities.SHADOW_SHIELD,
|
||||
[Species.PAWNIARD]: Abilities.SHARPNESS,
|
||||
[Species.BOUFFALANT]: Abilities.THICK_FAT,
|
||||
[Species.RUFFLET]: Abilities.RECKLESS,
|
||||
@@ -3380,7 +3430,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.ZEKROM]: Abilities.HADRON_ENGINE,
|
||||
[Species.LANDORUS]: Abilities.PRANKSTER,
|
||||
[Species.KYUREM]: Abilities.SNOW_WARNING,
|
||||
[Species.KELDEO]: Abilities.HUGE_POWER,
|
||||
[Species.KELDEO]: Abilities.SHARPNESS,
|
||||
[Species.MELOETTA]: Abilities.PUNK_ROCK,
|
||||
[Species.GENESECT]: Abilities.MEGA_LAUNCHER,
|
||||
[Species.CHESPIN]: Abilities.IRON_BARBS,
|
||||
@@ -3425,7 +3475,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.POPPLIO]: Abilities.PUNK_ROCK,
|
||||
[Species.PIKIPEK]: Abilities.ANGER_POINT,
|
||||
[Species.YUNGOOS]: Abilities.HUGE_POWER,
|
||||
[Species.GRUBBIN]: Abilities.GALVANIZE,
|
||||
[Species.GRUBBIN]: Abilities.SPEED_BOOST,
|
||||
[Species.CRABRAWLER]: Abilities.REFRIGERATE,
|
||||
[Species.ORICORIO]: Abilities.ADAPTABILITY,
|
||||
[Species.CUTIEFLY]: Abilities.FRIEND_GUARD,
|
||||
@@ -3442,7 +3492,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.COMFEY]: Abilities.FRIEND_GUARD,
|
||||
[Species.ORANGURU]: Abilities.HOSPITALITY,
|
||||
[Species.PASSIMIAN]: Abilities.COSTAR,
|
||||
[Species.WIMPOD]: Abilities.BATTLE_ARMOR,
|
||||
[Species.WIMPOD]: Abilities.TINTED_LENS,
|
||||
[Species.SANDYGAST]: Abilities.DAUNTLESS_SHIELD,
|
||||
[Species.PYUKUMUKU]: Abilities.IRON_BARBS,
|
||||
[Species.TYPE_NULL]: Abilities.ADAPTABILITY,
|
||||
@@ -3465,7 +3515,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.PHEROMOSA]: Abilities.MOXIE,
|
||||
[Species.XURKITREE]: Abilities.LIGHTNING_ROD,
|
||||
[Species.CELESTEELA]: Abilities.CHLOROPHYLL,
|
||||
[Species.KARTANA]: Abilities.INTREPID_SWORD,
|
||||
[Species.KARTANA]: Abilities.SHARPNESS,
|
||||
[Species.GUZZLORD]: Abilities.GLUTTONY,
|
||||
[Species.NECROZMA]: Abilities.BEAST_BOOST,
|
||||
[Species.MAGEARNA]: Abilities.STEELY_SPIRIT,
|
||||
@@ -3479,7 +3529,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.SCORBUNNY]: Abilities.RECKLESS,
|
||||
[Species.SOBBLE]: Abilities.MIMICRY,
|
||||
[Species.SKWOVET]: Abilities.HONEY_GATHER,
|
||||
[Species.ROOKIDEE]: Abilities.JUSTIFIED,
|
||||
[Species.ROOKIDEE]: Abilities.IRON_BARBS,
|
||||
[Species.BLIPBUG]: Abilities.TINTED_LENS,
|
||||
[Species.NICKIT]: Abilities.INTIMIDATE,
|
||||
[Species.GOSSIFLEUR]: Abilities.STORM_DRAIN,
|
||||
@@ -3512,7 +3562,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.ARCTOVISH]: Abilities.STRONG_JAW,
|
||||
[Species.DURALUDON]: Abilities.MEGA_LAUNCHER,
|
||||
[Species.DREEPY]: Abilities.PARENTAL_BOND,
|
||||
[Species.ZACIAN]: Abilities.SHARPNESS,
|
||||
[Species.ZACIAN]: Abilities.GUARD_DOG,
|
||||
[Species.ZAMAZENTA]: Abilities.GUARD_DOG,
|
||||
[Species.ETERNATUS]: Abilities.SUPREME_OVERLORD,
|
||||
[Species.KUBFU]: Abilities.IRON_FIST,
|
||||
@@ -3535,7 +3585,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.SMOLIV]: Abilities.RIPEN,
|
||||
[Species.SQUAWKABILLY]: Abilities.GALE_WINGS,
|
||||
[Species.NACLI]: Abilities.EARTH_EATER,
|
||||
[Species.CHARCADET]: Abilities.CONTRARY,
|
||||
[Species.CHARCADET]: Abilities.MIRROR_ARMOR,
|
||||
[Species.TADBULB]: Abilities.TRANSISTOR,
|
||||
[Species.WATTREL]: Abilities.GALE_WINGS,
|
||||
[Species.MASCHIFF]: Abilities.STRONG_JAW,
|
||||
@@ -3562,15 +3612,15 @@ export const starterPassiveAbilities = {
|
||||
[Species.TATSUGIRI]: Abilities.WATER_BUBBLE,
|
||||
[Species.GREAT_TUSK]: Abilities.INTIMIDATE,
|
||||
[Species.SCREAM_TAIL]: Abilities.PIXILATE,
|
||||
[Species.BRUTE_BONNET]: Abilities.ADAPTABILITY,
|
||||
[Species.BRUTE_BONNET]: Abilities.BEAST_BOOST,
|
||||
[Species.FLUTTER_MANE]: Abilities.DAZZLING,
|
||||
[Species.SLITHER_WING]: Abilities.SCRAPPY,
|
||||
[Species.SLITHER_WING]: Abilities.MOXIE,
|
||||
[Species.SANDY_SHOCKS]: Abilities.EARTH_EATER,
|
||||
[Species.IRON_TREADS]: Abilities.STEAM_ENGINE,
|
||||
[Species.IRON_TREADS]: Abilities.BULLETPROOF,
|
||||
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
|
||||
[Species.IRON_HANDS]: Abilities.IRON_FIST,
|
||||
[Species.IRON_JUGULIS]: Abilities.NO_GUARD,
|
||||
[Species.IRON_MOTH]: Abilities.TINTED_LENS,
|
||||
[Species.IRON_MOTH]: Abilities.LEVITATE,
|
||||
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
|
||||
[Species.FRIGIBAX]: Abilities.THICK_FAT,
|
||||
[Species.GIMMIGHOUL]: Abilities.SUPER_LUCK,
|
||||
@@ -3585,7 +3635,7 @@ export const starterPassiveAbilities = {
|
||||
[Species.WALKING_WAKE]: Abilities.BEAST_BOOST,
|
||||
[Species.IRON_LEAVES]: Abilities.SHARPNESS,
|
||||
[Species.POLTCHAGEIST]: Abilities.FLAME_BODY,
|
||||
[Species.OKIDOGI]: Abilities.STICKY_HOLD,
|
||||
[Species.OKIDOGI]: Abilities.INTIMIDATE,
|
||||
[Species.MUNKIDORI]: Abilities.PRANKSTER,
|
||||
[Species.FEZANDIPITI]: Abilities.DAZZLING,
|
||||
[Species.OGERPON]: Abilities.DISGUISE,
|
||||
|
||||
Reference in new issue
Block a user