UNPKG

@jaxxy/z3pr

Version:

Randomize palettes in The Legend of Zelda: A Link to the Past.

50 lines (43 loc) 1.9 kB
export declare function color_f(r: number, g: number, b: number): PaletteModifier; /** * Applies a randomized palette to a deep copy of the given ROM data. * @param rom The ROM data to modify. * @param args A rest parameter of additional arguments to provide. * @returns The modified deep copy of the original ROM data. */ export function randomize_copy<T extends SeedValue>(rom: Uint8Array, ...args: Array<PaletteRandomizerOptions<T> | ((seed: T) => Generator<PaletteModifier, void, unknown>)>): Uint8Array; /** * Applies a randomized palette to the given ROM data. * @param rom The ROM data to modify. * @param options An object containing information regarding the randomization * mode to use and what aspects of the ROM should be affected. * @param next_blend An optional generator function that returns a sequence of * color blend values. * @returns The modified ROM data. */ export function randomize<T extends SeedValue>(rom: Uint8Array, options?: PaletteRandomizerOptions<T>, next_blend?: (seed: T) => Generator<PaletteModifier, void, unknown>): Uint8Array; type PaletteRandomizerOptions<T extends SeedValue> = { mode?: PaletteMode, randomize_overworld?: boolean, randomize_dungeon?: boolean, randomize_link_sprite?: boolean, randomize_sword?: boolean, randomize_shield?: boolean, randomize_hud?: boolean, seed?: T, }; type PaletteModifier = { r: number, g: number, b: number, hue: () => number, chroma: () => number, saturation: () => number, luma: () => number, lightness: () => number, grayscale: () => PaletteModifier, invert: () => PaletteModifier, }; type SeedValue = number | [number, number] | [number, number, number]; type PaletteMode = 'none' | 'maseya' | 'grayscale' | 'negative' | 'blackout' | 'classic' | 'dizzy' | 'sick' | 'puke';