phaser3-rex-plugins
Version:
145 lines (128 loc) • 3.45 kB
TypeScript
import NameValueLabel from '../namevaluelabel/NameValueLabel';
import LevelCounter from '../../../plugins/levelcounter';
export default ExpBar;
declare namespace ExpBar {
/**
* Configuration options for creating an experience bar.
*/
interface IConfig extends NameValueLabel.IConfig {
/**
* Total easing duration used for exp-bar transitions.
*/
easeDuration?: number,
/**
* Level counter configuration.
*/
levelCounter?: LevelCounter.IConfig,
}
}
/**
* Name-value label specialized for experience and level progression display.
*/
declare class ExpBar extends NameValueLabel {
/**
* Create an experience bar component.
*
* @param scene - Scene that owns this component.
* @param config - Optional experience bar configuration.
*/
constructor(
scene: Phaser.Scene,
config?: ExpBar.IConfig
);
/**
* Current experience value.
*/
exp: number;
/**
* Current level.
*/
level: number;
/**
* Required exp value to reach the next level.
*/
readonly requiredExp: number;
/**
* Set total easing duration for exp transitions.
*
* @param duration - Easing duration in milliseconds.
* @returns This component instance.
*/
setTotalEaseDuration(duration: number): this;
/**
* Set level-exp table.
*
* @param table - Level counter table data.
* @returns This component instance.
*/
setExpTable(table: LevelCounter.TableType): this;
/**
* Reset experience value directly.
*
* @param exp - Experience value to assign.
* @returns This component instance.
*/
resetExp(exp: number): this;
/**
* Get current experience value.
*
* @returns Current experience.
*/
getExp(): number;
/**
* Get required experience value for a level.
*
* @param level - Target level.
* @returns Required experience at the target level.
*/
getExp(level: number): number;
/**
* Get current level.
*
* @returns Current level.
*/
getLevel(): number;
/**
* Resolve level from experience.
*
* @param exp - Experience value.
* @param level - Optional start level hint.
* @returns Resolved level.
*/
getLevel(
exp: number,
level?: number
): number;
/**
* Get required additional exp to the next level.
*
* @param level - Optional current level override.
* @param exp - Optional current exp override.
* @returns Required exp to next level.
*/
getRequiredExpToNextLevel(
level?: number,
exp?: number
): number;
/**
* Increase experience by an increment.
*
* @param incExp - Experience increment.
* @returns This component instance.
*/
gainExp(incExp: number): this;
/**
* Set experience value.
*
* @param exp - Experience value to assign.
* @returns This component instance.
*/
setExp(exp: number): this;
/**
* Set level directly.
*
* @param level - Level value to assign.
* @returns This component instance.
*/
setLevel(level: number): this;
}