UNPKG

phaser4-rex-plugins

Version:
2 lines (1 loc) 3.97 kB
var t,e;t=void 0,e=function(){var t=function(t,e){var r=Array.isArray(t);if(void 0===e?e=r?[]:{}:function(t){if("object"!=typeof t||null===t)return t;if(Array.isArray(t))t.length=0;else for(var e in t)delete t[e]}(e),r){e.length=t.length;for(var i=0,s=t.length;i<s;i++)e[i]=t[i]}else for(var h in t)e[h]=t[h];return e};const e=Phaser.Utils.Objects.GetValue;class r{constructor(t){this.resetFromJSON(t)}destroy(){this.items=void 0,this.remainder=void 0,this._list=void 0}resetFromJSON(r){null==this.items&&(this.items={}),null==this.remainder&&(this.remainder={}),null==this._list&&(this._list=[]),this.setMode(e(r,"mode",0)),this.setReload(e(r,"reload",!0)),this.setRND(e(r,"rnd",void 0)),this.items=t(e(r,"items",{}),this.items),this._list.length=0,this.result=e(r,"result",null),this._restartFlag=!0,this._restartFlag&&this.startGen();var i=e(r,"remainder",void 0);return i&&(this.remainder=t(i,this.remainder)),this}toJSON(){return{mode:this.mode,reload:this.reload,rnd:this.rnd,items:t(this.items),remainder:t(this.remainder),result:this.result,restart:!0}}startGen(){var t;for(t in this.remainder)this.items.hasOwnProperty(t)||delete this.remainder[t];for(t in this.items){var e=this.items[t];e>0&&(this.remainder[t]=e)}return 1===this.mode&&this.resetItemList(this.remainder),this._restartFlag=!1,this}setMode(t){return"string"==typeof t&&(t=i[t]),this._restartFlag=this.mode!==t,this.mode=t,this}setReload(t){return this.reload=!!t,this}setRND(t){return this.rnd=t,this}setItem(t,e){return this._restartFlag=this.items[t]!==e,this.items[t]=e,this}removeItem(t){return this.items.hasOwnProperty(t)&&(delete this.items[t],this._restartFlag=!0),this}removeAllItems(){for(var t in this.items)delete this.items[t];return this._restartFlag=!0,this}getItems(){return t(this.items)}getRemain(){return t(this.remainder)}getItemCount(t){return this.items[t]||0}getRemainCount(t){return this.remainder[t]||0}forEachItem(t,e){for(var r=[null,void 0],i=2,s=arguments.length;i<s;i++)r.push(arguments[i]);for(var h in this.items)r[0]=h,r[1]=this.items[h],e?t.apply(e,r):t(r);return this}forEachRemain(t,e){for(var r=[null,void 0],i=1;i<arguments.length;i++)r.push(arguments[i]);for(var s in this.remainder)r[1]=s,r[2]=this.remainder[s],e?t.apply(e,r):t(r);return this}addItem(t,e){if(this.items.hasOwnProperty(t)||(this.items[t]=0),this.items[t]+=e,!this._restartFlag)return 0===this.mode?this.addRemainItem(t,e):this.resetItemList(this.remainder),this}putItemBack(t,e){if(1!==this.mode&&this.items.hasOwnProperty(t)&&(2!==this.mode||!this.restartGenFlg))return this.remainder.hasOwnProperty(t)||(this.remainder[t]=0),this.addShadowPattern(t,e,this.items[t]),this}next(t){var e=null;return this._restartFlag&&this.startGen(),null==t?0===this.mode?(this.resetItemList(this.remainder),e=this.getRndItem(this._list),this.addRemainItem(e,-1)):e=this.getRndItem(this._list):this.remainder.hasOwnProperty(t)?(0===this.mode&&this.addRemainItem(t,-1),e=t):e=null,this.result=e,e}resetItemList(t){this._list.length=0;var e,r,i=0;for(e in t)(r=t[e])>0&&(i+=r);for(e in t)(r=t[e])>0&&this._list.push([e,r/i]);return this}addRemainItem(t,e,r){return null==t||0===e||(this.remainder.hasOwnProperty(t)||(this.remainder[t]=0),this.remainder[t]+=e,null!=r&&this.remainder[t]>r&&(this.remainder[t]=r),this.remainder[t]<=0&&delete this.remainder[t],0===this.mode&&this.reload&&function(t){for(var e in t)return!1;return!0}(this.remainder)&&(this._restartFlag=!0)),this}getRndItem(t){var e,r,i=this.rnd?this.rnd.frac():Math.random(),s=null,h=t.length;for(e=0;e<h;e++)if((i-=(r=t[e])[1])<0){s=r[0];break}return s}}const i={shuffle:0,random:1};class s extends Phaser.Plugins.BasePlugin{constructor(t){super(t)}start(){this.game.events.on("destroy",this.destroy,this)}add(t){return new r(t)}}return s},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).rexgashaponplugin=e();