phaser4-rex-plugins
Version:
87 lines (59 loc) • 1.73 kB
TypeScript
export default Gashapon;
declare namespace Gashapon {
type ModeType = 0 | 1 | 'shuffle' | 'random';
type ItemsType = { [name: string]: number };
type ForEachItemCallbackType = (name: string, count: number) => void;
interface IConfig {
mode?: ModeType,
items?: ItemsType,
reload?: boolean,
rnd?: Phaser.Math.RandomDataGenerator,
}
interface IState {
mode: ModeType,
items: ItemsType,
reload: boolean,
rnd: Phaser.Math.RandomDataGenerator,
remainder: ItemsType,
result: string,
restart: boolean
}
}
declare class Gashapon {
constructor(
config?: Gashapon.IConfig
);
constructor(
config?: Gashapon.IState
);
destroy(): void;
next(
name?: string
): string | null;
readonly result: string;
setItem(name: string, count: number): this;
addItem(name: string, count: number): this;
putItemBack(name: string, count: number): this;
removeItem(name: string): this;
removeAllItems(): this;
toJSON(
): Gashapon.IState;
resetFromJSON(
state: Gashapon.IState
): this;
getItems(): Gashapon.ItemsType;
getRemain(): Gashapon.ItemsType;
forEachItem(
callback: Gashapon.ForEachItemCallbackType,
scope?: object,
): this;
forEachRemain(
callback: Gashapon.ForEachItemCallbackType,
scope?: object,
): this;
getItemCount(name: string): number;
getRemainCount(name: string): number;
setRND(
rnd?: Phaser.Math.RandomDataGenerator | null
): this;
}