|
- define([
- 'js/system/events'
- ], function (
- events
- ) {
- return {
- type: 'passives',
-
- selected: [],
- points: 0,
-
- init: function () {
- events.emit('onGetPassives', this.selected);
- events.emit('onGetPassivePoints', this.points);
- },
-
- extend: function (blueprint) {
- let rerender = false;
-
- if (blueprint.tickNodes) {
- blueprint.tickNodes.forEach(function (n) {
- this.selected.push(n);
- }, this);
-
- rerender = true;
- }
-
- if (blueprint.untickNodes) {
- blueprint.untickNodes.forEach(function (n) {
- this.selected.spliceWhere(function (s) {
- return (s === n);
- });
- }, this);
-
- rerender = true;
- }
-
- if (rerender)
- events.emit('onGetPassives', this.selected);
-
- if (blueprint.points !== null) {
- this.points = blueprint.points;
- events.emit('onGetPassivePoints', this.points);
- }
- }
- };
- });
|