//============================================================================= // TRP_ParticleMZ_FWStandAlone.js //============================================================================= /* このソフトウェアは正規に購入したユーザーのみが利用規約に従って使用することができます。 また、このソフトウェアはMITライセンス、ならびにApache 2.0ライセンスで配布されている製作物が含まれています。 http://www.opensource.org/licenses/mit-license http://www.apache.org/licenses/LICENSE-2.0 */ /*【打ち上げ高さ調整用】 0で発生、1で消失までのライフサイクルのスピードを設定 デフォルトでは[0,1000,0.5,200,0.8,100,1,0] └発生時(0)にスピード1000 └半分の寿命(0.5)でスピード200 └消滅間際(0.8)でスピード100 └消滅時(1.0)にスピード0 */ var LAUNCH_SPEED = [0,1000,0.5,200,0.8,100,1,0]; /*【キャッシュ設定】 trueにするとパーティクルをより効率的に再利用します。 falseで無効。 試験的なパラメータなので要動作確認。 */ var USE_CACHE = false; //============================================================================= /*: * @target MZ * @author Thirop * @plugindesc 花火プラグイン(MZ用スタンドアロン版) * @help * 【更新履歴】 * 1.04 2022/2/14 ロード時不具合修正 * 1.00 2021/7/19 初版 * * @param modes * @text 【モード設定】 * @desc モード設定 * @type struct[] * @default ["{\"name\":\"opening1\",\"minInterval\":\"3\",\"maxInterval\":\"3\",\"ids\":\"[\\\"fw_simple\\\"]\",\"variations\":\"\",\"positionStr\":\"1,2,3,4,5,6,7,8,9\",\"launchAtSame\":\"true\",\"dyRange\":\"0.05\",\"defaultSec\":\"0\",\"endWaitSec\":\"1.10\",\"invalidOnAuto\":\"true\"}","{\"name\":\"opening2\",\"minInterval\":\"3\",\"maxInterval\":\"3\",\"ids\":\"[\\\"fw_twin\\\"]\",\"variations\":\"\",\"positionStr\":\"1,2.33,3.67,5,6.33,7.67,9\",\"launchAtSame\":\"true\",\"dyRange\":\"0.10\",\"defaultSec\":\"0\",\"endWaitSec\":\"1.00\",\"invalidOnAuto\":\"true\"}","{\"name\":\"opening1Low\",\"minInterval\":\"3\",\"maxInterval\":\"3\",\"ids\":\"[\\\"fw_simple\\\"]\",\"variations\":\"[]\",\"positionStr\":\"1,2.33,3.67,5,6.33,7.67,9\",\"launchAtSame\":\"true\",\"dyRange\":\"0.05\",\"defaultSec\":\"0\",\"endWaitSec\":\"1.10\"}","{\"name\":\"opening2Low\",\"minInterval\":\"3\",\"maxInterval\":\"3\",\"ids\":\"[\\\"fw_twin\\\"]\",\"variations\":\"\",\"positionStr\":\"2,5,8\",\"launchAtSame\":\"true\",\"dyRange\":\"0.10\",\"defaultSec\":\"0\",\"endWaitSec\":\"1.00\"}","{\"name\":\"normal\",\"minInterval\":\"1\",\"maxInterval\":\"120\",\"ids\":\"[\\\"fw_simple\\\",\\\"fw_twinkle\\\",\\\"fw_dual\\\",\\\"fw_change\\\",\\\"fw_kiku\\\",\\\"fw_kikus\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"twinkle\",\"minInterval\":\"1\",\"maxInterval\":\"120\",\"ids\":\"[\\\"fw_twinkle\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"kiku\",\"minInterval\":\"1\",\"maxInterval\":\"120\",\"ids\":\"[\\\"fw_kiku\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"dual\",\"minInterval\":\"1\",\"maxInterval\":\"120\",\"ids\":\"[\\\"fw_dual\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"change\",\"minInterval\":\"1\",\"maxInterval\":\"120\",\"ids\":\"[\\\"fw_twinkle\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"starmine\",\"minInterval\":\"1\",\"maxInterval\":\"20\",\"ids\":\"[\\\"fw_simple\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"starmineHigh\",\"minInterval\":\"1\",\"maxInterval\":\"15\",\"ids\":\"[\\\"fw_simple\\\",\\\"fw_simple\\\",\\\"fw_simple\\\",\\\"fw_twin\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"starmineLow\",\"minInterval\":\"1\",\"maxInterval\":\"40\",\"ids\":\"[\\\"fw_simple\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"-1\",\"defaultSec\":\"10.00\",\"endWaitSec\":\"3.00\"}","{\"name\":\"kikusMulti\",\"minInterval\":\"3\",\"maxInterval\":\"3\",\"ids\":\"[\\\"fw_kikus\\\"]\",\"variations\":\"[]\",\"positionStr\":\"\",\"launchAtSame\":\"false\",\"dyRange\":\"40.00\",\"defaultSec\":\"0.72\",\"endWaitSec\":\"3.00\"}"] * * @param fireworks * @text 【花火データ設定】 * @desc 花火パーティクルデータごとの設定。デフォルト値以外を使用する場合に設定 * @type struct[] * @default ["{\"name\":\"fw_twin\",\"noLaunch\":\"true\",\"variations\":\"[]\",\"se\":\"{\\\"name\\\":\\\"/audio/se/\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"100\\\"}\"}"] * * @param defaultVariationStr * @text 基本バリエーション * @desc デフォルトのカラーバリエーション。カンマ(,)続きで指定 * @default yellow,green,blue,purple,red * * @param defaultAutoModes * @text 自動モード設定 * @desc 自動モード(auto)で再生するモードをカンマつなぎで指定。(未指定で全て) * @default normal,normal,normal:red,normal:green,normal:blue,starmine,starmine:yellow * * @param defaultDyRange * @text 打ち上げ高さ幅 * @desc 打ち上げて爆発する高さのランダム幅(%) * @type number * @min 0 * @default 25 * * @param launchHeight * @text 打ち上げ高さ * @desc 打ち上げパーティクル設定(fw_base)を調整する場合のみ変更。fw_baseが消滅する地点の高さを設定。(デフォ:452) * @default 452 * @type number * * @param parallax * @text スクロール視差 * @desc スクロールの視差率。カンマ続きでx,yを指定。1でスクロール完全追従。 * @default 0.5,0.25 * * @param defaultLaunchSe * @text 打ち上げ時のSE * @desc 花火打ち上げ時のSE * @type struct * * @param defaultBurstSe * @text 爆発時のSE * @desc 花火爆発時のSE * @type struct * * @param seVolumeRange * @text ボリューム乱数幅 * @desc SEボリュームのランダムに変化させる幅 * @default 10 * @type number * @max 100 * @min 0 * * @param sePitchRange * @text ピッチ乱数幅 * @desc SEピッチのランダムに変化させる幅 * @default 5 * @type number * @min 0 * * * * * @command start * @text start/開始 * @desc 花火自動打ち上げの開始 * * @arg mode * @text モード名 * @desc モード名。指定無しで自動モード、auto:mode1,...で自動モードで有効なモード指定,waitで待機 * * @arg duration * @text モード持続秒数 * @desc モード指定時のモード持続秒数。-1でデフォ値 * @type number * @min -1 * @default -1 * * @arg variationStr * @text バリエーション * @desc 使用するバリエーションをカンマ(,)続きで指定(デフォ色はdefault)。未指定で各モードのデフォルト値、noneで無効。 * * * @command reserve * @text reserve/予約 * @desc モードの予約 * * @arg mode * @text モード名 * @desc モード名。auto,指定無しで自動モード、auto:mode1,mode2,...で自動モードで有効なモード指定,endで終了 * * @arg duration * @text モード持続秒数 * @desc モード指定時のモード持続秒数。-1でデフォ値 * @type number * @min -1 * @default -1 * * @arg variationStr * @text バリエーション * @desc 使用するバリエーションをカンマ(,)続きで指定(デフォ色はdefault)。未指定で各モードのデフォルト値、noneで無効。 * * @arg startWait * @text 開始時のウェイト(秒) * @desc -1で無効。0以上とすると直前のモードの終了時のウェイトを無視して開始ウェイト設定 * @default -1 * @type number * @min -1 * @decimals 2 * * * @command clear * @text 予約クリア * @desc 予約している全てのモードをクリア * * @command end * @text end/終了 * @desc 自動打ち上げの終了。(予約モード完了時に終える場合はreserveコマンドでモードにend指定) * * */ //============================================================================= /*~struct~SE: * @param name * @text SEファイル名 * @desc SEに使用するファイル名の選択 * @type file * @default /audio/se/ * * @param volume * @text ボリューム * @desc SEのボリューム * @type number * @min 0 * @max 100 * @default 90 * * @param pitch * @text ピッチ * @desc SEのピッチ * @type number * @min 0 * @default 100 * * @param pan * @text パン * @desc SEのパン * @type number * @default 100 * */ /*~struct~Fireworks: * @param name * @text パーティクルグループ名 * @desc 対応するパーティクルグループ名。(グループでない通常のエミッター名でも可) * * @param noLaunch * @text 噴き出しタイプ * @desc ONとすると吹き上げタイプ(打ち上げせずに地面位置で表示) * @type boolean * @default false * * @param variations * @text バリエーション * @desc このパーティクルグループに用意しているバリエーション。未設定でデフォルト、1項目目にnoneで未使用 * @type string[] * @default [] * * @param se * @text SE設定 * @desc SE設定。未設定でデフォルトSE、名前をnoneでSE未使用 * @type struct * */ /*~struct~Mode: * @param name * @text モード名 * @desc モード名。各プラグインコマンドでモードの指定に使用 * * @param minInterval * @text 最小打ち上げ間隔 * @desc 打ち上げ間隔の最小フレーム数 * @type number * @min 1 * @default 30 * * @param maxInterval * @text 最大打ち上げ間隔 * @desc 打ち上げ間隔の最大フレーム数 * @type number * @min 1 * @default 60 * * @param ids * @text 花火IDリスト * @desc このモードで使用する花火パーティクルグループのリスト * @type string[] * @default [] * * @param variations * @text バリエーション * @desc このモードで有効なバリエーション。1項目目にnoneでバリエーションなし * @type string[] * * @param positionStr * @text X位置 * @desc 発射するX位置(0~10)の指定。カンマ(,)続きで複数指定可能 * * @param launchAtSame * @text └同時に発射 * @desc ONにするとX位置を複数指定時、打ち上げ時にそれらの位置で同時発射 * @type boolean * @default false * * @param dyRange * @text 打ち上げ高さ幅 * @desc 爆発位置の高さのランダム幅(%)。-1とするとデフォルト値使用 * @default -1 * @decimals 2 * @type number * @min -1 * * @param defaultSec * @text モード継続秒数 * @desc モード継続秒数 * @default 10 * @type number * @decimals 2 * @min 0 * * @param endWaitSec * @text 終了時のウェイト * @desc モード終了時に次のモードに遷移するまでの秒数 * @default 3 * @type number * @decimals 2 * @min 0 * * */ //============================================================================= function Game_Particle(){ this.initialize.apply(this, arguments); }; function ParticleGroup(){ this.initialize.apply(this, arguments); }; function Game_Fireworks(){ this.initialize.apply(this, arguments); }; (function(){ PluginManager._parameters['trp_particlemz'] = {"importLibrary":"true","importFilter":"true","systemParticles":"[]","commandName":"particle,パーティクル","keepPictureOrder":"false","walkOffset":"16","dashOffset":"16","categoryClear":"==============================","clearCharacterOnMapChange":"true","clearPartyOnMapChange":"true","clearScreenOnMapChange":"true","clearBattleScreenOnEnd":"false","clearBattleCharaOnEnd":"true","categoryPerformance":"==============================","regionMargin":"2","outsideMargin":"6","maxParticles":"100000","categoryConflict":"==============================","disableState":"false","disableSkill":"false","disableRoute":"false","cacheBeforeTerminate":"false","categorySenior":"==============================","sceneTypes":"[]","noRewriteFunctions":"false","categoryDebug":"==============================","displayCount":"false","errorLog":"true","windowBugFix":"true","useCache":USE_CACHE} var $dataTrpParticlePreset = []; var $dataTrpParticleGroupsPreset = []; (()=>{ $dataTrpParticlePreset["fw_base"] = [4,[[0,1,0.7,1,1,0]],[[0,0.15,1,0.1],1],[LAUNCH_SPEED,1],[[0,"#f8cda8",1,"#9f9f9f"]],0,[0,0],null,[-90,-90],[0,0],10,0,0,[1.3,1.3],1,0.01,1,5,0.011,10000,[0,0],4,[0,312],[0,0,0.015,1,0,0,0],0,0,"particle7",0, "花火~打ち上げ用[橙]"]; // $dataTrpParticlePreset["fw_base_yellow"] = [4,[[0,0.8,0.7,0.8,1,0]],[[0,0.15,1,0.15],0.5],[[0,1000,0.5,200,0.8,100,1,0],1],[[0,"#fffa76",1,"#fffdcd"]],0,[0,0],null,[-90,-90],[0,0],0,0,0,[1.3,1.3],1,0.01,1,5,0.011,10000,[0,0],4,[0,312],[0,0,0.015,1,0,0,0],0,0,"particle9",0, // "花火~打ち上げ用[黄]"]; // $dataTrpParticlePreset["fw_base_green"] = [4,[[0,0.8,0.7,0.8,1,0]],[[0,0.15,1,0.15],0.5],[[0,1000,0.5,200,0.8,100,1,0],1],[[0,"#a1ff76",1,"#daface"]],0,[0,0],null,[-90,-90],[0,0],0,0,0,[1.3,1.3],1,0.01,1,5,0.011,10000,[0,0],4,[0,312],[0,0,0.015,1,0,0,0],0,0,"particle9",0, // "花火~打ち上げ用[緑]"]; // $dataTrpParticlePreset["fw_base_blue"] = [4,[[0,0.8,0.7,0.8,1,0]],[[0,0.15,1,0.15],0.5],[[0,1000,0.5,200,0.8,100,1,0],1],[[0,"#276aff",1,"#c2eaff"]],0,[0,0],null,[-90,-90],[0,0],0,0,0,[1.3,1.3],1,0.01,1,5,0.011,10000,[0,0],4,[0,312],[0,0,0.015,1,0,0,0],0,0,"particle9",0, // "花火~打ち上げ用[青]"]; // $dataTrpParticlePreset["fw_base_purple"] = [4,[[0,0.8,0.7,0.8,1,0]],[[0,0.15,1,0.15],0.5],[[0,1000,0.5,200,0.8,100,1,0],1],[[0,"#b169ff",1,"#e7cdff"]],0,[0,0],null,[-90,-90],[0,0],0,0,0,[1.3,1.3],1,0.01,1,5,0.011,10000,[0,0],4,[0,312],[0,0,0.015,1,0,0,0],0,0,"particle9",0, // "花火~打ち上げ用[紫]"]; // $dataTrpParticlePreset["fw_base_red"] = [4,[[0,0.8,0.7,0.8,1,0]],[[0,0.15,1,0.15],0.5],[[0,1000,0.5,200,0.8,100,1,0],1],[[0,"#ff4444",1,"#ffc2c2"]],0,[0,0],null,[-90,-90],[0,0],0,0,0,[1.3,1.3],1,0.01,1,5,0.011,10000,[0,0],4,[0,312],[0,0,0.015,1,0,0,0],0,0,"particle9",0, // "花火~打ち上げ用[赤]"]; //fw_twinkle $dataTrpParticlePreset["_auto:0:fw_twinkle/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#c29474",1,"#e4c7ad"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_twinkle_yellow/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#f7fd85",1,"#fffdc2"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""]; $dataTrpParticlePreset["_auto:0:fw_twinkle_green/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#a2ddaa",1,"#e2f8d4"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_twinkle_blue/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#8eaefd",1,"#b1bffd"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_twinkle_purple/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#ab9dfa",1,"#ecddfa"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_twinkle_red/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#dda2b4",1,"#f8d4d4"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_twinkle/h"] = [4,[[0,0,0.1,1,0.2,0,0.3,1,0.4,0,0.5,1,0.6,0,0.7,1,1,0]],[[0,0.1,0.7,0.1,1,0],0.5],[[0,0,1,0],1],[[0,"#f8cf66",1,"#ffffff"]],0,[0,20],null,[0,360],[0,0],0,0,0,[1,2],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""]; $dataTrpParticlePreset["_sub:0:fw_twinkle_yellow/h"] = [4,[[0,0,0.1,1,0.2,0,0.3,1,0.4,0,0.5,1,0.6,0,0.7,1,1,0]],[[0,0.1,0.7,0.1,1,0],0.5],[[0,0,1,0],1],[[0,"#ecf866",1,"#ffffff"]],0,[0,20],null,[0,360],[0,0],0,0,0,[1,2],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""]; $dataTrpParticlePreset["_sub:0:fw_twinkle_green/h"] = [4,[[0,0,0.1,1,0.2,0,0.3,1,0.4,0,0.5,1,0.6,0,0.7,1,1,0]],[[0,0.1,0.7,0.1,1,0],0.5],[[0,0,1,0],1],[[0,"#66f879",1,"#ffffff"]],0,[0,20],null,[0,360],[0,0],0,0,0,[1,2],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_twinkle_blue/h"] = [4,[[0,0,0.1,1,0.2,0,0.3,1,0.4,0,0.5,1,0.6,0,0.7,1,1,0]],[[0,0.1,0.7,0.1,1,0],0.5],[[0,0,1,0],1],[[0,"#6692f8",1,"#ffffff"]],0,[0,20],null,[0,360],[0,0],0,0,0,[1,2],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_twinkle_purple/h"] = [4,[[0,0,0.1,1,0.2,0,0.3,1,0.4,0,0.5,1,0.6,0,0.7,1,1,0]],[[0,0.1,0.7,0.1,1,0],0.5],[[0,0,1,0],1],[[0,"#8866f8",1,"#ffffff"]],0,[0,20],null,[0,360],[0,0],0,0,0,[1,2],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_twinkle_red/h"] = [4,[[0,0,0.1,1,0.2,0,0.3,1,0.4,0,0.5,1,0.6,0,0.7,1,1,0]],[[0,0.1,0.7,0.1,1,0],0.5],[[0,0,1,0],1],[[0,"#f47878",1,"#ffffff"]],0,[0,20],null,[0,360],[0,0],0,0,0,[1,2],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticleGroupsPreset["fw_twinkle"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.9 -1 3 0 0"],"targetType":0, "comment":"花火~キラキラ[橙]"}; $dataTrpParticleGroupsPreset["fw_twinkle_yellow/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.9 -1 3 0 0"],"targetType":0, "comment":"花火~キラキラ[黄]"}; $dataTrpParticleGroupsPreset["fw_twinkle_green/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.9 -1 3 0 0"],"targetType":0, "comment":"花火~キラキラ[緑]"}; $dataTrpParticleGroupsPreset["fw_twinkle_blue/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.9 -1 3 0 0"],"targetType":0, "comment":"花火~キラキラ[青]"}; $dataTrpParticleGroupsPreset["fw_twinkle_purple/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.9 -1 3 0 0"],"targetType":0, "comment":"花火~キラキラ[紫]"}; $dataTrpParticleGroupsPreset["fw_twinkle_red/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.9 -1 3 0 0"],"targetType":0, "comment":"花火~キラキラ[赤]"}; //fw_kiku $dataTrpParticlePreset["_auto:0:fw_kiku/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2,0.15,1.5,0.5,0.2,1,0],1],[[0,1500,0.1,100,1,10],0.8],[[0,"#ffffff",1,"#ff8e3e"]],1,[0,2],null,[-240,60],[50,-50],0,0,0,[1,2.5],1,0.001,1,1,0.04,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kiku_yellow/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2,0.15,1.5,0.5,0.2,1,0],1],[[0,1500,0.1,100,1,10],0.8],[[0,"#ffffff",1,"#ffcf3e"]],1,[0,2],null,[-240,60],[50,-50],0,0,0,[1,2.5],1,0.001,1,1,0.04,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kiku_green/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2,0.15,1.5,0.5,0.2,1,0],1],[[0,1500,0.1,100,1,10],0.8],[[0,"#ffffff",1,"#77ad4a"]],1,[0,2],null,[-240,60],[50,-50],0,0,0,[1,2.5],1,0.001,1,1,0.04,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kiku_blue/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2,0.15,1.5,0.5,0.2,1,0],1],[[0,1500,0.1,100,1,10],0.8],[[0,"#ffffff",1,"#4a68ad"]],1,[0,2],null,[-240,60],[50,-50],0,0,0,[1,2.5],1,0.001,1,1,0.04,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kiku_purple/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2,0.15,1.5,0.5,0.2,1,0],1],[[0,1500,0.1,100,1,10],0.8],[[0,"#ffffff",1,"#7a4aad"]],1,[0,2],null,[-240,60],[50,-50],0,0,0,[1,2.5],1,0.001,1,1,0.04,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kiku_red/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2,0.15,1.5,0.5,0.2,1,0],1],[[0,1500,0.1,100,1,10],0.8],[[0,"#ffffff",1,"#ed5942"]],1,[0,2],null,[-240,60],[50,-50],0,0,0,[1,2.5],1,0.001,1,1,0.04,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_sub:0:fw_kiku/h"] = [4,[[0,1,1,0]],[[0,0.3,0.5,0.2,1,0],1],[[0,0,1,0],1],[[0,"#f6857f",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[2.5,3],1,0.06,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kiku_yellow/h"] = [4,[[0,1,1,0]],[[0,0.3,0.5,0.2,1,0],1],[[0,0,1,0],1],[[0,"#f6e27f",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[2.5,3],1,0.06,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kiku_green/h"] = [4,[[0,1,1,0]],[[0,0.3,0.5,0.2,1,0],1],[[0,0,1,0],1],[[0,"#99ca87",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[2.5,3],1,0.06,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kiku_blue/h"] = [4,[[0,1,1,0]],[[0,0.3,0.5,0.2,1,0],1],[[0,0,1,0],1],[[0,"#5081b8",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[2.5,3],1,0.06,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kiku_purple/h"] = [4,[[0,1,1,0]],[[0,0.3,0.5,0.2,1,0],1],[[0,0,1,0],1],[[0,"#7e5bb2",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[2.5,3],1,0.06,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kiku_red/h"] = [4,[[0,1,1,0]],[[0,0.3,0.5,0.2,1,0],1],[[0,0,1,0],1],[[0,"#b25b78",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[2.5,3],1,0.06,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticleGroupsPreset["fw_kiku"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.06 0.5 0.05 1 0"],"targetType":0, "comment":"花火~菊(大)[橙]"}; $dataTrpParticleGroupsPreset["fw_kiku_yellow/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.06 0.5 0.05 1 0"],"targetType":0, "comment":"花火~菊(大)[黄]"}; $dataTrpParticleGroupsPreset["fw_kiku_green/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.06 0.5 0.05 1 0"],"targetType":0, "comment":"花火~菊(大)[緑]"}; $dataTrpParticleGroupsPreset["fw_kiku_blue/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.06 0.5 0.05 1 0"],"targetType":0, "comment":"花火~菊(大)[青]"}; $dataTrpParticleGroupsPreset["fw_kiku_purple/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.06 0.5 0.05 1 0"],"targetType":0, "comment":"花火~菊(大)[紫]"}; $dataTrpParticleGroupsPreset["fw_kiku_red/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.06 0.5 0.05 1 0"],"targetType":0, "comment":"花火~菊(大)[赤]"}; //fw_dual $dataTrpParticlePreset["_auto:0:fw_dual/h"] = [4,[[0,1,0.11,1,0.7,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.3,1,0],1],[[0,1300,0.15,30,1,1],0.5],[[0,"#ddb585",1,"#ffaf3e"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.05,10000,[0,0],3,[0,-300],[0,0,0,0],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:0:fw_dual_yellow/h"] = [4,[[0,1,0.11,1,0.7,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.3,1,0],1],[[0,1300,0.15,30,1,1],0.5],[[0,"#dddd85",1,"#ffcf3e"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.05,10000,[0,0],3,[0,-300],[0,0,0,0],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:0:fw_dual_green/h"] = [4,[[0,1,0.11,1,0.7,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.3,1,0],1],[[0,1300,0.15,30,1,1],0.5],[[0,"#5fa963",1,"#54bf67"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.05,10000,[0,0],3,[0,-300],[0,0,0,0],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:0:fw_dual_blue/h"] = [4,[[0,1,0.11,1,0.7,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.3,1,0],1],[[0,1300,0.15,30,1,1],0.5],[[0,"#5c7bc6",1,"#243ff6"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.05,10000,[0,0],3,[0,-300],[0,0,0,0],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:0:fw_dual_purple/h"] = [4,[[0,1,0.11,1,0.7,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.3,1,0],1],[[0,1300,0.15,30,1,1],0.5],[[0,"#6a5adf",1,"#4e24f6"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.05,10000,[0,0],3,[0,-300],[0,0,0,0],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:0:fw_dual_red/h"] = [4,[[0,1,0.11,1,0.7,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.3,1,0],1],[[0,1300,0.15,30,1,1],0.5],[[0,"#eb8c8c",1,"#f66060"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.05,10000,[0,0],3,[0,-300],[0,0,0,0],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:1:fw_dual/h"] = [4,[[0,1,0.11,1,0.5,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.25,1,0],1],[[0,700,0.13,20,1,10],0.2],[[0,"#94b976",1,"#70c847"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.035,10000,[0,0],3,[0,-300],[0,0,0,20],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:1:fw_dual_yellow/h"] = [4,[[0,1,0.11,1,0.5,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.25,1,0],1],[[0,700,0.13,20,1,10],0.2],[[0,"#76b9a4",1,"#4785c8"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.035,10000,[0,0],3,[0,-300],[0,0,0,20],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:1:fw_dual_green/h"] = [4,[[0,1,0.11,1,0.5,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.25,1,0],1],[[0,700,0.13,20,1,10],0.2],[[0,"#7696b9",1,"#4b47c8"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.035,10000,[0,0],3,[0,-300],[0,0,0,20],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:1:fw_dual_blue/h"] = [4,[[0,1,0.11,1,0.5,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.25,1,0],1],[[0,700,0.13,20,1,10],0.2],[[0,"#ae67cd",1,"#9b47c8"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.035,10000,[0,0],3,[0,-300],[0,0,0,20],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:1:fw_dual_purple/h"] = [4,[[0,1,0.11,1,0.5,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.25,1,0],1],[[0,700,0.13,20,1,10],0.2],[[0,"#cd8967",1,"#c88e47"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.035,10000,[0,0],3,[0,-300],[0,0,0,20],0,0,"particle9",0,""] $dataTrpParticlePreset["_auto:1:fw_dual_red/h"] = [4,[[0,1,0.11,1,0.5,1,1,0]],[[0,1.2,0.15,0.6,0.7,0.25,1,0],1],[[0,700,0.13,20,1,10],0.2],[[0,"#cdb967",1,"#c8b347"]],1,[0,0],null,[0,0],[50,-50],0,0,0,[2,2],1,0.001,1,2,0.035,10000,[0,0],3,[0,-300],[0,0,0,20],0,0,"particle9",0,""] $dataTrpParticleGroupsPreset["fw_dual"] = {"repeat":-1,"list":["play _auto:0 target def back","play _auto:1 target def back"],"targetType":0, "comment":"花火~2色[橙]"}; $dataTrpParticleGroupsPreset["fw_dual_yellow/h"] = {"repeat":-1,"list":["play _auto:0 target def back","play _auto:1 target def back"],"targetType":0, "comment":"花火~2色[黄]"}; $dataTrpParticleGroupsPreset["fw_dual_green/h"] = {"repeat":-1,"list":["play _auto:0 target def back","play _auto:1 target def back"],"targetType":0, "comment":"花火~2色[緑]"}; $dataTrpParticleGroupsPreset["fw_dual_blue/h"] = {"repeat":-1,"list":["play _auto:0 target def back","play _auto:1 target def back"],"targetType":0, "comment":"花火~2色[青]"}; $dataTrpParticleGroupsPreset["fw_dual_purple/h"] = {"repeat":-1,"list":["play _auto:0 target def back","play _auto:1 target def back"],"targetType":0, "comment":"花火~2色[紫]"}; $dataTrpParticleGroupsPreset["fw_dual_red/h"] = {"repeat":-1,"list":["play _auto:0 target def back","play _auto:1 target def back"],"targetType":0, "comment":"花火~2色[赤]"}; //fw_simple $dataTrpParticlePreset["_auto:0:fw_simple/h"] = [4,[[0,0,0.11,1,0.4,1,1,0]],[[0,0.15,0.15,0.15,0.8,0.08,1,0],0.8],[[0,1500,0.12,200,0.2,50,1,1],0.1],[[0,"#fbbb9b",1,"#f4a84a"]],1,[0,0],null,[0,360],[0,0],0,0,0,[1.4,1.6],1,0.001,1,10,0.011,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_simple_yellow/h"] = [4,[[0,0,0.11,1,0.4,1,1,0]],[[0,0.15,0.15,0.15,0.8,0.08,1,0],0.8],[[0,1500,0.12,200,0.2,50,1,1],0.1],[[0,"#fbe09b",1,"#f4ca4a"]],1,[0,0],null,[0,360],[0,0],0,0,0,[1.4,1.6],1,0.001,1,10,0.011,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_simple_green/h"] = [4,[[0,0,0.11,1,0.4,1,1,0]],[[0,0.15,0.15,0.15,0.8,0.08,1,0],0.8],[[0,1500,0.12,200,0.2,50,1,1],0.1],[[0,"#6dad78",1,"#41cb5f"]],1,[0,0],null,[0,360],[0,0],0,0,0,[1.4,1.6],1,0.001,1,10,0.011,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_simple_blue/h"] = [4,[[0,0,0.11,1,0.4,1,1,0]],[[0,0.15,0.15,0.15,0.8,0.08,1,0],0.8],[[0,1500,0.12,200,0.2,50,1,1],0.1],[[0,"#3d7df3",1,"#5e84eb"]],1,[0,0],null,[0,360],[0,0],0,0,0,[1.4,1.6],1,0.001,1,10,0.011,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_simple_purple/h"] = [4,[[0,0,0.11,1,0.4,1,1,0]],[[0,0.15,0.15,0.15,0.8,0.08,1,0],0.8],[[0,1500,0.12,200,0.2,50,1,1],0.1],[[0,"#996bfa",1,"#8764fa"]],1,[0,0],null,[0,360],[0,0],0,0,0,[1.4,1.6],1,0.001,1,10,0.011,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_simple_red/h"] = [4,[[0,0,0.11,1,0.4,1,1,0]],[[0,0.15,0.15,0.15,0.8,0.08,1,0],0.8],[[0,1500,0.12,200,0.2,50,1,1],0.1],[[0,"#ed9494",1,"#fa6464"]],1,[0,0],null,[0,360],[0,0],0,0,0,[1.4,1.6],1,0.001,1,10,0.011,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticleGroupsPreset["fw_simple"] = {"repeat":-1,"list":["play _auto:0 target def back"],"targetType":0, "comment":"花火~シンプル[橙]"}; $dataTrpParticleGroupsPreset["fw_simple_yellow/h"] = {"repeat":-1,"list":["play _auto:0 target def back"],"targetType":0, "comment":"花火~シンプル[黄]"}; $dataTrpParticleGroupsPreset["fw_simple_green/h"] = {"repeat":-1,"list":["play _auto:0 target def back"],"targetType":0, "comment":"花火~シンプル[緑]"}; $dataTrpParticleGroupsPreset["fw_simple_blue/h"] = {"repeat":-1,"list":["play _auto:0 target def back"],"targetType":0, "comment":"花火~シンプル[青]"}; $dataTrpParticleGroupsPreset["fw_simple_purple/h"] = {"repeat":-1,"list":["play _auto:0 target def back"],"targetType":0, "comment":"花火~シンプル[紫]"}; $dataTrpParticleGroupsPreset["fw_simple_red/h"] = {"repeat":-1,"list":["play _auto:0 target def back"],"targetType":0, "comment":"花火~シンプル[赤]"}; //fw_change $dataTrpParticlePreset["_auto:0:fw_change/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#fa9b46",1,"#f1de90"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_change_yellow/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#fad646",1,"#f1e690"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_change_green/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#5da632",1,"#c7f190"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_change_blue/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#3acdfa",1,"#3062ed"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_change_purple/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#903afa",1,"#3059ed"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_auto:0:fw_change_red/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0.1,0.15,0.1,0.8,0.05,1,0],0.8],[[0,1200,0.1,200,0.2,50,1,1],0.1],[[0,"#fda5a5",1,"#fa4e2a"]],1,[0,0],null,[0,360],[50,-50],0,0,0,[2,2],1,0.1,1,200,0.11,10000,[0,0],0,[0,-300],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_change/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0,0.11,0.15,0.2,0.12,0.8,0.05,1,0],1],[[0,10,1,0],0.1],[[0,"#97d6c7",1,"#398fa9"]],1,[0,2],null,[0,0],[50,-50],0,0,0,[1.5,1.5],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_change_yellow/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0,0.11,0.15,0.2,0.12,0.8,0.05,1,0],1],[[0,10,1,0],0.1],[[0,"#9798d6",1,"#2b4ee6"]],1,[0,2],null,[0,0],[50,-50],0,0,0,[1.5,1.5],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_change_green/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0,0.11,0.15,0.2,0.12,0.8,0.05,1,0],1],[[0,10,1,0],0.1],[[0,"#b397d6",1,"#662be6"]],1,[0,2],null,[0,0],[50,-50],0,0,0,[1.5,1.5],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_change_blue/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0,0.11,0.15,0.2,0.12,0.8,0.05,1,0],1],[[0,10,1,0],0.1],[[0,"#edb3b3",1,"#d1236c"]],1,[0,2],null,[0,0],[50,-50],0,0,0,[1.5,1.5],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_change_purple/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0,0.11,0.15,0.2,0.12,0.8,0.05,1,0],1],[[0,10,1,0],0.1],[[0,"#edceb3",1,"#d17a23"]],1,[0,2],null,[0,0],[50,-50],0,0,0,[1.5,1.5],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticlePreset["_sub:0:fw_change_red/h"] = [4,[[0,0,0.11,1,0.5,1,1,0]],[[0,0,0.11,0.15,0.2,0.12,0.8,0.05,1,0],1],[[0,10,1,0],0.1],[[0,"#e0edb3",1,"#69d123"]],1,[0,2],null,[0,0],[50,-50],0,0,0,[1.5,1.5],1,0.1,1,1,0.11,10000,[0,0],0,[0,0],null,0,0,"flare",0,""] $dataTrpParticleGroupsPreset["fw_change"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.8 -1 1 1 0 def back"],"targetType":0, "comment":"花火~色変化[橙]"}; $dataTrpParticleGroupsPreset["fw_change_yellow/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.8 -1 1 1 0 def back"],"targetType":0, "comment":"花火~色変化[黄]"}; $dataTrpParticleGroupsPreset["fw_change_green/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.8 -1 1 1 0 def back"],"targetType":0, "comment":"花火~色変化[緑]"}; $dataTrpParticleGroupsPreset["fw_change_blue/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.8 -1 1 1 0 def back"],"targetType":0, "comment":"花火~色変化[青]"}; $dataTrpParticleGroupsPreset["fw_change_purple/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.8 -1 1 1 0 def back"],"targetType":0, "comment":"花火~色変化[紫]"}; $dataTrpParticleGroupsPreset["fw_change_red/h"] = {"repeat":-1,"list":["play _auto:0 target def back","sub set _auto:0 _sub:0 0.8 -1 1 1 0 def back"],"targetType":0, "comment":"花火~色変化[赤]"}; //fw_kikus $dataTrpParticlePreset["_auto:0:fw_kikus/h"] = [4,[[0,1,0.6,1,1,0]],[[0,1.5,0.11,1.2,0.6,0.3,1,0],1],[[0,700,0.11,150,0.6,40,1,0],0.85],[[0,"#ffffff",1,"#ff683e"]],1,[0,5],null,[-225,45],[50,-50],10,0,0,[0.9,1.3],1,0.001,1,1,0.012,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kikus_yellow/h"] = [4,[[0,1,0.6,1,1,0]],[[0,1.5,0.11,1.2,0.6,0.3,1,0],1],[[0,700,0.11,150,0.6,40,1,0],0.85],[[0,"#ffffff",1,"#ffcf3e"]],1,[0,5],null,[-225,45],[50,-50],10,0,0,[0.9,1.3],1,0.001,1,1,0.012,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kikus_green/h"] = [4,[[0,1,0.6,1,1,0]],[[0,1.5,0.11,1.2,0.6,0.3,1,0],1],[[0,700,0.11,150,0.6,40,1,0],0.85],[[0,"#ffffff",1,"#92cb91"]],1,[0,5],null,[-225,45],[50,-50],10,0,0,[0.9,1.3],1,0.001,1,1,0.012,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kikus_blue/h"] = [4,[[0,1,0.6,1,1,0]],[[0,1.5,0.11,1.2,0.6,0.3,1,0],1],[[0,700,0.11,150,0.6,40,1,0],0.85],[[0,"#bccff4",1,"#5580d4"]],1,[0,5],null,[-225,45],[50,-50],10,0,0,[0.9,1.3],1,0.001,1,1,0.012,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kikus_purple/h"] = [4,[[0,1,0.6,1,1,0]],[[0,1.5,0.11,1.2,0.6,0.3,1,0],1],[[0,700,0.11,150,0.6,40,1,0],0.85],[[0,"#ccbcf4",1,"#6855d4"]],1,[0,5],null,[-225,45],[50,-50],10,0,0,[0.9,1.3],1,0.001,1,1,0.012,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_kikus_red/h"] = [4,[[0,1,0.6,1,1,0]],[[0,1.5,0.11,1.2,0.6,0.3,1,0],1],[[0,700,0.11,150,0.6,40,1,0],0.85],[[0,"#f4d1bc",1,"#d4559b"]],1,[0,5],null,[-225,45],[50,-50],10,0,0,[0.9,1.3],1,0.001,1,1,0.012,10000,[0,0],0,[0,-300],null,0,0,"particle8",0,""] $dataTrpParticlePreset["_sub:0:fw_kikus/h"] = [4,[[0,1,1,0]],[[0,0.25,0.5,0.25,1,0],1],[[0,0,1,0],1],[[0,"#f6857f",1,"#ffffff"]],0,[0,0],null,[0,0],[0,0],10,0,0,[1.9,2.3],1,0.04,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kikus_yellow/h"] = [4,[[0,1,1,0]],[[0,0.25,0.5,0.25,1,0],1],[[0,0,1,0],1],[[0,"#b1a15d",1,"#ddc96b"]],0,[0,0],null,[0,0],[0,0],10,0,0,[1.9,2.3],1,0.04,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kikus_green/h"] = [4,[[0,1,1,0]],[[0,0.25,0.5,0.25,1,0],1],[[0,0,1,0],1],[[0,"#88cf8b",1,"#5cbf76"]],0,[0,0],null,[0,0],[0,0],10,0,0,[1.9,2.3],1,0.04,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kikus_blue/h"] = [4,[[0,1,1,0]],[[0,0.25,0.5,0.25,1,0],1],[[0,0,1,0],1],[[0,"#2848bf",1,"#8589d8"]],0,[0,0],null,[0,0],[0,0],10,0,0,[1.9,2.3],1,0.04,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kikus_purple/h"] = [4,[[0,1,1,0]],[[0,0.25,0.5,0.25,1,0],1],[[0,0,1,0],1],[[0,"#6e4ddd",1,"#9885d8"]],0,[0,0],null,[0,0],[0,0],10,0,0,[1.9,2.3],1,0.04,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_kikus_red/h"] = [4,[[0,1,1,0]],[[0,0.25,0.5,0.25,1,0],1],[[0,0,1,0],1],[[0,"#ea7d7d",1,"#dfa5c7"]],0,[0,0],null,[0,0],[0,0],10,0,0,[1.9,2.3],1,0.04,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticleGroupsPreset["fw_kikus"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0.05 0.65 0 1 0"],"targetType":0, "comment":"花火~菊(小)[橙]"}; $dataTrpParticleGroupsPreset["fw_kikus_yellow/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0.05 0.65 0 1 0"],"targetType":0, "comment":"花火~菊(小)[黄]"}; $dataTrpParticleGroupsPreset["fw_kikus_green/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0.05 0.65 0 1 0"],"targetType":0, "comment":"花火~菊(小)[緑]"}; $dataTrpParticleGroupsPreset["fw_kikus_blue/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0.05 0.65 0 1 0"],"targetType":0, "comment":"花火~菊(小)[青]"}; $dataTrpParticleGroupsPreset["fw_kikus_purple/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0.05 0.65 0 1 0"],"targetType":0, "comment":"花火~菊(小)[紫]"}; $dataTrpParticleGroupsPreset["fw_kikus_red/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0.05 0.65 0 1 0"],"targetType":0, "comment":"花火~菊(小)[赤]"}; //fw_twin $dataTrpParticlePreset["_auto:0:fw_twin/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2.5,0.15,1,0.5,0.1,1,0],1],[[0,2000,0.2,450,0.5,100,1,10],0.9],[[0,"#ff9989",1,"#ffe2ca"]],0,[0,0],null,[-120,-110],[50,-50],0,0,0,[1.3,1.5],1,0.01,1,2,0.011,10000,[0,0],4,[0,0],[20,-100,0,0,0,0,0],0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_twin_yellow/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2.5,0.15,1,0.5,0.1,1,0],1],[[0,2000,0.2,450,0.5,100,1,10],0.9],[[0,"#f8dd73",1,"#ffe2ca"]],0,[0,0],null,[-120,-110],[50,-50],0,0,0,[1.3,1.5],1,0.01,1,2,0.011,10000,[0,0],4,[0,0],[20,-100,0,0,0,0,0],0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_twin_green/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2.5,0.15,1,0.5,0.1,1,0],1],[[0,2000,0.2,450,0.5,100,1,10],0.9],[[0,"#48ef49",1,"#ceffca"]],0,[0,0],null,[-120,-110],[50,-50],0,0,0,[1.3,1.5],1,0.01,1,2,0.011,10000,[0,0],4,[0,0],[20,-100,0,0,0,0,0],0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_twin_blue/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2.5,0.15,1,0.5,0.1,1,0],1],[[0,2000,0.2,450,0.5,100,1,10],0.9],[[0,"#739bf8",1,"#cae5ff"]],0,[0,0],null,[-120,-110],[50,-50],0,0,0,[1.3,1.5],1,0.01,1,2,0.011,10000,[0,0],4,[0,0],[20,-100,0,0,0,0,0],0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_twin_purple/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2.5,0.15,1,0.5,0.1,1,0],1],[[0,2000,0.2,450,0.5,100,1,10],0.9],[[0,"#8548ef",1,"#ddcaff"]],0,[0,0],null,[-120,-110],[50,-50],0,0,0,[1.3,1.5],1,0.01,1,2,0.011,10000,[0,0],4,[0,0],[20,-100,0,0,0,0,0],0,0,"particle8",0,""] $dataTrpParticlePreset["_auto:0:fw_twin_red/h"] = [4,[[0,2,0.11,1,0.5,1,1,0]],[[0,2.5,0.15,1,0.5,0.1,1,0],1],[[0,2000,0.2,450,0.5,100,1,10],0.9],[[0,"#f69a9a",1,"#ffcae5"]],0,[0,0],null,[-120,-110],[50,-50],0,0,0,[1.3,1.5],1,0.01,1,2,0.011,10000,[0,0],4,[0,0],[20,-100,0,0,0,0,0],0,0,"particle8",0,""] $dataTrpParticlePreset["_sub:0:fw_twin/h"] = [4,[[0,1,1,0]],[[0,0.2,0.5,0.2,1,0],1],[[0,30,1,0],1],[[0,"#f6857f",1,"#ffffff"]],0,[0,4],null,[0,0],[0,0],10,0,0,[0.8,1],1,0.005,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_twin_yellow/h"] = [4,[[0,1,1,0]],[[0,0.2,0.5,0.2,1,0],1],[[0,30,1,0],1],[[0,"#edb350",1,"#f3d4a0"]],0,[0,4],null,[0,0],[0,0],10,0,0,[0.8,1],1,0.005,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_twin_green/h"] = [4,[[0,1,1,0]],[[0,0.2,0.5,0.2,1,0],1],[[0,30,1,0],1],[[0,"#62ed50",1,"#a8e8b1"]],0,[0,4],null,[0,0],[0,0],10,0,0,[0.8,1],1,0.005,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_twin_blue/h"] = [4,[[0,1,1,0]],[[0,0.2,0.5,0.2,1,0],1],[[0,30,1,0],1],[[0,"#4c5ffb",1,"#c8cffb"]],0,[0,4],null,[0,0],[0,0],10,0,0,[0.8,1],1,0.005,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_twin_purple/h"] = [4,[[0,1,1,0]],[[0,0.2,0.5,0.2,1,0],1],[[0,30,1,0],1],[[0,"#7e4cfb",1,"#d0c8fb"]],0,[0,4],null,[0,0],[0,0],10,0,0,[0.8,1],1,0.005,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticlePreset["_sub:0:fw_twin_red/h"] = [4,[[0,1,1,0]],[[0,0.2,0.5,0.2,1,0],1],[[0,30,1,0],1],[[0,"#ff5999",1,"#ff9b9b"]],0,[0,4],null,[0,0],[0,0],10,0,0,[0.8,1],1,0.005,1,1,-1,10000,[0,0],0,[0,0],null,0,0,"flame1g",0,""] $dataTrpParticleGroupsPreset["fw_twin"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0 0.5 0 1 0"],"targetType":0, "comment":"花火~V字噴出[橙]"}; $dataTrpParticleGroupsPreset["fw_twin_yellow/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0 0.5 0 1 0"],"targetType":0, "comment":"花火~V字噴出[黄]"}; $dataTrpParticleGroupsPreset["fw_twin_green/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0 0.5 0 1 0"],"targetType":0, "comment":"花火~V字噴出[緑]"}; $dataTrpParticleGroupsPreset["fw_twin_blue/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0 0.5 0 1 0"],"targetType":0, "comment":"花火~V字噴出[青]"}; $dataTrpParticleGroupsPreset["fw_twin_purple/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0 0.5 0 1 0"],"targetType":0, "comment":"花火~V字噴出[紫]"}; $dataTrpParticleGroupsPreset["fw_twin_red/h"] = {"repeat":-1,"list":["set _auto:0 target def back","sub set _auto:0 _sub:0 0 0.5 0 1 0"],"targetType":0, "comment":"花火~V字噴出[赤]"}; })(); //PRAGMA: SRC var $dataTrpParticlePreset = $dataTrpParticlePreset||null; var $dataTrpParticles = null; (function(){ //PRAGMA: pluginName var pluginName = 'TRP_ParticleMZ'; //PRAGMA_END: pluginName if(PluginManager.parameters(pluginName).importLibrary!=='true')return; /*! * pixi-particles - v4.3.0 * Compiled Fri, 18 Sep 2020 13:47:54 UTC * * pixi-particles is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ this.PIXI=this.PIXI||{},function(t,i){"use strict";var e,s=function(){function i(i,e,s){this.value=i,this.time=e,this.next=null,this.isStepped=!1,this.ease=s?"function"==typeof s?s:t.ParticleUtils.generateEase(s):null}return i.createList=function(e){if("list"in e){var s=e.list,r=void 0,n=s[0],a=n.value,h=n.time,o=r=new i("string"==typeof a?t.ParticleUtils.hexToRGB(a):a,h,e.ease);if(s.length>2||2===s.length&&s[1].value!==a)for(var l=1;l=0;)t=t.replace(" ","_");return i.BLEND_MODES[t]||i.BLEND_MODES.NORMAL},t.createSteppedGradient=function(i,e){void 0===e&&(e=10),("number"!=typeof e||e<=0)&&(e=10);var r=new s(t.hexToRGB(i[0].value),i[0].time);r.isStepped=!0;for(var n=r,a=i[0],h=1,o=i[h],l=1;lo.time;)a=o,o=i[++h];p=(p-a.time)/(o.time-a.time);var d=t.hexToRGB(a.value),c=t.hexToRGB(o.value),u={r:(c.r-d.r)*p+d.r,g:(c.g-d.g)*p+d.g,b:(c.b-d.b)*p+d.b};n.next=new s(u,l/e),n=n.next}return r}}(t.ParticleUtils||(t.ParticleUtils={}));var a=function(t,i){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)i.hasOwnProperty(e)&&(t[e]=i[e])})(t,i)};function h(t,i){function e(){this.constructor=t}a(t,i),t.prototype=null===i?Object.create(i):(e.prototype=i.prototype,new e)}function o(t){return this.ease&&(t=this.ease(t)),(this.next.value-this.current.value)*t+this.current.value}function l(i){this.ease&&(i=this.ease(i));var e=this.current.value,s=this.next.value,r=(s.r-e.r)*i+e.r,n=(s.g-e.g)*i+e.g,a=(s.b-e.b)*i+e.b;return t.ParticleUtils.combineRGBComponents(r,n,a)}function p(t){for(this.ease&&(t=this.ease(t));t>this.next.time;)this.current=this.next,this.next=this.next.next;return t=(t-this.current.time)/(this.next.time-this.current.time),(this.next.value-this.current.value)*t+this.current.value}function d(i){for(this.ease&&(i=this.ease(i));i>this.next.time;)this.current=this.next,this.next=this.next.next;i=(i-this.current.time)/(this.next.time-this.current.time);var e=this.current.value,s=this.next.value,r=(s.r-e.r)*i+e.r,n=(s.g-e.g)*i+e.g,a=(s.b-e.b)*i+e.b;return t.ParticleUtils.combineRGBComponents(r,n,a)}function c(t){for(this.ease&&(t=this.ease(t));this.next&&t>this.next.time;)this.current=this.next,this.next=this.next.next;return this.current.value}function u(i){for(this.ease&&(i=this.ease(i));this.next&&i>this.next.time;)this.current=this.next,this.next=this.next.next;var e=this.current.value;return t.ParticleUtils.combineRGBComponents(e.r,e.g,e.b)}var m,f=function(){function t(t){void 0===t&&(t=!1),this.current=null,this.next=null,this.isColor=!!t,this.interpolate=null,this.ease=null}return t.prototype.reset=function(t){this.current=t,this.next=t.next,this.next&&this.next.time>=1?this.interpolate=this.isColor?l:o:t.isStepped?this.interpolate=this.isColor?u:c:this.interpolate=this.isColor?d:p,this.ease=this.current.ease},t}(),_=function(e){function s(t){var r=e.call(this)||this;return r.prevChild=r.nextChild=null,r.emitter=t,r.anchor.x=r.anchor.y=.5,r.velocity=new i.Point,r.rotationSpeed=0,r.rotationAcceleration=0,r.maxLife=0,r.age=0,r.ease=null,r.extraData=null,r.alphaList=new f,r.speedList=new f,r.speedMultiplier=1,r.acceleration=new i.Point,r.maxSpeed=NaN,r.scaleList=new f,r.scaleMultiplier=1,r.colorList=new f(!0),r._doAlpha=!1,r._doScale=!1,r._doSpeed=!1,r._doAcceleration=!1,r._doColor=!1,r._doNormalMovement=!1,r._oneOverLife=0,r.next=null,r.prev=null,r.init=r.init,r.Particle_init=s.prototype.init,r.update=r.update,r.Particle_update=s.prototype.update,r.Sprite_destroy=e.prototype.destroy,r.Particle_destroy=s.prototype.destroy,r.applyArt=r.applyArt,r.kill=r.kill,r}return h(s,e),s.prototype.init=function(){this.age=0,this.velocity.x=this.speedList.current.value*this.speedMultiplier,this.velocity.y=0,t.ParticleUtils.rotatePoint(this.rotation,this.velocity),this.noRotation?this.rotation=0:this.rotation*=t.ParticleUtils.DEG_TO_RADS,this.rotationSpeed*=t.ParticleUtils.DEG_TO_RADS,this.rotationAcceleration*=t.ParticleUtils.DEG_TO_RADS,this.alpha=this.alphaList.current.value,this.scale.x=this.scale.y=this.scaleList.current.value,this._doAlpha=!!this.alphaList.current.next,this._doSpeed=!!this.speedList.current.next,this._doScale=!!this.scaleList.current.next,this._doColor=!!this.colorList.current.next,this._doAcceleration=0!==this.acceleration.x||0!==this.acceleration.y,this._doNormalMovement=this._doSpeed||0!==this.speedList.current.value||this._doAcceleration,this._oneOverLife=1/this.maxLife;var i=this.colorList.current.value;this.tint=t.ParticleUtils.combineRGBComponents(i.r,i.g,i.b),this.visible=!0},s.prototype.applyArt=function(t){this.texture=t||i.Texture.EMPTY},s.prototype.update=function(i){if(this.age+=i,this.age>=this.maxLife||this.age<0)return this.kill(),-1;var e=this.age*this._oneOverLife;if(this.ease&&(e=4===this.ease.length?this.ease(e,0,1,1):this.ease(e)),this._doAlpha&&(this.alpha=this.alphaList.interpolate(e)),this._doScale){var s=this.scaleList.interpolate(e)*this.scaleMultiplier;this.scale.x=this.scale.y=s}if(this._doNormalMovement){var r=void 0,n=void 0;if(this._doSpeed){var a=this.speedList.interpolate(e)*this.speedMultiplier;t.ParticleUtils.normalize(this.velocity),t.ParticleUtils.scaleBy(this.velocity,a),r=this.velocity.x*i,n=this.velocity.y*i}else if(this._doAcceleration){var h=this.velocity.x,o=this.velocity.y;if(this.velocity.x+=this.acceleration.x*i,this.velocity.y+=this.acceleration.y*i,this.maxSpeed){var l=t.ParticleUtils.length(this.velocity);l>this.maxSpeed&&t.ParticleUtils.scaleBy(this.velocity,this.maxSpeed/l)}r=(h+this.velocity.x)/2*i,n=(o+this.velocity.y)/2*i}else r=this.velocity.x*i,n=this.velocity.y*i;this.position.x+=r,this.position.y+=n}if(this._doColor&&(this.tint=this.colorList.interpolate(e)),0!==this.rotationAcceleration){var p=this.rotationSpeed+this.rotationAcceleration*i;this.rotation+=(this.rotationSpeed+p)/2*i,this.rotationSpeed=p}else 0!==this.rotationSpeed?this.rotation+=this.rotationSpeed*i:this.acceleration&&!this.noRotation&&(this.rotation=Math.atan2(this.velocity.y,this.velocity.x));return e},s.prototype.kill=function(){this.emitter.recycle(this)},s.prototype.destroy=function(){this.parent&&this.parent.removeChild(this),this.Sprite_destroy(),this.emitter=this.velocity=this.colorList=this.scaleList=this.alphaList=this.speedList=this.ease=this.next=this.prev=null},s.parseArt=function(i){var e;for(e=i.length;e>=0;--e)"string"==typeof i[e]&&(i[e]=n(i[e]));if(t.ParticleUtils.verbose)for(e=i.length-1;e>0;--e)if(i[e].baseTexture!==i[e-1].baseTexture){window.console&&console.warn("PixiParticles: using particle textures from different images may hinder performance in WebGL");break}return i},s.parseData=function(t){return t},s}(i.Sprite),C=function(){function t(t){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(t)}return t.prototype.init=function(t){if(t&&t.length)if(Array.isArray(t[0]))for(var i=0;i0?t:1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"particleConstructor",{get:function(){return this._particleConstructor},set:function(t){if(t!==this._particleConstructor){this._particleConstructor=t,this.cleanup();for(var i=this._poolFirst;i;i=i.next)i.destroy();this._poolFirst=null,this._origConfig&&this._origArt&&this.init(this._origArt,this._origConfig)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},set:function(t){this.cleanup(),this._parent=t},enumerable:!0,configurable:!0}),e.prototype.init=function(e,r){if(e&&r){this.cleanup(),this._origConfig=r,this._origArt=e,e=Array.isArray(e)?e.slice():[e];var n=this._particleConstructor;this.particleImages=n.parseArt?n.parseArt(e):e,r.alpha?this.startAlpha=s.createList(r.alpha):this.startAlpha=new s(1,0),r.speed?(this.startSpeed=s.createList(r.speed),this.minimumSpeedMultiplier=("minimumSpeedMultiplier"in r?r.minimumSpeedMultiplier:r.speed.minimumSpeedMultiplier)||1):(this.minimumSpeedMultiplier=1,this.startSpeed=new s(0,0));var a=r.acceleration;a&&(a.x||a.y)?(this.startSpeed.next=null,this.acceleration=new i.Point(a.x,a.y),this.maxSpeed=r.maxSpeed||NaN):this.acceleration=new i.Point,r.scale?(this.startScale=s.createList(r.scale),this.minimumScaleMultiplier=("minimumScaleMultiplier"in r?r.minimumScaleMultiplier:r.scale.minimumScaleMultiplier)||1):(this.startScale=new s(1,0),this.minimumScaleMultiplier=1),r.color?this.startColor=s.createList(r.color):this.startColor=new s({r:255,g:255,b:255},0),r.startRotation?(this.minStartRotation=r.startRotation.min,this.maxStartRotation=r.startRotation.max):this.minStartRotation=this.maxStartRotation=0,r.noRotation&&(this.minStartRotation||this.maxStartRotation)?this.noRotation=!!r.noRotation:this.noRotation=!1,r.rotationSpeed?(this.minRotationSpeed=r.rotationSpeed.min,this.maxRotationSpeed=r.rotationSpeed.max):this.minRotationSpeed=this.maxRotationSpeed=0,this.rotationAcceleration=r.rotationAcceleration||0,this.minLifetime=r.lifetime.min,this.maxLifetime=r.lifetime.max,this.particleBlendMode=t.ParticleUtils.getBlendMode(r.blendMode),r.ease?this.customEase="function"==typeof r.ease?r.ease:t.ParticleUtils.generateEase(r.ease):this.customEase=null,n.parseData?this.extraData=n.parseData(r.extraData):this.extraData=r.extraData||null,this.spawnRect=this.spawnCircle=null,this.particlesPerWave=1,r.particlesPerWave&&r.particlesPerWave>1&&(this.particlesPerWave=r.particlesPerWave),this.particleSpacing=0,this.angleStart=0,this.parseSpawnType(r),this.frequency=r.frequency,this.spawnChance="number"==typeof r.spawnChance&&r.spawnChance>0?r.spawnChance:1,this.emitterLifetime=r.emitterLifetime||-1,this.maxParticles=r.maxParticles>0?r.maxParticles:1e3,this.addAtBack=!!r.addAtBack,this.rotation=0,this.ownerPos=new i.Point,this.spawnPos=new i.Point(r.pos.x,r.pos.y),this.initAdditional(e,r),this._prevEmitterPos=this.spawnPos.clone(),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=void 0===r.emit||!!r.emit,this.autoUpdate=!!r.autoUpdate,this.orderedArt=!!r.orderedArt}},e.prototype.initAdditional=function(t,i){},e.prototype.parseSpawnType=function(t){var e;switch(t.spawnType){case"rect":this.spawnType="rect",this._spawnFunc=this._spawnRect;var s=t.spawnRect;this.spawnRect=new i.Rectangle(s.x,s.y,s.w,s.h);break;case"circle":this.spawnType="circle",this._spawnFunc=this._spawnCircle,e=t.spawnCircle,this.spawnCircle=new i.Circle(e.x,e.y,e.r);break;case"ring":this.spawnType="ring",this._spawnFunc=this._spawnRing,e=t.spawnCircle,this.spawnCircle=new i.Circle(e.x,e.y,e.r),this.spawnCircle.minRadius=e.minR;break;case"burst":this.spawnType="burst",this._spawnFunc=this._spawnBurst,this.particleSpacing=t.particleSpacing,this.angleStart=t.angleStart?t.angleStart:0;break;case"point":this.spawnType="point",this._spawnFunc=this._spawnPoint;break;case"polygonalChain":this.spawnType="polygonalChain",this._spawnFunc=this._spawnPolygonalChain,this.spawnPolygonalChain=new C(t.spawnPolygon);break;default:this.spawnType="point",this._spawnFunc=this._spawnPoint}},e.prototype.recycle=function(t){t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next),t===this._activeParticlesLast&&(this._activeParticlesLast=t.prev),t===this._activeParticlesFirst&&(this._activeParticlesFirst=t.next),t.prev=null,t.next=this._poolFirst,this._poolFirst=t,t.parent&&t.parent.removeChild(t),--this.particleCount},e.prototype.rotate=function(i){if(this.rotation!==i){var e=i-this.rotation;this.rotation=i,t.ParticleUtils.rotatePoint(e,this.spawnPos),this._posChanged=!0}},e.prototype.updateSpawnPos=function(t,i){this._posChanged=!0,this.spawnPos.x=t,this.spawnPos.y=i},e.prototype.updateOwnerPos=function(t,i){this._posChanged=!0,this.ownerPos.x=t,this.ownerPos.y=i},e.prototype.resetPositionTracking=function(){this._prevPosIsValid=!1},Object.defineProperty(e.prototype,"emit",{get:function(){return this._emit},set:function(t){this._emit=!!t,this._emitterLife=this.emitterLifetime},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"autoUpdate",{get:function(){return this._autoUpdate},set:function(t){this._autoUpdate&&!t?m.remove(this.update,this):!this._autoUpdate&&t&&m.add(this.update,this),this._autoUpdate=!!t},enumerable:!0,configurable:!0}),e.prototype.playOnceAndDestroy=function(t){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=t},e.prototype.playOnce=function(t){this.emit=!0,this._completeCallback=t},e.prototype.update=function(t){if(this._autoUpdate&&(t=t/i.settings.TARGET_FPMS/1e3),this._parent){var e,s,r,n,a;for(s=this._activeParticlesFirst;s;s=r)r=s.next,s.update(t);this._prevPosIsValid&&(n=this._prevEmitterPos.x,a=this._prevEmitterPos.y);var h=this.ownerPos.x+this.spawnPos.x,o=this.ownerPos.y+this.spawnPos.y;if(this._emit)for(this._spawnTimer-=t<0?0:t;this._spawnTimer<=0;){if(this._emitterLife>=0&&(this._emitterLife-=this._frequency,this._emitterLife<=0)){this._spawnTimer=0,this._emitterLife=0,this.emit=!1;break}if(this.particleCount>=this.maxParticles)this._spawnTimer+=this._frequency;else{var l=void 0;if(l=this.minLifetime===this.maxLifetime?this.minLifetime:Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer=this.spawnChance)){var m=void 0;this._poolFirst?(m=this._poolFirst,this._poolFirst=this._poolFirst.next,m.next=null):m=new this.particleConstructor(this),this.particleImages.length>1?-1!==this._currentImageIndex?(m.applyArt(this.particleImages[this._currentImageIndex++]),(this._currentImageIndex<0||this._currentImageIndex>=this.particleImages.length)&&(this._currentImageIndex=0)):m.applyArt(this.particleImages[Math.floor(Math.random()*this.particleImages.length)]):m.applyArt(this.particleImages[0]),m.alphaList.reset(this.startAlpha),1!==this.minimumSpeedMultiplier&&(m.speedMultiplier=Math.random()*(1-this.minimumSpeedMultiplier)+this.minimumSpeedMultiplier),m.speedList.reset(this.startSpeed),m.acceleration.x=this.acceleration.x,m.acceleration.y=this.acceleration.y,m.maxSpeed=this.maxSpeed,1!==this.minimumScaleMultiplier&&(m.scaleMultiplier=Math.random()*(1-this.minimumScaleMultiplier)+this.minimumScaleMultiplier),m.scaleList.reset(this.startScale),m.colorList.reset(this.startColor),this.minRotationSpeed===this.maxRotationSpeed?m.rotationSpeed=this.minRotationSpeed:m.rotationSpeed=Math.random()*(this.maxRotationSpeed-this.minRotationSpeed)+this.minRotationSpeed,m.rotationAcceleration=this.rotationAcceleration,m.noRotation=this.noRotation,m.maxLife=l,m.blendMode=this.particleBlendMode,m.ease=this.customEase,m.extraData=this.extraData,this.applyAdditionalProperties(m),this._spawnFunc(m,p,d,e),m.init(),this.addAtBack?this._parent.addChildAt(m,0):this._parent.addChild(m),this._activeParticlesLast?(this._activeParticlesLast.next=m,m.prev=this._activeParticlesLast,this._activeParticlesLast=m):this._activeParticlesLast=this._activeParticlesFirst=m,++this.particleCount,m.update(-this._spawnTimer)}}this._spawnTimer+=this._frequency}}if(this._posChanged&&(this._prevEmitterPos.x=h,this._prevEmitterPos.y=o,this._prevPosIsValid=!0,this._posChanged=!1),!this._emit&&!this._activeParticlesFirst){if(this._completeCallback){var f=this._completeCallback;this._completeCallback=null,f()}this._destroyWhenComplete&&this.destroy()}}},e.prototype.applyAdditionalProperties=function(t){},e.prototype._spawnPoint=function(t,i,e){this.minStartRotation===this.maxStartRotation?t.rotation=this.minStartRotation+this.rotation:t.rotation=Math.random()*(this.maxStartRotation-this.minStartRotation)+this.minStartRotation+this.rotation,t.position.x=i,t.position.y=e},e.prototype._spawnRect=function(i,e,s){this.minStartRotation===this.maxStartRotation?i.rotation=this.minStartRotation+this.rotation:i.rotation=Math.random()*(this.maxStartRotation-this.minStartRotation)+this.minStartRotation+this.rotation,x.x=Math.random()*this.spawnRect.width+this.spawnRect.x,x.y=Math.random()*this.spawnRect.height+this.spawnRect.y,0!==this.rotation&&t.ParticleUtils.rotatePoint(this.rotation,x),i.position.x=e+x.x,i.position.y=s+x.y},e.prototype._spawnCircle=function(i,e,s){this.minStartRotation===this.maxStartRotation?i.rotation=this.minStartRotation+this.rotation:i.rotation=Math.random()*(this.maxStartRotation-this.minStartRotation)+this.minStartRotation+this.rotation,x.x=Math.random()*this.spawnCircle.radius,x.y=0,t.ParticleUtils.rotatePoint(360*Math.random(),x),x.x+=this.spawnCircle.x,x.y+=this.spawnCircle.y,0!==this.rotation&&t.ParticleUtils.rotatePoint(this.rotation,x),i.position.x=e+x.x,i.position.y=s+x.y},e.prototype._spawnRing=function(i,e,s){var r=this.spawnCircle;this.minStartRotation===this.maxStartRotation?i.rotation=this.minStartRotation+this.rotation:i.rotation=Math.random()*(this.maxStartRotation-this.minStartRotation)+this.minStartRotation+this.rotation,r.minRadius!==r.radius?x.x=Math.random()*(r.radius-r.minRadius)+r.minRadius:x.x=r.radius,x.y=0;var n=360*Math.random();i.rotation+=n,t.ParticleUtils.rotatePoint(n,x),x.x+=this.spawnCircle.x,x.y+=this.spawnCircle.y,0!==this.rotation&&t.ParticleUtils.rotatePoint(this.rotation,x),i.position.x=e+x.x,i.position.y=s+x.y},e.prototype._spawnPolygonalChain=function(i,e,s){this.minStartRotation===this.maxStartRotation?i.rotation=this.minStartRotation+this.rotation:i.rotation=Math.random()*(this.maxStartRotation-this.minStartRotation)+this.minStartRotation+this.rotation,this.spawnPolygonalChain.getRandomPoint(x),0!==this.rotation&&t.ParticleUtils.rotatePoint(this.rotation,x),i.position.x=e+x.x,i.position.y=s+x.y},e.prototype._spawnBurst=function(t,i,e,s){0===this.particleSpacing?t.rotation=360*Math.random():t.rotation=this.angleStart+this.particleSpacing*s+this.rotation,t.position.x=i,t.position.y=e},e.prototype.cleanup=function(){var t,i;for(t=this._activeParticlesFirst;t;t=i)i=t.next,this.recycle(t),t.parent&&t.parent.removeChild(t);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0},e.prototype.destroy=function(){var t;this.autoUpdate=!1,this.cleanup();for(var i=this._poolFirst;i;i=t)t=i.next,i.destroy();this._poolFirst=this._parent=this.particleImages=this.spawnPos=this.ownerPos=this.startColor=this.startScale=this.startAlpha=this.startSpeed=this.customEase=this._completeCallback=null},e}(),g=new i.Point,P=["pow","sqrt","abs","floor","round","ceil","E","PI","sin","cos","tan","asin","acos","atan","atan2","log"],w=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(P).join("|"),"g");var b=function(e){function s(t){var s=e.call(this,t)||this;return s.path=null,s.initialRotation=0,s.initialPosition=new i.Point,s.movement=0,s}return h(s,e),s.prototype.init=function(){this.initialRotation=this.rotation,this.Particle_init(),this.path=this.extraData.path,this._doNormalMovement=!this.path,this.movement=0,this.initialPosition.x=this.position.x,this.initialPosition.y=this.position.y},s.prototype.update=function(i){var e=this.Particle_update(i);if(e>=0&&this.path){if(this._doSpeed){var s=this.speedList.interpolate(e)*this.speedMultiplier;this.movement+=s*i}else{s=this.speedList.current.value*this.speedMultiplier;this.movement+=s*i}g.x=this.movement,g.y=this.path(this.movement),t.ParticleUtils.rotatePoint(this.initialRotation,g),this.position.x=this.initialPosition.x+g.x,this.position.y=this.initialPosition.y+g.y}return e},s.prototype.destroy=function(){this.Particle_destroy(),this.path=this.initialPosition=null},s.parseArt=function(t){return _.parseArt(t)},s.parseData=function(i){var e={};if(i&&i.path)try{e.path=function(t){for(var i=t.match(w),e=i.length-1;e>=0;--e)P.indexOf(i[e])>=0&&(i[e]="Math."+i[e]);return t=i.join(""),new Function("x","return "+t+";")}(i.path)}catch(i){t.ParticleUtils.verbose&&console.error("PathParticle: error in parsing path expression"),e.path=null}else t.ParticleUtils.verbose&&console.error("PathParticle requires a path string in extraData!"),e.path=null;return e},s}(_),S=function(t){function e(i){var e=t.call(this,i)||this;return e.textures=null,e.duration=0,e.framerate=0,e.elapsed=0,e.loop=!1,e}return h(e,t),e.prototype.init=function(){this.Particle_init(),this.elapsed=0,this.framerate<0&&(this.duration=this.maxLife,this.framerate=this.textures.length/this.duration)},e.prototype.applyArt=function(t){this.textures=t.textures,this.framerate=t.framerate,this.duration=t.duration,this.loop=t.loop},e.prototype.update=function(t){var e=this.Particle_update(t);if(e>=0){this.elapsed+=t,this.elapsed>this.duration&&(this.loop?this.elapsed=this.elapsed%this.duration:this.elapsed=this.duration-1e-6);var s=this.elapsed*this.framerate+1e-7|0;this.texture=this.textures[s]||i.Texture.EMPTY}return e},e.prototype.destroy=function(){this.Particle_destroy(),this.textures=null},e.parseArt=function(t){for(var e=[],s=0;s0;--d)h.push(p)}}"matchLife"===r.framerate?(a.framerate=-1,a.duration=0,a.loop=!1):(a.loop=!!r.loop,a.framerate=r.framerate>0?r.framerate:60,a.duration=h.length/a.framerate)}return e},e}(_),R=function(t){function e(){var i=null!==t&&t.apply(this,arguments)||this;return i._firstChild=null,i._lastChild=null,i._childCount=0,i}return h(e,t),Object.defineProperty(e.prototype,"firstChild",{get:function(){return this._firstChild},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastChild",{get:function(){return this._lastChild},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childCount",{get:function(){return this._childCount},enumerable:!0,configurable:!0}),e.prototype.addChild=function(){for(var t=[],i=0;i1)for(var e=0;ethis._childCount)throw new Error("addChildAt: The index "+i+" supplied is out of bounds "+this._childCount);t.parent&&t.parent.removeChild(t),t.parent=this,this.sortDirty=!0,t.transform._parentID=-1;var e=t;if(this._firstChild)if(0===i)this._firstChild.prevChild=e,e.nextChild=this._firstChild,this._firstChild=e;else if(i===this._childCount)this._lastChild.nextChild=e,e.prevChild=this._lastChild,this._lastChild=e;else{for(var s=0,r=this._firstChild;s=this._childCount)throw new Error("The index "+i+" supplied is out of bounds "+this._childCount);if(t.parent!==this)throw new Error("The supplied DisplayObject must be a child of the caller");if(t.nextChild&&(t.nextChild.prevChild=t.prevChild),t.prevChild&&(t.prevChild.nextChild=t.nextChild),this._firstChild===t&&(this._firstChild=t.nextChild),this._lastChild===t&&(this._lastChild=t.prevChild),t.nextChild=null,t.prevChild=null,this._firstChild)if(0===i)this._firstChild.prevChild=t,t.nextChild=this._firstChild,this._firstChild=t;else if(i===this._childCount)this._lastChild.nextChild=t,t.prevChild=this._lastChild,this._lastChild=t;else{for(var e=0,s=this._firstChild;e1)for(var e=0;e=this._childCount)throw new Error("getChildAt: Index ("+t+") does not exist.");if(0===t)return this._firstChild;if(t===this._childCount)return this._lastChild;for(var i=0,e=this._firstChild;i0&&r<=s){for(var n=[],a=this._firstChild,h=0;h<=s&&a;++h,a=a.nextChild)h>=e&&n.push(a);var o=n[0].prevChild,l=n[n.length-1].nextChild;l?l.prevChild=o:this._lastChild=o,o?o.nextChild=l:this._firstChild=l;for(h=0;h0)for(var r=e,o=e/t,i=1;i0?(this._kernels=e,this._quality=e.length,this._blur=Math.max.apply(Math,e)):(this._kernels=[0],this._quality=1)},r.clamp.get=function(){return this._clamp},r.pixelSize.set=function(e){"number"==typeof e?(this._pixelSize.x=e,this._pixelSize.y=e):Array.isArray(e)?(this._pixelSize.x=e[0],this._pixelSize.y=e[1]):e instanceof n.Point?(this._pixelSize.x=e.x,this._pixelSize.y=e.y):(this._pixelSize.x=1,this._pixelSize.y=1)},r.pixelSize.get=function(){return this._pixelSize},r.quality.get=function(){return this._quality},r.quality.set=function(e){this._quality=Math.max(1,Math.round(e)),this._generateKernels()},r.blur.get=function(){return this._blur},r.blur.set=function(e){this._blur=e,this._generateKernels()},Object.defineProperties(t.prototype,r),t}(t.Filter),m=a,g="\nuniform sampler2D uSampler;\nvarying vec2 vTextureCoord;\n\nuniform float threshold;\n\nvoid main() {\n vec4 color = texture2D(uSampler, vTextureCoord);\n\n // A simple & fast algorithm for getting brightness.\n // It's inaccuracy , but good enought for this feature.\n float _max = max(max(color.r, color.g), color.b);\n float _min = min(min(color.r, color.g), color.b);\n float brightness = (_max + _min) * 0.5;\n\n if(brightness > threshold) {\n gl_FragColor = color;\n } else {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n",v=function(e){function t(t){void 0===t&&(t=.5),e.call(this,m,g),this.threshold=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={threshold:{configurable:!0}};return n.threshold.get=function(){return this.uniforms.threshold},n.threshold.set=function(e){this.uniforms.threshold=e},Object.defineProperties(t.prototype,n),t}(t.Filter),x="uniform sampler2D uSampler;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D bloomTexture;\nuniform float bloomScale;\nuniform float brightness;\n\nvoid main() {\n vec4 color = texture2D(uSampler, vTextureCoord);\n color.rgb *= brightness;\n vec4 bloomColor = vec4(texture2D(bloomTexture, vTextureCoord).rgb, 0.0);\n bloomColor.rgb *= bloomScale;\n gl_FragColor = color + bloomColor;\n}\n",y=function(e){function t(t){e.call(this,m,x),"number"==typeof t&&(t={threshold:t}),t=Object.assign({threshold:.5,bloomScale:1,brightness:1,kernels:null,blur:8,quality:4,pixelSize:1,resolution:r.settings.FILTER_RESOLUTION},t),this.bloomScale=t.bloomScale,this.brightness=t.brightness;var n=t.kernels,o=t.blur,i=t.quality,l=t.pixelSize,s=t.resolution;this._extractFilter=new v(t.threshold),this._extractFilter.resolution=s,this._blurFilter=n?new d(n):new d(o,i),this.pixelSize=l,this.resolution=s}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={resolution:{configurable:!0},threshold:{configurable:!0},kernels:{configurable:!0},blur:{configurable:!0},quality:{configurable:!0},pixelSize:{configurable:!0}};return t.prototype.apply=function(e,t,n,r,o){var i=e.getFilterTexture();this._extractFilter.apply(e,t,i,1,o);var l=e.getFilterTexture();this._blurFilter.apply(e,i,l,1,o),this.uniforms.bloomScale=this.bloomScale,this.uniforms.brightness=this.brightness,this.uniforms.bloomTexture=l,e.applyFilter(this,t,n,r),e.returnFilterTexture(l),e.returnFilterTexture(i)},n.resolution.get=function(){return this._resolution},n.resolution.set=function(e){this._resolution=e,this._extractFilter&&(this._extractFilter.resolution=e),this._blurFilter&&(this._blurFilter.resolution=e)},n.threshold.get=function(){return this._extractFilter.threshold},n.threshold.set=function(e){this._extractFilter.threshold=e},n.kernels.get=function(){return this._blurFilter.kernels},n.kernels.set=function(e){this._blurFilter.kernels=e},n.blur.get=function(){return this._blurFilter.blur},n.blur.set=function(e){this._blurFilter.blur=e},n.quality.get=function(){return this._blurFilter.quality},n.quality.set=function(e){this._blurFilter.quality=e},n.pixelSize.get=function(){return this._blurFilter.pixelSize},n.pixelSize.set=function(e){this._blurFilter.pixelSize=e},Object.defineProperties(t.prototype,n),t}(t.Filter),_=a,b="varying vec2 vTextureCoord;\n\nuniform vec4 filterArea;\nuniform float pixelSize;\nuniform sampler2D uSampler;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvec2 pixelate(vec2 coord, vec2 size)\n{\n return floor( coord / size ) * size;\n}\n\nvec2 getMod(vec2 coord, vec2 size)\n{\n return mod( coord , size) / size;\n}\n\nfloat character(float n, vec2 p)\n{\n p = floor(p*vec2(4.0, -4.0) + 2.5);\n\n if (clamp(p.x, 0.0, 4.0) == p.x)\n {\n if (clamp(p.y, 0.0, 4.0) == p.y)\n {\n if (int(mod(n/exp2(p.x + 5.0*p.y), 2.0)) == 1) return 1.0;\n }\n }\n return 0.0;\n}\n\nvoid main()\n{\n vec2 coord = mapCoord(vTextureCoord);\n\n // get the rounded color..\n vec2 pixCoord = pixelate(coord, vec2(pixelSize));\n pixCoord = unmapCoord(pixCoord);\n\n vec4 color = texture2D(uSampler, pixCoord);\n\n // determine the character to use\n float gray = (color.r + color.g + color.b) / 3.0;\n\n float n = 65536.0; // .\n if (gray > 0.2) n = 65600.0; // :\n if (gray > 0.3) n = 332772.0; // *\n if (gray > 0.4) n = 15255086.0; // o\n if (gray > 0.5) n = 23385164.0; // &\n if (gray > 0.6) n = 15252014.0; // 8\n if (gray > 0.7) n = 13199452.0; // @\n if (gray > 0.8) n = 11512810.0; // #\n\n // get the mod..\n vec2 modd = getMod(coord, vec2(pixelSize));\n\n gl_FragColor = color * character( n, vec2(-1.0) + modd * 2.0);\n\n}\n",C=function(e){function t(t){void 0===t&&(t=8),e.call(this,_,b),this.size=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={size:{configurable:!0}};return n.size.get=function(){return this.uniforms.pixelSize},n.size.set=function(e){this.uniforms.pixelSize=e},Object.defineProperties(t.prototype,n),t}(t.Filter),S=a,F="precision mediump float;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform float transformX;\nuniform float transformY;\nuniform vec3 lightColor;\nuniform float lightAlpha;\nuniform vec3 shadowColor;\nuniform float shadowAlpha;\n\nvoid main(void) {\n vec2 transform = vec2(1.0 / filterArea) * vec2(transformX, transformY);\n vec4 color = texture2D(uSampler, vTextureCoord);\n float light = texture2D(uSampler, vTextureCoord - transform).a;\n float shadow = texture2D(uSampler, vTextureCoord + transform).a;\n\n color.rgb = mix(color.rgb, lightColor, clamp((color.a - light) * lightAlpha, 0.0, 1.0));\n color.rgb = mix(color.rgb, shadowColor, clamp((color.a - shadow) * shadowAlpha, 0.0, 1.0));\n gl_FragColor = vec4(color.rgb * color.a, color.a);\n}\n",z=function(e){function t(t){void 0===t&&(t={}),e.call(this,S,F),this.uniforms.lightColor=new Float32Array(3),this.uniforms.shadowColor=new Float32Array(3),t=Object.assign({rotation:45,thickness:2,lightColor:16777215,lightAlpha:.7,shadowColor:0,shadowAlpha:.7},t),this.rotation=t.rotation,this.thickness=t.thickness,this.lightColor=t.lightColor,this.lightAlpha=t.lightAlpha,this.shadowColor=t.shadowColor,this.shadowAlpha=t.shadowAlpha,this.padding=1}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={rotation:{configurable:!0},thickness:{configurable:!0},lightColor:{configurable:!0},lightAlpha:{configurable:!0},shadowColor:{configurable:!0},shadowAlpha:{configurable:!0}};return t.prototype._updateTransform=function(){this.uniforms.transformX=this._thickness*Math.cos(this._angle),this.uniforms.transformY=this._thickness*Math.sin(this._angle)},r.rotation.get=function(){return this._angle/n.DEG_TO_RAD},r.rotation.set=function(e){this._angle=e*n.DEG_TO_RAD,this._updateTransform()},r.thickness.get=function(){return this._thickness},r.thickness.set=function(e){this._thickness=e,this._updateTransform()},r.lightColor.get=function(){return o.rgb2hex(this.uniforms.lightColor)},r.lightColor.set=function(e){o.hex2rgb(e,this.uniforms.lightColor)},r.lightAlpha.get=function(){return this.uniforms.lightAlpha},r.lightAlpha.set=function(e){this.uniforms.lightAlpha=e},r.shadowColor.get=function(){return o.rgb2hex(this.uniforms.shadowColor)},r.shadowColor.set=function(e){o.hex2rgb(e,this.uniforms.shadowColor)},r.shadowAlpha.get=function(){return this.uniforms.shadowAlpha},r.shadowAlpha.set=function(e){this.uniforms.shadowAlpha=e},Object.defineProperties(t.prototype,r),t}(t.Filter),A=function(e){function t(t,o,a,u){var c,f;void 0===t&&(t=2),void 0===o&&(o=4),void 0===a&&(a=r.settings.FILTER_RESOLUTION),void 0===u&&(u=5),e.call(this),"number"==typeof t?(c=t,f=t):t instanceof n.Point?(c=t.x,f=t.y):Array.isArray(t)&&(c=t[0],f=t[1]),this.blurXFilter=new s.BlurFilterPass(!0,c,o,a,u),this.blurYFilter=new s.BlurFilterPass(!1,f,o,a,u),this.blurYFilter.blendMode=i.BLEND_MODES.SCREEN,this.defaultFilter=new l.AlphaFilter}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var o={blur:{configurable:!0},blurX:{configurable:!0},blurY:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){var o=e.getFilterTexture();this.defaultFilter.apply(e,t,n,r),this.blurXFilter.apply(e,t,o),this.blurYFilter.apply(e,o,n,0),e.returnFilterTexture(o)},o.blur.get=function(){return this.blurXFilter.blur},o.blur.set=function(e){this.blurXFilter.blur=this.blurYFilter.blur=e},o.blurX.get=function(){return this.blurXFilter.blur},o.blurX.set=function(e){this.blurXFilter.blur=e},o.blurY.get=function(){return this.blurYFilter.blur},o.blurY.set=function(e){this.blurYFilter.blur=e},Object.defineProperties(t.prototype,o),t}(t.Filter),T=a,w="uniform float radius;\nuniform float strength;\nuniform vec2 center;\nuniform sampler2D uSampler;\nvarying vec2 vTextureCoord;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nuniform vec2 dimensions;\n\nvoid main()\n{\n vec2 coord = vTextureCoord * filterArea.xy;\n coord -= center * dimensions.xy;\n float distance = length(coord);\n if (distance < radius) {\n float percent = distance / radius;\n if (strength > 0.0) {\n coord *= mix(1.0, smoothstep(0.0, radius / distance, percent), strength * 0.75);\n } else {\n coord *= mix(1.0, pow(percent, 1.0 + strength * 0.75) * radius / distance, 1.0 - percent);\n }\n }\n coord += center * dimensions.xy;\n coord /= filterArea.xy;\n vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);\n vec4 color = texture2D(uSampler, clampedCoord);\n if (coord != clampedCoord) {\n color *= max(0.0, 1.0 - length(coord - clampedCoord));\n }\n\n gl_FragColor = color;\n}\n",O=function(e){function t(t){if(e.call(this,T,w),"object"!=typeof t){var n=arguments[0],r=arguments[1],o=arguments[2];t={},void 0!==n&&(t.center=n),void 0!==r&&(t.radius=r),void 0!==o&&(t.strength=o)}this.uniforms.dimensions=new Float32Array(2),Object.assign(this,{center:[.5,.5],radius:100,strength:1},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={radius:{configurable:!0},strength:{configurable:!0},center:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.filterFrame.width,this.uniforms.dimensions[1]=t.filterFrame.height,e.applyFilter(this,t,n,r)},n.radius.get=function(){return this.uniforms.radius},n.radius.set=function(e){this.uniforms.radius=e},n.strength.get=function(){return this.uniforms.strength},n.strength.set=function(e){this.uniforms.strength=e},n.center.get=function(){return this.uniforms.center},n.center.set=function(e){this.uniforms.center=e},Object.defineProperties(t.prototype,n),t}(t.Filter),D=a,P="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform sampler2D colorMap;\nuniform float _mix;\nuniform float _size;\nuniform float _sliceSize;\nuniform float _slicePixelSize;\nuniform float _sliceInnerSize;\nvoid main() {\n vec4 color = texture2D(uSampler, vTextureCoord.xy);\n\n vec4 adjusted;\n if (color.a > 0.0) {\n color.rgb /= color.a;\n float innerWidth = _size - 1.0;\n float zSlice0 = min(floor(color.b * innerWidth), innerWidth);\n float zSlice1 = min(zSlice0 + 1.0, innerWidth);\n float xOffset = _slicePixelSize * 0.5 + color.r * _sliceInnerSize;\n float s0 = xOffset + (zSlice0 * _sliceSize);\n float s1 = xOffset + (zSlice1 * _sliceSize);\n float yOffset = _sliceSize * 0.5 + color.g * (1.0 - _sliceSize);\n vec4 slice0Color = texture2D(colorMap, vec2(s0,yOffset));\n vec4 slice1Color = texture2D(colorMap, vec2(s1,yOffset));\n float zOffset = fract(color.b * innerWidth);\n adjusted = mix(slice0Color, slice1Color, zOffset);\n\n color.rgb *= color.a;\n }\n gl_FragColor = vec4(mix(color, adjusted, _mix).rgb, color.a);\n\n}",M=function(e){function n(t,n,r){void 0===n&&(n=!1),void 0===r&&(r=1),e.call(this,D,P),this._size=0,this._sliceSize=0,this._slicePixelSize=0,this._sliceInnerSize=0,this._scaleMode=null,this._nearest=!1,this.nearest=n,this.mix=r,this.colorMap=t}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={colorSize:{configurable:!0},colorMap:{configurable:!0},nearest:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){this.uniforms._mix=this.mix,e.applyFilter(this,t,n,r)},r.colorSize.get=function(){return this._size},r.colorMap.get=function(){return this._colorMap},r.colorMap.set=function(e){e instanceof t.Texture||(e=t.Texture.from(e)),e&&e.baseTexture&&(e.baseTexture.scaleMode=this._scaleMode,e.baseTexture.mipmap=!1,this._size=e.height,this._sliceSize=1/this._size,this._slicePixelSize=this._sliceSize/this._size,this._sliceInnerSize=this._slicePixelSize*(this._size-1),this.uniforms._size=this._size,this.uniforms._sliceSize=this._sliceSize,this.uniforms._slicePixelSize=this._slicePixelSize,this.uniforms._sliceInnerSize=this._sliceInnerSize,this.uniforms.colorMap=e),this._colorMap=e},r.nearest.get=function(){return this._nearest},r.nearest.set=function(e){this._nearest=e,this._scaleMode=e?i.SCALE_MODES.NEAREST:i.SCALE_MODES.LINEAR;var t=this._colorMap;t&&t.baseTexture&&(t.baseTexture._glTextures={},t.baseTexture.scaleMode=this._scaleMode,t.baseTexture.mipmap=!1,t._updateID++,t.baseTexture.emit("update",t.baseTexture))},n.prototype.updateColorMap=function(){var e=this._colorMap;e&&e.baseTexture&&(e._updateID++,e.baseTexture.emit("update",e.baseTexture),this.colorMap=e)},n.prototype.destroy=function(t){this._colorMap&&this._colorMap.destroy(t),e.prototype.destroy.call(this)},Object.defineProperties(n.prototype,r),n}(t.Filter),R=a,k="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec3 color;\nvoid main(void) {\n vec4 currentColor = texture2D(uSampler, vTextureCoord);\n vec3 colorOverlay = color * currentColor.a;\n gl_FragColor = vec4(colorOverlay.r, colorOverlay.g, colorOverlay.b, currentColor.a);\n}\n",j=function(e){function t(t){void 0===t&&(t=0),e.call(this,R,k),this.uniforms.color=new Float32Array(3),this.color=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={color:{configurable:!0}};return n.color.set=function(e){var t=this.uniforms.color;"number"==typeof e?(o.hex2rgb(e,t),this._color=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],this._color=o.rgb2hex(t))},n.color.get=function(){return this._color},Object.defineProperties(t.prototype,n),t}(t.Filter),E=a,L="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec3 originalColor;\nuniform vec3 newColor;\nuniform float epsilon;\nvoid main(void) {\n vec4 currentColor = texture2D(uSampler, vTextureCoord);\n vec3 colorDiff = originalColor - (currentColor.rgb / max(currentColor.a, 0.0000000001));\n float colorDistance = length(colorDiff);\n float doReplace = step(colorDistance, epsilon);\n gl_FragColor = vec4(mix(currentColor.rgb, (newColor + colorDiff) * currentColor.a, doReplace), currentColor.a);\n}\n",I=function(e){function t(t,n,r){void 0===t&&(t=16711680),void 0===n&&(n=0),void 0===r&&(r=.4),e.call(this,E,L),this.uniforms.originalColor=new Float32Array(3),this.uniforms.newColor=new Float32Array(3),this.originalColor=t,this.newColor=n,this.epsilon=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={originalColor:{configurable:!0},newColor:{configurable:!0},epsilon:{configurable:!0}};return n.originalColor.set=function(e){var t=this.uniforms.originalColor;"number"==typeof e?(o.hex2rgb(e,t),this._originalColor=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],this._originalColor=o.rgb2hex(t))},n.originalColor.get=function(){return this._originalColor},n.newColor.set=function(e){var t=this.uniforms.newColor;"number"==typeof e?(o.hex2rgb(e,t),this._newColor=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],this._newColor=o.rgb2hex(t))},n.newColor.get=function(){return this._newColor},n.epsilon.set=function(e){this.uniforms.epsilon=e},n.epsilon.get=function(){return this.uniforms.epsilon},Object.defineProperties(t.prototype,n),t}(t.Filter),X=a,B="precision mediump float;\n\nvarying mediump vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec2 texelSize;\nuniform float matrix[9];\n\nvoid main(void)\n{\n vec4 c11 = texture2D(uSampler, vTextureCoord - texelSize); // top left\n vec4 c12 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - texelSize.y)); // top center\n vec4 c13 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y - texelSize.y)); // top right\n\n vec4 c21 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y)); // mid left\n vec4 c22 = texture2D(uSampler, vTextureCoord); // mid center\n vec4 c23 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y)); // mid right\n\n vec4 c31 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y + texelSize.y)); // bottom left\n vec4 c32 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + texelSize.y)); // bottom center\n vec4 c33 = texture2D(uSampler, vTextureCoord + texelSize); // bottom right\n\n gl_FragColor =\n c11 * matrix[0] + c12 * matrix[1] + c13 * matrix[2] +\n c21 * matrix[3] + c22 * matrix[4] + c23 * matrix[5] +\n c31 * matrix[6] + c32 * matrix[7] + c33 * matrix[8];\n\n gl_FragColor.a = c22.a;\n}\n",N=function(e){function t(t,n,r){void 0===n&&(n=200),void 0===r&&(r=200),e.call(this,X,B),this.uniforms.texelSize=new Float32Array(2),this.uniforms.matrix=new Float32Array(9),void 0!==t&&(this.matrix=t),this.width=n,this.height=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={matrix:{configurable:!0},width:{configurable:!0},height:{configurable:!0}};return n.matrix.get=function(){return this.uniforms.matrix},n.matrix.set=function(e){var t=this;e.forEach(function(e,n){return t.uniforms.matrix[n]=e})},n.width.get=function(){return 1/this.uniforms.texelSize[0]},n.width.set=function(e){this.uniforms.texelSize[0]=1/e},n.height.get=function(){return 1/this.uniforms.texelSize[1]},n.height.set=function(e){this.uniforms.texelSize[1]=1/e},Object.defineProperties(t.prototype,n),t}(t.Filter),G=a,q="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n float lum = length(texture2D(uSampler, vTextureCoord.xy).rgb);\n\n gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n\n if (lum < 1.00)\n {\n if (mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n\n if (lum < 0.75)\n {\n if (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n\n if (lum < 0.50)\n {\n if (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n\n if (lum < 0.3)\n {\n if (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n}\n",K=function(e){function t(){e.call(this,G,q)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(t.Filter),W=a,Y="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\nuniform vec2 dimensions;\n\nconst float SQRT_2 = 1.414213;\n\nconst float light = 1.0;\n\nuniform float curvature;\nuniform float lineWidth;\nuniform float lineContrast;\nuniform bool verticalLine;\nuniform float noise;\nuniform float noiseSize;\n\nuniform float vignetting;\nuniform float vignettingAlpha;\nuniform float vignettingBlur;\n\nuniform float seed;\nuniform float time;\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main(void)\n{\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\n vec2 dir = vec2(vTextureCoord.xy - vec2(0.5, 0.5)) * filterArea.xy / dimensions;\n\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n vec3 rgb = gl_FragColor.rgb;\n\n if (noise > 0.0 && noiseSize > 0.0)\n {\n pixelCoord.x = floor(pixelCoord.x / noiseSize);\n pixelCoord.y = floor(pixelCoord.y / noiseSize);\n float _noise = rand(pixelCoord * noiseSize * seed) - 0.5;\n rgb += _noise * noise;\n }\n\n if (lineWidth > 0.0)\n {\n float _c = curvature > 0. ? curvature : 1.;\n float k = curvature > 0. ?(length(dir * dir) * 0.25 * _c * _c + 0.935 * _c) : 1.;\n vec2 uv = dir * k;\n\n float v = (verticalLine ? uv.x * dimensions.x : uv.y * dimensions.y) * min(1.0, 2.0 / lineWidth ) / _c;\n float j = 1. + cos(v * 1.2 - time) * 0.5 * lineContrast;\n rgb *= j;\n float segment = verticalLine ? mod((dir.x + .5) * dimensions.x, 4.) : mod((dir.y + .5) * dimensions.y, 4.);\n rgb *= 0.99 + ceil(segment) * 0.015;\n }\n\n if (vignetting > 0.0)\n {\n float outter = SQRT_2 - vignetting * SQRT_2;\n float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0);\n rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha);\n }\n\n gl_FragColor.rgb = rgb;\n}\n",Z=function(e){function t(t){e.call(this,W,Y),this.uniforms.dimensions=new Float32Array(2),this.time=0,this.seed=0,Object.assign(this,{curvature:1,lineWidth:1,lineContrast:.25,verticalLine:!1,noise:0,noiseSize:1,seed:0,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3,time:0},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={curvature:{configurable:!0},lineWidth:{configurable:!0},lineContrast:{configurable:!0},verticalLine:{configurable:!0},noise:{configurable:!0},noiseSize:{configurable:!0},vignetting:{configurable:!0},vignettingAlpha:{configurable:!0},vignettingBlur:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.filterFrame.width,this.uniforms.dimensions[1]=t.filterFrame.height,this.uniforms.seed=this.seed,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},n.curvature.set=function(e){this.uniforms.curvature=e},n.curvature.get=function(){return this.uniforms.curvature},n.lineWidth.set=function(e){this.uniforms.lineWidth=e},n.lineWidth.get=function(){return this.uniforms.lineWidth},n.lineContrast.set=function(e){this.uniforms.lineContrast=e},n.lineContrast.get=function(){return this.uniforms.lineContrast},n.verticalLine.set=function(e){this.uniforms.verticalLine=e},n.verticalLine.get=function(){return this.uniforms.verticalLine},n.noise.set=function(e){this.uniforms.noise=e},n.noise.get=function(){return this.uniforms.noise},n.noiseSize.set=function(e){this.uniforms.noiseSize=e},n.noiseSize.get=function(){return this.uniforms.noiseSize},n.vignetting.set=function(e){this.uniforms.vignetting=e},n.vignetting.get=function(){return this.uniforms.vignetting},n.vignettingAlpha.set=function(e){this.uniforms.vignettingAlpha=e},n.vignettingAlpha.get=function(){return this.uniforms.vignettingAlpha},n.vignettingBlur.set=function(e){this.uniforms.vignettingBlur=e},n.vignettingBlur.get=function(){return this.uniforms.vignettingBlur},Object.defineProperties(t.prototype,n),t}(t.Filter),Q=a,U="precision mediump float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform vec4 filterArea;\nuniform sampler2D uSampler;\n\nuniform float angle;\nuniform float scale;\n\nfloat pattern()\n{\n float s = sin(angle), c = cos(angle);\n vec2 tex = vTextureCoord * filterArea.xy;\n vec2 point = vec2(\n c * tex.x - s * tex.y,\n s * tex.x + c * tex.y\n ) * scale;\n return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nvoid main()\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n float average = (color.r + color.g + color.b) / 3.0;\n gl_FragColor = vec4(vec3(average * 10.0 - 5.0 + pattern()), color.a);\n}\n",V=function(e){function t(t,n){void 0===t&&(t=1),void 0===n&&(n=5),e.call(this,Q,U),this.scale=t,this.angle=n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={scale:{configurable:!0},angle:{configurable:!0}};return n.scale.get=function(){return this.uniforms.scale},n.scale.set=function(e){this.uniforms.scale=e},n.angle.get=function(){return this.uniforms.angle},n.angle.set=function(e){this.uniforms.angle=e},Object.defineProperties(t.prototype,n),t}(t.Filter),H=a,$="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float alpha;\nuniform vec3 color;\n\nuniform vec2 shift;\nuniform vec4 inputSize;\n\nvoid main(void){\n vec4 sample = texture2D(uSampler, vTextureCoord - shift * inputSize.zw);\n\n // Premultiply alpha\n sample.rgb = color.rgb * sample.a;\n\n // alpha user alpha\n sample *= alpha;\n\n gl_FragColor = sample;\n}",J=function(e){function t(t){t&&t.constructor!==Object&&(console.warn("DropShadowFilter now uses options instead of (rotation, distance, blur, color, alpha)"),t={rotation:t},void 0!==arguments[1]&&(t.distance=arguments[1]),void 0!==arguments[2]&&(t.blur=arguments[2]),void 0!==arguments[3]&&(t.color=arguments[3]),void 0!==arguments[4]&&(t.alpha=arguments[4])),t=Object.assign({rotation:45,distance:5,color:0,alpha:.5,shadowOnly:!1,kernels:null,blur:2,quality:3,pixelSize:1,resolution:r.settings.FILTER_RESOLUTION},t),e.call(this);var o=t.kernels,i=t.blur,l=t.quality,s=t.pixelSize,a=t.resolution;this._tintFilter=new e(H,$),this._tintFilter.uniforms.color=new Float32Array(4),this._tintFilter.uniforms.shift=new n.Point,this._tintFilter.resolution=a,this._blurFilter=o?new d(o):new d(i,l),this.pixelSize=s,this.resolution=a;var u=t.shadowOnly,c=t.rotation,f=t.distance,h=t.alpha,p=t.color;this.shadowOnly=u,this.rotation=c,this.distance=f,this.alpha=h,this.color=p,this._updatePadding()}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var i={resolution:{configurable:!0},distance:{configurable:!0},rotation:{configurable:!0},alpha:{configurable:!0},color:{configurable:!0},kernels:{configurable:!0},blur:{configurable:!0},quality:{configurable:!0},pixelSize:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){var o=e.getFilterTexture();this._tintFilter.apply(e,t,o,1),this._blurFilter.apply(e,o,n,r),!0!==this.shadowOnly&&e.applyFilter(this,t,n,0),e.returnFilterTexture(o)},t.prototype._updatePadding=function(){this.padding=this.distance+2*this.blur},t.prototype._updateShift=function(){this._tintFilter.uniforms.shift.set(this.distance*Math.cos(this.angle),this.distance*Math.sin(this.angle))},i.resolution.get=function(){return this._resolution},i.resolution.set=function(e){this._resolution=e,this._tintFilter&&(this._tintFilter.resolution=e),this._blurFilter&&(this._blurFilter.resolution=e)},i.distance.get=function(){return this._distance},i.distance.set=function(e){this._distance=e,this._updatePadding(),this._updateShift()},i.rotation.get=function(){return this.angle/n.DEG_TO_RAD},i.rotation.set=function(e){this.angle=e*n.DEG_TO_RAD,this._updateShift()},i.alpha.get=function(){return this._tintFilter.uniforms.alpha},i.alpha.set=function(e){this._tintFilter.uniforms.alpha=e},i.color.get=function(){return o.rgb2hex(this._tintFilter.uniforms.color)},i.color.set=function(e){o.hex2rgb(e,this._tintFilter.uniforms.color)},i.kernels.get=function(){return this._blurFilter.kernels},i.kernels.set=function(e){this._blurFilter.kernels=e},i.blur.get=function(){return this._blurFilter.blur},i.blur.set=function(e){this._blurFilter.blur=e,this._updatePadding()},i.quality.get=function(){return this._blurFilter.quality},i.quality.set=function(e){this._blurFilter.quality=e},i.pixelSize.get=function(){return this._blurFilter.pixelSize},i.pixelSize.set=function(e){this._blurFilter.pixelSize=e},Object.defineProperties(t.prototype,i),t}(t.Filter),ee=a,te="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float strength;\nuniform vec4 filterArea;\n\n\nvoid main(void)\n{\n\tvec2 onePixel = vec2(1.0 / filterArea);\n\n\tvec4 color;\n\n\tcolor.rgb = vec3(0.5);\n\n\tcolor -= texture2D(uSampler, vTextureCoord - onePixel) * strength;\n\tcolor += texture2D(uSampler, vTextureCoord + onePixel) * strength;\n\n\tcolor.rgb = vec3((color.r + color.g + color.b) / 3.0);\n\n\tfloat alpha = texture2D(uSampler, vTextureCoord).a;\n\n\tgl_FragColor = vec4(color.rgb * alpha, alpha);\n}\n",ne=function(e){function t(t){void 0===t&&(t=5),e.call(this,ee,te),this.strength=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={strength:{configurable:!0}};return n.strength.get=function(){return this.uniforms.strength},n.strength.set=function(e){this.uniforms.strength=e},Object.defineProperties(t.prototype,n),t}(t.Filter),re=a,oe="// precision highp float;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nuniform vec2 dimensions;\nuniform float aspect;\n\nuniform sampler2D displacementMap;\nuniform float offset;\nuniform float sinDir;\nuniform float cosDir;\nuniform int fillMode;\n\nuniform float seed;\nuniform vec2 red;\nuniform vec2 green;\nuniform vec2 blue;\n\nconst int TRANSPARENT = 0;\nconst int ORIGINAL = 1;\nconst int LOOP = 2;\nconst int CLAMP = 3;\nconst int MIRROR = 4;\n\nvoid main(void)\n{\n vec2 coord = (vTextureCoord * filterArea.xy) / dimensions;\n\n if (coord.x > 1.0 || coord.y > 1.0) {\n return;\n }\n\n float cx = coord.x - 0.5;\n float cy = (coord.y - 0.5) * aspect;\n float ny = (-sinDir * cx + cosDir * cy) / aspect + 0.5;\n\n // displacementMap: repeat\n // ny = ny > 1.0 ? ny - 1.0 : (ny < 0.0 ? 1.0 + ny : ny);\n\n // displacementMap: mirror\n ny = ny > 1.0 ? 2.0 - ny : (ny < 0.0 ? -ny : ny);\n\n vec4 dc = texture2D(displacementMap, vec2(0.5, ny));\n\n float displacement = (dc.r - dc.g) * (offset / filterArea.x);\n\n coord = vTextureCoord + vec2(cosDir * displacement, sinDir * displacement * aspect);\n\n if (fillMode == CLAMP) {\n coord = clamp(coord, filterClamp.xy, filterClamp.zw);\n } else {\n if( coord.x > filterClamp.z ) {\n if (fillMode == TRANSPARENT) {\n discard;\n } else if (fillMode == LOOP) {\n coord.x -= filterClamp.z;\n } else if (fillMode == MIRROR) {\n coord.x = filterClamp.z * 2.0 - coord.x;\n }\n } else if( coord.x < filterClamp.x ) {\n if (fillMode == TRANSPARENT) {\n discard;\n } else if (fillMode == LOOP) {\n coord.x += filterClamp.z;\n } else if (fillMode == MIRROR) {\n coord.x *= -filterClamp.z;\n }\n }\n\n if( coord.y > filterClamp.w ) {\n if (fillMode == TRANSPARENT) {\n discard;\n } else if (fillMode == LOOP) {\n coord.y -= filterClamp.w;\n } else if (fillMode == MIRROR) {\n coord.y = filterClamp.w * 2.0 - coord.y;\n }\n } else if( coord.y < filterClamp.y ) {\n if (fillMode == TRANSPARENT) {\n discard;\n } else if (fillMode == LOOP) {\n coord.y += filterClamp.w;\n } else if (fillMode == MIRROR) {\n coord.y *= -filterClamp.w;\n }\n }\n }\n\n gl_FragColor.r = texture2D(uSampler, coord + red * (1.0 - seed * 0.4) / filterArea.xy).r;\n gl_FragColor.g = texture2D(uSampler, coord + green * (1.0 - seed * 0.3) / filterArea.xy).g;\n gl_FragColor.b = texture2D(uSampler, coord + blue * (1.0 - seed * 0.2) / filterArea.xy).b;\n gl_FragColor.a = texture2D(uSampler, coord).a;\n}\n",ie=function(e){function r(n){void 0===n&&(n={}),e.call(this,re,oe),this.uniforms.dimensions=new Float32Array(2),n=Object.assign({slices:5,offset:100,direction:0,fillMode:0,average:!1,seed:0,red:[0,0],green:[0,0],blue:[0,0],minSize:8,sampleSize:512},n),this.direction=n.direction,this.red=n.red,this.green=n.green,this.blue=n.blue,this.offset=n.offset,this.fillMode=n.fillMode,this.average=n.average,this.seed=n.seed,this.minSize=n.minSize,this.sampleSize=n.sampleSize,this._canvas=document.createElement("canvas"),this._canvas.width=4,this._canvas.height=this.sampleSize,this.texture=t.Texture.from(this._canvas,{scaleMode:i.SCALE_MODES.NEAREST}),this._slices=0,this.slices=n.slices}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var o={sizes:{configurable:!0},offsets:{configurable:!0},slices:{configurable:!0},direction:{configurable:!0},red:{configurable:!0},green:{configurable:!0},blue:{configurable:!0}};return r.prototype.apply=function(e,t,n,r){var o=t.filterFrame.width,i=t.filterFrame.height;this.uniforms.dimensions[0]=o,this.uniforms.dimensions[1]=i,this.uniforms.aspect=i/o,this.uniforms.seed=this.seed,this.uniforms.offset=this.offset,this.uniforms.fillMode=this.fillMode,e.applyFilter(this,t,n,r)},r.prototype._randomizeSizes=function(){var e=this._sizes,t=this._slices-1,n=this.sampleSize,r=Math.min(this.minSize/n,.9/this._slices);if(this.average){for(var o=this._slices,i=1,l=0;l0;t--){var n=Math.random()*t>>0,r=e[t];e[t]=e[n],e[n]=r}},r.prototype._randomizeOffsets=function(){for(var e=0;e0?e:0,a=e<0?-e:0;r.fillStyle="rgba("+s+", "+a+", 0, 1)",r.fillRect(0,o>>0,t,l+1>>0),o+=l}n.baseTexture.update(),this.uniforms.displacementMap=n},o.sizes.set=function(e){for(var t=Math.min(this._slices,e.length),n=0;nthis._maxColors)throw"Length of replacements ("+r+") exceeds the maximum colors length ("+this._maxColors+")";t[3*r]=-1;for(var i=0;i 0.5) then: 1 - 2 * (1 - dst) * (1 - src)\n return vec3((dst.x <= 0.5) ? (2.0 * src.x * dst.x) : (1.0 - 2.0 * (1.0 - dst.x) * (1.0 - src.x)),\n (dst.y <= 0.5) ? (2.0 * src.y * dst.y) : (1.0 - 2.0 * (1.0 - dst.y) * (1.0 - src.y)),\n (dst.z <= 0.5) ? (2.0 * src.z * dst.z) : (1.0 - 2.0 * (1.0 - dst.z) * (1.0 - src.z)));\n}\n\n\nvoid main()\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n vec3 color = gl_FragColor.rgb;\n\n if (sepia > 0.0)\n {\n float gray = (color.x + color.y + color.z) / 3.0;\n vec3 grayscale = vec3(gray);\n\n color = Overlay(SEPIA_RGB, grayscale);\n\n color = grayscale + sepia * (color - grayscale);\n }\n\n vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy;\n\n if (vignetting > 0.0)\n {\n float outter = SQRT_2 - vignetting * SQRT_2;\n vec2 dir = vec2(vec2(0.5, 0.5) - coord);\n dir.y *= dimensions.y / dimensions.x;\n float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0);\n color.rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha);\n }\n\n if (scratchDensity > seed && scratch != 0.0)\n {\n float phase = seed * 256.0;\n float s = mod(floor(phase), 2.0);\n float dist = 1.0 / scratchDensity;\n float d = distance(coord, vec2(seed * dist, abs(s - seed * dist)));\n if (d < seed * 0.6 + 0.4)\n {\n highp float period = scratchDensity * 10.0;\n\n float xx = coord.x * period + phase;\n float aa = abs(mod(xx, 0.5) * 4.0);\n float bb = mod(floor(xx / 0.5), 2.0);\n float yy = (1.0 - bb) * aa + bb * (2.0 - aa);\n\n float kk = 2.0 * period;\n float dw = scratchWidth / dimensions.x * (0.75 + seed);\n float dh = dw * kk;\n\n float tine = (yy - (2.0 - dh));\n\n if (tine > 0.0) {\n float _sign = sign(scratch);\n\n tine = s * tine / period + scratch + 0.1;\n tine = clamp(tine + 1.0, 0.5 + _sign * 0.5, 1.5 + _sign * 0.5);\n\n color.rgb *= tine;\n }\n }\n }\n\n if (noise > 0.0 && noiseSize > 0.0)\n {\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\n pixelCoord.x = floor(pixelCoord.x / noiseSize);\n pixelCoord.y = floor(pixelCoord.y / noiseSize);\n // vec2 d = pixelCoord * noiseSize * vec2(1024.0 + seed * 512.0, 1024.0 - seed * 512.0);\n // float _noise = snoise(d) * 0.5;\n float _noise = rand(pixelCoord * noiseSize * seed) - 0.5;\n color += _noise * noise;\n }\n\n gl_FragColor.rgb = color;\n}\n",be=function(e){function t(t,n){void 0===n&&(n=0),e.call(this,ye,_e),this.uniforms.dimensions=new Float32Array(2),"number"==typeof t?(this.seed=t,t=null):this.seed=n,Object.assign(this,{sepia:.3,noise:.3,noiseSize:1,scratch:.5,scratchDensity:.3,scratchWidth:1,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={sepia:{configurable:!0},noise:{configurable:!0},noiseSize:{configurable:!0},scratch:{configurable:!0},scratchDensity:{configurable:!0},scratchWidth:{configurable:!0},vignetting:{configurable:!0},vignettingAlpha:{configurable:!0},vignettingBlur:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.filterFrame.width,this.uniforms.dimensions[1]=t.filterFrame.height,this.uniforms.seed=this.seed,e.applyFilter(this,t,n,r)},n.sepia.set=function(e){this.uniforms.sepia=e},n.sepia.get=function(){return this.uniforms.sepia},n.noise.set=function(e){this.uniforms.noise=e},n.noise.get=function(){return this.uniforms.noise},n.noiseSize.set=function(e){this.uniforms.noiseSize=e},n.noiseSize.get=function(){return this.uniforms.noiseSize},n.scratch.set=function(e){this.uniforms.scratch=e},n.scratch.get=function(){return this.uniforms.scratch},n.scratchDensity.set=function(e){this.uniforms.scratchDensity=e},n.scratchDensity.get=function(){return this.uniforms.scratchDensity},n.scratchWidth.set=function(e){this.uniforms.scratchWidth=e},n.scratchWidth.get=function(){return this.uniforms.scratchWidth},n.vignetting.set=function(e){this.uniforms.vignetting=e},n.vignetting.get=function(){return this.uniforms.vignetting},n.vignettingAlpha.set=function(e){this.uniforms.vignettingAlpha=e},n.vignettingAlpha.get=function(){return this.uniforms.vignettingAlpha},n.vignettingBlur.set=function(e){this.uniforms.vignettingBlur=e},n.vignettingBlur.get=function(){return this.uniforms.vignettingBlur},Object.defineProperties(t.prototype,n),t}(t.Filter),Ce=a,Se="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec2 thickness;\nuniform vec4 outlineColor;\nuniform vec4 filterClamp;\n\nconst float DOUBLE_PI = 3.14159265358979323846264 * 2.;\n\nvoid main(void) {\n vec4 ownColor = texture2D(uSampler, vTextureCoord);\n vec4 curColor;\n float maxAlpha = 0.;\n vec2 displaced;\n for (float angle = 0.; angle <= DOUBLE_PI; angle += ${angleStep}) {\n displaced.x = vTextureCoord.x + thickness.x * cos(angle);\n displaced.y = vTextureCoord.y + thickness.y * sin(angle);\n curColor = texture2D(uSampler, clamp(displaced, filterClamp.xy, filterClamp.zw));\n maxAlpha = max(maxAlpha, curColor.a);\n }\n float resultAlpha = max(maxAlpha, ownColor.a);\n gl_FragColor = vec4((ownColor.rgb + outlineColor.rgb * (1. - ownColor.a)) * resultAlpha, resultAlpha);\n}\n",Fe=function(e){function t(n,r,o){void 0===n&&(n=1),void 0===r&&(r=0),void 0===o&&(o=.1);var i=Math.max(o*t.MAX_SAMPLES,t.MIN_SAMPLES),l=(2*Math.PI/i).toFixed(7);e.call(this,Ce,Se.replace(/\$\{angleStep\}/,l)),this.uniforms.thickness=new Float32Array([0,0]),this.uniforms.outlineColor=new Float32Array([0,0,0,1]),Object.assign(this,{thickness:n,color:r,quality:o})}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={color:{configurable:!0},thickness:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.thickness[0]=this._thickness/t._frame.width,this.uniforms.thickness[1]=this._thickness/t._frame.height,e.applyFilter(this,t,n,r)},n.color.get=function(){return o.rgb2hex(this.uniforms.outlineColor)},n.color.set=function(e){o.hex2rgb(e,this.uniforms.outlineColor)},n.thickness.get=function(){return this._thickness},n.thickness.set=function(e){this._thickness=e,this.padding=e},Object.defineProperties(t.prototype,n),t}(t.Filter);Fe.MIN_SAMPLES=1,Fe.MAX_SAMPLES=100;var ze=a,Ae="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform vec2 size;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvec2 pixelate(vec2 coord, vec2 size)\n{\n\treturn floor( coord / size ) * size;\n}\n\nvoid main(void)\n{\n vec2 coord = mapCoord(vTextureCoord);\n\n coord = pixelate(coord, size);\n\n coord = unmapCoord(coord);\n\n gl_FragColor = texture2D(uSampler, coord);\n}\n",Te=function(e){function t(t){void 0===t&&(t=10),e.call(this,ze,Ae),this.size=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={size:{configurable:!0}};return n.size.get=function(){return this.uniforms.size},n.size.set=function(e){"number"==typeof e&&(e=[e,e]),this.uniforms.size=e},Object.defineProperties(t.prototype,n),t}(t.Filter),we=a,Oe="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform float uRadian;\nuniform vec2 uCenter;\nuniform float uRadius;\nuniform int uKernelSize;\n\nconst int MAX_KERNEL_SIZE = 2048;\n\nvoid main(void)\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n\n if (uKernelSize == 0)\n {\n gl_FragColor = color;\n return;\n }\n\n float aspect = filterArea.y / filterArea.x;\n vec2 center = uCenter.xy / filterArea.xy;\n float gradient = uRadius / filterArea.x * 0.3;\n float radius = uRadius / filterArea.x - gradient * 0.5;\n int k = uKernelSize - 1;\n\n vec2 coord = vTextureCoord;\n vec2 dir = vec2(center - coord);\n float dist = length(vec2(dir.x, dir.y * aspect));\n\n float radianStep = uRadian;\n if (radius >= 0.0 && dist > radius) {\n float delta = dist - radius;\n float gap = gradient;\n float scale = 1.0 - abs(delta / gap);\n if (scale <= 0.0) {\n gl_FragColor = color;\n return;\n }\n radianStep *= scale;\n }\n radianStep /= float(k);\n\n float s = sin(radianStep);\n float c = cos(radianStep);\n mat2 rotationMatrix = mat2(vec2(c, -s), vec2(s, c));\n\n for(int i = 0; i < MAX_KERNEL_SIZE - 1; i++) {\n if (i == k) {\n break;\n }\n\n coord -= center;\n coord.y *= aspect;\n coord = rotationMatrix * coord;\n coord.y /= aspect;\n coord += center;\n\n vec4 sample = texture2D(uSampler, coord);\n\n // switch to pre-multiplied alpha to correctly blur transparent images\n // sample.rgb *= sample.a;\n\n color += sample;\n }\n\n gl_FragColor = color / float(uKernelSize);\n}\n",De=function(e){function t(t,n,r,o){void 0===t&&(t=0),void 0===n&&(n=[0,0]),void 0===r&&(r=5),void 0===o&&(o=-1),e.call(this,we,Oe),this._angle=0,this.angle=t,this.center=n,this.kernelSize=r,this.radius=o}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={angle:{configurable:!0},center:{configurable:!0},radius:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.uKernelSize=0!==this._angle?this.kernelSize:0,e.applyFilter(this,t,n,r)},n.angle.set=function(e){this._angle=e,this.uniforms.uRadian=e*Math.PI/180},n.angle.get=function(){return this._angle},n.center.get=function(){return this.uniforms.uCenter},n.center.set=function(e){this.uniforms.uCenter=e},n.radius.get=function(){return this.uniforms.uRadius},n.radius.set=function(e){(e<0||e===1/0)&&(e=-1),this.uniforms.uRadius=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Pe=a,Me="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nuniform vec2 dimensions;\n\nuniform bool mirror;\nuniform float boundary;\nuniform vec2 amplitude;\nuniform vec2 waveLength;\nuniform vec2 alpha;\nuniform float time;\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main(void)\n{\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\n vec2 coord = pixelCoord / dimensions;\n\n if (coord.y < boundary) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n\n float k = (coord.y - boundary) / (1. - boundary + 0.0001);\n float areaY = boundary * dimensions.y / filterArea.y;\n float v = areaY + areaY - vTextureCoord.y;\n float y = mirror ? v : vTextureCoord.y;\n\n float _amplitude = ((amplitude.y - amplitude.x) * k + amplitude.x ) / filterArea.x;\n float _waveLength = ((waveLength.y - waveLength.x) * k + waveLength.x) / filterArea.y;\n float _alpha = (alpha.y - alpha.x) * k + alpha.x;\n\n float x = vTextureCoord.x + cos(v * 6.28 / _waveLength - time) * _amplitude;\n x = clamp(x, filterClamp.x, filterClamp.z);\n\n vec4 color = texture2D(uSampler, vec2(x, y));\n\n gl_FragColor = color * _alpha;\n}\n",Re=function(e){function t(t){e.call(this,Pe,Me),this.uniforms.amplitude=new Float32Array(2),this.uniforms.waveLength=new Float32Array(2),this.uniforms.alpha=new Float32Array(2),this.uniforms.dimensions=new Float32Array(2),Object.assign(this,{mirror:!0,boundary:.5,amplitude:[0,20],waveLength:[30,100],alpha:[1,1],time:0},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={mirror:{configurable:!0},boundary:{configurable:!0},amplitude:{configurable:!0},waveLength:{configurable:!0},alpha:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.filterFrame.width,this.uniforms.dimensions[1]=t.filterFrame.height,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},n.mirror.set=function(e){this.uniforms.mirror=e},n.mirror.get=function(){return this.uniforms.mirror},n.boundary.set=function(e){this.uniforms.boundary=e},n.boundary.get=function(){return this.uniforms.boundary},n.amplitude.set=function(e){this.uniforms.amplitude[0]=e[0],this.uniforms.amplitude[1]=e[1]},n.amplitude.get=function(){return this.uniforms.amplitude},n.waveLength.set=function(e){this.uniforms.waveLength[0]=e[0],this.uniforms.waveLength[1]=e[1]},n.waveLength.get=function(){return this.uniforms.waveLength},n.alpha.set=function(e){this.uniforms.alpha[0]=e[0],this.uniforms.alpha[1]=e[1]},n.alpha.get=function(){return this.uniforms.alpha},Object.defineProperties(t.prototype,n),t}(t.Filter),ke=a,je="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\nuniform vec2 red;\nuniform vec2 green;\nuniform vec2 blue;\n\nvoid main(void)\n{\n gl_FragColor.r = texture2D(uSampler, vTextureCoord + red/filterArea.xy).r;\n gl_FragColor.g = texture2D(uSampler, vTextureCoord + green/filterArea.xy).g;\n gl_FragColor.b = texture2D(uSampler, vTextureCoord + blue/filterArea.xy).b;\n gl_FragColor.a = texture2D(uSampler, vTextureCoord).a;\n}\n",Ee=function(e){function t(t,n,r){void 0===t&&(t=[-10,0]),void 0===n&&(n=[0,10]),void 0===r&&(r=[0,0]),e.call(this,ke,je),this.red=t,this.green=n,this.blue=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={red:{configurable:!0},green:{configurable:!0},blue:{configurable:!0}};return n.red.get=function(){return this.uniforms.red},n.red.set=function(e){this.uniforms.red=e},n.green.get=function(){return this.uniforms.green},n.green.set=function(e){this.uniforms.green=e},n.blue.get=function(){return this.uniforms.blue},n.blue.set=function(e){this.uniforms.blue=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Le=a,Ie="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\n\nuniform vec2 center;\n\nuniform float amplitude;\nuniform float wavelength;\n// uniform float power;\nuniform float brightness;\nuniform float speed;\nuniform float radius;\n\nuniform float time;\n\nconst float PI = 3.14159;\n\nvoid main()\n{\n float halfWavelength = wavelength * 0.5 / filterArea.x;\n float maxRadius = radius / filterArea.x;\n float currentRadius = time * speed / filterArea.x;\n\n float fade = 1.0;\n\n if (maxRadius > 0.0) {\n if (currentRadius > maxRadius) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n fade = 1.0 - pow(currentRadius / maxRadius, 2.0);\n }\n\n vec2 dir = vec2(vTextureCoord - center / filterArea.xy);\n dir.y *= filterArea.y / filterArea.x;\n float dist = length(dir);\n\n if (dist <= 0.0 || dist < currentRadius - halfWavelength || dist > currentRadius + halfWavelength) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n\n vec2 diffUV = normalize(dir);\n\n float diff = (dist - currentRadius) / halfWavelength;\n\n float p = 1.0 - pow(abs(diff), 2.0);\n\n // float powDiff = diff * pow(p, 2.0) * ( amplitude * fade );\n float powDiff = 1.25 * sin(diff * PI) * p * ( amplitude * fade );\n\n vec2 offset = diffUV * powDiff / filterArea.xy;\n\n // Do clamp :\n vec2 coord = vTextureCoord + offset;\n vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);\n vec4 color = texture2D(uSampler, clampedCoord);\n if (coord != clampedCoord) {\n color *= max(0.0, 1.0 - length(coord - clampedCoord));\n }\n\n // No clamp :\n // gl_FragColor = texture2D(uSampler, vTextureCoord + offset);\n\n color.rgb *= 1.0 + (brightness - 1.0) * p * fade;\n\n gl_FragColor = color;\n}\n",Xe=function(e){function t(t,n,r){void 0===t&&(t=[0,0]),void 0===n&&(n={}),void 0===r&&(r=0),e.call(this,Le,Ie),this.center=t,Array.isArray(n)&&(console.warn("Deprecated Warning: ShockwaveFilter params Array has been changed to options Object."),n={}),n=Object.assign({amplitude:30,wavelength:160,brightness:1,speed:500,radius:-1},n),this.amplitude=n.amplitude,this.wavelength=n.wavelength,this.brightness=n.brightness,this.speed=n.speed,this.radius=n.radius,this.time=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={center:{configurable:!0},amplitude:{configurable:!0},wavelength:{configurable:!0},brightness:{configurable:!0},speed:{configurable:!0},radius:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},n.center.get=function(){return this.uniforms.center},n.center.set=function(e){this.uniforms.center=e},n.amplitude.get=function(){return this.uniforms.amplitude},n.amplitude.set=function(e){this.uniforms.amplitude=e},n.wavelength.get=function(){return this.uniforms.wavelength},n.wavelength.set=function(e){this.uniforms.wavelength=e},n.brightness.get=function(){return this.uniforms.brightness},n.brightness.set=function(e){this.uniforms.brightness=e},n.speed.get=function(){return this.uniforms.speed},n.speed.set=function(e){this.uniforms.speed=e},n.radius.get=function(){return this.uniforms.radius},n.radius.set=function(e){this.uniforms.radius=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Be=a,Ne="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform sampler2D uLightmap;\nuniform vec4 filterArea;\nuniform vec2 dimensions;\nuniform vec4 ambientColor;\nvoid main() {\n vec4 diffuseColor = texture2D(uSampler, vTextureCoord);\n vec2 lightCoord = (vTextureCoord * filterArea.xy) / dimensions;\n vec4 light = texture2D(uLightmap, lightCoord);\n vec3 ambient = ambientColor.rgb * ambientColor.a;\n vec3 intensity = ambient + light.rgb;\n vec3 finalColor = diffuseColor.rgb * intensity;\n gl_FragColor = vec4(finalColor, diffuseColor.a);\n}\n",Ge=function(e){function t(t,n,r){void 0===n&&(n=0),void 0===r&&(r=1),e.call(this,Be,Ne),this.uniforms.dimensions=new Float32Array(2),this.uniforms.ambientColor=new Float32Array([0,0,0,r]),this.texture=t,this.color=n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={texture:{configurable:!0},color:{configurable:!0},alpha:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.filterFrame.width,this.uniforms.dimensions[1]=t.filterFrame.height,e.applyFilter(this,t,n,r)},n.texture.get=function(){return this.uniforms.uLightmap},n.texture.set=function(e){this.uniforms.uLightmap=e},n.color.set=function(e){var t=this.uniforms.ambientColor;"number"==typeof e?(o.hex2rgb(e,t),this._color=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],this._color=o.rgb2hex(t))},n.color.get=function(){return this._color},n.alpha.get=function(){return this.uniforms.ambientColor[3]},n.alpha.set=function(e){this.uniforms.ambientColor[3]=e},Object.defineProperties(t.prototype,n),t}(t.Filter),qe=a,Ke="varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float blur;\nuniform float gradientBlur;\nuniform vec2 start;\nuniform vec2 end;\nuniform vec2 delta;\nuniform vec2 texSize;\n\nfloat random(vec3 scale, float seed)\n{\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n}\n\nvoid main(void)\n{\n vec4 color = vec4(0.0);\n float total = 0.0;\n\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(start.y - end.y, end.x - start.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(vTextureCoord * texSize - start, normal)) / gradientBlur) * blur;\n\n for (float t = -30.0; t <= 30.0; t++)\n {\n float percent = (t + offset - 0.5) / 30.0;\n float weight = 1.0 - abs(percent);\n vec4 sample = texture2D(uSampler, vTextureCoord + delta / texSize * percent * radius);\n sample.rgb *= sample.a;\n color += sample * weight;\n total += weight;\n }\n\n color /= total;\n color.rgb /= color.a + 0.00001;\n\n gl_FragColor = color;\n}\n",We=function(e){function t(t,r,o,i){void 0===t&&(t=100),void 0===r&&(r=600),void 0===o&&(o=null),void 0===i&&(i=null),e.call(this,qe,Ke),this.uniforms.blur=t,this.uniforms.gradientBlur=r,this.uniforms.start=o||new n.Point(0,window.innerHeight/2),this.uniforms.end=i||new n.Point(600,window.innerHeight/2),this.uniforms.delta=new n.Point(30,30),this.uniforms.texSize=new n.Point(window.innerWidth,window.innerHeight),this.updateDelta()}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={blur:{configurable:!0},gradientBlur:{configurable:!0},start:{configurable:!0},end:{configurable:!0}};return t.prototype.updateDelta=function(){this.uniforms.delta.x=0,this.uniforms.delta.y=0},r.blur.get=function(){return this.uniforms.blur},r.blur.set=function(e){this.uniforms.blur=e},r.gradientBlur.get=function(){return this.uniforms.gradientBlur},r.gradientBlur.set=function(e){this.uniforms.gradientBlur=e},r.start.get=function(){return this.uniforms.start},r.start.set=function(e){this.uniforms.start=e,this.updateDelta()},r.end.get=function(){return this.uniforms.end},r.end.set=function(e){this.uniforms.end=e,this.updateDelta()},Object.defineProperties(t.prototype,r),t}(t.Filter),Ye=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.updateDelta=function(){var e=this.uniforms.end.x-this.uniforms.start.x,t=this.uniforms.end.y-this.uniforms.start.y,n=Math.sqrt(e*e+t*t);this.uniforms.delta.x=e/n,this.uniforms.delta.y=t/n},t}(We),Ze=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.updateDelta=function(){var e=this.uniforms.end.x-this.uniforms.start.x,t=this.uniforms.end.y-this.uniforms.start.y,n=Math.sqrt(e*e+t*t);this.uniforms.delta.x=-t/n,this.uniforms.delta.y=e/n},t}(We),Qe=function(e){function t(t,n,r,o){void 0===t&&(t=100),void 0===n&&(n=600),void 0===r&&(r=null),void 0===o&&(o=null),e.call(this),this.tiltShiftXFilter=new Ye(t,n,r,o),this.tiltShiftYFilter=new Ze(t,n,r,o)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={blur:{configurable:!0},gradientBlur:{configurable:!0},start:{configurable:!0},end:{configurable:!0}};return t.prototype.apply=function(e,t,n){var r=e.getFilterTexture();this.tiltShiftXFilter.apply(e,t,r,1),this.tiltShiftYFilter.apply(e,r,n),e.returnFilterTexture(r)},n.blur.get=function(){return this.tiltShiftXFilter.blur},n.blur.set=function(e){this.tiltShiftXFilter.blur=this.tiltShiftYFilter.blur=e},n.gradientBlur.get=function(){return this.tiltShiftXFilter.gradientBlur},n.gradientBlur.set=function(e){this.tiltShiftXFilter.gradientBlur=this.tiltShiftYFilter.gradientBlur=e},n.start.get=function(){return this.tiltShiftXFilter.start},n.start.set=function(e){this.tiltShiftXFilter.start=this.tiltShiftYFilter.start=e},n.end.get=function(){return this.tiltShiftXFilter.end},n.end.set=function(e){this.tiltShiftXFilter.end=this.tiltShiftYFilter.end=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Ue=a,Ve="varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float radius;\nuniform float angle;\nuniform vec2 offset;\nuniform vec4 filterArea;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvec2 twist(vec2 coord)\n{\n coord -= offset;\n\n float dist = length(coord);\n\n if (dist < radius)\n {\n float ratioDist = (radius - dist) / radius;\n float angleMod = ratioDist * ratioDist * angle;\n float s = sin(angleMod);\n float c = cos(angleMod);\n coord = vec2(coord.x * c - coord.y * s, coord.x * s + coord.y * c);\n }\n\n coord += offset;\n\n return coord;\n}\n\nvoid main(void)\n{\n\n vec2 coord = mapCoord(vTextureCoord);\n\n coord = twist(coord);\n\n coord = unmapCoord(coord);\n\n gl_FragColor = texture2D(uSampler, coord );\n\n}\n",He=function(e){function t(t){e.call(this,Ue,Ve),"number"==typeof t&&(t={radius:t},void 0!==arguments[1]&&(t.angle=arguments[1]),void 0!==arguments[2]&&(t.padding=arguments[2])),Object.assign(this,{radius:200,angle:4,padding:20,offset:new n.Point},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={offset:{configurable:!0},radius:{configurable:!0},angle:{configurable:!0}};return r.offset.get=function(){return this.uniforms.offset},r.offset.set=function(e){this.uniforms.offset=e},r.radius.get=function(){return this.uniforms.radius},r.radius.set=function(e){this.uniforms.radius=e},r.angle.get=function(){return this.uniforms.angle},r.angle.set=function(e){this.uniforms.angle=e},Object.defineProperties(t.prototype,r),t}(t.Filter),$e=a,Je="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform vec2 uCenter;\nuniform float uStrength;\nuniform float uInnerRadius;\nuniform float uRadius;\n\nconst float MAX_KERNEL_SIZE = ${maxKernelSize};\n\n// author: http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/\nhighp float rand(vec2 co, float seed) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot(co + seed, vec2(a, b)), sn = mod(dt, 3.14159);\n return fract(sin(sn) * c + seed);\n}\n\nvoid main() {\n\n float minGradient = uInnerRadius * 0.3;\n float innerRadius = (uInnerRadius + minGradient * 0.5) / filterArea.x;\n\n float gradient = uRadius * 0.3;\n float radius = (uRadius - gradient * 0.5) / filterArea.x;\n\n float countLimit = MAX_KERNEL_SIZE;\n\n vec2 dir = vec2(uCenter.xy / filterArea.xy - vTextureCoord);\n float dist = length(vec2(dir.x, dir.y * filterArea.y / filterArea.x));\n\n float strength = uStrength;\n\n float delta = 0.0;\n float gap;\n if (dist < innerRadius) {\n delta = innerRadius - dist;\n gap = minGradient;\n } else if (radius >= 0.0 && dist > radius) { // radius < 0 means it's infinity\n delta = dist - radius;\n gap = gradient;\n }\n\n if (delta > 0.0) {\n float normalCount = gap / filterArea.x;\n delta = (normalCount - delta) / normalCount;\n countLimit *= delta;\n strength *= delta;\n if (countLimit < 1.0)\n {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n }\n\n // randomize the lookup values to hide the fixed number of samples\n float offset = rand(vTextureCoord, 0.0);\n\n float total = 0.0;\n vec4 color = vec4(0.0);\n\n dir *= strength;\n\n for (float t = 0.0; t < MAX_KERNEL_SIZE; t++) {\n float percent = (t + offset) / MAX_KERNEL_SIZE;\n float weight = 4.0 * (percent - percent * percent);\n vec2 p = vTextureCoord + dir * percent;\n vec4 sample = texture2D(uSampler, p);\n\n // switch to pre-multiplied alpha to correctly blur transparent images\n // sample.rgb *= sample.a;\n\n color += sample * weight;\n total += weight;\n\n if (t > countLimit){\n break;\n }\n }\n\n color /= total;\n // switch back from pre-multiplied alpha\n // color.rgb /= color.a + 0.00001;\n\n gl_FragColor = color;\n}\n",et=function(e){function t(t){if("object"!=typeof t){var n=arguments[0],r=arguments[1],o=arguments[2],i=arguments[3];t={},void 0!==n&&(t.strength=n),void 0!==r&&(t.center=r),void 0!==o&&(t.innerRadius=o),void 0!==i&&(t.radius=i)}t=Object.assign({strength:.1,center:[0,0],innerRadius:0,radius:-1,maxKernelSize:32},t),e.call(this,$e,Je.replace("${maxKernelSize}",t.maxKernelSize.toFixed(1))),this.strength=t.strength,this.center=t.center,this.innerRadius=t.innerRadius,this.radius=t.radius}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={center:{configurable:!0},strength:{configurable:!0},innerRadius:{configurable:!0},radius:{configurable:!0}};return n.center.get=function(){return this.uniforms.uCenter},n.center.set=function(e){this.uniforms.uCenter=e},n.strength.get=function(){return this.uniforms.uStrength},n.strength.set=function(e){this.uniforms.uStrength=e},n.innerRadius.get=function(){return this.uniforms.uInnerRadius},n.innerRadius.set=function(e){this.uniforms.uInnerRadius=e},n.radius.get=function(){return this.uniforms.uRadius},n.radius.set=function(e){(e<0||e===1/0)&&(e=-1),this.uniforms.uRadius=e},Object.defineProperties(t.prototype,n),t}(t.Filter);return e.AdjustmentFilter=c,e.AdvancedBloomFilter=y,e.AsciiFilter=C,e.BevelFilter=z,e.BloomFilter=A,e.BulgePinchFilter=O,e.CRTFilter=Z,e.ColorMapFilter=M,e.ColorOverlayFilter=j,e.ColorReplaceFilter=I,e.ConvolutionFilter=N,e.CrossHatchFilter=K,e.DotFilter=V,e.DropShadowFilter=J,e.EmbossFilter=ne,e.GlitchFilter=ie,e.GlowFilter=ae,e.GodrayFilter=he,e.KawaseBlurFilter=d,e.MotionBlurFilter=me,e.MultiColorReplaceFilter=xe,e.OldFilmFilter=be,e.OutlineFilter=Fe,e.PixelateFilter=Te,e.RGBSplitFilter=Ee,e.RadialBlurFilter=De,e.ReflectionFilter=Re,e.ShockwaveFilter=Xe,e.SimpleLightmapFilter=Ge,e.TiltShiftAxisFilter=We,e.TiltShiftFilter=Qe,e.TiltShiftXFilter=Ye,e.TiltShiftYFilter=Ze,e.TwistFilter=He,e.ZoomBlurFilter=et,e}({},PIXI,PIXI,PIXI,PIXI.utils,PIXI,PIXI.filters,PIXI.filters);Object.assign(PIXI.filters,__filters); //# sourceMappingURL=pixi-filters.js.map })(); function ParticleEmitter(){ this.initialize.apply(this, arguments); }; function ParticleSystem(){ this.initialize.apply(this, arguments); }; var TRP_Localize = TRP_Localize || function(){}; if(!TRP_Localize.localize){ TRP_Localize.localize = function(symbol,original,id){ if($gameSystem && $gameSystem.isJapanese())return original; return this.DATA[symbol][id]||this.DATA.duplication[original]||original; }; TRP_Localize.noLocalize = function(original,id,translated){ if($gameSystem && $gameSystem.isJapanese())return original; return translated||original; }; TRP_Localize.DATA = {"duplication":{},"parPr":{},"parMa":{},"parEd":{},"parGr":{},"parGe":{},"parSe":{},"preWa":{}}; } //PRAGMA: dataFilePath Game_Particle.DATA_FILE_PATH = '../dataEx/TrpParticles.json'; //PRAGMA_END: dataFilePath DataManager._databaseFiles.push({ name:'$dataTrpParticles', src:Game_Particle.DATA_FILE_PATH, }); (function(){ "use strict"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; /***************************************************************************** */ //PRAGMA: pluginName var pluginName = 'TRP_ParticleMZ'; //PRAGMA_END: pluginName var parameters = PluginManager.parameters(pluginName); var commandNames = (parameters['commandName']||NLC('particle,パーティクル',0)).split(','); parameters.commandNames = commandNames; var LC = TRP_Localize.localize.bind(TRP_Localize,'parMa'); var NLC = TRP_Localize.noLocalize; var regionMargin = Number(parameters.regionMargin)||0; var outsideMargin = isNaN(parameters.outsideMargin) ? -1 :(Number(parameters.outsideMargin)||0); var walkOffset = Number(parameters.walkOffset)||0; var dashOffset = Number(parameters.dashOffset)||0; var maxParticles = Number(parameters.maxParticles); var keepPictureOrder = parameters.keepPictureOrder==='true'; var displayCount = parameters.displayCount==='true'; var systemParticles = JSON.parse(parameters.systemParticles); var clearScreenOnMapChange = parameters.clearScreenOnMapChange==='true'; var clearCharacterOnMapChange = parameters.clearCharacterOnMapChange==='true'; var clearPartyOnMapChange = parameters.clearPartyOnMapChange==='true'; var clearBattleScreenOnEnd = parameters.clearBattleScreenOnEnd==='true'; var clearBattleCharaOnEnd = parameters.clearBattleCharaOnEnd==='true'; var cacheBeforeTerminate = parameters.cacheBeforeTerminate==='true'; var disableState = parameters.disableState==='true'; var disableSkill = parameters.disableSkill==='true'; var disableRoute = parameters.disableRoute==='true'; var sceneTypes = parameters.sceneTypes ? JSON.parse(parameters.sceneTypes) : []; var sceneGroups = []; var noRewriteFunctions = parameters.noRewriteFunctions==='true'; var errorLog = parameters.errorLog === 'true'; var defaultImage = parameters.defaultImage = 'particle1'; var commandNameRegex; (function(){ //scene var length = sceneTypes.length; for(var i = 0; i0){ regexStr+='|'; } regexStr += name+' '; } regexStr += ')'; commandNameRegex = new RegExp(regexStr); })(); function supplement(defaultValue,optionArg){ if(optionArg === undefined){ return defaultValue; } return optionArg; }; function supplementNum(defaultValue,optionArg){ return Number(supplement(defaultValue,optionArg)); }; var _supplementDefWords = ['default','def','d']; function supplementDef(defaultValue, optionArg, otherWords) { var value = supplement(defaultValue,optionArg); var defTargetWords = otherWords || []; if(defTargetWords){ defTargetWords = defTargetWords.concat(_supplementDefWords); }else{ defTargetWords = _supplementDefWords; } var length = defTargetWords.length; for(var i=0; i=0){ var type = typeof data[key]; if(data[key] && type ==='object'){ var childObj = data[key]; var childArr = []; array.push(childArr); var childKeys = Game_Particle.CONFIG_PARAM_INDEXES[key]; var childKeyLen = childKeys.length; for(var j = 0; j angle data.angle = (array[i]===1 ? -1 : 0); }else if(key==='blendMode'){ data[key] = Game_Particle.BLEND_MODE_NAMES[array[i]||0]; }else if(key==='spawnType'){ data[key] = Game_Particle.SPAWN_TYPES[array[i]||0]; }else if(key==='noRotation'||key==='addAtBack'){ data[key] = array[i] ? true : false; }else if(key==='image' || key==='comment'){ data[key] = array[i]||''; }else{ data[key] = array[i]||0; } } } return data; }; ParticleEmitter.Z_INDEX = { screen:-1000, spriteset:-900, back:-800, below:1, above:5, top:9, }; var Z_INDEX = ParticleEmitter.Z_INDEX; ParticleEmitter.TARGET_TYPES = { displayObject:-1, character:0, walk:1, startdash:2, attach:3, tilemap:4, screen:5, weather:6, region:7, party:8, enemy:9, battle:10, battleWeather:11, click:12, drag:13, picture:14, skit:15, battlePicture:16, battleSkit:17, attachParty:18, attachEnemy:19, back:20, weatherBack:21, actor:22, attachActor:23, }; var TARGET_TYPES = ParticleEmitter.TARGET_TYPES; ParticleEmitter.DELTA_TIME = 1/60; ParticleEmitter.NODE_PARAMS = ['alpha','speed','scale','color']; ParticleEmitter.NODE_KEY_CONVERT = { alpha:'startAlpha', speed:'startSpeed', scale:'startScale', color:'startColor' }; var CLEAR_ARGS = ['clear',NLC('クリア',1),NLC('クリアー',2),NLC('消去',3)]; var SET_COMMANDS = ['set','play','edit']; //PRAGMA: registerCommands //============================================================================= // PluginManager //============================================================================= (()=>{ const commands = ['set','play','repeat','on','off','clear','update','animate','exceed','loop','filter','max']; function _pluginCommand(command,args){ //this > interpreter var argsArr = Object.values(args) var delay = Number(argsArr.pop())||0; var pCommand = command; if(command==='update'||command==='animate'){ Array.prototype.push.apply(argsArr,argsArr.pop().split(' ')); }else if(command==='set'||command==='play'){ var editFlag = argsArr.pop()==='true'; if(editFlag){ pCommand = 'edit'; } var tag = argsArr.pop(); if(tag){ if(!tag.contains('tag:')){ tag = 'tag:'+tag; } argsArr.push(tag); } } argsArr.unshift(pCommand); var eventId = this.eventId(); if(delay>0){ $gameScreen._particle.reservePluginCommand(delay,this,argsArr,eventId); }else{ $gameScreen._particle.pluginCommand(this,argsArr,eventId); } } for(const command of commands){ PluginManager.registerCommand(pluginName, command, function(args){ _pluginCommand.call(this,command,args); }); } const filters = ['filterClear','filterBlur','filterGlow','filterRgbSplit','filterPixelate','filterDisplacement']; function _filterCommand(command,args){ //this > interpreter var argsArr = Object.values(args) var delay = Number(argsArr.pop())||0; var id = argsArr.shift(); switch(command){ case 'filterClear': argsArr.unshift('clear'); break; case 'filterBlur': argsArr.unshift('blur'); break; case 'filterGlow': argsArr.unshift('glow'); break; case 'filterRgbSplit': argsArr.unshift('rgbSplit'); break; case 'filterPixelate': argsArr.unshift('pixelate'); break; case 'filterDisplacement': argsArr.unshift('displacement'); break; } argsArr.unshift(id); argsArr.unshift('filter'); var eventId = this.eventId(); if(delay>0){ $gameScreen._particle.reservePluginCommand(delay,this,argsArr,eventId); }else{ $gameScreen._particle.pluginCommand(this,argsArr,eventId); } } for(const command of filters){ PluginManager.registerCommand(pluginName, command, function(args){ _filterCommand.call(this,command,args) }); } /* TRP_ParticleMZ_Preset & List ===================================*/ var categoryNames = Game_Particle.CATEGORY_NAMES; var categoryLength = categoryNames.length; var listPlugin = 'TRP_ParticleMZ_List'; var presetPlugin = 'TRP_ParticleMZ_Preset'; var exPresetPlugin = 'TRP_ParticleMZ_ExPreset'; function _listCommand(command,args){ if(!args.id||args.id==='def'||args.id==='d'){ args.id = args.name; } if(args.id==='-EID'){ args.id = args.name+'-EID'; } command = command.split('_')[0]; _pluginCommand.call(this,command,args); } for(var i=0; i<2; i=(i+1)|0){ var commandBase = i===0 ? 'set' : 'play'; for(var j=0; j=0){ isAttach = true; } } if(targetIdx>=0){ for(var i = 0; i0)args=args.concat(); var targetId = targetIds[i]; args[targetIdx] = (isAttach?'attach:':'')+targetId; var suffix = ':'+targetId; $gameScreen._particle.setAutoIdSuffix(suffix); if(!isNaN(delayStr)){ $gameScreen._particle.reservePluginCommand(Number(delayStr),interpreter,args,dummyEventId); }else{ $gameScreen._particle.pluginCommand(interpreter,args,dummyEventId); } } }else{ var suffix = ':'+subjectId; $gameScreen._particle.setAutoIdSuffix(suffix); if(!isNaN(delayStr)){ $gameScreen._particle.reservePluginCommand(Number(delayStr),interpreter,args,dummyEventId); }else{ $gameScreen._particle.pluginCommand(interpreter,args,dummyEventId); } } idx += 1; argsStr = item.meta['particle'+idx]; delayStr = item.meta['particle'+idx+'Delay']||item.meta['particle'+idx+'delay']||item.meta['particleDelay'+idx]; } $gameScreen._particle.clearAutoIdSuffix(); }; } /* Scene_Battle ===================================*/ var _Scene_Battle_terminate = Scene_Battle.prototype.terminate; Scene_Battle.prototype.terminate = function() { _Scene_Battle_terminate.call(this); if(clearBattleScreenOnEnd){ $gameScreen._particle.removeBattleScreenParticles(); } if(clearBattleCharaOnEnd){ $gameScreen._particle.removeBattleCharacterParticles(); } }; //============================================================================= // Manager //============================================================================= ImageManager.loadParticle = function(filename, hue) { return this.loadBitmap('img/particles/', filename, hue, true); }; var _SceneManager_changeScene = SceneManager.changeScene; SceneManager.changeScene = function(){ if(this.isSceneChanging() && !this.isCurrentSceneBusy() && $gameScreen && $gameScreen._particle){ $gameScreen._particle.willSceneChange(); } _SceneManager_changeScene.call(this); }; var _DataManager_loadDataFile = DataManager.loadDataFile; DataManager.loadDataFile = function(name, src) { if(src.contains('Test_')&&src.contains('TrpParticles')){ src = Game_Particle.DATA_FILE_PATH; } _DataManager_loadDataFile.call(this,name,src); }; var _DataManager_extractSaveContents = DataManager.extractSaveContents; DataManager.extractSaveContents = function(contents) { _DataManager_extractSaveContents.call(this,contents); $gameScreen.tryCreateParticle(); }; //============================================================================= // Scene //============================================================================= var _Scene_Base_initialize = Scene_Base.prototype.initialize; Scene_Base.prototype.initialize = function(){ _Scene_Base_initialize.call(this); this.initializeParticleSystem(); }; Scene_Base.prototype.initializeParticleSystem = function(){ this._particleSystem = null; }; var _Scene_Base_create = Scene_Base.prototype.create; Scene_Base.prototype.create = function(){ _Scene_Base_create.call(this); if($gameScreen&&$gameScreen._particle&&this.useParticleSystem()){ this.createParticleSystem(); }; }; Scene_Base.prototype.createParticleSystem = function(){ if(ParticleSystem.temporallyCacheForGroupedScene){ this._particleSystem = ParticleSystem.temporallyCacheForGroupedScene; ParticleSystem.temporallyCacheForGroupedScene = null; }else{ this._particleSystem = new ParticleSystem(); } }; var _Scene_Base_start = Scene_Base.prototype.start; Scene_Base.prototype.start = function(){ _Scene_Base_start.call(this); if(this._particleSystem){ this._particleSystem.tryRestoreFromCache(this); } }; Scene_Base.prototype.useParticleSystem = function(){ return true; }; var _Scene_Base_update = Scene_Base.prototype.update; Scene_Base.prototype.update = function(){ _Scene_Base_update.call(this); if(this._particleSystem){ this._particleSystem.update(this); } }; Scene_Base.prototype.isParticleTargetTypeValid = function(type,targetId){ switch(type){ case TARGET_TYPES.click: case TARGET_TYPES.drag: case TARGET_TYPES.displayObject: return true; case TARGET_TYPES.scene: default: if(type<-1){ return sceneTypes[-type-2]===this.constructor.name; } return false; } }; /* Scene_Boot ===================================*/ var _Scene_Boot_start = Scene_Boot.prototype.start; Scene_Boot.prototype.start = function() { _Scene_Boot_start.call(this); ParticleSystem.setupSystemParticles(); }; /* Scene_Map ===================================*/ Scene_Map.prototype.initializeParticleSystem = function(){ Scene_Base.prototype.initializeParticleSystem.call(this); this._useCachedParticleSystem = false; }; Scene_Map.prototype.createParticleSystem = function(){ if(ParticleSystem.temporallyCacheForSceneMap && ParticleSystem.cacheMapId===$gameMap.mapId()){ this._particleSystem = ParticleSystem.temporallyCacheForSceneMap; ParticleSystem.clearCache(); this._useCachedParticleSystem = true; }else{ Scene_Base.prototype.createParticleSystem.call(this); } }; Scene_Map.prototype.useParticleSystem = function(){ return true; }; Scene_Map.prototype.isParticleTargetTypeValid = function(type,targetId){ if(type<-1)return false; switch(type){ case TARGET_TYPES.party: case TARGET_TYPES.enemy: case TARGET_TYPES.attachParty: case TARGET_TYPES.attachEnemy: case TARGET_TYPES.battle: case TARGET_TYPES.battleWeather: case TARGET_TYPES.battlePicture: case TARGET_TYPES.battleSkit: case TARGET_TYPES.actor: case TARGET_TYPES.attachActor: return false; default: return true; } }; var _Scene_Map_terminate = Scene_Map.prototype.terminate; if(cacheBeforeTerminate){ Scene_Map.prototype.terminate = function() { if(SceneManager.isNextScene(Scene_Menu)){ if(this._particleSystem){ this._particleSystem.cacheForMap(); this._particleSystem = null; } } _Scene_Map_terminate.call(this); }; }else{ Scene_Map.prototype.terminate = function() { _Scene_Map_terminate.call(this); if(SceneManager.isNextScene(Scene_Menu)){ if(this._particleSystem){ this._particleSystem.cacheForMap(); this._particleSystem = null; } } }; } var _Scene_Base_terminate = Scene_Base.prototype.terminate; Scene_Base.prototype.terminate = function(){ this.tryCacheParticleSystem(); _Scene_Base_terminate.call(this); }; Scene_Base.prototype.tryCacheParticleSystem = function(){ if(!this._particleSystem)return; var length = sceneGroups.length; var next = SceneManager._nextScene ? SceneManager._nextScene.constructor.name : ''; if(!next)return; var constructor = this.constructor.name; for(var i = 0; i $gameVariables.value(parseInt(p1)) ); arg = arg.replace(/\x1bV\[(\d+)\]/gi, (_, p1) => $gameVariables.value(parseInt(p1)) ); arg = arg.replace(/\x1bJ\[(.+?)]/gi,function(_, p1){ return eval(p1)||''; }) args[i] = arg; } }; Game_Particle.prototype.pluginCommand = function(interpreter,args,eventId){ var sub = args.shift().toLowerCase(); this.convertEscapeCharacters(args); //process eid if(!isNaN(eventId)){ this.processArgsEventId(args,eventId); } this._pluginCommand(interpreter,sub,args,eventId); }; Game_Particle.prototype._pluginCommand = function(interpreter,sub,args,eventId){ var tag; if(Game_Particle.isPlayCommands(sub)){ tag = this.extractTagRegister(args); var targetId = ''; if(sub==='set'){ args.unshift(eventId); Game_Particle.prototype.particleSet.apply(this,args); targetId = args[1]; }else if(sub==='play'){ args.unshift(eventId); Game_Particle.prototype.particlePlay.apply(this,args); targetId = args[1]; }else if(sub==='edit'){ var copyName = ''; if(typeof args[args.length-1] === 'string'){ if(args[args.length-1].indexOf('copy:')===0){ copyName = args.pop().replace('copy:',''); } } args.unshift(copyName); args.unshift(eventId); if(Game_Particle.prototype._particleEdit.apply(this,args) && interpreter){ interpreter.wait(1); } targetId = args[2]; } //register tag if(tag){ this.particleTag(targetId,tag); } }else if(sub==='repeat'){ Game_Particle.prototype.particleRepeat.apply(this,args); }else if(sub==='on'){ Game_Particle.prototype.particleOn.apply(this,args); }else if(sub==='off'){ Game_Particle.prototype.particleOff.apply(this,args); }else if(sub==='clear'){ Game_Particle.prototype.particleClear.apply(this,args); }else if(sub==='update'){ this.particleUpdate(args); }else if(sub==='animate'){ this.particleAnimate(args); }else if(sub==='exceed'){ Game_Particle.prototype.particleExceed.apply(this,args); }else if(sub==='screenLoop'||sub==='loop'){ Game_Particle.prototype.particleLoop.apply(this,args); }else if(sub==='filter'){ this.particleFilter(args); }else if(sub==='max'){ if(isNaN(args[0])){ this.resetMaxParticles(); }else{ this.maxParticles = Number(args[0]); } }else if(sub==='flash'){ $gameScreen.startFlash([Number(args[0]),Number(args[1]),Number(args[2]),Number(args[3])],Number(args[4])); }else if(sub==='shake'){ $gameScreen.startShake(Number(args[0]),Number(args[1]),Number(args[2])); }else if(sub==='se'){ AudioManager.playSe({name:args[0],volume:Number(args[1])||90,pitch:Number(args[2])||100,pan:Number(args[3])||0}) }else if(sub==='reserve'){ this.reservePluginCommand(Number(args.shift()),interpreter,args,eventId); } }; Game_Particle.prototype.reservePluginCommand = function(delay,interpreter,args,eventId){ this._reservedCommands = this._reservedCommands||[]; this._reservedCommands.push([Number(delay),interpreter,args,eventId,this._suffix]); }; Game_Particle.prototype.update = function(){ if(this._reservedCommands&&this._reservedCommands.length>0){ this.updateReservedCommands(); } var keys = this._keys; var length = keys.length; var destroyed = false; for(var i = length-1; i>=0; i=(i-1)|0){ var key = keys[i]; var data = this._data[key]; if(!data || data.destroy){ keys.splice(i,1); delete this._data[key]; if(Game_Particle.displayObjects[key]){ delete Game_Particle.displayObjects[key]; } destroyed = true; }else if(data.animations){ this.updateAnimations(key,data); } } if(destroyed){ this.truncateTagInfo(); } }; Game_Particle.prototype.updateReservedCommands = function(){ var length = this._reservedCommands.length; for(var i = 0; i= 5; if(hasSuffix){ this.setAutoIdSuffix(command[4]); } this.pluginCommand(command[1],command[2],command[3]); if(hasSuffix){ this.clearAutoIdSuffix(); } this._reservedCommands.splice(i,1); length -= 1; i -= 1; } } } Game_Particle.prototype.idWithSuffix = function(id){ var idx = id.indexOf(this._suffix); if(this._suffix && (idx<0 || idx!==id.length-this._suffix.length)) { id+=this._suffix; } return id; }; Game_Particle.prototype.particleSet = function(eventId,id,target,name,z,x,y,image){ name = supplementDef(id,name)||id; id = this.idWithSuffix(id); if(!!this._data[id]){ this.particleOn(id); return; } var data = this.particleData(eventId,id,target,name,z,x,y,image); if(!data)return; this._data[id] = data; this._keys.push(id); return data; }; Game_Particle.prototype.particleData = function(eventId,id,target,name,z,x,y,image,ignoreError=false){ x = Number(x)||0; y = Number(y)||0; if(!ignoreError && !Game_Particle.configDataWithName(name)){ if(errorLog){ throw new Error(LC('設定名:%1のパーティクル設定データが存在しません。',4).format(name)); } return; } if(!ignoreError && errorLog && target===undefined){ throw new Error(LC('パーティクル表示コマンドの対象が設定されてません。',6)+'(ID:'+id+')'); } var targetType = TARGET_TYPES.character; var targetId = 0; var exData = null; var elems; if(target instanceof PIXI.Container){ targetType = TARGET_TYPES.displayObject; targetId = id; Game_Particle.displayObjects[id] = target; }else if(target.toLowerCase().contains('scene_')){ targetType = sceneTypes.indexOf(target); if(errorLog && targetType<0){ throw new Error(LC('対象のシーンが登録されてませんされてません。(対象:%1)',7).foramt(target)); } targetType = -targetType-2; }else if(target === 'this'){ targetId = eventId; }else if(!isNaN(target)){ targetId = Number(target); }else if(target==='player'){ targetId = 0; }else if(target==='tilemap'){ targetType = TARGET_TYPES.tilemap; }else{ var targetElems = target.split(':'); targetId = targetElems.length>=2 ? Number(targetElems[1]) : 0; switch(targetElems[0].toLowerCase()){ case 'follower': targetType = TARGET_TYPES.character; targetId *= -1; break; case 'attach': targetElems.shift(); if(targetElems[0]==='party'){ targetType = TARGET_TYPES.attachParty; targetId = targetElems[1]; }else if(targetElems[0]==='enemy'){ targetType = TARGET_TYPES.attachEnemy; targetId = targetElems[1]; }else if(targetElems[0]==='actor'){ targetType = TARGET_TYPES.attachActor; targetId = targetElems[1]; }else{ targetType = TARGET_TYPES.attach; targetId = this.processCharacterTargetId(targetElems,eventId); } break; case 'walk': case 'startdash': targetType = TARGET_TYPES[targetElems.shift()]; targetId = this.processCharacterTargetId(targetElems,eventId); if(targetElems[0]){ exData = exData||{}; exData.regions = []; targetElems[0].split(',').forEach(function(regionId){ exData.regions.push(Number(regionId)); }); } if(targetType === TARGET_TYPES.walk){ exData = exData||{}; exData.dashing = false; exData.lastMoving = false; exData.frequency = 0; }else if(targetType === TARGET_TYPES.startdash){ exData = exData||{}; exData.dashing = false; exData.lastDashing = false; exData.dir = 0; } break; case 'stay': targetType = TARGET_TYPES.tilemap; var event = $gameMap.event(targetId||eventId); x += event._x; y += event._y; break; case 'weather': targetType = TARGET_TYPES.weather; if(targetElems.length>1){ exData = exData||{}; elems = targetElems[1].split(','); exData.px = Number(elems[0]); exData.py = elems.length>=2?Number(elems[1]):1; } break; case 'skit': case 'battleSkit': targetType = TARGET_TYPES[targetElems[0]]; if(!this._skitIds.contains(targetElems[1])){ this._skitIds.push(targetElems[1]); } targetId = this._skitIds.indexOf(targetElems[1]); break; case 'event': targetType = TARGET_TYPES.character; break; default: if(TARGET_TYPES[targetElems[0]]){ targetType = TARGET_TYPES[targetElems[0]]; if(targetElems[0]==='region'){ targetId = targetElems[1]; exData = { lastX:-1, lastY:-1, frequency:1, maxParticles:0, particlesPerWave:0, allPos:null } } } } } //supplement z if(isNaN(z)){ if(!isNaN(Z_INDEX[z])){ z = Z_INDEX[z]; }else{ z = this.defaultZIndexForType(targetType); } } z = Number(z)||0; //make data var data = { targetType:targetType, targetId:targetId, name:name, image:image||null, x:x, y:y, z:z, stop:false, clear:false, quit:false, interval:0, params:{}, pChanged:false, filters:{}, fid:0, exceed:null, loop:null, animations:null, repeat:0, destroy:false, ex:exData }; return data; } Game_Particle.prototype.defaultZIndexForType = function(targetType){ var z = 0; if(targetType < -1){ z = Z_INDEX.below; }else if(targetType === TARGET_TYPES.character){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.walk){ z = Z_INDEX.below; }else if(targetType === TARGET_TYPES.startdash){ z = Z_INDEX.below; }else if(targetType === TARGET_TYPES.attach){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.screen){ z = Z_INDEX.spriteset; }else if(targetType === TARGET_TYPES.displayObject){ z = 1; }else if(targetType === TARGET_TYPES.weather){ z = Z_INDEX.spriteset; }else if(targetType === TARGET_TYPES.party){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.enemy){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.attachParty){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.attachEnemy){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.battle){ z = Z_INDEX.screen; }else if(targetType === TARGET_TYPES.battleWeather){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.region){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.picture){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.skit){ z = Z_INDEX.above; }else if(targetType === TARGET_TYPES.battleSkit){ z = Z_INDEX.above; } return z; }; Game_Particle.prototype.processCharacterTargetId = function(targetElems,eventId){ var elem0 = targetElems.shift(); if(elem0==='player'){ return 0; }else if(elem0==='follower'){ return -Number(targetElems.shift()) || -1; }else if(elem0==='this'){ return eventId; }else if(elem0==='event'){ return Number(targetElems.shift())||eventId; }else if(!isNaN(elem0)){ return Number(elem0); }else{ throw new Error(LC('パーティクルの対象の値に誤りがあります。',8)); } }; Game_Particle.prototype.particlePlay = function(eventId,id,target,name,z,x,y,image){ var data = this._data[this.idWithSuffix(id)]; if(!data){ data = this.particleSet(eventId,id,target,name,z,x,y,image); } data.clear = true; }; Game_Particle.prototype.particleRepeat = function(id,interval){ var targetIds = this.targetIds(id); var length = targetIds.length; for(var i = 0; i=0; i=(i-1)|0){ if(animations[i].key === spawnKey){ animations.splice(i,1); } } } }); }; Game_Particle.prototype.particleAnimate = function(args){ var id = args.shift(); var duration = args.shift(); var key = args.shift(); var targetIds = this.targetIds(id); var length = targetIds.length; if(duration<=0){ //apply particleUpdate for(var i = 0; i=0; i=(i-1)|0){ var animation = animations[i]; animation.d -= 1; if(animation.d <= 0){ animations.splice(i,1); var args = animation.args; args.unshift(animation.key); args.unshift(id); this.particleUpdate(args); } } }; /* exceed ===================================*/ Game_Particle.prototype.particleExceed = function(id,arg){ var targetIds = this.targetIds(id); var length = targetIds.length; var value = Number(arg)||0; for(var i = 0; i angle if(config.angle === undefined){ if(config.angleType===1){ config.angle = -1; }else{ config.angle = 0; } } }; /* maxParticles ===================================*/ Game_Particle.prototype.resetMaxParticles = function(){ this.maxParticles = maxParticles; }; /* cache & auto clear ===================================*/ Game_Particle.prototype.removeAll = function(){ var keys = this._keys; var length = keys.length; for(var i = length-1; i>=0; i=(i-1)|0){ var key = keys[i]; var data = this._data[key]; data.clear = true; data.quit = true; } this._keys.length = 0; this._data = {}; this.truncateTagInfo(); }; Game_Particle.prototype.willSceneChange = function(){ Game_Particle.clearDisplayObjects(); if(this._reservedCommands){ this._reservedCommands.length = 0; } var keys = this._keys; var length = keys.length; for(var i = length-1; i>=0; i=(i-1)|0){ var key = keys[i]; var data = this._data[key]; if(data.type === ParticleEmitter.TARGET_TYPES.displayObject){ keys.splice(i,1); delete data[key]; } } }; Game_Particle.prototype.willStartSceneMap = function(){ var newMapId = $gameMap.mapId(); if(this._lastMapId !== newMapId){ this._lastMapId = newMapId; if(clearCharacterOnMapChange){ this.removeCharacterTargetParticles(); } if(clearPartyOnMapChange){ this.removePartyTargetParticles(); } if(clearScreenOnMapChange){ this.removeScreenTargetParticles(); } var events = $gameMap.events(); var length = events.length; for(var i = 0; i=0; i=(i-1)|0){ var key = keys[i]; var data = allData[key]; if(types.contains(data.targetType)){ if(!this.isStateTagged(key,data)){ keys.splice(i,1); delete allData[key]; } } } }; Game_Particle.prototype.isStateTagged = function(key,data){ if(disableState)return false; var info = this._tagInfo; if(!info)return true; var tags = Object.keys(info); var length = tags.length; for(var i = 0; i=0; i=(i-1)|0){ var key = keys[i]; var data = allData[key]; var isForEvent = Game_Particle.CHARACTER_TARGET_TYPES.contains(data.targetType) && data.targetId>0; var isTilemap = data.targetType === TARGET_TYPES.tilemap; if(isForEvent || isTilemap){ keys.splice(i,1); delete allData[key]; } } }; Game_Particle.prototype.removePartyTargetParticles = function(){ this._removePartyTargetParticles(this._keys,this._data); this.truncateTagInfo(); }; Game_Particle.prototype._removePartyTargetParticles = function(keys,allData){ var length = keys.length; for(var i = length-1; i>=0; i=(i-1)|0){ var key = keys[i]; var data = allData[key]; if(Game_Particle.CHARACTER_TARGET_TYPES.contains(data.targetType) && data.targetId<=0){ if(!this.isStateTagged(key,data)){ keys.splice(i,1); delete allData[key]; } } } }; Game_Particle.prototype.clearEnemyTargetParticles = function(enemy){ var types = Game_Particle.BATTLE_ENEMY_TARGET_TYPES var targetId = enemy.index()+1; this.clearTargetsParticles(types,targetId,this._keys,this._data); }; Game_Particle.prototype.clearActorTargetParticles = function(actor,quit){ if(actor.index()<0)return; var types = Game_Particle.BATTLE_PARTY_TARGET_TYPES; var targetId = actor.index()+1; this.clearTargetsParticles(types,targetId,this._keys,this._data,quit); types = Game_Particle.BATTLE_ACTOR_TARGET_TYPES; targetId = actor.particleTargetId(); this.clearTargetsParticles(types,targetId,this._keys,this._data,quit); }; Game_Particle.prototype.clearTargetsParticles = function(targetTypes,targetId,keys,allData,quit=false){ var length = keys.length; for(var i = length-1; i>=0; i=(i-1)|0){ var key = keys[i]; var data = allData[key]; if(!targetTypes.contains(data.targetType))continue; if(String(data.targetId)!==String(targetId))continue; allData[key].clear = true; allData[key].stop = true; if(quit){ allData[key].quit = true; } keys.splice(i,1); delete allData[key]; } this.truncateTagInfo(); }; /* tag ===================================*/ Game_Particle.prototype.extractTagRegister = function(args){ var tag = ''; var length = args.length; for(var i = 0; i=0; i=(i-1)|0){ var key = keys[i]; var ids = this._tagInfo[key]; var idLen = ids.length; for(var j = idLen-1; j>=0; j=(j-1)|0){ var id = ids[j]; if(!this._data[key]){ ids.splice(j,1); } } if(ids.length===0){ delete this._tagInfo[key]; } } }; /* helper&accessor ===================================*/ Game_Particle.prototype.dataWithId = function(id,noErrorLog){ if(this._suffix){ var suffixIdx = id.indexOf(this._suffix); if(suffixIdx<0 || suffixIdx!==id.length-this._suffix.length){ id += this._suffix; } } var data = this._data[id]||null; if(!data && !noErrorLog && errorLog){ throw new Error(LC('管理ID:%1のパーティクルは再生されてません。',11).format(id)); } return data; }; Game_Particle.prototype.data = function(){ return this._data; }; Game_Particle.prototype.keys = function(){ return this._keys; }; Game_Particle.prototype.setAutoIdSuffix = function(suffix){ this._suffix = suffix; }; Game_Particle.prototype.addAutoIdSuffix = function(suffix){ this._suffix += suffix; }; Game_Particle.prototype.removeAutoIdSuffix = function(suffix){ var index = this._suffix.indexOf(suffix); this._suffix = this._suffix.substring(0,index); }; Game_Particle.prototype.clearAutoIdSuffix = function(){ this._suffix = ''; }; Game_Particle.TEMP_TARGET_ARRAY = []; Game_Particle.TEMP_TARGET_TYPES_ARRAY = []; Game_Particle.prototype.targetIds = function(idStr){ var ret = Game_Particle.TEMP_TARGET_ARRAY; ret.length = 0; if(typeof idStr === 'number'){ ret.push(idStr); return ret; } var id_lc = idStr.toLowerCase(); if(id_lc.indexOf('group:')===0){ idStr = 'tag:'+idStr; id_lc = 'tag:'+id_lc; } var types = null; if(id_lc.indexOf('all:')===0){ idStr = idStr.substr(4); if(idStr.contains(',')){ types = idStr.split(','); }else{ types = Game_Particle.TEMP_TARGET_TYPES_ARRAY; types.length = 0; types.push(idStr); } var length = types.length; for(var i = 0; i '+LC('対象タイプが不正です。',12)); } }else{ this.pushIdsWithTargetType(ret,targetType); } } }else if(id_lc==='all'){ ret = this._keys; }else if(id_lc.indexOf('tag:')===0){ var tagStr = idStr.substr(4); if(tagStr.contains(',')){ types = tagStr.split(','); }else{ types = Game_Particle.TEMP_TARGET_TYPES_ARRAY; types.length = 0; types.push(tagStr); } var length = types.length; for(var i = 0; i0; this.refreshCapacity(); }else if(this._useCapacityLimit && changed){ this.refreshCapacity(); } for(i=length-1; i>=0; i=(i-1)|0){ var emitter = emitters[emitterKeys[i]]; emitter.updateEmitter(); if(emitter._destroyed){ changed = true; delete emitters[emitterKeys[i]]; emitterKeys.splice(i,1); } } if(displayCount){ this._displayCountFrame -= 1 if(this._displayCountFrame<=0){ // this._displayCountFrame = 15; this._displayCountFrame = 5; this.refreshParticleCount(); } } }; ParticleSystem.prototype.createParticleEmitter = function(key,data,scene){ var emitter = new ParticleEmitter(key,data); if(!emitter._destroyed){ this.addEmitterToParent(emitter,scene); } return emitter; }; ParticleSystem.prototype.addEmitterToParent = function(emitter,scene){ var data = emitter._data; var container = emitter.container(); var z = data.z||0; var target,index,sprset,parent; switch(data.targetType){ case TARGET_TYPES.displayObject: target = Game_Particle.displayObjects[data.targetId]; if(target && target.parent){ index = target.parent.children.indexOf(target); index = (index+z).clamp(0,target.parent.children.length); target.parent.addChildAt(container,Math.min(target.parent.children.length,index)); } break; case TARGET_TYPES.actor: case TARGET_TYPES.attachActor: case TARGET_TYPES.party: case TARGET_TYPES.enemy: case TARGET_TYPES.attachParty: case TARGET_TYPES.attachEnemy: case TARGET_TYPES.battleWeather: target = emitter.target(); container.z = z; parent = target.parent || this.battleField(scene); if(z<=Z_INDEX.below){ for(var i = 0; i=0){ container.z = z; var baseField = this.baseField(scene); if(baseField){ baseField.addChild(container); } }else{ var sprset = this.spriteset(scene); if(sprset){ sprset.addChildAt(container,(-z+1).clamp(0,sprset.children.length)); }else{ scene.addChildAt(container,(-z+1).clamp(0,scene.children.length)); } } } return emitter; }; ParticleSystem.prototype.baseField = function(scene){ if(scene instanceof Scene_Map){ return this.spriteset(scene)._tilemap; }else if(this.spriteset(scene)){ return this.spriteset(scene); }else{ return null; } }; ParticleSystem.prototype.spriteset = function(scene){ return scene._spriteset; }; ParticleSystem.prototype.battleSpriteset = function(scene){ return scene._spriteset; }; ParticleSystem.prototype.battleField = function(scene){ return this.battleSpriteset(scene)._battleField; }; ParticleSystem.prototype.createCountSprite = function(){ var bitmap = new Bitmap(256,16); var sprite = new Sprite(bitmap); bitmap.fontSize = 14; bitmap.drawText(LC('パーティクル数:',13),0,0,100,16,'right'); this._countSprite = sprite; //limited sprite bitmap = new Bitmap(128,16); sprite = this._limitedSprite = new Sprite(bitmap); sprite.visible = false; sprite.y = 16; bitmap.textColor = 'red'; bitmap.fontSize = 14; bitmap.drawText(LC('最大数制限中!',14),0,0,128,16); }; ParticleSystem.prototype.refreshParticleCount = function(){ var emitters = this._emitters; var keys = this._keys; var length = keys.length; var count = 0; for(var i = 0; i=0){ return { r:Number(values[0]), g:Number(values[1]), b:Number(values[2]), a:Number(values[3]) }; }else{ return { r:Number(values[0]), g:Number(values[1]), b:Number(values[2]) }; } }; ParticleEmitter.prototype.initialize = function(id,data){ this.initMembers(); var config = Game_Particle.configData(data); var container = new PIXI.Container(); this._container = container; this._id = id; this._data = data; this._config = config; this._image = data.image; this._isSceneMap = SceneManager._scene instanceof Scene_Map; this._loopXThreshold = (this._isSceneMap && $gameMap.isLoopHorizontal()) ? $dataMap.width/2*48 : 0; this._loopYThreshold = (this._isSceneMap && $gameMap.isLoopVertical()) ? $dataMap.height/2*48 : 0;; this.setupTarget(data); var image = this.imageName(data.image); var bitmaps = this.bitmapsWithImage(image); this.setupBitmaps(image,bitmaps); }; ParticleEmitter.prototype.setupBitmaps = function(image,bitmaps){ var length = bitmaps.length; for(var i = 0; i=0){ positions.push(x); positions.push(y); } } } return positions; }; ParticleEmitter.prototype.tryDestroy = function(force=false){ this.destroy(force); }; ParticleEmitter.prototype.destroy = function(force){ if(this._destroyed)return; this._destroyed = true; this._data.destroy = true; this._data = null; this._target = null; if(this._emitter){ this._emitter.emit = false; this._emitter.destroy(); this._emitter = null; } if(this._container.parent){ this._container.parent.removeChild(this._container); } this._container = null; }; /* util interface ===================================*/ ParticleEmitter.prototype.setParticleCapacity = function(value){ if(this._freezed)return; if(this._targetType===TARGET_TYPES.click||this._targetType===TARGET_TYPES.drag){ return; } if(this._emitter){ this._emitter.capacityRate = value; } }; ParticleEmitter.prototype.particleCapacity = function(){ if(this._freezed){ return 0; } if(this._targetType===TARGET_TYPES.click||this._targetType===TARGET_TYPES.drag){ return 0; } var emitter = this._emitter; if(!emitter) return 0; return emitter.particleCapacity(); }; /* start ===================================*/ ParticleEmitter.prototype.tryStart = function(image,bitmaps){ if(this._started)return; var length = bitmaps.length; for(var i = 0; i0){ this._restartCount -= 1; if(this._restartCount <= 0){ this._restartCount = 0; this._emitter.emit = true; this._stop = false; this._data.stop = false; } }else if(this._data.repeat>0){ emitter.emit = false; this._restartCount = this._data.repeat; } if(!emitter.emit && this._restartCount<=0){ if(this._data.clear){ this.tryDestroy(); }else{ this._stop = this._data.stop = true; } } }else{ if(this._data.clear){ this.tryDestroy(); } } } }; ParticleEmitter.prototype.changeImage = function(image,emitter=this._emitter){ image = this.imageName(image); var bitmaps = this.bitmapsWithImage(image); var length = bitmaps.length; for(var i = 0; i0){ if(dx>this._loopXThreshold){ this._emitter.shiftParticlePosX($dataMap.width*48) this._emitter.resetPositionTracking(); }else if(dx<-this._loopXThreshold){ this._emitter.shiftParticlePosX(-$dataMap.width*48) this._emitter.resetPositionTracking(); } } if(this._loopYThreshold){ if(dy>this._loopYThreshold){ this._emitter.shiftParticlePosY($dataMap.height*48) this._emitter.resetPositionTracking(); }else if(dy<-this._loopYThreshold){ this._emitter.shiftParticlePosY(-$dataMap.height*48) this._emitter.resetPositionTracking(); } } this._container.x -= dx; this._container.y -= dy; this._dispX = dispX; this._dispY = dispY; if(this._isWeather){ this._x += dx; this._y += dy; this._emitter.updateOwnerPos(this._x,this._y); } } return scrolled; }; ParticleEmitter.prototype._updatePosition = function(scrolled){ var x,y; var target = this._target; switch(this._targetType){ case TARGET_TYPES.displayObject: target = Game_Particle.displayObjects[this._targetId]; if(!target || !target.parent){ this.destroy(); return; }else{ x = target.x; y = target.y; } break; case TARGET_TYPES.character: if(!target){ this.destroy(); return; } x = target.screenX(); y = target.screenY(); this.updateCharacterOutsideFreeze(x,y); break; case TARGET_TYPES.walk: if(!target){ this.destroy(); return; } if(!this._emitter.emit)return; x = target.screenX(); y = target.screenY(); this.updateCharacterOutsideFreeze(x,y); switch(target._direction){ case 2: y+=walkOffset; break; case 4: x-=walkOffset; break; case 6: x+=walkOffset; break; case 8: y-=walkOffset; break; } break; case TARGET_TYPES.startdash: if(!target){ this.destroy(); return; } if(!this._emitter.emit)return; x = target.screenX(); y = target.screenY(); this.updateCharacterOutsideFreeze(x,y); switch(target._direction){ case 2: y+=dashOffset; break; case 4: x-=dashOffset; break; case 6: x+=dashOffset; break; case 8: y-=dashOffset; break; } break; case TARGET_TYPES.attach: if(!target){ this.destroy(); return; } x = target.screenX(); y = target.screenY(); this._container.x = x; this._container.y = y; this.updateCharacterOutsideFreeze(x,y); return; case TARGET_TYPES.tilemap: if(scrolled){ x = Math.round($gameMap.adjustX(target.x)*48+24); y = Math.round($gameMap.adjustY(target.y)*48+24); }else{ x = this._x; y = this._y; } break; case TARGET_TYPES.actor: if(this._data.ex.index !== $gameActors.actor(this._targetId).index()){ this._data.ex.index = $gameActors.actor(this._targetId).index(); target = this._target = this._actorSpriteTarget($gameActors.actor(this._targetId)); } case TARGET_TYPES.party: case TARGET_TYPES.enemy: if(!target){ this.destroy(); return; } x = target.x; y = target.y - this.battlerSpriteHeight(target)/2; break; case TARGET_TYPES.attachActor: if(this._data.ex.index !== $gameActors.actor(this._targetId).index()){ this._data.ex.index = $gameActors.actor(this._targetId).index(); target = this._target = this._actorSpriteTarget($gameActors.actor(this._targetId)); } case TARGET_TYPES.attachParty: case TARGET_TYPES.attachEnemy: if(!target){ this.destroy(); return; } x = target.x; y = target.y - this.battlerSpriteHeight(target)/2; this._container.x = x; this._container.y = y; return; case TARGET_TYPES.picture: case TARGET_TYPES.battlePicture: target = $gameScreen.picture(target); if(!target){ this.destroy(); return; } x = target.x(); y = target.y(); break; case TARGET_TYPES.skit: case TARGET_TYPES.battleSkit: target = $gameScreen.picture($gameScreen._particle.skitPictureId(target)); if(!target){ this.destroy(); return; } x = target.x(); y = target.y(); break; default: if(this._target){ this._container.x = target.x; this._container.y = target.y; } }; if(scrolled || (this._x!==x ||this._y!==y)){ this._applyPosition(x,y); } } ParticleEmitter.prototype._applyPosition = function(x,y){ x += this._dispX; y += this._dispY; this._x = x; this._y = y; this._emitter.updateOwnerPos(x,y); }; ParticleEmitter.prototype.battlerSpriteHeight = function(sprite){ var targetSprite = sprite._mainSprite||sprite; return targetSprite.height * targetSprite.scale.y; }; ParticleEmitter.prototype.updateAnimations = function(data){ var animations = data.animations; var length = animations.length; for(var i = 0; i=2){ time = Number(elems[1]); }else if(i===0){ time = 0; }else{ time = 1; } var value; if(isColor){ if(elems[0][0]==='#'){ value = PIXI.particles.ParticleUtils.hexToRGB(elems[0]); }else{ value = ParticleEmitter.rgbWithStr(elems[0]); } if(!isUpdate){ value.r = Math.floor(this.paramWithRate(value.r,node.value.r,rate)); value.g = Math.floor(this.paramWithRate(value.g,node.value.g,rate)); value.b = Math.floor(this.paramWithRate(value.g,node.value.g,rate)); } }else{ if(isUpdate){ value = Number(elems[0]); }else{ value = this.paramWithRate(Number(elems[0]),node.value,rate); } } if(isUpdate){ list.push({ time:time, value:value }); }else{ node.value = value; node = node.next; } } if(isUpdate){ emitter[key] = PIXI.particles.PropertyNode.createList(data); } }; ParticleEmitter.prototype._updateNormalParam = function(emitter,key,args,rate){ var value = Number(args[0]); var value2 = args[1]===undefined ? value : Number(args[1]); switch(key){ case 'acceleration': if(value||value2){ emitter.acceleration.x = this.paramWithRate(value||0,emitter.acceleration.x,rate); emitter.acceleration.y = this.paramWithRate(value2||0,emitter.acceleration.y,rate); // emitter.startSpeed.next = null; // if(args[2]){ // emitter.maxSpeed = this.paramWithRate(args[2]||0,emitter.maxSpeed,rate); // }else{ // emitter.maxSpeed = emitter.maxSpeed||NaN; // } }else{ emitter.acceleration.x = this.paramWithRate(value||0,emitter.acceleration.x,rate); emitter.acceleration.y = this.paramWithRate(value2||0,emitter.acceleration.y,rate); } break; // case 'maxSpeed': // if(args[0]==='NaN'){ // emitter.maxSpeed = NaN; // }else{ // emitter.maxSpeed = this.paramWithRate(value,emitter.maxSpeed,rate); // } // break; case 'startRotation': emitter.minStartRotation = this.paramWithRate(value,emitter.minStartRotation,rate); emitter.maxStartRotation = this.paramWithRate(value2,emitter.maxStartRotation,rate); break; case 'rotationSpeed': emitter.minRotationSpeed = this.paramWithRate(value,emitter.minRotationSpeed,rate); emitter.maxRotationSpeed = this.paramWithRate(value2,emitter.maxRotationSpeed,rate); break; case 'imageOption': emitter.angle = this.paramWithRate(value,emitter.angle,rate); emitter.mirrorType = this.paramWithRate(value2,emitter.mirrorType,rate); break; case 'lifetime': emitter.minLifetime = this.paramWithRate(value,emitter.minLifetime,rate); emitter.maxLifetime = this.paramWithRate(value2,emitter.maxLifetime,rate); break; case 'blendMode': if(isNaN(args[0])){ emitter.particleBlendMode = PIXI.BLEND_MODES[args[0].toUpperCase()]||0; }else{ emitter.particleBlendMode = value; } emitter.particleBlendMode = emitter.particleBlendMode.clamp(0,10); break; case 'rect': //x,y,w,h if(this._targetType===TARGET_TYPES.region){ return; } emitter.spawnType = 'rect'; emitter._spawnFunc = emitter._spawnRect; if(!emitter.spawnRect)emitter.spawnRect = new PIXI.Rectangle(0,0,0,0); emitter.spawnRect.x = this.paramWithRate(value,emitter.spawnRect.x,rate); emitter.spawnRect.y = this.paramWithRate(value2,emitter.spawnRect.y,rate); emitter.spawnRect.width = this.paramWithRate(Number(args[2]),emitter.spawnRect.width,rate); emitter.spawnRect.height = this.paramWithRate(Number(args[3]),emitter.spawnRect.height,rate); // emitter.spawnRect = new PIXI.Rectangle(value,value2,Number(args[2]),Number(args[3])); break; case 'circle': //x,y,r if(this._targetType===TARGET_TYPES.region){ return; } emitter.spawnType = 'circle'; emitter._spawnFunc = emitter._spawnCircle; if(!emitter.spawnCircle)emitter.spawnCircle = new PIXI.Circle(0,0,1); emitter.spawnCircle.x = this.paramWithRate(value,emitter.spawnCircle.x,rate); emitter.spawnCircle.y = this.paramWithRate(value2,emitter.spawnCircle.y,rate); emitter.spawnCircle.radius = this.paramWithRate(Number(args[2]),emitter.spawnCircle.radius,rate); // emitter.spawnCircle = new PIXI.Circle(value, value2, Number(args[2])); break; case 'ring': //x,y,r,minR if(this._targetType===TARGET_TYPES.region){ return; } emitter.spawnType = 'ring'; emitter._spawnFunc = emitter._spawnRing; if(!emitter.spawnCircle)emitter.spawnCircle = new PIXI.Circle(0,0,1); emitter.spawnCircle.x = this.paramWithRate(value,emitter.spawnCircle.x,rate); emitter.spawnCircle.y = this.paramWithRate(value2,emitter.spawnCircle.y,rate); emitter.spawnCircle.radius = this.paramWithRate(Number(args[2]),emitter.spawnCircle.radius,rate); emitter.spawnCircle.minRadius = this.paramWithRate(Number(args[3]),emitter.spawnCircle.minRadius||0,rate); break; case 'burst': if(this._targetType===TARGET_TYPES.region){ return; } emitter.spawnType = 'burst'; emitter._spawnFunc = emitter._spawnBurst; emitter.particleSpacing = this.paramWithRate(value,emitter.particleSpacing,rate); emitter.angleStart = this.paramWithRate(value2,emitter.angleStart,rate); emitter.bdt = this.paramWithRate(Number(args[2]||0),emitter.bdt,rate); emitter.brt = this.paramWithRate(Number(args[3]||0),emitter.brt,rate); emitter.br = this.paramWithRate(Number(args[4]||0),emitter.br,rate); emitter.bdr = this.paramWithRate(Number(args[5]||0),emitter.bdr,rate); emitter.bdx = this.paramWithRate(Number(args[6]||0),emitter.bdx,rate); emitter.bdy = this.paramWithRate(Number(args[7]||0),emitter.bdy,rate); break; case 'point': if(this._targetType===TARGET_TYPES.region){ return; } emitter.spawnType = 'point'; emitter._spawnFunc = emitter._spawnPoint; case 'position': case 'pos': case 'spawnPos': if(args[0]!==undefined){ emitter.spawnPos.x = this.paramWithRate(value,emitter.spawnPos.x,rate); emitter.spawnPos.y = this.paramWithRate(value2,emitter.spawnPos.y,rate); } break; case 'fluctuation': emitter.fluc = this.paramWithRate(value,emitter.fluc,rate); emitter.flucSense = this.paramWithRate(value2,emitter.flucSense,rate); break; case 'minimumSpeedMultiplier': emitter.minimumSpeedMultiplier = value; break; case 'minimumScaleMultiplier': emitter.minimumScaleMultiplier = value; break; case 'rotationAcceleration': emitter.rotationAcceleration = this.paramWithRate(value,emitter.rotationAcceleration,rate); break; case 'particlesPerWave': if(this._targetType === TARGET_TYPES.region){ this._data.ex.particlesPerWave = this.paramWithRate(value,emitter.particlesPerWave,rate)||1; this.updateForRegion(true); }else{ emitter.setParticlesPerWaveToApplyCapacity(Math.round(this.paramWithRate(value,emitter.particlesPerWave,rate))||1); } break; case 'frequency': if(this._targetType === TARGET_TYPES.region){ this._data.ex.frequency = this.paramWithRate(value,emitter.frequency,rate); this.updateForRegion(true); }else if(this._targetType === TARGET_TYPES.walk){ this._data.ex.frequency = this.paramWithRate(value,emitter.frequency,rate); }else{ emitter.setFrequencyToApplyCapacity(this.paramWithRate(value,emitter.frequency,rate)); } break; case 'spawnChance': emitter.spawnChance = this.paramWithRate(value,emitter.spawnChance,rate)||1; break; case 'emitterLifetime': emitter.emitterLifetime = this.paramWithRate(value,emitter.emitterLifetime,rate); emitter._emitterLife = emitter.emitterLifetime; break; case 'maxParticles': if(this._targetType === TARGET_TYPES.region){ this._data.ex.maxParticles = this.paramWithRate(value,emitter.maxParticles,rate); this.updateForRegion(true); }else{ emitter.setMaxParticlesToApplyCapacity(Math.round(this.paramWithRate(value,emitter.maxParticles,rate))); } break; case 'colorMode': emitter.colorDistribution = value!==0; break; default: console.log('no param with key:',key,args); return; } }; /* loop ===================================*/ ParticleEmitter.prototype.loopParticles = function(loopX,loopY,emitter=this._emitter){ var p = emitter._activeParticlesFirst; var width = Graphics.width + 2*loopX; var height = Graphics.height + 2*loopY; while(p){ var x = p.x; var node = p.parent; while (node) { x += node.x; node = node.parent; } var pw_half = p.width/2; while(x+pw_half < -loopX){ x += width+pw_half; p.x += width+pw_half; } while(x-pw_half > Graphics.width+loopX){ x -= width+pw_half; p.x -= width+pw_half; } var y = p.y; node = p.parent; while (node) { y += node.y; node = node.parent; } var ph_half = p.height/2; while(y+ph_half < -loopY){ y += height+pw_half; p.y += height+pw_half } while(y-ph_half > Graphics.height+loopY){ y -= height+pw_half; p.y -= height+pw_half } p = p.next; } }; /* each targets ===================================*/ ParticleEmitter.prototype.updateCharacterOutsideFreeze = function(x,y){ if(this._data.stop){ this._freezed = false; return; } var margin = this._characterTargetMargin; if(margin<0)return; if(x<-margin || x>Graphics.width+margin || y<-margin || y>Graphics.height+margin) { this._freezed = true; }else{ this._freezed = false; } this._container.visible = !this._freezed; }; ParticleEmitter.prototype.updateForStartDash = function(){ var target = this._target; if(!target)return false; var dashing = target.isDashing()&&target.isMoving(); var emit = dashing &&((!this._data.ex.dashing&&!this._data.ex.lastDashing)||(this._data.ex.dir!==target._direction)); this._data.ex.lastDashing = this._data.ex.dashing; this._data.ex.dashing = dashing; this._data.ex.dir = target._direction; if(emit !== this._emitter.emit){ this._emitter.resetPositionTracking(); this._emitter.emit = emit return true; }else{ return false; } }; ParticleEmitter.prototype.updateForWalk = function(){ var target = this._target; if(!target)return false; var emit; if(target.isMoving()){ emit = true; this._data.ex.lastMoving = true; }else{ emit = (this._data.ex.lastMoving||false); this._data.ex.lastMoving = false; } if(emit){ if(this._data.ex && this._data.ex.regions){ var regionId = $gameMap.regionId(Math.round(target._realX), Math.round(target._realY)); if(!this._data.ex.regions.contains(regionId)){ emit = false; } } } if(emit){ var dashing = target.isDashing()&&target.isMoving(); if(dashing !== this._data.ex.dashing){ var freq = this._data.ex.frequency * (dashing ? 1 : 2); this._emitter.setFrequencyToApplyCapacity(freq); this._data.ex.dashing = dashing; } } if(emit !== this._emitter.emit){ this._emitter.resetPositionTracking(); this._emitter.emit = emit; return true; }else{ return false; } }; ParticleEmitter.prototype.updateForRegion = function(force){ var ex = this._data.ex; var sx = Math.round($gameMap._displayX); var sy = Math.round($gameMap._displayY); if(!force && ex.lastX===sx && ex.lastY===sy)return false; ex.lastX = sx; ex.lastY = sy; var x0 = sx - regionMargin; var y0 = sy - regionMargin; var x1 = sx + Graphics.width/48 + regionMargin; var y1 = sy + Graphics.height/48 + regionMargin; var target = this._target; target.length = 0; var allPos = ex.allPos; var length = allPos.length; for(var i = 0; ix1){ if(this._loopXThreshold>0){ x += $dataMap.width; if(xx1)continue; }else{ continue; } } var y = allPos[i+1]; if(yy1){ if(this._loopYThreshold>0){ y += $dataMap.height; if(yy1)continue; }else{ continue; } } target.push(x); target.push(y); } length = target.length/2; var emit = length>0; if(this._emitter.emit !== emit){ this._emitter.emit = emit; } if(emit){ this._emitter.setFrequencyToApplyCapacity(ex.frequency/length); this._emitter.setMaxParticlesToApplyCapacity(ex.maxParticles*length); this._emitter.setParticlesPerWaveToApplyCapacity(ex.particlesPerWave); } return true; }; /* accessor ===================================*/ ParticleEmitter.prototype.container = function(){ return this._container; }; /* helper ===================================*/ ParticleEmitter.TRIGGER_TYPE_TARGETS = [ TARGET_TYPES.walk,TARGET_TYPES.startdash,TARGET_TYPES.click,TARGET_TYPES.drag,TARGET_TYPES.region ]; ParticleEmitter.prototype.isEmitByOriginalTrigger = function(){ return ParticleEmitter.TRIGGER_TYPE_TARGETS.contains(this._targetType); }; ParticleEmitter.prototype.imageName = function(image){ return image||this._config.image||defaultImage; }; /* filters ===================================*/ if(PIXI.filters){ var FILTER = { classWithType:{ blur:PIXI.filters.BlurFilter, glow:PIXI.filters.GlowFilter, rgbsplit:PIXI.filters.RGBSplitFilter, pixelate:PIXI.filters.PixelateFilter, displacement:PIXI.filters.DisplacementFilter, }, applyArgs:{ blur:function(filter,args){ filter.blur = supplementDefNum(filter.blur,args[0]); filter.quality = supplementDefNum(filter.blur,args[1]); }, glow:function(filter,args){ filter.innerStrength = supplementDefNum(filter.innerStrength,args[0]); filter.outerStrength = supplementDefNum(filter.outerStrength,args[1]); if(filter.distance!==undefined){ filter.distance = supplementDefNum(filter.distance,args[2]); } if(args[5]!==undefined){ var r = Number(args[3]).toString(16); var g = Number(args[4]).toString(16); var b = Number(args[5]).toString(16); if(r.length===1)r='0'+r; if(g.length===1)g='0'+g; if(b.length===1)b='0'+b; var color = '0x'+r+g+b; filter.color = Number(color) } }, rgbsplit:function(filter,args){ filter.red = [supplementDefNum(filter.red[0],args[0]),supplementDefNum(filter.red[1],args[1])]; filter.green = [supplementDefNum(filter.green[0],args[2]),supplementDefNum(filter.green[1],args[3])]; filter.blue = [supplementDefNum(filter.blue[0],args[4]),supplementDefNum(filter.blue[1],args[5])]; }, pixelate:function(filter,args){ filter.size.x = supplementDefNum(filter.size.x,args[0]); filter.size.y = supplementDefNum(filter.size.y,args[1]); }, displacement:function(filter,args){ filter.scale.x = supplementDefNum(filter.scale.x,args[0]); filter.scale.y = supplementDefNum(filter.scale.y,args[1]); filter.maskSprite.texture.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; } }, }; ParticleEmitter.prototype.updateFilters = function(data){ this._fid = data.fid; var filterData = data.filters; var keys = Object.keys(filterData); var container = this._container; //remove erased filter var filter; var filters = container.filters||[]; var currentKeys = this._filterKeys; var filterArgs = this._filterArgs; var length = currentKeys.length; for(var i = length-1; i>=0; i=(i-1)|0){ var key = currentKeys[i]; if(!keys.contains(key)){ currentKeys.splice(i,1); delete this._filterArgs[key]; filter = this.filterWithTypeInFilters(filters,key); if(filter){ filters.splice(filters.indexOf(filter)); } } } //create & update filter var length = keys.length; for(var i = 0; i=1){ this._capacityRate = value; this.didResetCapacityLimit(); }else{ this._capacityTarget = this.particleCapacity() * value; this._capacityRate = value; this.applyCapacityLimit(); } }, configurable: true }); TRP_Emitter.prototype.didResetCapacityLimit = function(){ this.frequency = this._originalFrequency; this.maxParticles = this._originalMaxParticles; this.particlesPerWave = this._originalParticlesPerWave||1; }; TRP_Emitter.prototype.setFrequencyToApplyCapacity = function(value){ this._originalFrequency = value; if(this._capacityRate<1){ this.applyCapacityLimit(); }else{ this.frequency = value; } }; TRP_Emitter.prototype.setMaxParticlesToApplyCapacity = function(value){ this._originalMaxParticles = value; if(this._capacityRate<1){ this.applyCapacityLimit(); }else{ this.maxParticles = value; } }; TRP_Emitter.prototype.setParticlesPerWaveToApplyCapacity = function(value){ this._originalParticlesPerWave = value||1; if(this._capacityRate<1){ this.applyCapacityLimit(); }else{ this.particlesPerWave = value||1; } }; TRP_Emitter.prototype.applyCapacityLimit = function(){ var target = this._capacityTarget; var naturalCapacity = this.naturalCapacity(this._originalFrequency,this._originalParticlesPerWave); this.maxParticles = target; if(this.particlesPerWave>1){ this.particlesPerWave = Math.ceil(Math.min(this._originalParticlesPerWave,this._originalParticlesPerWave*(target/naturalCapacity)))||1; naturalCapacity = this.naturalCapacity(this._originalFrequency,this.particlesPerWave); } this.frequency = Math.max(this._originalFrequency,this._originalFrequency / (target/naturalCapacity)); }; TRP_Emitter.prototype.particleCapacity = function(){ return Math.min(this._originalMaxParticles,this.naturalCapacity(this._originalFrequency,this._originalParticlesPerWave)); }; TRP_Emitter.prototype.realParticleCapacity = function(){ return Math.min(this.maxParticles,this.naturalCapacity(this._frequency,this.particlesPerWave||1)); }; TRP_Emitter.prototype.naturalCapacity = function(frequency,particlesPerWave){ var emitterLife = this._emitterLife<0 ? this.emitterLifetime : this._emitterLife; if(emitterLife<0){ return (this.minLifetime+this.maxLifetime)/2 *this.spawnChance*particlesPerWave/frequency; }else{ return Math.min(emitterLife,(this.minLifetime+this.maxLifetime)/2) *this.spawnChance*particlesPerWave/frequency; } }; TRP_Emitter.prototype.applyAdditionalProperties = function (p) { _super.prototype.applyAdditionalProperties.call(this,p); if(this.minimumSpeedMultiplier===1){ p.speedMultiplier = 1; } if(this.minimumScaleMultiplier===1){ p.scaleMultiplier = 1; } p.fluc = this.fluc; p.flucSense = this.flucSense; p.colorDistribution = this.colorDistribution; p.wait = 0; p.mirror = this.mirrorType===0 ? false : (this.mirrorType===1 ? true : (Math.random()<=0.5)); p._angle = this.angle; }; var helperPoint = new PIXI.Point(); TRP_Emitter.prototype._spawnRegion = function(validPositions,p,emitPosX,emitPosY){ if(validPositions.length === 0){ return; } var rand = Math.randomInt(validPositions.length/2)*2; if (this.minStartRotation == this.maxStartRotation){ p.rotation = this.minStartRotation + this.rotation; }else{ p.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation; } //place the particle at a random point in the rectangle helperPoint.x = validPositions[rand]*48 + Math.random() * 48; helperPoint.y = validPositions[rand+1]*48 + Math.random() * 48; if (this.rotation !== 0){ utils.rotatePoint(this.rotation, helperPoint); } p.position.x = emitPosX + helperPoint.x; p.position.y = emitPosY + helperPoint.y; }; TRP_Emitter.prototype.shiftParticlePosX = function(value){ var particle = this._activeParticlesFirst; while(!!particle){ particle.x += value; particle = particle.next; } }; TRP_Emitter.prototype.shiftParticlePosY = function(value){ var particle = this._activeParticlesFirst; while(!!particle){ particle.y += value; particle = particle.next; } }; TRP_Emitter.prototype._spawnCircle = function (p, emitPosX, emitPosY) { //set the initial rotation/direction of the particle based on starting //particle angle and rotation of emitter if (this.minStartRotation == this.maxStartRotation) p.rotation = this.minStartRotation + this.rotation; else p.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation; //place the particle at a random radius in the circle helperPoint.x = (1-Math.random()*Math.random()) * this.spawnCircle.radius; helperPoint.y = 0; //rotate the point to a random angle in the circle utils.rotatePoint(Math.random() * 360, helperPoint); //offset by the circle's center helperPoint.x += this.spawnCircle.x; helperPoint.y += this.spawnCircle.y; //rotate the point by the emitter's rotation if (this.rotation !== 0) utils.rotatePoint(this.rotation, helperPoint); //set the position, offset by the emitter's position p.position.x = emitPosX + helperPoint.x; p.position.y = emitPosY + helperPoint.y; }; TRP_Emitter.prototype._spawnBurst = function (p, emitPosX, emitPosY, i) { //set the initial rotation/direction of the particle based on spawn //angle and rotation of emitter var angle,r; if (this.particleSpacing === 0){ p.rotation = Math.random() * 360; r = this.br + this.bdr*i; }else{ if(this.bdr<0){ p.rotation = (this.particleSpacing*i); r = this.br + -1*Math.floor(p.rotation/360)*this.bdr; p.rotation += this.angleStart + this.rotation; }else{ p.rotation = this.angleStart + (this.particleSpacing*i) + this.rotation; r = this.br + this.bdr*i; } } //drop the particle at the emitter's position p.position.x = emitPosX; p.position.y = emitPosY; p.x += r*Math.cos(p.rotation*Math.PI/180)+this.bdx*i; p.y += r*Math.sin(p.rotation*Math.PI/180)+this.bdy*i; if(this.brt===1){ if (this.minStartRotation == this.maxStartRotation) p.rotation = this.minStartRotation + this.rotation; else p.rotation = Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation; }else if(this.brt===2){ if(this.minStartRotation == this.maxStartRotation) p.rotation += this.minStartRotation + this.rotation; else p.rotation += Math.random() * (this.maxStartRotation - this.minStartRotation) + this.minStartRotation + this.rotation; } if(this.bdt && i>0){ p.wait = this.bdt*i; } }; return TRP_Emitter; }(PIXI.particles.Emitter)); ParticleEmitter.TRP_Emitter = TRP_Emitter; var TRP_Particle = /** @class */(function(_super){ __extends(TRP_Particle,_super); var utils = PIXI.particles.ParticleUtils; function TRP_Particle(emitter){ var _this = _super.call(this,emitter) || this; _this.colorDistribution = false; _this.aVelocity = new PIXI.Point(0,0); //inertiaVelocity _this.iVelocity = new PIXI.Point(0,0); _this._doInertia = false; _this.fluc = 0; _this.flucSense = 0; _this._doFluctuation = false; _this._flucSpeed = 0; _this.rotatePoint = utils.rotatePoint; _this.mirror = false; _this._angle = 0; _this._doWait = false; _this.wait = 0; return _this; }; if(noRewriteFunctions){ TRP_Particle.prototype.init = function(){ _super.prototype.init.call(this); this.aVelocity.x = 0; this.aVelocity.y = 0; this.iVelocity.x = 0; this.iVelocity.y = 0; this._doWait = this.wait>0; if(this._doWait){ this.alpha = 0; } this._doFluctuation = this.fluc>0; this._flucSpeed = 0; if(this.colorDistribution){ this._doColor = false; if(this.colorList.next){ this.tint = this.colorList.interpolate(Math.random()); } } if(this._angle<0){ this.rotation = Math.random()*(Math.PI*2); }else if(this._angle>0){ this.rotation += this._angle*utils.DEG_TO_RADS; } this._doInertia = this.iVelocity.x!==0 || this.iVelocity.y!==0; }; TRP_Particle.prototype.update = function (delta) { if(this._doWait){ this.wait -= delta; if(this.wait>0){ return -1; } this._doWait = false; this.wait = 0; } var lerp = _super.prototype.update.call(this,delta); if(this._doFluctuation){ this._flucSpeed = this.flucSense*(-1+2*Math.random())*this.fluc + (1-this.flucSense)*(this._flucSpeed||0); this.rotatePoint(this._flucSpeed,this.velocity); } if(this._doInertia){ this.position.x += delta*this.iVelocity.x; this.position.y += delta*this.iVelocity.y; } return lerp; }; }else{ TRP_Particle.prototype.init = function () { //reset the age this.age = 0; //set up the velocity based on the start speed and rotation this.velocity.x = this.speedList.current.value * this.speedMultiplier; this.velocity.y = 0; this.aVelocity.x = 0; this.aVelocity.y = 0; this.iVelocity.x = 0; this.iVelocity.y = 0; utils.rotatePoint(this.rotation, this.velocity); if(this._angle < 0){ this.rotation = Math.random()*(Math.PI*2); }else if(this.noRotation) { this.rotation = 0; }else{ if(this._angle > 0){ this.rotation += this._angle; } //convert rotation to Radians from Degrees this.rotation *= utils.DEG_TO_RADS; } //convert rotation speed to Radians from Degrees this.rotationSpeed *= utils.DEG_TO_RADS; this.rotationAcceleration *= utils.DEG_TO_RADS; //set alpha to inital alpha this.alpha = this.alphaList.current.value; //set scale to initial scale this.scale.x = this.scale.y = this.scaleList.current.value*this.scaleMultiplier; if(this.mirror)this.scale.x*=-1; //figure out what we need to interpolate this._doAlpha = !!this.alphaList.current.next; this._doSpeed = !!this.speedList.current.next; this._doScale = !!this.scaleList.current.next; this._doColor = !this.colorDistribution && !!this.colorList.current.next; this._doAcceleration = this.acceleration.x !== 0 || this.acceleration.y !== 0; //_doNormalMovement can be cancelled by subclasses this._doNormalMovement = this._doSpeed || this.speedList.current.value !== 0 || this._doAcceleration; //save our lerp helper this._oneOverLife = 1 / this.maxLife; //set the inital color if(this.colorDistribution&&this.colorList.next){ this.tint = this.colorList.interpolate(Math.random()); }else{ var color = this.colorList.current.value; this.tint = utils.combineRGBComponents(color.r, color.g, color.b); } this._doWait = this.wait>0; if(this._doWait){ this.alpha = 0; } this._doFluctuation = this.fluc>0; this._flucSpeed = 0; this._doInertia = this.iVelocity.x!==0 || this.iVelocity.y!==0; //ensure visibility this.visible = true; }; TRP_Particle.prototype.update = function (delta) { if(this._doWait){ this.wait -= delta; if(this.wait>0)return -1; this._doWait = false; } //increase age this.age += delta; //recycle particle if it is too old if (this.age >= this.maxLife || this.age < 0) { this.kill(); return -1; } //determine our interpolation value var lerp = this.age * this._oneOverLife; //lifetime / maxLife; if (this.ease) { if (this.ease.length == 4) { //the t, b, c, d parameters that some tween libraries use //(time, initial value, end value, duration) lerp = this.ease(lerp, 0, 1, 1); } else { //the simplified version that we like that takes //one parameter, time from 0-1. TweenJS eases provide this usage. lerp = this.ease(lerp); } } //interpolate alpha if (this._doAlpha){ this.alpha = this.alphaList.interpolate(lerp); } //interpolate scale if (this._doScale) { var scale = this.scaleList.interpolate(lerp) * this.scaleMultiplier; this.scale.x = this.scale.y = scale; if(this.mirror)this.scale.x*=-1; } //handle movement if (this._doNormalMovement) { //interpolate speed var oldVX = void 0; var oldVY = void 0; if(this._doAcceleration){ oldVX = this.velocity.x; oldVY = this.velocity.y; } if (this._doSpeed) { var speed = this.speedList.interpolate(lerp) * this.speedMultiplier; utils.normalize(this.velocity); utils.scaleBy(this.velocity, speed); } if (this._doAcceleration) { if(this._doSpeed){ this.aVelocity.x += this.acceleration.x * delta; this.aVelocity.y += this.acceleration.y * delta; this.velocity.x += this.aVelocity.x; this.velocity.y += this.aVelocity.y; }else{ this.velocity.x += this.acceleration.x * delta; this.velocity.y += this.acceleration.y * delta; } if(this._doFluctuation){ this._flucSpeed = this.flucSense*(-1+2*Math.random())*this.fluc + (1-this.flucSense)*(this._flucSpeed||0); this.rotatePoint(this._flucSpeed,this.velocity); } this.position.x += (oldVX + this.velocity.x) / 2 * delta; this.position.y += (oldVY + this.velocity.y) / 2 * delta; } else { if(this._doFluctuation){ this._flucSpeed = this.flucSense*(-1+2*Math.random())*this.fluc + (1-this.flucSense)*(this._flucSpeed||0); this.rotatePoint(this._flucSpeed,this.velocity); } this.position.x += this.velocity.x * delta; this.position.y += this.velocity.y * delta; } } //inertia movement if(this._doInertia){ this.position.x += delta*this.iVelocity.x; this.position.y += delta*this.iVelocity.y; } //interpolate color if (this._doColor) { this.tint = this.colorList.interpolate(lerp); } //update rotation if (this.rotationAcceleration !== 0) { var newRotationSpeed = this.rotationSpeed + this.rotationAcceleration * delta; this.rotation += (this.rotationSpeed + newRotationSpeed) / 2 * delta; this.rotationSpeed = newRotationSpeed; } else if (this.rotationSpeed !== 0) { this.rotation += this.rotationSpeed * delta; } else if (this._doAcceleration && !this.noRotation && !this._angle) { this.rotation = Math.atan2(this.velocity.y, this.velocity.x); // + Math.PI / 2; } return lerp; }; } return TRP_Particle; }(PIXI.particles.Particle)); ParticleEmitter.TRP_Particle = TRP_Particle; /* test command ===================================*/ //PRAGMA: testCommands Game_Interpreter.prototype.trpParticleTest = function(){ var eventId = this.isOnCurrentMap() ? this._eventId : 0; var list = [ {"code":101,"indent":0,"parameters":["",0,0,2]}, {"code":401,"indent":0,"parameters":[NLC("\\>パーティクルプラグインの基本動作のテストを行います。",15)]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]1.パーティクルの再生(寿命あり)\\C[0]",16)]},{"code":401,"indent":0,"parameters":[NLC("\\>└particle play ID this 設定名",17)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","play",NLC("play/1回だけ再生",18),{"id":"fuss_startdash","target":"this","name":"def","z":"def","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = fuss_startdash",19)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = this",20)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",21)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",22)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",23)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",24)]},{"code":230,"indent":0,"parameters":[45]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]2.パーティクルの表示(寿命なし)\\C[0]",25)]},{"code":401,"indent":0,"parameters":[NLC("\\>└particle set ID this 設定名",26)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","set",NLC("set/表示",27),{"id":"particle","target":"this","name":"def","z":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = particle",28)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = this",29)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",30)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",31)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",32)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",33)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",34)]},{"code":230,"indent":0,"parameters":[45]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]3.パーティクルの停止と再開\\C[0]",35)]},{"code":401,"indent":0,"parameters":["\\>└particle off ID"]},{"code":401,"indent":0,"parameters":["\\>└particle on ID"]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","off",NLC("off/一時停止",36),{"targetId":"particle","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",37)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",38)]},{"code":230,"indent":0,"parameters":[45]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","on",NLC("on/再生の再開",39),{"targetId":"particle","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",40)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",41)]},{"code":230,"indent":0,"parameters":[30]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]4.パラメータの変更\\C[0]",42)]},{"code":401,"indent":0,"parameters":[NLC("\\>└particle update ID パラメータ名 値...",43)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","update",NLC("update/パラメータ変更",44),{"targetId":"particle","key":"color","values":"#ffffff #ffff00@0.5 #ff0000","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",45)]},{"code":657,"indent":0,"parameters":[NLC("パラメータ名 = color",46)]},{"code":657,"indent":0,"parameters":[NLC("変更値(スペースつなぎ) = #ffffff #ffff00@0.5 #ff0000",47)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",48)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","update",NLC("update/パラメータ変更",49),{"targetId":"particle","key":"blendMode","values":"0","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",50)]},{"code":657,"indent":0,"parameters":[NLC("パラメータ名 = blendMode",51)]},{"code":657,"indent":0,"parameters":[NLC("変更値(スペースつなぎ) = 0",52)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",53)]},{"code":230,"indent":0,"parameters":[30]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]5.パラメータを徐々に変化\\C[0]",54)]},{"code":401,"indent":0,"parameters":[NLC("\\>└particle animate ID 時間 パラメータ名 値...",55)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","animate",NLC("animate/パラメータを徐々に変化",56),{"targetId":"particle","duration":"30","key":"pos","values":"-200 -200","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",57)]},{"code":657,"indent":0,"parameters":[NLC("所要時間 = 30",58)]},{"code":657,"indent":0,"parameters":[NLC("パラメータ名 = pos",59)]},{"code":657,"indent":0,"parameters":[NLC("変更値(スペースつなぎ) = -200 -200",60)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",61)]},{"code":230,"indent":0,"parameters":[60]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","animate",NLC("animate/パラメータを徐々に変化",62),{"targetId":"particle","duration":"30","key":"speed","values":"100 0","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",63)]},{"code":657,"indent":0,"parameters":[NLC("所要時間 = 30",64)]},{"code":657,"indent":0,"parameters":[NLC("パラメータ名 = speed",65)]},{"code":657,"indent":0,"parameters":[NLC("変更値(スペースつなぎ) = 100 0",66)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",67)]},{"code":230,"indent":0,"parameters":[30]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","animate",NLC("animate/パラメータを徐々に変化",68),{"targetId":"particle","duration":"30","key":"pos","values":"0 0","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",69)]},{"code":657,"indent":0,"parameters":[NLC("所要時間 = 30",70)]},{"code":657,"indent":0,"parameters":[NLC("パラメータ名 = pos",71)]},{"code":657,"indent":0,"parameters":[NLC("変更値(スペースつなぎ) = 0 0",72)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",73)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","animate",NLC("animate/パラメータを徐々に変化",74),{"targetId":"particle","duration":"30","key":"speed","values":"400 0","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",75)]},{"code":657,"indent":0,"parameters":[NLC("所要時間 = 30",76)]},{"code":657,"indent":0,"parameters":[NLC("パラメータ名 = speed",77)]},{"code":657,"indent":0,"parameters":[NLC("変更値(スペースつなぎ) = 400 0",78)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",79)]},{"code":230,"indent":0,"parameters":[30]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","off",NLC("off/一時停止",80),{"targetId":"particle","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",81)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",82)]},{"code":230,"indent":0,"parameters":[30]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]6.強制的に時間を進める\\C[0]",83)]},{"code":401,"indent":0,"parameters":[NLC("\\>└particle exceed ID フレーム数",84)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","on",NLC("on/再生の再開",85),{"targetId":"particle","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",86)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",87)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","exceed",NLC("exceed/時間を進める",88),{"targetId":"particle","time":"10","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",89)]},{"code":657,"indent":0,"parameters":[NLC("スキップ時間(秒数) = 10",90)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",91)]},{"code":230,"indent":0,"parameters":[30]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]7.停止してクリア\\C[0]",92)]},{"code":401,"indent":0,"parameters":["\\>└particle clear ID"]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",93),{"targetId":"particle","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = particle",94)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",95)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",96)]},{"code":230,"indent":0,"parameters":[30]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]8.対象:screen\\C[0]",97)]},{"code":401,"indent":0,"parameters":[NLC("\\>└画面上で固定表示",98)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","set",NLC("set/表示",99),{"id":"thunder_w","target":"screen","name":"def","z":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = thunder_w",100)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = screen",101)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",102)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",103)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",104)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",105)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",106)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","set",NLC("set/表示",107),{"id":"thunder_w2","target":"screen","name":"def","z":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = thunder_w2",108)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = screen",109)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",110)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",111)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",112)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",113)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",114)]},{"code":230,"indent":0,"parameters":[60]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",115),{"targetId":"thunder_w","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = thunder_w",116)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",117)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",118)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",119),{"targetId":"thunder_w2","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = thunder_w2",120)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",121)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",122)]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]9.対象:weather\\C[0]",123)]},{"code":401,"indent":0,"parameters":[NLC("\\>└画面上で固定表示&スクロールに連動",124)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","set",NLC("set/表示",125),{"id":"rain_w3","target":"weather","name":"def","z":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = rain_w3",126)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = weather",127)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",128)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",129)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",130)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",131)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",132)]},{"code":204,"indent":0,"parameters":[6,8,5]},{"code":204,"indent":0,"parameters":[4,8,5]},{"code":230,"indent":0,"parameters":[60]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",133),{"targetId":"rain_w3","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = rain_w3",134)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",135)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",136)]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]10.対象:リージョン\\C[0]",137)]},{"code":401,"indent":0,"parameters":[NLC("\\>└指定したリージョンのタイルから発生",138)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","set",NLC("set/表示",139),{"id":"light_r","target":"region:1","name":"def","z":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = light_r",140)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = region:1",141)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",142)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",143)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",144)]},{"code":657,"indent":0,"parameters":[NLC("_Editモード = false",145)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",146)]},{"code":230,"indent":0,"parameters":[90]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",147),{"targetId":"light_r","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = light_r",148)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",149)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",150)]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]11.対象:歩き\\C[0]",151)]},{"code":401,"indent":0,"parameters":[NLC("\\>└対象キャラが歩いてるときに表示",152)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","set",NLC("set/表示",153),{"id":"fuss_walk","target":"walk:player","name":"def","z":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = fuss_walk",154)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = walk:player",155)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",156)]},{"code":657,"indent":0,"parameters":[NLC("Z値 = def",157)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",158)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",159)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",160)]},{"code":205,"indent":0,"parameters":[-1,{"list":[{"code":29,"parameters":[5],"indent":null},{"code":37,"indent":0},{"code":3,"indent":null},{"code":3,"indent":null},{"code":3,"indent":0},{"code":3,"indent":0},{"code":3,"indent":null},{"code":3,"indent":null},{"code":2,"indent":0},{"code":2,"indent":0},{"code":2,"indent":null},{"code":2,"indent":null},{"code":2,"indent":null},{"code":2,"indent":null},{"code":29,"parameters":[4],"indent":null},{"code":38,"indent":null},{"code":0}],"repeat":false,"skippable":false,"wait":true}]},{"code":505,"indent":0,"parameters":[{"code":29,"parameters":[5],"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":37,"indent":0}]},{"code":505,"indent":0,"parameters":[{"code":3,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":3,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":3,"indent":0}]},{"code":505,"indent":0,"parameters":[{"code":3,"indent":0}]},{"code":505,"indent":0,"parameters":[{"code":3,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":3,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":2,"indent":0}]},{"code":505,"indent":0,"parameters":[{"code":2,"indent":0}]},{"code":505,"indent":0,"parameters":[{"code":2,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":2,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":2,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":2,"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":29,"parameters":[4],"indent":null}]},{"code":505,"indent":0,"parameters":[{"code":38,"indent":null}]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",161),{"targetId":"fuss_walk","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = fuss_walk",162)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",163)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",164)]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]12.グループ機能&サブエミッター\\C[0]",165)]},{"code":401,"indent":0,"parameters":[NLC("\\>└グループ機能:まとめてコマンドを実行",166)]},{"code":401,"indent":0,"parameters":[NLC("\\>└サブエミッター:パーティクルから子パーティクル発生",167)]},{"code":401,"indent":0,"parameters":[NLC("\\>└\\C[2]※上部に遠景が見える場所で実行してください。",168)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ_Group","set",NLC("set/表示",169),{"id":"fireworks","target":"this","name":"def","tag":"","edit":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("管理ID = fireworks",170)]},{"code":657,"indent":0,"parameters":[NLC("ターゲット = this",171)]},{"code":657,"indent":0,"parameters":[NLC("データ名 = def",172)]},{"code":657,"indent":0,"parameters":[NLC("管理タグ = ",173)]},{"code":657,"indent":0,"parameters":[NLC("Editモード = false",174)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",175)]},{"code":230,"indent":0,"parameters":[90]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":[NLC("\\>\\C[14]13.グループ停止",176)]},{"code":357,"indent":0,"parameters":["TRP_ParticleMZ","clear",NLC("clear/クリア",177),{"targetId":"tag:group:fireworks","quitFlag":"false","delay":"0"}]},{"code":657,"indent":0,"parameters":[NLC("対象の管理ID = tag:group:fireworks",178)]},{"code":657,"indent":0,"parameters":[NLC("即座に消去 = false",179)]},{"code":657,"indent":0,"parameters":[NLC("_ディレイ = 0",180)]},{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>以上で基本動作テストを終わります。",181)]},{"code":0,"indent":0,"parameters":[]}]; this.setupChild(list,eventId); }; //PRAGMA_END: testCommands Game_Interpreter.prototype.trpParticleTest2 = function(){ var eventId = this.isOnCurrentMap() ? this._eventId : 0; var list = [{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":[NLC("\\>パーティクルエディタの動作テストを行います。",182)]},{"code":230,"indent":0,"parameters":[10]},{"code":356,"indent":0,"parameters":["particle edit test this"]},{"code":0,"indent":0,"parameters":[]}]; this.setupChild(list,eventId); }; /* instant bug fix ===================================*/ (()=>{ if(parameters.windowBugFix==='false'||parameters.windowBugFix===false){ return; } var Window_drawShape = Window.prototype.drawShape; Window.prototype.drawShape = function(graphics){ if(this.opacity===0)return; Window_drawShape.call(this,graphics); } })(); /* cache config ===================================*/ (function(){ 'use strict'; if(!parameters.useCache||parameters.useCache==='false')return; //============================================================================= // TRP_Emitter //============================================================================= var Emitter = PIXI.particles.Emitter; var TRP_Emitter = ParticleEmitter.TRP_Emitter; TRP_Emitter._particleCache = {}; var _TRP_Emitter_destroy = TRP_Emitter.prototype.destroy; TRP_Emitter.prototype.destroy = function(){ this.cleanup(); var constructorName = this._particleConstructor.name;; if(!TRP_Emitter._particleCache[constructorName]){ TRP_Emitter._particleCache[constructorName] = []; } var next; for (var particle = this._poolFirst; particle; particle = next) { //store next value so we don't lose it in our destroy call next = particle.next; particle.emitter = null; particle.next = null; particle.prev = null; if(constructorName==='TRP_ParticleEx'){ particle.subEmitters = null; particle.subEmitterData.length = 0; } particle.applyArt(null); TRP_Emitter._particleCache[constructorName].push(particle); } this._poolFirst = null; Emitter.prototype.destroy.call(this); }; var _TRP_Emitter_init = TRP_Emitter.prototype.init; TRP_Emitter.prototype.init = function(art, config){ _TRP_Emitter_init.call(this,art,config); this.preparePoolFromCache(); }; TRP_Emitter.prototype.preparePoolFromCache = function(rate=1){ var capacity = rate * this.naturalCapacity(this._originalFrequency,this._originalParticlesPerWave); var constructorName = this._particleConstructor.name;; var cache = TRP_Emitter._particleCache[constructorName]; if(!cache)return; var particle = cache.pop(); if(!particle)return; if(!this._poolFirst){ this._poolFirst = particle; } var prev = null; particle.emitter = this; for(var i=0; i',2),LC('左端が開始時(時間0)、右端が終了時(時間1)の値',3),LC('@時間(0~1) + Enterで中間値を設定可能',4),LC('delete(Macはfn+delete)で中間値の削除',5),LC('中間値編集中にshift+@時間(0~1)+Enterで時間変更',6),LC('例)@0.5 + Enterで中間地点での値を設定開始',7)], scale:[LC('【スケール/拡大率】',8),LC('1で等倍',9),null,LC('<中間値設定可能>',10),LC('左端が開始時(時間0)、右端が終了時(時間1)の値',11),LC('@時間(0~1) + Enterで中間値を設定可能',12),LC('delete(Macはfn+delete)で中間値の削除',13),LC('中間値編集中にshift+@時間(0~1)+Enterで時間変更',14),LC('例)@0.5 + Enterで中間地点での値を設定開始',15)], minimumScaleMultiplier:[LC('【最小スケール倍率】',16),LC('パーティクル生成時の最小スケール倍率',17),LC('例)0.1として開始時のスケールが0.5の場合は',18),LC('  0.5*0.1=0.05から0.5の間の',19),LC('  ランダムなスケールのパーティクルが発生。',20)], speed:[LC('【スピード/速度】',21),LC('パーティクルの速度。開始値は0にしないこと。',22),null,LC('<中間値設定可能>',23),LC('左端が開始時(時間0)、右端が終了時(時間1)の値',24),LC('@時間(0~1) + Enterで中間値を設定可能',25),LC('delete(Macはfn+delete)で中間値の削除',26),LC('中間値編集中にshift+@時間(0~1)+Enterで時間変更',27),LC('例)@0.5 + Enterで中間地点での値を設定開始',28)], minimumSpeedMultiplier:[LC('【最小スピード倍率】',29),LC('パーティクル生成時の最小スピード倍率',30),LC('例)0.1として開始時のスピードが0.5の場合は',31),LC('  0.5*0.1=0.05から0.5の間の',32),LC('  ランダムなスピードのパーティクルが発生。',33)], color:[LC('【カラー/色】',34),LC('左上のカラーピッカーで設定可能',35),LC('バックスペース(Macはdelete)で白にリセット',36),null,LC('<中間値設定可能>',37),LC('左端が開始時(時間0)、右端が終了時(時間1)の値',38),LC('@時間(0~1) + Enterで中間値を設定可能',39),LC('delete(Macはfn+delete)で中間値の削除',40),LC('中間値編集中にshift+@時間(0~1)+Enterで時間変更',41),LC('例)@0.5 + Enterで中間地点での値を設定開始',42)], colorMode:[LC('【カラーモード】',43),LC('0で時間によって色が変化。',44),LC('0以外で発生時の色の分布を変化(時間変化無し)',45)], acceleration:[LC('【加速度】',46),LC('加速度が有効な場合は画像の向きは移動方向で固定',47)], startRotation:[LC('【発生時の射出角度】',48),LC('パーティクルの飛び出す方向。(画像の向きも連動)',49),LC('0で右,90で下,180で左,270(-90)で上方向。',50)], rotationSpeed:[LC('【画像回転速度】',51),LC('画像の回転速度の最小値と最大値。',52),LC('動きには影響なし。',53)], imageOption:[LC('【画像表示設定】',54),LC('画像の向き/反転の設定。動きには影響なし。',55),LC('angle:0~360で画像のみ回転、-1でランダムな角度。',56),LC('mirror:0で調整なし,1で反転,2でランダム。',57)], lifetime:[LC('【パーティクル寿命】',58),LC('個々のパーティクルの消えるまでの秒数',59)], blendMode:[], frequency:[LC('【フリクエンシー/発生間隔】',60),LC('パーティクルが発生する間隔',61),LC('0.01とすると0.01秒に1回発生し、1秒間に100回',62)], spawnChance:[LC('【発生確率】',63),LC('各発生タイミングに、パーティクルが発生する確率。',64)], particlesPerWave:[LC('【1回での発生個数】',65),LC('各発生タイミングに同時に発生する個数。',66),LC('同時に発生するパーティクルのlifetimeは固定',67)], emitterLifetime:[LC('【エミッター寿命】',68),LC('-1で無限。0より大きくすると、指定時間で発生終了',69)], maxParticles:[LC('【最大表示数の制限】',70),LC('このエミッターから発生する最大数の制限値',71)], fluctuation:[LC('【フラクチュエーション/ゆらぎ】',72),LC('角度のゆらぎ設定。',73),LC('max:各フレームで角度の変化幅の最大値',74),LC('sensitivity:0~1で指定。小さいほどゆるやかに、大きいほど激しくゆらぐ。',75)], pos:[LC('【ポイント(発生方法)】',76),LC('指定の点から発生。',77),LC('<※発生方法はいずれか1つのみ指定が有効>',78)], rect:[LC('【レクト/四角(発生方法)】',79),LC('四角形の中からランダムに発生。',80),LC('左上の点をx,y、幅/高さをwidth,heightで指定',81),LC('<※発生方法はいずれか1つのみ指定が有効>',82)], circle:[LC('【サークル/円(発生方法)】',83),LC('円の中からからランダムに発生',84),LC('中心点をx,y、半径をradiusで指定。',85),LC('<※発生方法はいずれか1つのみ指定が有効>',86)], ring:[LC('【リング(発生方法)】',87),LC('ドーナツ状のリングからランダムに発生。',88),LC('中心点をx,y、外側の半径をradius',89),LC('内側の半径をminRで指定。',90),LC('<※発生方法はいずれか1つのみ指定が有効>',91)], burst:[LC('【バースト(発生方法)】',92),LC('particlesPerWaveで規則的に発生させる',93),LC('ps:射出角度の差(particleSpacing)',94),LC('sa:開始角度。ps*sa=360とすると放射状に射出(startAngle)',95),LC('dt:射出時間の差(deltaTime)',96),LC('rt:0=開始角度(startRotation)無視',97),LC('└1=開始角度優先,2=開始角度を加算(rotationType)',98),LC('r:半径(radius)',99),LC('dr:半径の差。マイナスで1周ごとの差(deltaRadius)',100),LC('dx:xの差(deltaX)',101),LC('dy:yの差(deltaY)',102),LC('<※発生方法はいずれか1つのみ指定が有効>',103)], sub:[LC('【サブエミッター設定】',104),LC('st:射出開始タイミング(0~1)',105),LC('et:射出終了タイミング(0~1。-1で無効)',106),LC('spd:慣性の影響度合い。0=影響なし、1=100%影響。',107),LC('iAngle:1=開始角度は慣性方向基準',108),LC('iScale:1=親パーティクルの拡大率乗数を継承',109)] }; //blend mode guide text var texts = ParticleEditor.GUIDE_TEXTS.blendMode; ParticleEditor.BLEND_MODE_NAMES = Game_Particle.BLEND_MODE_NAMES; texts.push(LC('【ブレンドモード/画像合成方法】',110)); var length = ParticleEditor.BLEND_MODE_NAMES.length; var text = ''; for(var i = 0; i0){ texts.push(text); } text = ''; }else{ text += ','; } text += i + ':' + ParticleEditor.BLEND_MODE_NAMES[i]; if(i===length-1){ texts.push(text); } } })(); function supplement(defaultValue,optionArg){ if(optionArg === undefined){ return defaultValue; } return optionArg; }; function supplementNum(defaultValue,optionArg){ return Number(supplement(defaultValue,optionArg)); }; var _supplementDefWords = ['default','def','d']; function supplementDef(defaultValue, optionArg, otherWords) { var value = supplement(defaultValue,optionArg); var defTargetWords = otherWords || []; if(defTargetWords){ defTargetWords = defTargetWords.concat(_supplementDefWords); }else{ defTargetWords = _supplementDefWords; } var length = defTargetWords.length; for(var i=0; i=0){ this._data.clear = true; } } if(this._subData){ delete this._subData.editing; } this._countHandler = null; this._particle = null; this._data = null; this._subData = null; this._config = null; this.removeEventListeners(); emitter = null; } ParticleEditor.prototype.isTerminated = function(){ return this._terminated; }; ParticleEditor.prototype.trySearchImageNames = function(){ if(parameters.imageNames)return; var fs = require('fs'); var path = require('path'); var base = path.dirname(process.mainModule.filename); var dirPath = path.join(base,ParticleEditor.IMAGE_PATH); var imageNames = []; var files = fs.readdirSync(dirPath) var length = files.length; for(var i = 0; i0){ this.processPickImage(); } }else if(event.keyCode===KEY_CODE.p){ this.processPickPreset(); }else if(event.keyCode===KEY_CODE.a){ if(parameters.animationNames&¶meters.animationNames.length>0){ this.processPickAnimation(); } }else if(event.keyCode===KEY_CODE.w){ this.processQuit(); }else if(event.keyCode===KEY_CODE.e){ this.processComplete(); }else if(event.keyCode===KEY_CODE.t){ this.processPickTile(); }else if(event.keyCode===KEY_CODE.l){ this.processPickLoad(); } } ParticleEditor.prototype._onKeyUp = function(event){ // this._keyCode = 0; }; /* word inputting ===================================*/ ParticleEditor.prototype.resetInputingWords = function(){ if(this._inputtingWords==='')return; this._inputtingWords = ''; this.prepareInputtingCandidates(); }; ParticleEditor.prototype.prepareInputtingCandidates = function(){ this._inputtingCandidates = this._commands.concat(); this._inputtingCandidates.push('SCREEN'); }; ParticleEditor.prototype.pushInputtingCharacter = function(chara){ this._inputtingWords += chara; var words = this._inputtingWords; var candidates = this._inputtingCandidates; var length = candidates.length; var firstHit = null; for(var i = 0; i0 && !firstHit){ for(var i=0; i=0; i=(i-1)|0){ if(candidates[i].indexOf(words)!==0)continue; candidates.splice(i,1); } } this._inputtingWords = words; } if(firstHit){ this.tryInputtingFirstHit(firstHit) } }; ParticleEditor.prototype.tryInputtingFirstHit = function(firstHit){ var perfectHit = this._inputtingWords===firstHit; if(firstHit==='SCREEN'){ if(perfectHit){ var index = this._commands.indexOf('RECT'); this.targetData().params.rect = [-Graphics.width/2,-Graphics.height/2,Graphics.width,Graphics.height]; this._parts[index].refreshParts(); this.startEditing(index); } }else{ var index = this._commands.indexOf(firstHit); this.startEditing(index); } }; /* update ===================================*/ ParticleEditor.prototype.update = function(){ if(this._terminated)return; if(this.updateParticleCount){ this.updateParticleCount(); } if(this._activePicker){ this._activePicker.update(); this._keyCode = 0; this._key = ''; return; } var children = this.children; var length = children.length; var i=length-1; for(;i>=0;i-=1){ var child = children[i]; if (child && child.update){ child.update(); } } /* input & return ===================================*/ if(TouchInput.isTriggered()||TouchInput.isPressed()){ this.processTouch(); }else if(Input._latestButton || this._keyCode){ this.processInput(); } this._keyCode = 0; this._key = ''; }; ParticleEditor.prototype.processTouch = function(){ var allParts = this._parts; var length = allParts.length; var x = TouchInput.x; var y = TouchInput.y; var margin = ParticleEditor.SELECTOR_MARGIN; for(var i = 0; i=KEY_CODE.alphabet && this._keyCode<=KEY_CODE.alphabetEnd){ this.pushInputtingCharacter(String.fromCharCode(this._keyCode)); }else{ var editing = this._editingIndex>=0 ? this.editingParts() : null; if(editing){ if(!editing.processInput(this._keyCode,this._key)){ this.endEditing(); }else{ this.selectParts(this._editingIndex); if(editing.hasSaveData()){ this.saveEditingParams(); } } }else if(Input.isTriggered('cancel')&&this._keyCode!==96){ if(this._saveButton.opacity<255){ this.processQuit(); }else{ SoundManager.playBuzzer(); } } if(this._keyCode!==0){ this.resetInputingWords(); } } }; ParticleEditor.prototype.saveEditingParams = function(){ var editing = this.editingParts(); if(!editing)return; this.supplyEditingParams(editing); var saveData = editing.handOverSaveData(); if(!saveData)return; this.saveEditingData(saveData); editing.didSaveParams(); }; ParticleEditor.prototype.supplyEditingParams = function(editing){}; ParticleEditor.prototype.saveEditingData = function(saveData){ var editing = this.editingParts(); if(!editing)return; this._saveEditingData(editing._title,saveData); }; ParticleEditor.prototype._saveEditingData = function(title,saveData){ saveData.unshift(title); saveData.unshift(this._id); this._applySaveData(saveData); this._saveButton.opacity = 255; }; ParticleEditor.prototype._applySaveData = function(saveData){ if(this._subData){ var id = saveData.shift(); var key = saveData.shift(); var data = this._subData; this._particle.tryUpdateSpawnType(key,data); data.params[key] = saveData; data.pChanged = true; }else{ this._particle.particleUpdate(saveData); } }; var _ParticleEmitter__updateParam = ParticleEmitter.prototype._updateParam; ParticleEmitter.prototype._updateParam = function(key,args,rate,emitter=this._emitter){ if(key==='sub'){ emitter.timing = Number(args[0])||0; emitter.endTiming = supplementDefNum(-1,args[1]); emitter.speedRate = Number(args[2])||0; emitter.inheritAngle = Number(args[3])||0; emitter.inheritScale = Number(args[4])||0; if(Game_Particle.GROUP_EDITOR){ Game_Particle.GROUP_EDITOR.changeSubEmitterConfig(emitter.timing,emitter.endTiming,emitter.speedRate,emitter.inheritAngle,emitter.inheritScale); } }else{ _ParticleEmitter__updateParam.apply(this,arguments); } }; ParticleEditor.prototype.startEditing = function(index){ if(index<0)return; if(this._editingIndex === index)return; SoundManager.playCursor(); var target = this._parts[index]; if(this._editingIndex>=0){ this._endEditing(); index = this._parts.indexOf(target); if(index<0){ this._editingIndex = -1; this.deselectParts(); return; } } if(!target){ this.refreshPartsHidden(); return; } this._editingIndex = index; target.startEditing(); var title = target.title(); this.showGuideWithTitle(title); if(target.type() === 'color'){ target.setPicker(this._colorPicker); } if(target.isSpawnParam()){ var saveData = target.paramSaveData(); this.saveEditingData(saveData); } this.refreshPartsHidden(); this.selectParts(index); }; ParticleEditor.prototype.spawnType = function(){ var spawnType = this._config.spawnType; var params = this.targetData().params; if(params.rect)spawnType = 'rect'; else if(params.circle)spawnType = 'circle'; else if(params.ring)spawnType = 'ring'; else if(params.burst)spawnType = 'burst'; else if(params.pos||params.point||params.spawnPos)spawnType = 'point'; if(spawnType==='position'||spawnType==='pos')spawnType = 'point'; return spawnType; }; ParticleEditor.prototype.refreshPartsHidden = function(){ var spawnType = this.spawnType(); var allParts = this._parts; var length = allParts.length; for(var i = 0; i