mysecretsummervacation2/www/js/plugins/MNKR_TimerEX.js
2023-08-14 15:30:44 -05:00

91 lines
No EOL
3.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* --------------------------------------------------
* MNKR_TimerEX.js
* Ver.1.1.0
* Copyright (c) 2020 Munokura
* This software is released under the MIT license.
* http://opensource.org/licenses/mit-license.php
* --------------------------------------------------
*/
/*:
* @target MZ MV
* @url https://raw.githubusercontent.com/munokura/MNKR-MZ-plugins/master/MNKR_TimerEX.js
* @plugindesc タイマーをカウントアップ・ダウン、表示・非表示を切り替えできるようにします。
* @author munokura
*
* @help
* タイマーをカウントアップ・ダウンできるようにします。
* タイマーをスイッチで表示・非表示を切り替えられます。
*
* カウントアップ・ダウンに関わらず、タイマー停止時の値を変数に保存します。
* 保存される値はフレーム値(1フレーム:1/60秒)です。
* 分や秒に換算する場合、計算して使用してください。
*
* プラグインコマンドはありません。
*
*
* 利用規約:
* MITライセンスです。
* https://licenses.opensource.jp/MIT/MIT.html
* 作者に無断で改変、再配布が可能で、
* 利用形態商用、18禁利用等についても制限はありません。
*
*
* @param countUpSwitch
* @text カウントアップ発動スイッチ
* @type switch
* @desc 指定スイッチがON時カウントアップ。OFF時カウントダウン。
* 無指定の場合、常にカウントアップになります。
* @default 0
*
* @param hideSwitch
* @text タイマー非表示スイッチ
* @type switch
* @desc 指定スイッチがON時タイマーを非表示。OFF時に表示。
* 無指定の場合、常に表示になります。
* @default 0
*
* @param countStopValue
* @text 保存変数ID
* @type variable
* @desc タイマーを停止した時の値を保存する変数ID。取得値はフレーム値(1フレーム:1/60秒)
* @default 0
*/
(() => {
"use strict";
const pluginName = document.currentScript.src.split("/").pop().replace(/\.js$/, "");
const parameters = PluginManager.parameters(pluginName);
const countUpSwitch = Number(parameters['countUpSwitch'] || 0);
const hideSwitch = Number(parameters['hideSwitch'] || 0);
const countStopValue = Number(parameters['countStopValue'] || 0);
const _Game_Timer_update = Game_Timer.prototype.update;
Game_Timer.prototype.update = function (sceneActive) {
if (($gameSwitches.value(countUpSwitch) || countUpSwitch === 0) && sceneActive && this._working) {
this._frames++;
} else {
_Game_Timer_update.apply(this, arguments);
}
};
const _Game_Timer_stop = Game_Timer.prototype.stop;
Game_Timer.prototype.stop = function () {
_Game_Timer_stop.call(this);
if (countStopValue) {
$gameVariables.setValue(countStopValue, this._frames);
}
};
const _Sprite_Timer_redraw = Sprite_Timer.prototype.redraw;
Sprite_Timer.prototype.redraw = function () {
if ((!$gameSwitches.value(hideSwitch) || hideSwitch === 0)) {
_Sprite_Timer_redraw.call(this);
} else {
this.bitmap.clear();
}
};
})();