Buff data
Introduction¶
Data manager with buffs, extends from built-in data manager.
- Author: Rex
 - Member of scene
 
Usage¶
Install plugin¶
Load minify file¶
- Load plugin (minify file) in preload stage
    
scene.load.plugin('rexbuffdataplugin', 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexbuffdataplugin.min.js', true); - Add buff data manager object
    
var data = scene.plugins.get('rexbuffdataplugin').add(parent); 
Import plugin¶
- Install rex plugins from npm
    
npm i phaser3-rex-plugins - Install plugin in configuration of game
    
import BuffDataPlugin from 'phaser3-rex-plugins/plugins/buffdata-plugin.js'; var config = { // ... plugins: { global: [{ key: 'rexBuffData', plugin: BuffDataPlugin, start: true }, // ... ] } // ... }; var game = new Phaser.Game(config); - Add buff data manager object
    
var data = scene.plugins.get('rexBuffData').add(parent); 
Import class¶
- Install rex plugins from npm
    
npm i phaser3-rex-plugins - Import class
    
import BuffData from 'phaser3-rex-plugins/plugins/buffdata.js'; - Add buff data manager object
    
var data = new BuffData(parent); 
Create instance¶
var data = scene.plugins.get('rexBuffData').add(parent);
// var data = scene.plugins.get('rexBuffData').add(parent, eventEmitter);
data: Buff data managerparent: The object (a scene, or a game object) that this DataManager belongs to.eventEmitter: The DataManager's event emitter.
Extend existing data manager¶
var data = scene.plugins.get('rexBuffData').extend(data);
data: Existing data manager
Buff¶
A value is composed of baseValue, and some buffs, clamped by min, max values.
- 
Base value
- Set
    
data.setBaseValue(key, value); - Remove
    
data.removeBaseValue(key); - Get
    
var baseValue = data.getBaseValue(key); 
 - Set
    
 - 
Buffs, each value can have many buffs, or no buff.
- Add/set a buff
    
data.setBuff(key, buffKey, value);value:- A number
 - A string for percentage like 
'10%', which means that(baseValue * percentage) 
 - Remove a buff of a key
    
data.removeBuff(key, buffKey); - Remove all buffs of a key
    
data.removeBuff(key); - Get a buff value
    
var buffValue = data.getBuffValue(key, buffKey); 
 - Add/set a buff
    
 - Min, max bounds, optional.
- Set
    
data.setMin(key, min);data.setMax(key, max);data.setBounds(key, min, max);min,max: Clamp buffed result value betweenminandmaxvalue. Setundefinedto ignore it.
 - Get
    
var min = data.getMinBound(key); var max = data.getMaxBound(key); 
 - Set
    
 - Buffed result
- Get
    
var result = data.get(key); - Events
 
 - Get